mcpField
R
replit-ui-skills

replit-ui-skills

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

replit-ui-skills について

replit-ui-skills は、Replit 風のインターフェースを構築する AI エージェント向けの制約集です。色やレイアウトから、操作性、アクセシビリティ、パフォーマンスまでを扱います。

主な機能

  1. 01ライトサーフェスとカラー規則
  2. 02Inter フォントと 4px 間隔グリッド
  3. 03レイアウトと角丸の指針
  4. 04アクセシブルな操作状態の要件
  5. 05アニメーションと性能の制約

活用シーン

  1. 01ライトモードのインターフェース構築
  2. 02Replit 風デザインシステムの作成
  3. 03Inter と 4px グリッドを使った実装

インストール

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

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

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

同梱ファイルmetadata.json

詳細

Replit UI Skills

AI エージェントで Replit スタイルのインターフェースを構築する際の、推奨制約です。

適用する場面

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

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

色

  • プライマリサーフェスには明るい背景を使用することを推奨します
  • ページ背景(surface-base)には #F8F8F8 を必ず使用してください
  • プライマリアクションとフォーカス状態(accent)には #9266E6 を必ず使用してください
  • カラーパレットを減らすことを推奨します(現在、26 色が検出されています)
  • アクセシビリティのため、テキストのコントラスト比を少なくとも 4.5:1 に保ってください
セマンティックトークン
トークンHEXRGB用途
surface-base#F8F8F8rgb(248,248,248)ページ背景
surface-raised#1C4B39rgb(28,75,57)カード、モーダル、浮き上がったサーフェス
surface-overlay#E1EAE7rgb(225,234,231)オーバーレイ、ツールチップ、ドロップダウン
text-primary#769E8Ergb(118,158,142)見出し、本文テキスト
text-secondary#8F9A96rgb(143,154,150)セカンダリテキスト、控えめなテキスト
text-tertiary#BBBFBBrgb(187,191,187)補足テキスト
border-default#EEEEEErgb(238,238,238)控えめな境界線、区切り線
accent#9266E6rgb(146,102,230)プライマリアクション、リンク、フォーカス
destructive#DE4409rgb(222,68,9)エラー状態、削除アクション

タイポグラフィ

  • プライマリフォントファミリーには Inter を必ず使用してください
  • 一貫性を保つため、単一のフォントファミリーを使用することを推奨します
  • プライマリ見出しには 31px / semi_bold を必ず使用してください
  • 本文テキストには 13px / 400 を必ず使用してください
  • フォントウェイトの種類を減らすことを推奨します(現在、4 種類が検出されています)
  • 見出しには text-balance、本文テキストには text-pretty を必ず使用してください
  • 数値データには tabular-nums を使用することを推奨します
  • 明示的に依頼されない限り、文字間隔は絶対に変更しないでください
テキストスタイル
スタイルフォントサイズウェイト色数
heading-1Inter31pxsemi_bold#3D3D3D1
heading-2Inter30px500#434B461
text-22pxInter22px500#5151521
text-18pxInter18px500#3333331
text-15pxInter15px400#A7A7AA1
text-14pxInter14px400#6D6F6E1
text-14pxInter14px300#6163621
text-14pxInter14px400#9091941
text-14pxInter14px300#7A7A7B1
text-14pxInter14px400#7575751
タイポグラフィのリファレンス

フォントファミリー:

  • Inter(64 回使用)

フォントサイズ: 3px、4px、5px、6px、7px、8px、11px、13px、14px、15px、18px、22px、30px、31px

余白

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

境界線

  • 角丸には次のスケールを必ず使用してください:0px、1px、2px、3px、4px、5px、6px、7px、9px、10px、13px、15px、16px、18px、45px
  • ピル型の要素には 45px 以上の角丸を使用することを推奨します
  • 境界線の幅は一貫して 1px を必ず使用してください
  • デフォルトの角丸には 3px を使用することを推奨します
  • 任意の角丸値は絶対に使用しないでください(デザインスケールを使用してください)
  • 要素を区切るには控えめな境界線(1px)を使用することを推奨します
角丸のリファレンス

スケール: 0px、1px、2px、3px、4px、5px、6px、7px、9px、10px、13px、15px、16px、18px、45px

レイアウト

  • 基準のビューポート幅を 1920px として設計してください
  • 要素の幅には 14px、6px、10px、4px、21px を一貫して使用することを推奨します
  • h-screen は絶対に使用せず、ビューポート全体の高さには h-dvh を使用してください
  • 固定要素では safe-area-inset を必ず考慮してください
  • 正方形の要素には w-* と h-* の組み合わせではなく、size-* を使用することを推奨します

コンポーネント

ボタン
バリアント背景テキスト境界線高さ角丸
Ghost透明#769E8Eなし--

インタラクティブ状態

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

コメント