Works
Case Study

Cornix Dojo — 自分のキーマップが、教材になる。

分割キーボード「Cornix LP」専用のタイピング練習サイト。WebHIDで実機からキーマップを読み取り、レイヤーやShiftの押し方まで3色のガイドで案内します。愛用キーボードの練習環境が欲しくて、企画からUX/UI設計・実装・公開までを一人でかたちにした個人開発です。

Role企画・UX/UI設計・実装(AI活用)・公開
Year2026
CategoryTool / 個人開発
PlatformWeb(公開中)
StackHTML/CSS・Vanilla JS・WebHID(Vial)・GitHub Pages
Cornix Dojo のトップ画面。黒いアルマイト筐体トレイに白いキーキャップのキーボードが表示され、練習モード・プレイ時間・本体カラーの選択が並ぶ
トップ画面(ブラック筐体 × 白キーキャップ)
プレイ中の画面。オレンジ筐体のキーボード上で、押すべき7のキーがtealに、押しながら使うレイヤーキーがピンクにハイライトされ、①②の順序バッジが付いている
プレイ中 — レイヤーキーと目標キーを順序つきでガイド
結果画面。スコアとランク、WPM推移グラフ、直近30回の成長記録グラフ、ミスが多かったキーの一覧と「ミスしたキーを集中練習する」ボタンが表示されている
結果画面 — 今回のWPM推移と、直近30回の成長記録
01 / Overview

キーマップ連動の、専用練習環境。

Cornix Dojo は、48キーの無線分割キーボード「Cornix LP」のためのタイピング練習サイトです。一般のタイピングサイトと違うのは、ユーザー自身のキーマップがそのまま教材になること。WebHID(Vialプロトコル)で実機から現在のキーマップを読み取り、記号や数字のような「レイヤーの先にあるキー」も、どのキーを押しながらどれを押すかを3色のハイライトと順序バッジで案内します。

日本語ローマ字(ヘボン式・訓令式の揺れに対応)・英文・記号コードの出題、ミス分布ヒートマップ、苦手キーの集中練習、プレイごとの成長記録まで、「新しい配列に慣れる」ための機能を1枚のHTMLに収めました。

02 / Problem

自分の配列は、誰も教えてくれない。

Cornix LP のような40%キーボードは、数字も記号もレイヤーの中にあります。しかもキーマップは一人ひとりが自由に変えるもの。既存のタイピングサイトはQWERTYの物理配列が前提なので、「自分の配列のどこに何があるか」は誰も教えてくれず、上達の一番苦しい初期にツールがありませんでした。

先行して同じ課題を解いたCornix向け練習サイトに触発されつつ、自分ならどう作るかを考え、出題データ・スコア設計・機能・デザインのすべてを独自に再構築しました。単なる再現ではなく「自分のツール」と言えるものにすることが、この制作の隠れたテーマです。

03 / Design decisions

考えたこと、決めたこと。

01Hardware as UI

実機を、デザイン言語に翻訳する。

Cornix LPの削り出しアルマイト筐体と白いキーキャップの関係を、そのままUIに持ち込みました。本体カラー4色は筐体トレイの色として切り替わり、ボタン類はすべてキーキャップと同じ造形。画面の中に「自分のキーボード」が居る感覚を作っています。

02Color-proof guides

ガイドは、色だけに頼らない。

キーキャップを1キーずつ好きな色に塗れる機能があるため、ガイドが塗り色と衝突します。ハイライトには白い内枠+濃色の外枠の二重リングと順序バッジを重ね、どんな配色の上でも「次に押すキー」が迷わず読めるようにしました。

03Difficulty scoring

難しさを、得点にする。

スコアは打鍵ごとに、その文字が自分のキーマップで必要とするホールド(レイヤー・Shift)の数で加点が変わる独自設計。レイヤーの奥のキーに挑むほど報われるルールが、40%キーボードの練習そのものと噛み合います。

04 / What it does

かたちにしたもの。

01

キーマップ読み取り

WebHID(Vialプロトコル)で実機から直接読み取り。.vilファイルのドラッグ&ドロップにも対応し、ブラウザに保存・自動復元します。

02

レイヤーまで案内するガイド

押すキー・Shift・レイヤーキーを3色+順序バッジで表示。表示レイヤーは出題に合わせて自動で切り替わります。

03

5つの練習モード

日本語ローマ字・英単語/英文・記号コード・苦手キー・ミックス。約1,300項目の独自出題データを収録しました。

04

ミス分布ヒートマップ

蓄積したミスをキーボード上に濃淡で可視化。ミスの多いキーだけを集中練習するモードへつながります。

05

成長記録

プレイごとのWPMを保存し、直近30回の推移をグラフ化。前回・自己ベスト・傾向の矢印をアイドル画面にも表示します。

06

外観カスタム

筐体カラー4色(実機のアルマイト色を再現)、キーキャップの1キー単位の塗り分け、ライト/ダークテーマ。

05 / How it was made

つくり方。

依存ライブラリなしの単一HTMLで、フレームワークも使っていません。核になっているのは、QMK/Vialのキーコードを解釈して「この文字を打つには、どのレイヤーのどのキーと、どのホールドが要るか」を逆引きする仕組み。ここが解ければ、ガイドも難度スコアもヒートマップも、同じ逆引きの上に載っていきます。実装はClaude(AI)と並走し、UXの判断とレビューを自分が担う形で進めました。

企画

「自分の配列に慣れる」に絞る

汎用タイピングサイトではなく、Cornix LPユーザーの移行初期に効くツールへ。差別化の軸を出題データ・スコア・分析機能に定めました。

設計

cotozuのトークンで、実機の質感を組む

モノクロ+teal のcotozuデザイントークンを土台に、アルマイト筐体・キーキャップの造形をCSSで再現。ハードウェアの精密さを画面の言語に翻訳しました。

実装

WebHID読み取りと、ローマ字判定エンジン

Vialプロトコルでのキーマップ取得、促音・拗音・「ん」の揺れに対応したローマ字判定、WebAudioの効果音まで、素のJSで組んでいます(コードはAIに書かせています)。

公開

GitHub Pagesへ、単一ファイルのままデプロイ

ビルド工程なし。記録はすべてlocalStorageに保存され、サーバーを持たない構成です。公開時には個人のキーマップを汎用サンプルに差し替えました。

Build
HTML / CSS Vanilla JS WebHID / Vial WebAudio GitHub Pages Claude Code
06 / Reflection

自分のツールを、自分で作るということ。

この制作で一番大切にしたのは、機能を足すことではなく「練習の体験がひと続きになっているか」でした。ミスの記録がヒートマップになり、ヒートマップが苦手キーの出題になり、結果画面の成長グラフが次のプレイの動機になる。ツールが練習のループを自然に回してくれる状態を目指しました。

もうひとつの学びは、既存のものがある領域で作る姿勢です。先行サイトへの敬意を持ちながら、データもルールもデザインも自分の答えで置き換えていく。「参考にする」と「自分のものにする」の間にある距離を、UXの意思決定を積み重ねて越えた制作でした。

Contact

感想やご連絡は、気軽にどうぞ。

Contact

ほかの制作を見る(Works)