mcpField
M
monzo-ui-skills

monzo-ui-skills

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

monzo-ui-skills について

AI エージェントが Monzo 風のライトなインターフェースを構築するための指針です。カラー、タイポグラフィ、レイアウト、操作性、パフォーマンスの制約を定めています。

主な機能

  1. 01ライトサーフェスとセマンティックカラー
  2. 02Inter フォントとタイポグラフィ規則
  3. 034px グリッドとボーダー指針
  4. 04アクセシビリティと操作要件
  5. 05アニメーションと性能の制約

活用シーン

  1. 01Monzo 風のライト UI の構築
  2. 02AI エージェント向けの一貫した UI 実装制約

インストール

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

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

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

同梱ファイルmetadata.json

詳細

Monzo の UI スキル

AI エージェントを使用して Monzo スタイルのインターフェースを構築する際の、独自の制約です。

適用する場面

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

  • ライトモードのインターフェースを構築するとき
  • Monzo を参考にしたデザインシステムを作成するとき
  • Inter フォントと 4px グリッドを使用して UI を実装するとき

色

  • 主要なサーフェスには明るい背景を使用することを推奨します
  • ページの背景には #FFFFFF(surface-base)を使用する必要があります
  • カラーパレットを絞ることを推奨します(現在、15 色が検出されています)
  • アクセシビリティのため、テキストのコントラスト比を 4.5:1 以上に維持する必要があります
セマンティックトークン
トークンHEXRGB用途
surface-base#FFFFFFrgb(255,255,255)ページの背景
surface-raised#C1C5C8rgb(193,197,200)カード、モーダル、持ち上げたサーフェス
surface-overlay#DEDEDErgb(222,222,222)オーバーレイ、ツールチップ、ドロップダウン
text-primary#606366rgb(96,99,102)見出し、本文テキスト
text-2#494D50rgb(73,77,80)追加のテキスト
text-secondary#BEC4C7rgb(190,196,199)補助テキスト、控えめなテキスト
border-default#8A8D8Frgb(138,141,143)控えめな境界線、区切り線
destructive#ED4948rgb(237,73,72)エラー状態、削除アクション

タイポグラフィ

  • プライマリフォントファミリーには Inter を使用する必要があります
  • 一貫性を保つため、フォントファミリーは 1 つにすることを推奨します
  • 主要な見出しには 48px / 700 を使用する必要があります
  • 本文テキストには 21px / extra_bold を使用する必要があります
  • フォントウェイトを絞ることを推奨します(現在、5 種類が検出されています)
  • 見出しには text-balance、本文テキストには text-pretty を使用する必要があります
  • 数値データには tabular-nums を使用することを推奨します
  • 明示的に要求されない限り、letter-spacing を変更してはいけません
テキストスタイル
スタイルフォントサイズウェイト色数
heading-1Inter48px700#F0F1EE1
bodyInter21pxextra_bold#ED49481
body-secondaryInter19px300#723C7E1
text-17pxInter17pxsemi_bold#3737371
text-16pxInter16px400#9EA0A21
text-15pxInter15px400#6063661
text-15pxInter15px400#494D501
text-15pxInter15px400#BEC4C71
text-15pxInter15px400#C4C6BC1
text-13pxInter13px400#4D4D4D1
タイポグラフィの参考情報

フォントファミリー:

  • Inter(16 回使用)

フォントサイズ: 8px、9px、11px、12px、13px、15px、16px、17px、19px、21px、48px

余白

  • 余白には 4px グリッドを使用する必要があります
  • 次のスケールの余白を使用することを推奨します:2px、4px、5px、6px、9px、11px、20px、54px
  • 要素間のデフォルトのギャップには 5px を使用することを推奨します
  • 任意の余白値を使用してはいけません(デザインスケールを使用してください)
  • コンテナ内のパディングを一貫して維持することを推奨します

境界線

  • 次のスケールの border-radius を使用する必要があります:3px、4px、6px、16px、25px
  • ピル型の要素には 25px 以上の radius を使用することを推奨します
  • 境界線の幅は一貫して 1px にする必要があります
  • デフォルトの border-radius には 16px を使用することを推奨します
  • 任意の border-radius 値を使用してはいけません(デザインスケールを使用してください)
  • 要素を区切るには、控えめな境界線(1px)を使用することを推奨します
Border Radius の参考情報

スケール: 3px、4px、6px、16px、25px

レイアウト

  • 基準のビューポート幅を 1920px として設計する必要があります
  • 要素の幅を一貫させることを推奨します:12px、116px、43px、60px、299px
  • 明確な階層を持つ、テキスト中心のレイアウトを維持することを推奨します
  • h-screen は使用せず、ビューポート全体の高さには h-dvh を使用してください
  • 固定要素では safe-area-inset を考慮する必要があります
  • 正方形の要素には w-* と h-* の代わりに size-* を使用することを推奨します
検出されたレイアウトパターン
  • メインコンテンツ:幅:1470px、高さ:870px
  • メインコンテンツ:幅:1455px、高さ:762px
  • ヘッダー:高さ:82px

コンポーネント

ボタン
バリアント背景テキスト境界線高さ角丸
Ghosttransparent#494D50none--

インタラクティブな状態

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

コメント