mcpField
U
upstash-ui-skills

upstash-ui-skills

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

upstash-ui-skills について

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

主な機能

  1. 01Upstash風のデザイン制約
  2. 02色とセマンティックトークンの指針
  3. 03Interのタイポグラフィ規則
  4. 044px間隔グリッド
  5. 05操作状態とアクセシビリティ要件

活用シーン

  1. 01Upstash風インターフェースの構築
  2. 02AIエージェントへのUI実装指針の提供

インストール

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

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

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

同梱ファイルmetadata.json

詳細

Upstash UI スキル

AI エージェントで Upstash スタイルのインターフェースを構築するための、推奨事項を定めた制約です。

適用するタイミング

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

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

色

  • 主要なサーフェスには明るい背景を使用することを推奨します
  • ページの背景(surface-base)には #000000 を使用する必要があります
  • 主要なアクションとフォーカス状態(accent)には #15B169 を使用する必要があります
  • カラーパレットを絞ることを推奨します(現在、21 色が検出されています)
  • アクセシビリティのため、テキストのコントラスト比を少なくとも 4.5:1 に保つ必要があります
セマンティックトークン
トークンHEXRGB用途
surface-base#000000rgb(0,0,0)ページの背景
surface-raised#F2F2F2rgb(242,242,242)カード、モーダル、浮き上がったサーフェス
surface-overlay#15B169rgb(21,177,105)オーバーレイ、ツールチップ、ドロップダウン
text-primary#7E7D82rgb(126,125,130)見出し、本文テキスト
text-secondary#F7E89Frgb(247,232,159)セカンダリテキスト、控えめなテキスト
text-tertiary#C04351rgb(192,67,81)補足テキスト
border-default#E6E8E7rgb(230,232,231)控えめな境界線、区切り線
accent#15B169rgb(21,177,105)主要なアクション、リンク、フォーカス
destructive#C04351rgb(192,67,81)エラー状態、削除アクション
success#3FA25Drgb(63,162,93)成功状態、確認
warning#F7E89Frgb(247,232,159)警告状態、注意

タイポグラフィ

  • プライマリフォントファミリーには Inter を使用する必要があります
  • 一貫性を保つため、単一のフォントファミリーを使用することを推奨します
  • 主要な見出しには 100px / 700 を使用する必要があります
  • 本文テキストには 25px / 400 を使用する必要があります
  • フォントのウェイトを絞ることを推奨します(現在、5 種類が検出されています)
  • 見出しには text-balance、本文テキストには text-pretty を使用する必要があります
  • 数値データには tabular-nums を使用することを推奨します
  • 明示的に要求されない限り、letter-spacing を変更しないでください
テキストスタイル
スタイルフォントサイズウェイト色件数
heading-1Inter100px700#3FA25D1
heading-2Inter96px700#3CA6621
bodyInter25px400#7A86861
body-secondaryInter24pxsemi_bold#3144401
body-secondaryInter23px500#2B3F3A1
body-secondaryInter23px500#2D423D1
body-secondaryInter23px500#4871631
text-19pxInter19px500#8180851
text-18pxInter18px500#7B7A7F1
text-18pxInter18pxsemi_bold#C043511
タイポグラフィの参考情報

フォントファミリー:

  • Inter(38 回使用)

フォントサイズ: 10px、11px、12px、13px、14px、15px、16px、17px、18px、19px、23px、24px、25px、96px、100px

間隔

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

境界線

  • 角丸には次のスケールを使用する必要があります:6px、9px、10px、12px、13px、15px、16px
  • 境界線の幅は 1px、2px に絞ることを推奨します
  • デフォルトの角丸には 15px を使用することを推奨します
  • 任意の角丸値は使用しないでください(デザインスケールを使用してください)
  • 要素の区切りには控えめな境界線(1px)を使用することを推奨します
角丸の参考情報

スケール: 6px、9px、10px、12px、13px、15px、16px

レイアウト

  • 基準のビューポート幅を 1920px として設計する必要があります
  • 要素の幅を次の値に統一することを推奨します:20px、24px、18px、172px、199px
  • 明確な階層を持つ、テキスト主体のレイアウトを維持することを推奨します
  • h-screen は使用せず、ビューポート全体の高さには h-dvh を使用してください
  • 固定要素では safe-area-inset を考慮する必要があります
  • 正方形の要素には w-* と h-* の組み合わせではなく、size-* を使用することを推奨します
検出されたレイアウトパターン
  • メインコンテンツ:幅:1920px、高さ:1038px
  • ヘッダー:高さ:43px
  • メインコンテンツ:幅:1855px、高さ:1080px
  • メインコンテンツ:幅:1920px、高さ:598px

コンポーネント

  • 入力フィールドの高さには、必ず 0px を使用してください。
ボタン
バリエーション背景テキスト枠線高さ角丸
ゴースト透明#7E7D82なし--
入力
  • 高さ:0px

インタラクティブな状態

フォーカス
  • 必ずアクセントカラー(#15B169)の 2px のアウトラインを使用してください。
  • 必ず 2px のアウトラインオフセットを使用してください。
  • フォーカスインジケーターを削除しないでください。
ホバー
  • ボタン(プライマリ):背景を10%明るくしてください。
  • ボタン(セカンダリ):背景に #F2F2F2 を使用してください。
  • リスト項目:背景に #F2F2F2 を使用してください。
無効状態
  • 必ず 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 を使用しないでください。

コメント