mcpField
L
lemonsqueezy-ui-skills

lemonsqueezy-ui-skills

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

lemonsqueezy-ui-skills について

lemonsqueezy-ui-skillsは、AIエージェントがLemonsqueezy風のインターフェースを構築する際の設計制約です。ライトモードの視覚規則と実装指針をまとめています。

主な機能

  1. 01ライトモードのカラートークン
  2. 02Interのタイポグラフィ規則
  3. 034px間隔グリッド
  4. 04境界線とレイアウトの尺度
  5. 05アクセシビリティと操作規則
  6. 06アニメーションと性能の制限

活用シーン

  1. 01Lemonsqueezy風デザインシステムの構築
  2. 02AIエージェントによるライトモード画面の作成

インストール

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

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

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

同梱ファイルmetadata.json

詳細

Lemonsqueezy UI スキル

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

適用する場面

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

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

色

  • 主要なサーフェスには明るい背景を使用することを推奨します
  • ページの背景(surface-base)には #FEFEFE を使用してください
  • 主要なアクションとフォーカス状態(accent)には #9368E3 を使用してください
  • カラーパレットを絞ることを推奨します(現在、12 色が検出されています)
  • アクセシビリティのため、テキストのコントラスト比を少なくとも 4.5:1 に維持してください
セマンティックトークン
トークンHEXRGB用途
surface-base#FEFEFErgb(254,254,254)ページの背景
surface-raised#3F01DFrgb(63,1,223)カード、モーダル、浮き上がったサーフェス
text-primary#D0B4F4rgb(208,180,244)見出し、本文テキスト
text-2#4F4F50rgb(79,79,80)補足テキスト
text-secondary#8550F5rgb(133,80,245)セカンダリテキスト、控えめなテキスト
border-default#9368E3rgb(147,104,227)控えめな境界線、区切り線
accent#9368E3rgb(147,104,227)主要なアクション、リンク、フォーカス
warning#FCD995rgb(252,217,149)警告状態、注意事項

タイポグラフィ

  • 主要なフォントファミリーには Inter を使用してください
  • 一貫性を保つため、単一のフォントファミリーを使用することを推奨します
  • 主要な見出しには 74px / 700 を使用してください
  • 本文テキストには 31px / semi_bold を使用してください
  • フォントのウェイトを絞ることを推奨します(現在、4 種類が検出されています)
  • 見出しには text-balance、本文テキストには text-pretty を使用してください
  • 数値データには tabular-nums を使用することを推奨します
  • 明示的に依頼されない限り、文字間隔を変更しないでください
テキストスタイル
スタイルフォントサイズウェイト色数
heading-1Inter74px700#F1E8F91
bodyInter31pxsemi_bold#E2D2F81
text-25pxInter25pxsemi_bold#E0CDF61
text-25pxInter25pxsemi_bold#E2D1F81
text-25pxInter25pxsemi_bold#DAC6F61
text-22pxInter22px500#D0B4F41
text-18pxInter18px400#8A59F21
text-15pxInter15px400#8A56F51
text-15pxInter15px400#8955F51
text-15pxInter15px400#794D141
タイポグラフィの参考情報

フォントファミリー:

  • Inter(18 回使用)

フォントサイズ: 11px、12px、13px、14px、15px、18px、22px、25px、31px、74px

余白

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

境界線

  • 次のスケールから border-radius を使用してください:17px、21px、29px
  • ピル型の要素には 21px 以上の半径を使用することを推奨します
  • 境界線の幅は 1px、2px に制限することを推奨します
  • デフォルトの border-radius には 29px を使用することを推奨します
  • 任意の border-radius 値は使用しないでください(デザインスケールを使用してください)
  • 要素を区切るには、控えめな境界線(1px)を使用することを推奨します
Border Radius の参考情報

スケール: 17px、21px、29px

レイアウト

  • 基準のビューポート幅を 1920px としてデザインしてください
  • 要素の幅を一貫させることを推奨します:30px、12px、145px、88px、8px
  • 明確な階層を持つ、テキスト主体のレイアウトを維持することを推奨します
  • h-screen は使用せず、ビューポート全体の高さには h-dvh を使用してください
  • 固定要素では safe-area-inset を考慮してください
  • 正方形の要素には w-* と h-* の組み合わせではなく、size-* を使用することを推奨します
検出されたレイアウトパターン
  • メインコンテンツ:幅:1920px、高さ:1002px
  • メインコンテンツ:幅:1920px、高さ:998px
  • ヘッダー:高さ:69px

コンポーネント

ボタン
バリエーション背景テキスト境界線高さ半径
ゴースト透明#D0B4F4なし--

インタラクティブ状態

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

コメント