mcpField
N
n8n:ui-design

n8n:ui-design

github.com/n8n-ioデザイン・UI208.9k41 回インストール今日更新
リポジトリ

n8n:ui-design について

n8n のフロントエンドコンポーネントを開発する人向けの UI 設計スキルです。design-system の再利用、トークン、アニメーションの指針を扱います。

主な機能

  1. 01デザイントークンの確認と適用
  2. 02既存の design-system コンポーネントの優先
  3. 03アニメーションとトランジションの mixin
  4. 04インターフェースレビュー指針の参照

活用シーン

  1. 01n8n のフロントエンドコンポーネントのスタイリング
  2. 02一貫したアニメーションの実装
  3. 03インターフェース変更のレビュー

インストール

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

$npx skills add https://github.com/n8n-io/n8n --skill n8n:ui-design

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

同梱ファイルrules/web-animation-guidelines.mdrules/web-interface-guidelines.md

詳細

UI デザイン

フロントエンドでコンポーネントを構築、スタイリング、使用するための包括的なガイドです。

リファレンス

  • コンポーネントをスタイリングする際は、packages/frontend/@n8n/design-system/src/styleguide/*.mdx を使用します
  • アニメーションには、rules/web-animation-guidelines.md を使用します
  • UI の変更をレビューする際は、rules/web-interface-guidelines.md を使用します

ベストプラクティス

  • 必ず packages/frontend/@n8n/design-system/src/css/ の _tokens.scss または _primitives.scss にある CSS 変数を使用します。長さ、色、フォントサイズ、時間をリテラル値として記述する前に、必ずそれぞれを確認してください。各スペーシングトークンには、コメントで px 値が記載されています:--spacing--5xs: 0.125rem; /** 2px **/。このコメントを grep して、px 値に対応するトークンを探します。grep ではトークンファミリーごとに 1 件ずつ結果が返るため、プロパティに合ったファミリーを選びます:margin と padding には --spacing--*、border-radius には --radius--*、height には --height--* を使用します。スタイルガイドの packages/frontend/@n8n/design-system/src/styleguide/spacing-size.mdx にも、同じスケールが表として記載されています。スペーシングスケールは 2px から始まるため、値が小さいことはハードコードする理由にはなりません。ハードコードするのは、検索しても該当するトークンが見つからない場合に限ります。その理由をコメントに記載してください。
  • 必ず packages/frontend/@n8n/design-system/src/components の既存コンポーネントを優先して使用します。@deprecated と記されていないコンポーネントを優先してください。
  • ソリッドコンポーネントに hover/active のアルファ動作を追加する場合は、明示的なパーセンテージを指定した color-mix() を優先します。
  • アニメーションやトランジションを扱う場合は、必ず packages/frontend/@n8n/design-system/src/css/mixins/motion.scss の mixin を優先して使用します

コンポーネント

カスタム実装を作成するのではなく、既存の design-system コンポーネントを使用します:

  • 「ワークフローの削除を確認するモーダルダイアログを追加する」→ N8nDialog を使用します
  • 「ワークフローのステータスを選択するドロップダウンを追加する」→ N8nDropdown または N8nSelect を使用します
  • 「新しいアイテムを追加する + アイコン付きボタンを追加する」→ iconOnly prop を指定した N8nButton を N8nTooltip でラップし、さらに N8nTooltip でラップします。N8nIcon と適切な aria-label を使用します。
  • 「破壊的な操作を行うボタンを追加する」→ variant="destructive" を指定した N8nButton を使用します
  • 「背景色を白/黒にする」→ ライトモードでは白に var(--background--surface) を使用し、ダークモードでは「black」を使用します
  • 「タイトルを自然にアニメーション表示する」→ motion.scss の fade-in-up mixin と var(--duration--base) を使用します

コメント