Awesome-omni-skill ui-designer
UI/UX デザインインテリジェンス。Webアプリの画面構成、レイアウト、コンポーネント、スタイル方針をまとめる。50以上のスタイル、97カラーパレット、57フォントペアリング、99 UXガイドライン、25チャートタイプ、9テクノロジースタック対応の検索可能なデザインデータベース付き。
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/design/ui-designer-ynitto" ~/.claude/skills/diegosouzapw-awesome-omni-skill-ui-designer-d28c00 && rm -rf "$T"
skills/design/ui-designer-ynitto/SKILL.mdui-designer
Webアプリ・モバイルアプリ向けの包括的デザインガイド。50以上のスタイル、97カラーパレット、57フォントペアリング、99 UXガイドライン、25チャートタイプを9テクノロジースタックにわたって網羅。優先度ベースの推奨を備えた検索可能なデータベース。
適用タイミング
以下の場面でこのガイドラインを参照する:
- 新しいUIコンポーネントやページを設計するとき
- カラーパレットやタイポグラフィを選定するとき
- コードのUX問題をレビューするとき
- ランディングページやダッシュボードを構築するとき
- アクセシビリティ要件を実装するとき
ルールカテゴリ(優先度順)
| 優先度 | カテゴリ | 影響度 | ドメイン |
|---|---|---|---|
| 1 | アクセシビリティ | 最重要 | |
| 2 | タッチ&インタラクション | 最重要 | |
| 3 | パフォーマンス | 高 | |
| 4 | レイアウト&レスポンシブ | 高 | |
| 5 | タイポグラフィ&カラー | 中 | , |
| 6 | アニメーション | 中 | |
| 7 | スタイル選定 | 中 | , |
| 8 | チャート&データ | 低 | |
クイックリファレンス
1. アクセシビリティ(最重要)
- 通常テキストで最低4.5:1のコントラスト比color-contrast
- インタラクティブ要素に可視フォーカスリングfocus-states
- 意味のある画像に説明的なaltテキストalt-text
- アイコンのみのボタンにaria-labelaria-labels
- タブ順序がビジュアル順序と一致keyboard-nav
- for属性付きlabelを使用form-labels
2. タッチ&インタラクション(最重要)
- 最小44x44pxのタッチターゲットtouch-target-size
- メインの操作にはclick/tapを使用hover-vs-tap
- 非同期操作中はボタンを無効化loading-buttons
- 問題箇所の近くに明確なエラーメッセージerror-feedback
- クリック可能な要素にcursor-pointerを追加cursor-pointer
3. パフォーマンス(高)
- WebP、srcset、遅延読み込みを使用image-optimization
- prefers-reduced-motionを確認reduced-motion
- 非同期コンテンツ用のスペースを確保content-jumping
4. レイアウト&レスポンシブ(高)
- width=device-width initial-scale=1viewport-meta
- モバイルで最小16pxの本文テキストreadable-font-size
- コンテンツがビューポート幅に収まることhorizontal-scroll
- z-indexスケールを定義(10, 20, 30, 50)z-index-management
5. タイポグラフィ&カラー(中)
- 本文テキストに1.5〜1.75を使用line-height
- 1行あたり65〜75文字に制限line-length
- 見出しと本文のフォントの個性を合わせるfont-pairing
6. アニメーション(中)
- マイクロインタラクションに150〜300msを使用duration-timing
- width/heightではなくtransform/opacityを使用transform-performance
- スケルトンスクリーンまたはスピナーloading-states
7. スタイル選定(中)
- プロダクトタイプに合ったスタイルを選ぶstyle-match
- 全ページで同じスタイルを使用consistency
- 絵文字ではなくSVGアイコンを使用no-emoji-icons
8. チャート&データ(低)
- データタイプに合ったチャートを選ぶchart-type
- アクセシブルなカラーパレットを使用color-guidance
- アクセシビリティのためにテーブル代替を提供data-table
使い方
以下のCLIツールを使って特定のドメインを検索する。
前提条件
Pythonがインストールされているか確認:
python3 --version || python --version
インストールされていない場合、OSに応じてインストール:
macOS:
brew install python3
Ubuntu/Debian:
sudo apt update && sudo apt install python3
Windows:
winget install Python.Python.3.12
このスキルの使い方
ユーザーがUI/UX関連の作業(design、build、create、implement、review、fix、improve)を依頼した場合、以下のワークフローに従う:
Step 1: ユーザー要件を分析する
ユーザーのリクエストからキー情報を抽出:
- プロダクトタイプ: SaaS、EC、ポートフォリオ、ダッシュボード、ランディングページなど
- スタイルキーワード: ミニマル、ポップ、プロフェッショナル、エレガント、ダークモードなど
- 業界: ヘルスケア、フィンテック、ゲーム、教育など
- スタック: React、Vue、Next.jsなど、指定がなければ
をデフォルトhtml-tailwind
Step 2: デザインシステムを生成する(必須)
まず
で包括的な推奨を取得:--design-system
python3 skills/ui-designer/scripts/search.py "<プロダクトタイプ> <業界> <キーワード>" --design-system [-p "プロジェクト名"]
このコマンドは:
- 5つのドメインを並列検索(product、style、color、landing、typography)
のルールを適用して最適なマッチを選定ui-reasoning.csv- 完全なデザインシステムを返却: パターン、スタイル、カラー、タイポグラフィ、エフェクト
- アンチパターンも含む
例:
python3 skills/ui-designer/scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
Step 2b: デザインシステムの永続化(マスター+オーバーライドパターン)
デザインシステムをセッション横断で階層的に参照するために
--persist を追加:
python3 skills/ui-designer/scripts/search.py "<クエリ>" --design-system --persist -p "プロジェクト名"
作成されるファイル:
— グローバルなデザインルールの真のソースdesign-system/MASTER.md
— ページ固有のオーバーライド用フォルダdesign-system/pages/
ページ固有のオーバーライド付き:
python3 skills/ui-designer/scripts/search.py "<クエリ>" --design-system --persist -p "プロジェクト名" --page "dashboard"
追加で作成:
— マスターからの逸脱ルールdesign-system/pages/dashboard.md
階層的参照の仕組み:
- 特定ページ(例: 「Checkout」)構築時、まず
を確認design-system/pages/checkout.md - ページファイルが存在すればマスターファイルをオーバーライド
- 存在しなければ
のみを使用design-system/MASTER.md
コンテキスト対応の参照プロンプト:
[ページ名] ページを構築中です。design-system/MASTER.md を読んでください。 また design-system/pages/[page-name].md が存在するか確認してください。 ページファイルが存在すれば、そのルールを優先してください。 存在しなければ、マスタールールのみを使用してください。 では、コードを生成してください...
Step 3: 詳細検索で補完する(必要に応じて)
デザインシステム取得後、ドメイン検索で詳細を補完:
python3 skills/ui-designer/scripts/search.py "<キーワード>" --domain <ドメイン> [-n <最大結果数>]
詳細検索が必要な場面:
| ニーズ | ドメイン | 例 |
|---|---|---|
| スタイルの追加候補 | | |
| チャートの推奨 | | |
| UXベストプラクティス | | |
| フォントの代替案 | | |
| ランディング構成 | | |
Step 4: スタック別ガイドライン(デフォルト: html-tailwind)
スタック固有のベストプラクティスを取得。ユーザーが指定しない場合は
をデフォルトに:html-tailwind
python3 skills/ui-designer/scripts/search.py "<キーワード>" --stack html-tailwind
利用可能なスタック:
html-tailwind, react, nextjs, vue, svelte, swiftui, react-native, flutter, shadcn, jetpack-compose
検索リファレンス
利用可能なドメイン
| ドメイン | 用途 | キーワード例 |
|---|---|---|
| プロダクトタイプ別推奨 | SaaS, e-commerce, portfolio, healthcare, beauty, service |
| UIスタイル、カラー、エフェクト | glassmorphism, minimalism, dark mode, brutalism |
| フォントペアリング、Google Fonts | elegant, playful, professional, modern |
| プロダクトタイプ別カラーパレット | saas, ecommerce, healthcare, beauty, fintech, service |
| ページ構成、CTA戦略 | hero, hero-centric, testimonial, pricing, social-proof |
| チャートタイプ、ライブラリ推奨 | trend, comparison, timeline, funnel, pie |
| ベストプラクティス、アンチパターン | animation, accessibility, z-index, loading |
| React/Next.jsパフォーマンス | waterfall, bundle, suspense, memo, rerender, cache |
| Webインターフェースガイドライン | aria, focus, keyboard, semantic, virtualize |
| AIプロンプト、CSSキーワード | (スタイル名) |
利用可能なスタック
| スタック | フォーカス |
|---|---|
| Tailwindユーティリティ、レスポンシブ、a11y(デフォルト) |
| State、hooks、パフォーマンス、パターン |
| SSR、ルーティング、画像、APIルート |
| Composition API、Pinia、Vue Router |
| Runes、stores、SvelteKit |
| Views、State、Navigation、Animation |
| Components、Navigation、Lists |
| Widgets、State、Layout、Theming |
| shadcn/uiコンポーネント、テーマ、フォーム、パターン |
| Composables、Modifiers、State Hoisting、Recomposition |
ワークフロー例
ユーザーリクエスト: 「美容サロンのランディングページを作って」
Step 1: 要件分析
- プロダクトタイプ: 美容/スパサービス
- スタイルキーワード: エレガント、プロフェッショナル、ソフト
- 業界: 美容/ウェルネス
- スタック: html-tailwind(デフォルト)
Step 2: デザインシステム生成(必須)
python3 skills/ui-designer/scripts/search.py "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
出力: パターン、スタイル、カラー、タイポグラフィ、エフェクト、アンチパターンを含む完全なデザインシステム。
Step 3: 詳細検索で補完(必要に応じて)
# アニメーションとアクセシビリティのUXガイドラインを取得 python3 skills/ui-designer/scripts/search.py "animation accessibility" --domain ux # 必要に応じて代替タイポグラフィを取得 python3 skills/ui-designer/scripts/search.py "elegant luxury serif" --domain typography
Step 4: スタック別ガイドライン
python3 skills/ui-designer/scripts/search.py "layout responsive form" --stack html-tailwind
その後: デザインシステム + 詳細検索結果を統合してデザインを実装する。
出力フォーマット
--design-system フラグは2つの出力形式をサポート:
# ASCIIボックス(デフォルト)- ターミナル表示に最適 python3 skills/ui-designer/scripts/search.py "fintech crypto" --design-system # Markdown - ドキュメント化に最適 python3 skills/ui-designer/scripts/search.py "fintech crypto" --design-system -f markdown
検索のコツ
- キーワードは具体的に — 「app」より「healthcare SaaS dashboard」
- 複数回検索 — 異なるキーワードで異なるインサイトが得られる
- ドメインを組み合わせる — Style + Typography + Color = 完全なデザインシステム
- 常にUXを確認 — 「animation」「z-index」「accessibility」で頻出問題をチェック
- stackフラグを使う — スタック固有のベストプラクティスを取得
- 反復する — 最初の検索がマッチしなければ別のキーワードを試す
プロフェッショナルUIのための共通ルール
UIがアマチュアに見える原因となる、見落としがちな問題:
アイコン&ビジュアル要素
| ルール | やるべき | やってはいけない |
|---|---|---|
| 絵文字アイコン禁止 | SVGアイコンを使用(Heroicons、Lucide、Simple Icons) | UIアイコンとして絵文字を使用 |
| 安定したホバー状態 | hover時にcolor/opacityトランジション | レイアウトがずれるscaleトランスフォーム |
| 正確なブランドロゴ | Simple Iconsから公式SVGを調査 | ロゴパスを推測したり不正確なものを使用 |
| 一貫したアイコンサイズ | viewBox(24x24)固定でw-6 h-6を使用 | アイコンサイズをランダムに混在 |
インタラクション&カーソル
| ルール | やるべき | やってはいけない |
|---|---|---|
| カーソルポインター | クリック/ホバー可能なカードに 追加 | インタラクティブ要素でデフォルトカーソルのまま |
| ホバーフィードバック | ビジュアルフィードバック(色、影、ボーダー)を提供 | 要素がインタラクティブだと分からない状態 |
| スムーズなトランジション | を使用 | 即時切り替えや500ms超の遅すぎるトランジション |
ライト/ダークモードのコントラスト
| ルール | やるべき | やってはいけない |
|---|---|---|
| ライトモードのglassカード | 以上の不透明度を使用 | (透明すぎる)を使用 |
| ライトモードのテキストコントラスト | テキストに (slate-900)を使用 | 本文に (slate-400)を使用 |
| ミュートテキスト(ライト) | 最低 (slate-600)を使用 | gray-400以下を使用 |
| ボーダーの可視性 | ライトモードで を使用 | (見えない)を使用 |
レイアウト&スペーシング
| ルール | やるべき | やってはいけない |
|---|---|---|
| フローティングナビバー | のスペーシング追加 | にナビバーを固定 |
| コンテンツパディング | 固定ナビバーの高さを考慮 | 固定要素の後ろにコンテンツが隠れる |
| 一貫したmax-width | 同じ か を使用 | コンテナ幅をバラバラに混在 |
納品前チェックリスト
UIコードを納品する前に以下を確認:
ビジュアル品質
- アイコンに絵文字を使用していない(SVGを使用)
- 全アイコンが統一されたアイコンセット(Heroicons/Lucide)から
- ブランドロゴが正確(Simple Iconsで検証済み)
- ホバー状態でレイアウトシフトが発生しない
- テーマカラーを直接使用(bg-primary)、var()ラッパーではない
インタラクション
- クリック可能な全要素に
cursor-pointer - ホバー状態で明確なビジュアルフィードバック
- トランジションがスムーズ(150〜300ms)
- キーボードナビゲーション用のフォーカス状態が可視
ライト/ダークモード
- ライトモードのテキストが十分なコントラスト(最低4.5:1)
- Glass/透明要素がライトモードで可視
- ボーダーが両モードで可視
- 両モードでテスト済み
レイアウト
- フローティング要素がエッジから適切なスペーシング
- 固定ナビバーの後ろにコンテンツが隠れていない
- 375px、768px、1024px、1440pxでレスポンシブ
- モバイルで水平スクロールなし
アクセシビリティ
- 全画像にaltテキスト
- フォーム入力にラベル
- 色だけで情報を伝えていない
-
を尊重prefers-reduced-motion