n8n:design-system について
n8n の UI コンポーネントやスタイルを扱う開発者向けのデザインシステムガイドです。デザイントークン、既存コンポーネント、モーション、Storybook の規約を定めています。
主な機能
- 01デザイントークンを使ったスタイル作成
- 02既存の非推奨ではないコンポーネントを優先
- 03ライト・ダークモードの色指定
- 04モーションと UI レビューの指針
- 05Storybook ストーリーの命名規則
活用シーン
- 01packages/frontend でのコンポーネント開発
- 02Vue コンポーネントのスタイル変更
- 03UI 変更やアニメーションのレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ n8n-io/ n8n --skill n8n:design-systemインストール後、Claude Code で/n8n:design-systemを入力して読み込まれたか確認します。
同梱ファイルrules/web-animation-guidelines.mdrules/web-interface-guidelines.md
詳細
デザインシステム
フロントエンドでコンポーネントを構築、スタイリング、使用するための包括的なガイドです。
適用する場面
次の場合は、これらのガイドラインを参照してください。
packages/frontend内の.{vue|css|scss}ファイルを編集するときpackages/frontend/@n8n/design-systemに新しいコンポーネントを追加するとき- Vue コンポーネントのスタイルをリファクタリングするとき
- 新しい UI コンポーネントや機能を実装するとき
- UI の変更をレビューするとき
ルール
packages/frontend/@n8n/design-system/src/styleguide/*.mdxのガイドラインに従ってくださいpackages/frontend/@n8n/design-system/src/css/_tokens.scssまたはpackages/frontend/@n8n/design-system/src/css/_primitives.scssのスタイルには、必ず CSS 変数を使用してください。適切なトークンがない場合に限り、ハードコードされた値を使用してください。packages/frontend/@n8n/design-system/src/componentsにある既存のコンポーネントを必ず優先して使用してください。@deprecatedとマークされていないコンポーネントを優先してください。- ライトモードとダークモードで色を切り替える場合は、
light-dark()を使用してください - 単色のコンポーネントにホバー時やアクティブ時のアルファ動作を追加する必要がある場合は、明示的なパーセンテージを指定して
color-mix()を使用してください。 - アニメーションやトランジションを扱う場合は、必ず
packages/frontend/@n8n/design-system/src/css/mixins/motion.scssのミックスインを優先して使用してください - アニメーションをレビューするときは、
rules/web-animation-guidelines.mdのガイドに従ってください - UI の変更をレビューするときや新しいコンポーネントを追加するときは、
rules/web-interface-guidelines.mdに従ってください
Storybook ストーリー
- 新しいストーリーは必ず
packages/frontend/@n8n/design-systemに追加してください。 - すべてのストーリーで、次のタイトルカテゴリのいずれかを使用してください。
Style Guide:スタイル、トークン、ユーティリティCore:アプリ全体で使用するコンポーネントAreas/<Product area>:特定の製品領域向けのパターンやコンポーネント。例:Areas/Settings、Areas/AssistantExperimental:注意が必要なベータ版コンポーネント
titleの最後のセグメントはコンポーネント名であり、必ず PascalCase にしてください(Core/empty-stateではなくCore/EmptyState)。カテゴリのプレフィックスに制限はありません。
例
- 「ワークフローの削除を確認するモーダルダイアログを追加する」→
N8nDialogを使用します - 「ワークフローのステータスを選択するドロップダウンを追加する」→
N8nDropdownまたはN8nSelectを使用します - 「新しい項目を追加するための + アイコン付きボタンを追加する」→
iconOnlyプロパティを指定したN8nButtonをN8nTooltipで囲み、さらにN8nTooltipで囲みます。N8nIconと適切な aria-label を使用してください。 - 「破壊的な操作を行うボタンを追加する」→
variant="destructive"を指定したN8nButtonを使用します - 「背景色を白/黒にする」→ ライトモードでは白に
var(--background--surface)を使用し、ダークモードでは「黒」を使用します - 「タイトルを自然に表示する」→
motion.scssのfade-in-upミックスインとvar(--duration--base)を使用します
コメント
Markdown 対応