design-system について
デザイントークン、コンポーネント仕様、スライドシステムを作成するスキルです。デザインからフロントエンドへの引き継ぎを想定し、プリミティブ・セマンティック・コンポーネントの三層構造と生成・検証スクリプトを備えています。
主な機能
- 01三層のトークン設計
- 02CSS トークンの生成
- 03トークン使用状況の検証
- 04コンポーネント状態の仕様定義
- 05Tailwind テーマ連携
- 06トークンベースのスライドシステム
活用シーン
- 01再利用可能なトークンシステムの構築
- 02コード内のハードコード値の確認
- 03コンポーネント状態とバリアントの定義
- 04ブランド準拠のプレゼン資料作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nextlevelbuilder/ ui-ux-pro-max-skill --skill ckm:design-systemインストール後、Claude Code で/ckm:design-systemを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
data/slide-backgrounds.csvslide-color-logic.csvslide-layout-logic.csvslide-charts.csvslide-copy.csvslide-layouts.csvslide-typography.csvslide-strategies.csvreferences/component-specs.mdcomponent-tokens.mdprimitive-tokens.mdsemantic-tokens.mdtoken-architecture.mdstates-and-variants.mdtailwind-integration.mdscripts/fetch-background.pygenerate-tokens.cjsgenerate-slide.pyhtml-token-validator.pyembed-tokens.cjssearch-slides.pyvalidate-tokens.cjsslide-token-validator.pyslide_search_core.pyscripts/tests/test_validate_tokens.pytemplates/design-tokens-starter.json詳細
デザインシステム
トークンアーキテクチャ、コンポーネント仕様、体系的なデザイン、スライド生成。
使用する場面
- デザイントークンの作成
- コンポーネントの状態定義
- CSS 変数システム
- 余白/タイポグラフィのスケール
- デザインからコードへの引き継ぎ
- Tailwind テーマの設定
- スライド/プレゼンテーションの生成
トークンアーキテクチャ
読み込み:references/token-architecture.md
3 層構造
Primitive (raw values)
↓
Semantic (purpose aliases)
↓
Component (component-specific)
例:
/* Primitive */
--color-blue-600: #2563EB;
/* Semantic */
--color-primary: var(--color-blue-600);
/* Component */
--button-bg: var(--color-primary);
クイックスタート
トークンを生成:
node scripts/generate-tokens.cjs --config tokens.json -o tokens.css
使用状況を検証:
node scripts/validate-tokens.cjs --dir src/
リファレンス
| トピック | ファイル |
|---|---|
| トークンアーキテクチャ | references/token-architecture.md |
| プリミティブトークン | references/primitive-tokens.md |
| セマンティックトークン | references/semantic-tokens.md |
| コンポーネントトークン | references/component-tokens.md |
| コンポーネント仕様 | references/component-specs.md |
| 状態とバリアント | references/states-and-variants.md |
| Tailwind 連携 | references/tailwind-integration.md |
コンポーネント仕様のパターン
| プロパティ | デフォルト | ホバー | アクティブ | 無効 |
|---|---|---|---|---|
| 背景 | primary | primary-dark | primary-darker | muted |
| テキスト | white | white | white | muted-fg |
| ボーダー | none | none | none | muted-border |
| シャドウ | sm | md | none | none |
スクリプト
| スクリプト | 用途 |
|---|---|
generate-tokens.cjs | JSON トークン設定から CSS を生成 |
validate-tokens.cjs | コード内のハードコード値を確認 |
search-slides.py | BM25 検索+コンテキストに応じた推奨 |
slide-token-validator.py | スライド HTML のトークン準拠を検証 |
fetch-background.py | Pexels/Unsplash から画像を取得 |
テンプレート
| テンプレート | 用途 |
|---|---|
design-tokens-starter.json | 3 層構造を備えたスターター JSON |
連携
brand との連携: ブランドカラー/タイポグラフィからプリミティブを抽出
ui-styling との連携: コンポーネントトークン → Tailwind 設定
スキルの依存関係: brand、ui-styling
主要エージェント: ui-ux-designer、frontend-developer
スライドシステム
デザイントークン+Chart.js+コンテキストに応じた意思決定システムを使用した、ブランド準拠のプレゼンテーションです。
信頼できる情報源
| ファイル | 用途 |
|---|---|
docs/brand-guidelines.md | ブランドアイデンティティ、語調、色 |
assets/design-tokens.json | トークン定義(プリミティブ→セマンティック→コンポーネント) |
assets/design-tokens.css | CSS 変数(スライドでインポート) |
assets/css/slide-animations.css | CSS アニメーションライブラリ |
スライド検索(BM25)
# Basic search (auto-detect domain)
python scripts/search-slides.py "investor pitch"
# Domain-specific search
python scripts/search-slides.py "problem agitation" -d copy
python scripts/search-slides.py "revenue growth" -d chart
# Contextual search (Premium System)
python scripts/search-slides.py "problem slide" --context --position 2 --total 9
python scripts/search-slides.py "cta" --context --position 9 --prev-emotion frustration
意思決定システムの CSV
| ファイル | 用途 |
|---|---|
data/slide-strategies.csv | 15 種類のデッキ構成+感情の流れ+スパークラインのビート |
data/slide-layouts.csv | 25 種類のレイアウト+コンポーネントバリアント+アニメーション |
data/slide-layout-logic.csv | 目標 → レイアウト+break_pattern フラグ |
data/slide-typography.csv | コンテンツタイプ → タイポグラフィスケール |
data/slide-color-logic.csv | 感情 → 色の処理 |
data/slide-backgrounds.csv | スライドタイプ → 画像カテゴリ(Pexels/Unsplash) |
data/slide-copy.csv | 25 種類のコピーライティング公式(PAS、AIDA、FAB) |
data/slide-charts.csv | Chart.js 設定を含む 25 種類のグラフタイプ |
コンテキストに応じた意思決定の流れ
1. Parse goal/context
↓
2. Search slide-strategies.csv → Get strategy + emotion beats
↓
3. For each slide:
a. Query slide-layout-logic.csv → layout + break_pattern
b. Query slide-typography.csv → type scale
c. Query slide-color-logic.csv → color treatment
d. Query slide-backgrounds.csv → image if needed
e. Apply animation class from slide-animations.css
↓
4. Generate HTML with design tokens
↓
5. Validate with slide-token-validator.py
パターンの打破(Duarte Sparkline)
エンゲージメントを高めるため、プレミアムなデッキでは感情を交互に切り替えます:
"What Is" (frustration) ↔ "What Could Be" (hope)
システムは 1/3 と 2/3 の位置でパターンの切り替えを計算します。
スライドの要件
すべてのスライドで必須:
assets/design-tokens.cssをインポートする — 唯一の信頼できる情報源- CSS 変数を使用する:
var(--color-primary)、var(--slide-bg)など - グラフには Chart.js を使用する(CSS のみのバーは使用しない)
- ナビゲーションを含める(キーボードの矢印キー、クリック、プログレスバー)
- コンテンツを中央揃えにする
- 説得/コンバージョンに重点を置く
Chart.js 連携
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.umd.min.js"></script>
<canvas id="revenueChart"></canvas>
<script>
new Chart(document.getElementById('revenueChart'), {
type: 'line',
data: {
labels: ['Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
data: [5, 12, 28, 45],
borderColor: '#FF6B6B', // Use brand coral
backgroundColor: 'rgba(255, 107, 107, 0.1)',
fill: true,
tension: 0.4
}]
}
});
</script>
トークン準拠
/* CORRECT - uses token */
background: var(--slide-bg);
color: var(--color-primary);
font-family: var(--typography-font-heading);
/* WRONG - hardcoded */
background: #0D0D0D;
color: #FF6B6B;
font-family: 'Space Grotesk';
参照実装
すべての機能を備えた動作例:
assets/designs/slides/claudekit-pitch-251223.html
コマンド
/slides:create "10-slide investor pitch for ClaudeKit Marketing"
ベストプラクティス
- コンポーネント内で16進数を直接使用せず、必ずトークンを参照してください
- セマンティックレイヤーによってテーマ(ライト/ダーク)を切り替えられます
- コンポーネントトークンによって、コンポーネントごとにカスタマイズできます
- 不透明度を調整するには、HSL形式を使用してください
- すべてのトークンの用途を記載してください
- スライドではdesign-tokens.cssをインポートし、var()のみを使用してください
コメント
Markdown 対応