Communitygithub.com

TomasValleDuran/design-system-builder

任意のプロジェクトとプラットフォーム向けにデザインシステムを作成、拡張、監査します。デザイントークン(カラー、タイポグラフィ、スペーシング、半径、エレベーション、モーション、ブレイクポイント)、トークンアーキテクチャ(プリミティブ→セマンティック→コンポーネント)、W3C DTCGトークンフォーマット、テーマ設定(ライト/ダーク、ブランド、ディメンシティ)、マルチプラットフォーム出力(CSS変数、Tailwind v4 @theme、React Native、Flutter、SwiftUI、Compose)、コンポーネントAPI規約、ドキュメント(DESIGN.md、Storybook)、ガバナンスを扱います。

design-system-builder とは?

このスキルは、アプリケーションやプロジェクト全体で一貫した外観と操作性を実現するためのデザインシステムの構築、拡張、監査を支援します。デザイントークン(色、タイポグラフィ、余白、角丸、影、動き、ブレイクポイントなど)の定義から始め、プリミティブ→セマンティック→コンポーネントの3層構造でトークンを整理し、W3C DTCG標準フォーマットを使用することで、複数のプラットフォーム(Web、React Native、Flutter、SwiftUI、Jetpack Compose)にわたって一貫したテーマを提供できます。既存のコードベースからトークンを抽出する自動化機能も備えており、新規プロジェクトの開始時、既存UIの統一、ダークモード対応、マルチブランド展開など、あらゆる規模のデザイン一貫性向上ニーズに対応します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TomasValleDuran/pomos-skillzzeria/tree/HEAD/plugins/skillzzeria/skills/design-system-builder

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Design System Builder

デザインシステムとは、一度だけ決定を下し、すべての画面で再決定を行わないようにするためのものです。トークンが決定を保持し、コンポーネントがそれを適用し、ドキュメントが説明します。プロジェクトに合わせて規模を調整してください。週末アプリなら40行のトークンファイルとDESIGN.mdで十分です。複数チームのプロダクトでは、パイプラインとガバナンスが必要になります。小さく始めて、必要に応じて拡張していきます。

プロセス

0. 既存のものを確認する

次のものを探します:tokens/themeファイル、tailwind 設定または @theme ブロック、components.json、CSS変数、theme/ モジュール、Figmaリンク(Figma MCPが接続されている場合は get_variable_defs/search_design_system を使用)、DESIGN.md/.interface-design/system.md。既存のコードベースでは、発明する前に抽出します:実際に使用されている色、フォントサイズ、余白、角丸をgrepで取得し、クラスタリングして、統合されたスケールを提案します。ユーザーに変更前→変更後のマッピングを表示します。

1. 方向性を定義する(1段落)

誰が使うのか、どのような印象を与えるべきか(具体的な言葉で。「トレーディング端末のように密集している」「読書アプリのように落ち着いている」など)、プラットフォーム、ブランドの制約、密度、ライト/ダーク。これらの各選択が以下のすべてのスケールの選択を決定します。interface-design または frontend-design スキルが使用されている場合、これらのスキルがこの美的ステップを担当します。このスキルは方向性をシステムに変換します。

2. 基礎(トークン)

この順序で構築します。各トークンは前のトークンに依存します。

  1. カラー → color-theory スキルのツールを実行します:python3 <skills-dir>/color-theory/scripts/palette.py system <brand-hex> --format tailwind|css|json(color-theory はこのスキルのディレクトリの兄弟です)。プリミティブランプと検証済みのライト/ダークセマンティックロールを生成します。
  2. タイポグラフィ → フォントファミリー(≤2、およびmono)、名前付きロールを持つタイプスケール、行高、ウェイト、トラッキング。references/scales.md を参照。
  3. スペース → 4pxベースグリッド。Tシャツサイズまたは数値スケール。レイアウトスペーシングとコンポーネントパディングを分離します。
  4. シェイプ → 半径スケール(ネストのルール:内側の半径 = 外側の半径 − パディング)、境界線の幅。
  5. エレベーション → シャドウスケール(ライト)とサーフェスの明度の段階(ダーク)、z-indexレイヤー。
  6. モーション → 持続時間+イージングをトークンとして(および reduced-motion の動作)。
  7. レイアウト → ブレイクポイント、コンテナー幅、グリッドカラム、セーフエリア(モバイル)。
  8. サイジング → コントロールの高さ(sm/md/lg)、アイコンサイズ、最小タッチターゲット。

3. トークンアーキテクチャ

3つの階層。コンポーネントはセマンティック(またはコンポーネント)階層のみを消費する必要があります。

プリミティブ  --blue-600, --space-4, --radius-2          生の値、WHAT(何か)で命名
セマンティック  --color-accent, --space-inset-md, --radius-control  JOB(役割)で命名、プリミティブをエイリアス、テーマごとに切り替え
コンポーネント  --button-bg, --card-padding                 オプション。実際にテーマ設定が必要なコンポーネントのみ

テーマの切り替え(ダークモード、ブランド、密度、ハイコントラスト)=セマンティックトークンの再ポイント。コンポーネントは決して変更しません。完全な命名規則、DTCGフォーマット、モード:references/token-architecture.md。

4. プラットフォームにデプロイする

  • 単一のWebアプリ:手書きのCSS変数+Tailwind v4 @theme で十分です。
  • Web+モバイル、または複数のアプリ:トークンをDTCG JSON(1つのソース)で作成し、Style Dictionary v5 または Terrazzo を使用してCSS、Tailwind、TS、Swift、Kotlin/Compose、Flutter、RNにビルドします。 プラットフォームごとのレシピと出力例:references/platform-outputs.md。スターターDTCGファイル:assets/tokens.example.json。

5. コンポーネント

アクセシブルなプリミティブ上に構築します(ui-stack-advisor を参照)。一貫したAPI:variant(視覚的な意図)、size、必要に応じて tone/color、data属性による状態、構成よりもコンポジション。すべてのコンポーネントはすべての状態をドキュメント化します:デフォルト、ホバー、アクティブ、focus-visible、無効、ロード中、エラー、空、選択済み、読み取り専用。規約とチェックリスト:references/components.md。

6. ドキュメント化とガバナンス

プロジェクトルートに assets/DESIGN.template.md から DESIGN.md を作成します。方向性、トークンテーブル、コンポーネントインベントリ、Do/Don't、そして決定の理由を含めます。このファイルは将来のセッションが一貫性を保つために読み込むものです。短く、最新の状態に保ちます。大規模なシステムでは、Storybook(またはLadle/Histoire)、ビジュアルリグレッションテスト、セマンティックバージョニングによる変更ログ、コントリビューションプロセスを追加します(references/components.md#governance)。

デフォルト値(ユーザーに好みがない場合に機能する)

基礎デフォルト値
基本単位4px。スペーシングスケール:0, 1, 2, 4, 6, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96 px
タイプスケール12, 14, 16 (本文), 18, 20, 24, 30, 36, 48, 60 px(≈1.2–1.25比率)。プロダクトUIは14px本文を使用可
行高本文1.5、見出し1.2–1.3、ディスプレイ1.1。大きなサイズではトラッキングを詰める (-0.01~-0.03em)
半径0, 4, 6, 8, 12, 16, 24, full — 個性を選ぶ:シャープ (2–4)、ソフト (8–12)、ラウンド (16+) で一貫して適用
コントロール高さ32 / 36–40 / 44–48 px。タッチターゲット ≥ 44pt (iOS) / 48dp (Android) / 24px min WCAG 2.2 (44を目標)
モーション100 / 150 / 200 / 300 / 500 ms。イーズアウト cubic-bezier(0.23,1,0.32,1) を出現に、イーズインアウトを動きに、スプリングはモバイルで
ブレイクポイント640, 768, 1024, 1280, 1536 (Tailwind)。コンポーネントにはコンテナクエリを優先
エレベーション4〜5段階のシャドウ。ダークモードでは代わりに明るいサーフェス+微妙な境界線を使用
Z-indexbase 0, ドロップダウン 1000, スティッキー 1100, オーバーレイ 1300, モーダル 1400, ポップオーバー 1500, トースト 1600, ツールチップ 1700

デフォルト値は下限であり、スタイルではありません。差別化は、変化する選択肢(書体、アクセント色、ニュートラルカラーの温度、半径の個性、密度、モーションの特性)から生まれます。

品質基準(完了とみなす前にチェックすること)

  • コンポーネント内に生の値(16進数、pxフォントサイズ、任意のスペーシング)がないこと — grepで確認
  • セマンティック名は値や色相ではなく、役割を説明していること
  • ライト+ダークの両方が設計され、コントラストが検証されていること(WCAG 2.2 AA)
  • すべてのインタラクティブコンポーネントに、visible focus、disabled、loading、errorの各状態があること
  • タイプスケールに名前付きロール(display, h1–h3, body, label, caption, code)があり、単なるサイズではないこと
  • スペーシングが一貫していること:同じ関係 → 同じトークン
  • モーショントークンにreduced-motionバリアントがあること
  • DESIGN.mdが作成されており、正確であること
  • モバイル:Dynamic Type / フォントスケーリングが尊重され、セーフエリアがトークン化され、タッチターゲットが ≥ 44/48であること

リファレンス

  • references/token-architecture.md — 階層、命名文法、DTCG 2025.10フォーマット、モード/テーマ、エイリアスルール
  • references/scales.md — タイポグラフィ(スケール、可変タイプ、ペアリング)、スペーシング、半径、エレベーション、モーション、密度、ブレイクポイント
  • references/platform-outputs.md — CSS、Tailwind v4、shadcnテーマ設定、React Native (NativeWind/Unistyles/Tamagui)、Flutter、SwiftUI、Compose、Style Dictionary/Terrazzoパイプライン
  • references/components.md — コンポーネントAPI規約、アナトミー、状態マトリックス、コンポジション、ドキュメント、テスト、ガバナンス
  • assets/tokens.example.json — スターターDTCGトークンファイル
  • assets/DESIGN.template.md — DESIGN.mdテンプレート

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

TomasValleDuran/color-theory

Color theory and palette engineering for UI on any platform (web, iOS, Android, Flutter, React Native). Choose and derive brand palettes, build tonal ramps, tinted neutrals and status colors, map them to light/dark semantic tokens, and verify contrast (WCAG 2.2 + APCA) and color-blind safety with a bundled zero-dependency OKLCH tool. Use this whenever the user picks, generates, critiques or fixes colors — "what colors should I use", brand color, palette, color scheme, theme, dark mode colors, accent, gradient, "this looks dull/garish", contrast problems, color-blind friendliness, or turning one hex into a full system — even if they don't say "color theory".

TomasValleDuran/ui-stack-advisor

Curated, up-to-date knowledge of UI component libraries, animation libraries and building blocks (icons, charts, tables, forms, toasts, drag-and-drop, virtualization, rich text) for web (React, Next.js, Vue, Svelte, Solid, Angular) and mobile (React Native/Expo, Flutter, SwiftUI, Jetpack Compose), with a decision process for picking one. Use this whenever a project is being started or scaffolded, when the user asks "which UI library / component library / design kit should I use", compares libraries (shadcn vs MUI vs Mantine, Tamagui vs NativeWind, etc.), needs a specific widget (date picker, data table, command palette, carousel, bottom sheet, chart), wants "cool animated components", or when you are about to hand-roll a component that a mature library already solves well.

TomasValleDuran/ui-ux-playbook

The entry point for any UI/UX work on web or mobile — the end-to-end workflow (brief → direction → system → stack → build → motion → verify), industry standards and best practices (WCAG 2.2, Apple HIG, Material 3, Nielsen heuristics, Laws of UX, Core Web Vitals, forms, navigation, states, i18n), a pre-ship UI checklist, and a routing map telling you which specialized design/animation/color/library skill to load for each sub-task. Use this whenever you start or plan a frontend or mobile app, build or redesign screens, review UI/UX quality, answer "what's the best practice for X" in interface design, or when several design skills could apply and you need to decide which.

関連スキル