taste-design-system について
taste-design-system は、デザインシステムの監査、構成、保守を支援するスキルです。3 層のトークン構造を定め、スケール、コンポーネントの状態、ドキュメント、ガバナンスの指針を示します。
主な機能
- 01プリミティブ、セマンティック、コンポーネントトークンの構成
- 02DTCG 形式に沿ったトークン命名
- 03色、余白、書体、コンポーネントの監査
- 04スケールとコンポーネント状態の定義
- 05デザインシステム変更の文書化と管理
活用シーン
- 01既存デザインシステムの監査
- 023 層構造でのトークン整理
- 03コンポーネントの状態不足や生値の確認
- 04トークン変更の計画と採用状況の追跡
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ madebymustafa/ design-taste --skill taste-design-systemインストール後、Claude Code で/taste-design-systemを入力して読み込まれたか確認します。
詳細
taste-design-system
デザインシステムは意思決定の一覧です。このスキルでは、その一覧を作成し、構造化し、信頼性を保つ方法をエージェントに伝えます。
1. トークンアーキテクチャ(3階層、2階層にはしない)
- プリミティブトークン — 生の値です:
--color-ink-900、--space-4、--radius-md。値以外の意味は持ちません。 - セマンティックトークン — 値ではなく意味を表します:
--color-surface、--color-text-muted、--color-border、--space-inset-lg。プロダクトが使用するのはセマンティックトークンのみです。 - コンポーネントトークン — コンポーネントごとのエイリアスです:
--button-bg-primary、--button-radius、--input-border-width。コンポーネントがプリミティブを直接参照することはありません。
ルール:コンポーネント → セマンティック → プリミティブ → 値。いずれかの階層を飛ばすと、システムが分岐します。
2. トークン形式(自由形式ではなくDTCG)
トークンはフラットなキーのマップ(または、スタックが対応している場合はW3C DTCG JSON)として記述します:
--color-ink-900: #101014;
--color-ink-700: #3B3B40;
--color-accent: #E8540B;
--space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px;
--radius-sm: 2px; --radius-md: 6px; --radius-lg: 12px;
--font-display: 'Archivo', sans-serif; --font-body: 'Inter', sans-serif; --font-mono: 'JetBrains Mono', monospace;
命名規則:kebab-case、名詞を先にし、スケールを最後にします(--space-4、--color-ink-900、--radius-md)。名前に意図を含めること(「fancy-purple」など)は避け、コンポーネント内で16進数の色を直接使わないでください。
3. インベントリ(構築前に監査する)
何かを構築する前に、インベントリを作成します:
- 色 — コードベース内の16進数をすべて列挙します。トークンセットに含まれない値があれば記録します(独自の色が15色を超える場合、システムに問題があります)。
- スペーシング — 4px(または8px)スケールにないマージンやパディングを記録します。
- タイポグラフィ — 使用中のフォントサイズとウェイトの種類を数えます。1ページに5サイズを超える場合、階層がありません。
- 角丸/エレベーション/ボーダー — 値をすべて収集し、2~4個のトークンにまとめます。
- コンポーネント — コンポーネントをすべて列挙します。同じ役割を担うバリアントが3つを超えるコンポーネントや、生の値を使ってスタイルを定義しているコンポーネントがあれば記録します。
出力:トークンマップ、違反の件数一覧、修正順序(プリミティブ、セマンティックマッピング、コンポーネントの整理の順)。監査と同じ工程でシステムをリファクタリングしてはいけません。監査、報告、その後に変更を行います。
4. スケール(固定の基準)
- スペーシング: 4/8/12/16/24/32/48/64/96。4px未満のギャップは、極細のボーダーに限ります。意図的な光学的調整として記録されている場合を除き、5、7、10、14pxは使用しないでください。
- タイポグラフィスケール(流動的): 12/14/16/18/24/32/48/64。レスポンシブにする箇所では
clamp()を使って描画します。 - カラースケール: OKLCHで50→950の9~11段階(知覚的に均等)、ニュートラルと少なくとも1つのアクセントファミリーを用意します。ダークモードでは、新しい色を追加するのではなく、セマンティックマッピングを変更します。
- エレベーション: 最大3段階です。フラット(シャドウなし)、レイズド(控えめ、ぼかし ≥ 16px、不透明度 ≤ 0.15)、フローティング(ぼかし ≥ 40px、不透明度 ≤ 0.2)。それ以外はすべて不具合です。
5. コンポーネントの構成(すべてのコンポーネントに含めるもの)
- 役割は1つ、名前も1つです。説明に「および」が含まれるコンポーネントは分割します。
- 完全な状態マトリクス:デフォルト、ホバー、アクティブ/押下、フォーカス可視、無効、読み込み中、エラー。実現できない状態がある場合は、その理由を記載します。
- サイズバリアントは必要な場合に限ります(sm/md/lg)。状態の代わりに色のバリアントを使ってはいけません。
- レスポンシブ時の動作と、変更が発生するブレークポイント。
- コード内でのトークン参照。コンポーネントのスタイルに生の値は一切使いません。
6. ドキュメントとガバナンス
- コンポーネントごとに1ページ用意します。目的、構成図(コードコメントとして記載)、状態マトリクス、使用ルール、使用例と避けるべき例、アクセシビリティに関する注記を記載します。
- 変更プロセス:トークンの変更は追加方式にします(新しいトークンを追加 → 古いトークンを非推奨にする → 1リリースサイクル後に削除)。トークンの値を予告なく変更してはいけません。
- オーナーシップ:トークンファイルを管理するのは1人(または1つのスキル)です。コンポーネントに関する意思決定は、その管理者を通じて行います。
- 導入指標(四半期ごとに測定): セマンティックトークンを使用する画面の割合、生の色に関する違反件数、スケール外のスペーシング値の件数、状態が文書化されているコンポーネントの割合。重要なのは、違反件数が減少傾向にあることです。
7. チェックリスト(次の場合はシステムを不合格にする)
- コンポーネントがプリミティブを直接参照している。
- UI で、トークンセットに含まれていない 16 進数カラーコードを使用している。
- ドキュメントに記載された例外なく、スペーシングの値がスケールから外れている。
- コンポーネントに無効状態またはフォーカス可視状態がない。
- 使用しているエレベーションのレベルが 3 を超えている。
- トークン名に意味と値の両方が含まれている(セマンティックな名前ではなく、"dark-purple" など)。
- 異なる API を持ちながら、同じ役割を果たすコンポーネントが 2 つ存在する。
トークンは、デザインシステムの記憶です。システムが記憶できなければ、同じことを繰り返します。ページも同じです。
コメント
Markdown 対応