メインコンテンツまでスキップ
  • Created:
  • Updated:
  • Author:
    Takeshi Takatsudo

テーマレシピ

CSSカスタムプロパティを使った完全なテーマシステムレシピです。各レシピはプロダクション対応のパターンで、自分のプロジェクトに適応できます。これらのレシピは Three-Tier Color Strategy で説明されているレイヤードアーキテクチャ — パレットトークン、セマンティックテーマトークン、コンポーネントスコープのオーバーライド — をカスケードと var() フォールバックを使って実装しています。

ライト/ダークテーマとカスタムプロパティ

カラーパレット全体をカスタムプロパティとして定義し、1つのクラストグルですべてを切り替えます。個別の色に対するJavaScriptロジックは不要です — カスケードがすべてを処理します。

ライト / ダークテーマ

ブランドテーマのオーバーライド

デフォルトテーマから開始し、コンポーネントをブランドカラーのコンテナでラップしてオーバーライドします。子要素はカスケードを通じて自動的に新しい値を取得します。

ブランドテーマのオーバーライド

コンポーネントAPIパターン

カスタムプロパティのセットをコンポーネントのパブリックスタイリングAPIとして公開します。コンシューマーは必要なプロパティだけをオーバーライドし、コンポーネントが残りを内部的に処理します。

コンポーネントAPIパターン

Surface/Contentレイヤーパターン

3つの論理レイヤーを定義します — surface(背景)、content(テキスト)、accent(インタラクティブなハイライト)。コンポーネントは生の色ではなくレイヤーを参照するため、ページ全体のテーマ切り替えが簡単になります。これは Three-Tier Color Strategy の実践例です — 以下のレイヤーは Tier 2(セマンティックテーマトークン)に対応しています。

Surface / Contentレイヤーパターン

参考リンク