replica-design について
replica-designは、再構築のメモとスクリーンショットからデザイントークン、コンポーネント仕様、UIプリミティブを作るスキルです。独自でアクセシブルなデザインシステムを整えながら、インターフェースを再構築するチーム向けです。
主な機能
- 01視覚的役割とレイアウトの測定
- 02トークン CSS と Tailwind マッピングの生成
- 03WCAG AA に基づくテキストコントラスト確認
- 04コンポーネントの状態とアクセシビリティ仕様
- 05再利用可能な UI プリミティブの構築
活用シーン
- 01参考スクリーンショットからのデザイントークン作成
- 02テキストと背景のコントラスト確認
- 03コンポーネントのバリエーションと状態の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jakeschincariol/ replica-skill --skill replica-designインストール後、Claude Code で/replica-designを入力して読み込まれたか確認します。
同梱ファイルcontrast.pytokens.json
詳細
replica-design
replica/recon.md と replica/screens/ 内のスクリーンショットを読み込みます。replica/design/tokens.json(このフォルダー内のテンプレート)、tokens.css、Tailwind のマッピング、replica/design/components.md を書き出します。
python3 contrast.py replica/design/tokens.json # every text pair, WCAG ratio
ルール
再構築するのはシステムです。つまり、役割、スケール、パターン、フォームやモーダルの動作です。これらは独占できるものではなく、ユーザーも使い慣れたものを期待しています。一方、次のものは決して流用しないでください。
- ロゴ、アイコン、イラスト、写真、サウンド。 オープンなアイコンセット(Lucide、Phosphor、Heroicons、Tabler など。すべて MIT などのライセンス)を使い、イラストは自作するか、制作を依頼してください。元のものをトレースしてはいけません。
- ライセンスされたフォント。 元のサイトが有料フォントやプロプライエタリなフォントを使っている場合は、同じ用途に適したオープンなフォントを選んでください。例:Inter、Geist、IBM Plex、Manrope、Source Serif。
- 元の文章。 ラベルも空の状態の表示文も、すべて新しく書いてください。
- 元のブランドカラー。 役割(
accent)として記録し、今はニュートラルな仮の色を使ってください。replica-brand で独自の色に置き換えます。特徴的な色とレイアウトの組み合わせはトレードドレスにあたるため、リリース前に変更してください。
ステップ 1:推測せず、測定する
スクリーンショットを使って測定します(拡大し、ユーザーのマシンでカラーピッカーを使ってください)。
- 色の役割。色そのものではありません。bg、surface、border、border-input、text、text-muted、accent、on-accent、danger、success、warning。アプリで実際に使われているグレーの数を数えてください。通常は 5~7 種類です。
- 文字のスケール:サイズ、行の高さ、太さ。スケールに合わせます(12、14、16、20、28、40 が一般的です)。フォントファイルではなく、フォントの種類を記録してください。
- 余白:要素間の間隔を測定します。ほとんどの場合、4 または 8 が基準になります。スケールを記録してください。
- 角丸、シャドウ、モーション:それぞれ 2~3 種類です。
- レイアウト:コンテンツの最大幅、グリッド、ブレークポイント、サイドバーの幅、ヘッダーの高さ。
ステップ 2:トークンを書く
tokens.json に値を入力します。役割名はそのままにしてください。replica-brand では値だけを変更します。tokens.css をカスタムプロパティとして生成し、Tailwind のテーマにマッピングして、コンポーネントでは生の hex 値ではなく bg-surface text-muted を使うようにします。
アプリで使うテキストと背景の組み合わせごとに pairs リストを追加し、次を実行します。
python3 contrast.py replica/design/tokens.json
AA は最低基準です。本文テキストは 4.5:1、大きなテキスト、入力欄のボーダー、フォーカスリングは 3:1 です。失敗があると終了コード 1 になります。コンポーネントごとに修正するのではなく、トークンを修正してください。
ステップ 3:コンポーネント仕様
recon リスト内の各コンポーネントについて、components.md にブロックを 1 つ作成します。
Button
variants primary, secondary, ghost, danger
sizes sm 32px, md 40px, lg 48px
states default, hover, active, focus-visible (2px ring, accent), disabled, loading
tokens bg accent, text on-accent, radius md, font sm/600
a11y real <button>, visible focus, loading keeps the label for screen readers
used on S02, S07, S09
recon で確認したすべての状態に加え、フォーカス、無効、読み込み中、エラー、空の状態も記載します。キーボード操作とスクリーンリーダーの動作も仕様に含めてください。
ステップ 4:プリミティブを構築する
画面を作る前に、コンポーネントをコードで一度、単独で構築します(/design ルートまたは Storybook)。スタックにアクセシブルな基盤がある場合は、それを使ってください(Radix、shadcn/ui、React Aria)。ページのスクリーンショットを撮影します。これがデザインシステムの確認です。
出力
tokens.json、tokens.css、Tailwind の設定、components.md、構築したプリミティブ、AA の失敗がゼロのコントラストレポート。次は /replica-build です。