mcpField
O
obsidian-ui-skills

obsidian-ui-skills

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

obsidian-ui-skills について

obsidian-ui-skillsは、AIエージェントがObsidian風のインターフェースを構築するための設計制約です。ダークモードの視覚トークンとUIの実装指針を示します。

主な機能

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

活用シーン

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

インストール

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

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

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

同梱ファイルmetadata.json

詳細

Obsidian UI スキル

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

適用するタイミング

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

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

色

  • 主要なサーフェスには、暗い背景(明度 < 20)を必ず使用してください(検出された明度:0)
  • ページの背景(surface-base)には、必ず #000000 を使用してください
  • 主要なアクションとフォーカス状態(accent)には、必ず #6930C7 を使用してください
  • カラーパレットを減らすことを推奨します(現在 24 色が検出されています)
  • アクセシビリティのため、テキストのコントラスト比を 4.5:1 以上に保つ必要があります
セマンティックトークン
トークンHEXRGB用途
surface-base#000000rgb(0,0,0)ページの背景
surface-raised#FEFEFDrgb(254,254,253)カード、モーダル、浮き上がったサーフェス
surface-overlay#151027rgb(21,16,39)オーバーレイ、ツールチップ、ドロップダウン
text-primary#858585rgb(133,133,133)見出し、本文テキスト
text-secondary#3A2F66rgb(58,47,102)セカンダリ、控えめなテキスト
text-tertiary#555555rgb(85,85,85)追加のテキスト
border-default#2F2F2Frgb(47,47,47)控えめな境界線、区切り線
warning#FEFEFDrgb(254,254,253)警告状態、注意
accent#6930C7rgb(105,48,199)主要なアクション、リンク、フォーカス

タイポグラフィ

  • 基本フォントファミリーには、必ず Inter を使用してください
  • 一貫性を保つため、単一のフォントファミリーを使用することを推奨します
  • 主要な見出しには、必ず 78px / 700 を使用してください
  • 本文テキストには、必ず 14px / 400 を使用してください
  • フォントウェイトを減らすことを推奨します(現在 5 種類が検出されています)
  • 見出しには text-balance、本文テキストには text-pretty を必ず使用してください
  • 数値データには tabular-nums を使用することを推奨します
  • 明示的に要求されない限り、letter-spacing は変更しないでください
テキストスタイル
スタイルフォントサイズウェイト色数
heading-1Inter78px700#CDCDCD1
text-41pxInter41px500#8D8D8D1
text-24pxInter24pxsemi_bold#3939391
text-20pxInter20px400#695C941
text-19pxInter19px500#9393931
text-19pxInter19px400#DDB5F81
text-16pxInter16px500#6666661
text-16pxInter16pxsemi_bold#B8B8B81
bodyInter14px400#7070701
body-secondaryInter14px400#7474741
タイポグラフィのリファレンス

フォントファミリー:

  • Inter(71 回使用)

フォントサイズ: 7px, 8px, 9px, 10px, 11px, 12px, 13px, 14px, 16px, 19px, 20px, 24px, 41px, 78px

余白

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

境界線

  • 角丸には必ず次のスケールを使用してください:3px, 4px, 5px, 6px, 8px, 11px, 23px
  • ピル型の要素には 23px 以上の角丸を使用することを推奨します
  • 境界線の幅は次の値に制限することを推奨します:1px, 2px
  • デフォルトの角丸には 4px を使用することを推奨します
  • 任意の角丸値は使用しないでください(デザインスケールを使用してください)
  • 要素を分けるには、控えめな境界線(1px)を使用することを推奨します
角丸のリファレンス

スケール: 3px, 4px, 5px, 6px, 8px, 11px, 23px

レイアウト

  • 基準ビューポート幅 1920px に合わせてデザインする必要があります
  • 要素の幅には、一貫した値(8px, 11px, 10px, 12px, 9px)を使用することを推奨します
  • 明確な階層を持つ、テキスト中心のレイアウトを維持することを推奨します
  • h-screen は使用せず、ビューポート全体の高さには h-dvh を使用してください
  • 固定要素では safe-area-inset を必ず考慮してください
  • 正方形の要素には、w-* と h-* の代わりに size-* を使用することを推奨します
検出されたレイアウトパターン
  • メインコンテンツ:幅:1920px、高さ:1080px
  • メインコンテンツ:幅:1920px、高さ:643px

コンポーネント

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

インタラクティブな状態

フォーカス
  • MUST アクセントカラー(#6930C7)の2pxのアウトラインを使用する
  • MUST 2pxのアウトラインオフセットを使用する
  • NEVER フォーカスインジケーターを削除しない
ホバー
  • ボタン(プライマリ):背景を10%明るくする
  • ボタン(セカンダリ):背景に#FEFEFDを使用する
  • リスト項目:背景に#FEFEFDを使用する
無効状態
  • MUST opacity: 0.5を使用する
  • MUST cursor: not-allowedを使用する

インタラクション

  • MUST 破壊的または取り消せない操作にはAlertDialogを使用する
  • SHOULD ローディング状態には構造的なスケルトンを使用する
  • MUST 操作が行われる場所の近くにエラーを表示する
  • NEVER inputまたはtextarea要素での貼り付けをブロックしない
  • MUST アイコンのみのボタンにaria-labelを追加する

アニメーション

  • NEVER 明示的に要求されていない限り、アニメーションを追加しない
  • MUST コンポジターのプロパティ(transform、opacity)のみをアニメーションさせる
  • NEVER レイアウトプロパティ(width、height、top、left、margin、padding)をアニメーションさせない
  • SHOULD 入場アニメーションにease-outを使用する
  • NEVER インタラクションのフィードバックを200msより長くしない
  • SHOULD prefers-reduced-motionを尊重する

パフォーマンス

  • NEVER 大きなblur()またはbackdrop-filterのサーフェスをアニメーションさせない
  • NEVER アニメーション中でないときにwill-changeを適用しない
  • NEVER レンダーロジックで表現できる処理にuseEffectを使用しない

コメント