Chuyển đến nội dung chính

レッスン 15: デザイン システムと共有 UI — UX の一貫性を保つ

マイクロフロントエンドの設計システムを構築します。共有コンポーネント ライブラリ (Storybook)。 CSS 戦略: CSS モジュール、Tailwind。 CSS 変数を使用したテーマ設定。バージョン管理戦略。

🏗️ アーキテクチャ — レッスン 15 レッスン 15: システムと共有 UI の設計 — UX の維持 一貫した

マイクロサービスとマイクロ フロントエンドのシステム設計 — 基本から運用まで

パート 5: 実用的なマイクロ フロントエンドの構築

xdev.asia

はじめに

各チームが独自の MFE を構築すると、UX は簡単に 断片化 します。 Design System は、MFE 全体で UX の一貫性を保つ唯一のソリューションです。


1. システムアーキテクチャの設計

Design System:
├── Design Tokens (CSS Variables)
│   ├── Colors, Typography, Spacing
│   └── Shadows, Border radius
├── Core Components (@company/ui)
│   ├── Button, Input, Select, Modal
│   ├── Table, Pagination, Toast
│   └── Layout: Grid, Stack, Container
├── Patterns (Form, Navigation, Data display)
└── Documentation (Storybook)

2. マイクロフロントエンドの CSS 戦略

2.1 CSS の競合の問題

MFE A: .btn { background: blue; }
MFE B: .btn { background: red; }
→ CSS cascade conflict!

2.2 解決策

戦略隔離DXパフォーマンス
CSS モジュール✅ スコープ付き良いベスト
Tailwind CSS✅ 実用性第一すばらしい良い
JS 内の CSS✅ ランタイム良いOK
シャドウ DOM✅ 厳しい境界線複雑なOK

推奨: Tailwind CSS — 競合のない、一貫したユーティリティ クラス。

2.3 テーマ用の CSS 変数

:root {
  --color-primary: #2563eb;
  --color-error: #dc2626;
  --color-background: #ffffff;
  --color-text: #1f2937;
  --font-family: 'Inter', sans-serif;
  --radius-md: 0.375rem;
}

[data-theme="dark"] {
  --color-background: #111827;
  --color-text: #f9fafb;
}

MFE は CSS 変数を使用します → テーマに従って自動的に:

<button style={{ background: 'var(--color-primary)' }}>Click</button>

3. 共有コンポーネント ライブラリ

@company/ui/
├── src/Button/, Input/, Modal/
├── package.json
└── tailwind.config.js (shared config)

共有モジュールフェデレーションによる配布:

shared: {
  '@company/ui': { singleton: true, requiredVersion: '^3.0.0' },
}

4. ストーリーブック — 生きたドキュメント

export default { title: 'Components/Button', component: Button };
export const Primary = { args: { variant: 'primary', children: 'Click me' } };
export const Disabled = { args: { disabled: true, children: 'Disabled' } };

Storybook を展開し、すべてのチームに単一の信頼できる情報源を提供します。


5. バージョン管理戦略

  • セマンティック バージョニング: メジャー = 破壊、マイナー = 機能、パッチ = 修正
  • カナリア リリース: 展開前に 1 つの MFE でテスト
  • 下位互換性: 削除する前に非推奨にします

概要

  • マイクロ フロントエンドにはデザイン システムが必要です
  • テーマ用の CSS 変数 — ダーク モード、ブランディング
  • Tailwind CSS 推奨 — 競合なし
  • ストーリーブック = 生きたドキュメント

次の記事: レッスン 16: 認証と認可 — マイクロ フロントエンドの SSO