mcpField
C
convex-ui-skills

convex-ui-skills

github.com/ihlamuryデザイン・UI102240 回インストール37 週間前に更新
リポジトリ

convex-ui-skills について

AIエージェント向けのConvex風インターフェース設計ガイドラインです。ダークモードのUIやデザインシステムを構築する際に、色、タイポグラフィ、間隔、レイアウト、操作の制約を示します。

主な機能

  1. 01ダーク背景とセマンティックカラー
  2. 02Interフォントとタイポグラフィ規則
  3. 034pxグリッドの間隔と角丸規則
  4. 04フォーカス、ホバー、無効状態の制約
  5. 05操作、アニメーション、性能の指針

活用シーン

  1. 01Convex風インターフェースの構築
  2. 02AIエージェントへのUI実装指針の提供
  3. 03Interと4pxグリッドを使うデザインシステムの構築

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ihlamury/design-skills --skill convex-ui-skills

インストール後、Claude Code で/convex-ui-skillsを入力して読み込まれたか確認します。

同梱ファイルmetadata.json

詳細

Convex UI Skills

AI エージェントを使って Convex スタイルのインターフェースを構築するための、独自の制約です。

適用する場面

以下の場合に、このガイドラインを参照してください。

  • ダークモードのインターフェースを構築するとき
  • Convex に着想を得たデザインシステムを作成するとき
  • Inter フォントと 4px グリッドを使用した UI を実装するとき

色

  • 主要なサーフェスには、必ず明度が 20 未満の暗い背景を使用してください(検出された明度:6)
  • ページの背景(surface-base)には、必ず #0F0F0F を使用してください
  • 主要なアクションとフォーカス状態(accent)には、必ず #214AE8 を使用してください
  • カラーパレットを絞り込むことを推奨します(現在、31 色を検出)
  • アクセシビリティのため、テキストのコントラスト比を少なくとも 4.5:1 に保ってください
セマンティックトークン
トークンHEXRGB用途
surface-base#0F0F0Frgb(15,15,15)ページの背景
surface-raised#262523rgb(38,37,35)カード、モーダル、浮き上がったサーフェス
surface-overlay#F2EAD3rgb(242,234,211)オーバーレイ、ツールチップ、ドロップダウン
text-primary#676151rgb(103,97,81)見出し、本文テキスト
text-secondary#403D37rgb(64,61,55)セカンダリテキスト、ミュートテキスト
text-tertiary#515151rgb(81,81,81)補足テキスト
border-default#3A3934rgb(58,57,52)控えめな境界線、区切り線
accent#214AE8rgb(33,74,232)主要なアクション、リンク、フォーカス
destructive#4F3727rgb(79,55,39)エラー状態、削除アクション
warning#F2EAD3rgb(242,234,211)警告状態、注意事項

タイポグラフィ

  • プライマリフォントファミリーには、必ず Inter を使用してください
  • 一貫性を保つため、フォントファミリーを 1 つに絞ることを推奨します
  • 主要な見出しには、必ず 40px / semi_bold を使用してください
  • 本文テキストには、必ず 21px / 400 を使用してください
  • フォントウェイトを絞り込むことを推奨します(現在、5 種類を検出)
  • 見出しには必ず text-balance を、本文テキストには必ず text-pretty を使用してください
  • 数値データには tabular-nums を使用することを推奨します
  • 明示的に要求されていない限り、文字間隔は変更しないでください
テキストスタイル
スタイルフォントサイズウェイト色件数
heading-1Inter40pxsemi_bold#DDDDD71
text-31pxInter31px700#403D371
bodyInter21px400#6761511
body-secondaryInter20px700#EBEBE71
text-18pxInter18px400#B4B4AC1
text-18pxInter18px500#CBCBC31
text-15pxInter15px400#5B5B5B1
text-15pxInter15px400#B5B5AD1
text-14pxInter14px500#5B5B5B1
text-14pxInter14px400#5D5D5D1
タイポグラフィの参考情報

フォントファミリー:

  • Inter(95 回使用)

フォントサイズ: 4px、6px、7px、8px、9px、10px、11px、12px、13px、14px、15px、18px、20px、21px、31px、40px

余白

  • 余白には必ず 4px グリッドを使用してください
  • 次のスケールの余白を使用することを推奨します:1px、2px、3px、4px、5px、6px、7px、8px
  • 要素間のデフォルトの間隔には 5px を使用することを推奨します
  • 任意の余白値は使用しないでください(デザインスケールを使用してください)
  • コンテナー内のパディングを一貫させてください

境界線

  • 必ず次のスケールから境界線の角丸を選んでください:1px、3px、4px、6px、7px、10px、13px、15px、18px、21px、50px、54px
  • ピル型の要素には 21px 以上の角丸を使用することを推奨します
  • 境界線の幅は 1px、2px に制限することを推奨します
  • デフォルトの境界線の角丸には 3px を使用することを推奨します
  • 任意の境界線の角丸値は使用しないでください(デザインスケールを使用してください)
  • 要素の区切りには、控えめな境界線(1px)を使用することを推奨します
角丸の参考情報

スケール: 1px、3px、4px、6px、7px、10px、13px、15px、18px、21px、50px、54px

レイアウト

  • 必ずビューポート幅 1920px を基準にデザインしてください
  • 次の要素幅を一貫して使用することを推奨します:12px、7px、8px、2px、24px
  • テキスト量が多いレイアウトを、明確な階層構造とともに維持することを推奨します
  • h-screen は使用せず、ビューポート全体の高さには h-dvh を使用してください
  • 固定要素では必ず safe-area-inset を尊重してください
  • 正方形の要素には w-* と h-* の組み合わせではなく、size-* を使用することを推奨します
検出されたレイアウトパターン
  • メインコンテンツ:幅:1777px、高さ:831px
  • メインコンテンツ:幅:1513px、高さ:852px

コンポーネント

ボタン
バリエーション背景テキスト枠線高さ角丸
ゴースト透明#5C5646なし--

インタラクティブな状態

フォーカス
  • アクセントカラー(#214AE8)の 2px のアウトラインを必ず使用します
  • 2px のアウトラインオフセットを必ず使用します
  • フォーカスインジケーターを削除してはいけません
ホバー
  • ボタン(プライマリ):背景を10%明るくします
  • ボタン(セカンダリ):背景に #262523 を使用します
  • リスト項目:背景に #262523 を使用します
無効状態
  • opacity: 0.5 を必ず使用します
  • cursor: not-allowed を必ず使用します

インタラクション

  • 破壊的な操作や取り消し不可能な操作には、必ず AlertDialog を使用します
  • 読み込み状態には、構造を反映したスケルトンを使用することを推奨します
  • エラーは、操作が発生する場所の近くに必ず表示します
  • input または textarea 要素での貼り付けを妨げてはいけません
  • アイコンのみのボタンには、必ず aria-label を追加します

アニメーション

  • 明示的に求められていない限り、アニメーションを追加してはいけません
  • コンポジターのプロパティ(transform、opacity)のみをアニメーション化します
  • レイアウトプロパティ(width、height、top、left、margin、padding)をアニメーション化してはいけません
  • 入場アニメーションでは ease-out を使用することを推奨します
  • インタラクションのフィードバックは 200ms を超えてはいけません
  • prefers-reduced-motion を尊重することを推奨します

パフォーマンス

  • 大きな blur() または backdrop-filter のサーフェスをアニメーション化してはいけません
  • アニメーションがアクティブな状態でない限り、will-change を適用してはいけません
  • レンダリングロジックで表現できる処理に useEffect を使用してはいけません

コメント