visual-design-foundations
タイポグラフィ、カラー理論、スペーシングシステム、アイコノグラフィの原則を活用して、一貫性のあるビジュアルデザインを構築します。デザイントークンの策定、スタイルガイドの作成、視覚的な階層構造や一貫性の改善が必要なときに使用してください。
description の原文を見る
Apply typography, color theory, spacing systems, and iconography principles to create cohesive visual designs. Use when establishing design tokens, building style guides, or improving visual hierarchy and consistency.
SKILL.md 本文
Visual Design Foundations
タイポグラフィ、色、スペーシング、アイコノグラフィの基礎を使用して、一貫性のあるアクセシブルなビジュアルシステムを構築します。
このスキルを使用する場合
- 新規プロジェクトのデザイントークンを確立する場合
- スペーシングおよびサイジングシステムを作成または改善する場合
- タイプフェイスを選択およびペアリングする場合
- アクセシブルなカラーパレットを構築する場合
- アイコンシステムとビジュアルアセットを設計する場合
- ビジュアルハイアラーキーと可読性を改善する場合
- ビジュアルの一貫性の監査を行う場合
- ダークモードやテーミングを実装する場合
コアシステム
1. タイポグラフィスケール
モジュラースケール(比率ベースのサイジング):
:root {
--font-size-xs: 0.75rem; /* 12px */
--font-size-sm: 0.875rem; /* 14px */
--font-size-base: 1rem; /* 16px */
--font-size-lg: 1.125rem; /* 18px */
--font-size-xl: 1.25rem; /* 20px */
--font-size-2xl: 1.5rem; /* 24px */
--font-size-3xl: 1.875rem; /* 30px */
--font-size-4xl: 2.25rem; /* 36px */
--font-size-5xl: 3rem; /* 48px */
}
行の高さガイドライン:
| テキストの種類 | 行の高さ |
|---|---|
| 見出し | 1.1 - 1.3 |
| 本文 | 1.5 - 1.7 |
| UIラベル | 1.2 - 1.4 |
2. スペーシングシステム
8ポイントグリッド(業界標準):
:root {
--space-1: 0.25rem; /* 4px */
--space-2: 0.5rem; /* 8px */
--space-3: 0.75rem; /* 12px */
--space-4: 1rem; /* 16px */
--space-5: 1.25rem; /* 20px */
--space-6: 1.5rem; /* 24px */
--space-8: 2rem; /* 32px */
--space-10: 2.5rem; /* 40px */
--space-12: 3rem; /* 48px */
--space-16: 4rem; /* 64px */
}
3. カラーシステム
セマンティックカラートークン:
:root {
/* Brand */
--color-primary: #2563eb;
--color-primary-hover: #1d4ed8;
--color-primary-active: #1e40af;
/* Semantic */
--color-success: #16a34a;
--color-warning: #ca8a04;
--color-error: #dc2626;
--color-info: #0891b2;
/* Neutral */
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-300: #d1d5db;
--color-gray-400: #9ca3af;
--color-gray-500: #6b7280;
--color-gray-600: #4b5563;
--color-gray-700: #374151;
--color-gray-800: #1f2937;
--color-gray-900: #111827;
}
クイックスタート: Tailwind のデザイントークン
// tailwind.config.js
module.exports = {
theme: {
extend: {
fontFamily: {
sans: ["Inter", "system-ui", "sans-serif"],
mono: ["JetBrains Mono", "monospace"],
},
fontSize: {
xs: ["0.75rem", { lineHeight: "1rem" }],
sm: ["0.875rem", { lineHeight: "1.25rem" }],
base: ["1rem", { lineHeight: "1.5rem" }],
lg: ["1.125rem", { lineHeight: "1.75rem" }],
xl: ["1.25rem", { lineHeight: "1.75rem" }],
"2xl": ["1.5rem", { lineHeight: "2rem" }],
},
colors: {
brand: {
50: "#eff6ff",
500: "#3b82f6",
600: "#2563eb",
700: "#1d4ed8",
},
},
spacing: {
// Extends default with custom values
18: "4.5rem",
88: "22rem",
},
},
},
};
タイポグラフィベストプラクティス
フォントペアリング
安全な組み合わせ:
- 見出し: Inter / 本文: Inter(単一ファミリー)
- 見出し: Playfair Display / 本文: Source Sans Pro(コントラスト)
- 見出し: Space Grotesk / 本文: IBM Plex Sans(ジオメトリック)
レスポンシブタイポグラフィ
/* clamp()を使用したフルードタイポグラフィ */
h1 {
font-size: clamp(2rem, 5vw + 1rem, 3.5rem);
line-height: 1.1;
}
p {
font-size: clamp(1rem, 2vw + 0.5rem, 1.125rem);
line-height: 1.6;
max-width: 65ch; /* 最適な読む幅 */
}
フォント読み込み
/* レイアウトシフトを防止 */
@font-face {
font-family: "Inter";
src: url("/fonts/Inter.woff2") format("woff2");
font-display: swap;
font-weight: 400 700;
}
カラー理論
コントラスト要件(WCAG)
| 要素 | 最小比率 |
|---|---|
| 本文 | 4.5:1 (AA) |
| 大きなテキスト(18px以上) | 3:1 (AA) |
| UIコンポーネント | 3:1 (AA) |
| 強化版 | 7:1 (AAA) |
ダークモード戦略
:root {
--bg-primary: #ffffff;
--bg-secondary: #f9fafb;
--text-primary: #111827;
--text-secondary: #6b7280;
--border: #e5e7eb;
}
[data-theme="dark"] {
--bg-primary: #111827;
--bg-secondary: #1f2937;
--text-primary: #f9fafb;
--text-secondary: #9ca3af;
--border: #374151;
}
カラーアクセシビリティ
// コントラスト比をプログラムで確認
function getContrastRatio(foreground: string, background: string): number {
const getLuminance = (hex: string) => {
const rgb = hexToRgb(hex);
const [r, g, b] = rgb.map((c) => {
c = c / 255;
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
});
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
};
const l1 = getLuminance(foreground);
const l2 = getLuminance(background);
const lighter = Math.max(l1, l2);
const darker = Math.min(l1, l2);
return (lighter + 0.05) / (darker + 0.05);
}
スペーシングガイドライン
コンポーネントスペーシング
カードパディング: 16-24px (--space-4 to --space-6)
セクションギャップ: 32-64px (--space-8 to --space-16)
フォームフィールドギャップ: 16-24px (--space-4 to --space-6)
ボタンパディング: 上下 8-16px、左右 16-24px
アイコン-テキストギャップ: 8px (--space-2)
ビジュアルリズム
/* 一貫した垂直リズム */
.prose > * + * {
margin-top: var(--space-4);
}
.prose > h2 + * {
margin-top: var(--space-2);
}
.prose > * + h2 {
margin-top: var(--space-8);
}
アイコノグラフィ
アイコンサイジングシステム
:root {
--icon-xs: 12px;
--icon-sm: 16px;
--icon-md: 20px;
--icon-lg: 24px;
--icon-xl: 32px;
}
アイコンコンポーネント
interface IconProps {
name: string;
size?: "xs" | "sm" | "md" | "lg" | "xl";
className?: string;
}
const sizeMap = {
xs: 12,
sm: 16,
md: 20,
lg: 24,
xl: 32,
};
export function Icon({ name, size = "md", className }: IconProps) {
return (
<svg
width={sizeMap[size]}
height={sizeMap[size]}
className={cn("inline-block flex-shrink-0", className)}
aria-hidden="true"
>
<use href={`/icons.svg#${name}`} />
</svg>
);
}
ベストプラクティス
- 制約を確立する: 一貫性を保つために選択肢を制限する
- 決定を文書化する: 生きたスタイルガイドを作成する
- アクセシビリティをテストする: コントラスト、サイズ、タッチターゲットを検証する
- セマンティックトークンを使用する: 外観ではなく目的で名前を付ける
- モバイルファーストで設計する: 制約から始めて複雑さを追加する
- 垂直リズムを維持する: 一貫したスペーシングが調和を作成する
- フォントウェイトを制限する: ファミリーあたり2~3ウェイトで十分
よくある問題
- スペーシングの不一貫性: 定義されたスケールを使用していない
- コントラスト不足: WCAG要件を満たしていない
- フォント過多: ファミリーまたはウェイトが多すぎる
- マジックナンバー: トークンの代わりに任意の値を使用している
- 状態の欠落: ホバー、フォーカス、無効化を忘れている
- ダークモード計画なし: 計画よりも後付けの方が難しい
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- wshobson
- リポジトリ
- wshobson/agents
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/wshobson/agents / ライセンス: MIT
関連スキル
nano-banana-2
inference.sh CLIを通じてGoogle Gemini 3.1 Flash Image Preview(Nano Banana 2)で画像を生成します。テキストから画像を生成する機能、画像編集、最大14枚の複数画像入力、Google Searchグラウンディング機能に対応しています。トリガーワード:「nano banana 2」「nanobanana 2」「gemini 3.1 flash image」「gemini 3 1 flash image preview」「google image generation」
octocode-slides
洗練されたマルチファイル形式のHTMLプレゼンテーションを生成します。6段階のフロー(概要 → リサーチ → アウトライン → デザイン → 実装 → レビュー)で構成されています。各スライドは独立したHTMLファイルとなり、iframeで読み込まれます。「スライドを作成してほしい」「プレゼンテーションを作ってほしい」「HTMLスライドを生成してほしい」「デックを構築してほしい」といった依頼や、ノート・ドキュメント・コードを洗練されたプレゼンテーションに変換する際に使用できます。
gpt-image2-ppt
OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。
nano-banana
Nano Banana PRO(Gemini 3 Pro Image)およびNano Banana(Gemini 2.5 Flash Image)を使用したAI画像生成機能です。以下の場合に活用できます:(1)テキストプロンプトからの画像生成、(2)既存画像の編集、(3)インフォグラフィックス、ロゴ、商品写真、ステッカーなどのプロフェッショナルなビジュアルアセット制作、(4)複数画像での人物キャラクターの一貫性保持、(5)正確なテキスト描画を含む画像生成、(6)AI生成ビジュアルが必要なあらゆるタスク。「画像を生成」「画像を作成」「写真を作る」「ロゴをデザイン」「インフォグラフィックスを作成」「AI画像」「nano banana」またはその他の画像生成リクエストをトリガーとして機能します。
oiloil-ui-ux-guide
モダンでクリーンなUI/UXガイダンス・レビュースキルです。新機能や既存システム(Webアプリ)に対して、実行可能なUI/UX改善提案、デザイン原則、デザインレビューチェックリストが必要な場合に活用できます。CRAP(コントラスト・反復・配置・近接)をベースに、タスクファーストなUX、情報設計、フィードバック・システムステータス、一貫性、affordances、エラー防止・復旧、認知負荷を重視します。モダンミニマルスタイル(クリーン・余白・タイポグラフィ主導)を強制し、不要なテキストを削減、アイコンとしての絵文字を禁止し、統一されたアイコンセットから直感的で洗練されたアイコンを推奨します。
axiom-hig-ref
Apple Human Interface Guidelines リファレンス — 色(セマンティックカラー、カスタムカラー、パターン)、背景(マテリアル階層、ダイナミック背景)、タイポグラフィ(標準スタイル、カスタムフォント、Dynamic Type)、SF Symbols(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。