mcpField
O
openai-ui-skills

openai-ui-skills

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

openai-ui-skills について

AI エージェントで OpenAI 風の画面を構築するための設計ガイドです。配色、タイポグラフィ、レイアウト、操作の制約を定め、Inter を使うライトモード設計を対象としています。

主な機能

  1. 01OpenAI風画面の設計ガイド
  2. 02セマンティックカラーのトークン
  3. 03Interのタイポグラフィ規則
  4. 044pxグリッドとレイアウト制約
  5. 05アクセシビリティと操作の指針

活用シーン

  1. 01OpenAI風デザインシステムの構築
  2. 02ライトモード画面のスタイル設定
  3. 03UI実装時のAIエージェントへの指針

インストール

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

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

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

同梱ファイルmetadata.json

詳細

OpenAI UI Skills

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

適用する場面

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

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

色

  • プライマリサーフェスには明るい背景を使用することを推奨します
  • ページの背景(surface-base)には #FFFFFF を使用する必要があります
  • カラーパレットは 8 色以内に抑えることを推奨します
  • アクセシビリティのため、テキストのコントラスト比を少なくとも 4.5:1 に保つ必要があります
セマンティックトークン
トークンHEXRGB用途
surface-base#FFFFFFrgb(255,255,255)ページの背景
text-primary#525252rgb(82,82,82)見出し、本文テキスト
text-secondary#747474rgb(116,116,116)セカンダリ、控えめなテキスト
text-tertiary#8A8A8Argb(138,138,138)補足テキスト
border-default#C9C0BBrgb(201,192,187)控えめな境界線、区切り線

タイポグラフィ

  • プライマリフォントファミリーとして Inter を使用する必要があります
  • 一貫性を保つため、単一のフォントファミリーを使用することを推奨します
  • プライマリ見出しには 24px / semi_bold を使用する必要があります
  • 本文テキストには 14px / 400 を使用する必要があります
  • フォントウェイトは regular、semi_bold、light に限定する必要があります
  • 見出しには text-balance、本文テキストには text-pretty を使用する必要があります
  • 数値データには tabular-nums を使用することを推奨します
  • 明示的な指示がない限り、文字間隔を変更しないでください
テキストスタイル
スタイルフォントサイズウェイト色数
heading-1Inter24pxsemi_bold#2121211
heading-2Inter24pxsemi_bold#2222221
bodyInter14px400#8F8F8F1
body-secondaryInter13px400#5252522
body-secondaryInter13px400#5B5B5B1
body-secondaryInter13px400#5656561
body-secondaryInter11px400#8A8A8A1
body-secondaryInter11px400#8D8D8D1
text-10pxInter10px400#5C5C5C2
text-10pxInter10px400#5757572
タイポグラフィのリファレンス

フォントファミリー:

  • Inter(19 回使用)

フォントサイズ: 7px、10px、11px、13px、14px、24px

余白

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

境界線

  • スケールから 16px、18px、19px、22px の境界線の角丸を使用する必要があります
  • ピル形状の要素には 22px 以上の角丸を使用することを推奨します
  • 境界線の幅は一貫して 1px を使用する必要があります
  • デフォルトの境界線の角丸には 19px を使用することを推奨します
  • 任意の境界線の角丸値を使用しないでください(デザインスケールを使用してください)
  • 要素を区切るには控えめな境界線(1px)を使用することを推奨します
境界線の角丸リファレンス

スケール: 16px、18px、19px、22px

レイアウト

  • 基準ビューポート幅 1920px 向けにデザインする必要があります
  • サイドバーの幅には 202px を使用することを推奨します
  • 要素の幅は 8px、21px、14px、61px、36px で統一することを推奨します
  • 明確な階層を備えた、テキスト主体のレイアウトを保つことを推奨します
  • h-screen は使用せず、ビューポート全体の高さには h-dvh を使用してください
  • 固定要素では safe-area-inset を尊重する必要があります
  • 正方形の要素には w-* と h-* の組み合わせではなく、size-* を使用することを推奨します
検出されたレイアウトパターン
  • サイドバー:幅:202px、位置:左

コンポーネント

  • 入力フィールドの高さには 0px を使用する必要があります
ボタン
バリエーション背景テキスト境界線高さ角丸
ゴースト透明#8A8A8Aなし--
入力
  • 高さ:0px

インタラクティブ状態

フォーカス
  • アクセントカラー(#5E6AD2)を使った 2px のアウトラインを使用する必要があります
  • 2px のアウトラインオフセットを使用する必要があります
  • フォーカスインジケーターを削除しないでください
ホバー
  • ボタン(プライマリ):背景を 10% 明るくします
  • ボタン(セカンダリ):surface-raised 背景を使用します
  • リスト項目:surface-raised 背景を使用します
無効状態
  • 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 を決して使用しません

コメント