0Pricing
React Academy · レッスン

デザイントークンとは何か、なぜ重要なのか

デザイントークンを、色、余白、タイポグラフィなどのデザイン上の決定における唯一の信頼できる情報源として定義します。

「デザイントークンとは何か、なぜ重要なのか」はCoddyKit上の無料React Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReact Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 React Academyコースには全4レッスンが含まれています。

デザイントークンの定義

デザイントークンは、名前を付けて再利用できる値として表現した、デザインシステムにおける最小単位の設計判断です。スタイルシートに#3b82f6を直接記述する代わりに、color-primary-500: #3b82f6を定義し、その名前をどこからでも参照します。名前が意味を持つため、すべての参照箇所を更新しなくても値を変更できます。

具体的なトークンの例

トークンはあらゆる視覚的プロパティに及びます。色のトークン(color-primary-500: #3b82f6)、間隔のトークン(spacing-4: 16px)、タイポグラフィのトークン(font-size-lg: 18px、font-weight-bold: 700)、角丸のトークン(radius-md: 8px)、シャドウのトークン、アニメーション時間のトークンなどです。これらを組み合わせることで、完全なビジュアル言語を表現できます。

信頼できる唯一の情報源

トークンによって、デザインとエンジニアリングで共有する信頼できる唯一の情報源が作られます。デザイナーはFigmaで値を定義し、エンジニアはコードでそれを利用します。ブランドカラーを変更するときは、1つのトークンの値を更新するだけで、そのトークンを使用するすべてのコンポーネントに自動的に変更が反映されます。何千ものファイルをgrep-and-replaceする必要はありません。

トークンがない場合の問題

トークンがないと、色や間隔の値がスタイルシート、コンポーネントファイル、ユーティリティクラス全体にハードコードされます。あるファイルでは青色が #3b82f6、別のファイルでは rgb(59, 130, 246) や blue-500 として記述されていることがあります。ブランドカラーを変更するには、すべての記述箇所を検索して置き換える必要があり、一部を見落とすリスクが高くなります。

複数テーマ対応を可能にする

デザイントークンは、複数テーマのシステムを支える基盤です。ダークモードでは、color-background や color-text のようなセマンティックトークンが、現在有効なテーマに応じて異なるプリミティブ値を参照します。変更するのはすべてのコンポーネントではなく、1つのマッピングだけです。ライトテーマとダークテーマはコンポーネントコードを共有し、異なるのはトークンの値だけです。

複数ブランド対応を可能にする

複数のブランドにサービスを提供するSaaSプラットフォームでは、トークンによってコードを重複させずにブランドをカスタマイズできます。ブランドAはプライマリカラーに青を使い、ブランドBは緑を使うとします。異なるのは、それぞれのセマンティックトークンのマッピングだけです。ボタンコンポーネントのコードは同一で、color-action-primary を読み取ると、ブランドごとに異なる色に解決されます。

トークン階層の構成

トークンは階層化して整理します。プリミティブトークンは生の値で、color-blue-500: #3b82f6 のように定義します。セマンティックトークンは意味を表し、color-action-primary: {color-blue-500} のように定義します。コンポーネントトークンは最も具体的で、button-primary-background: {color-action-primary} のように定義します。この階層によって、「何を表すか」と「どこで使うか」を分離できます。

トークン階層が重要な理由

セマンティックトークンは、複数テーマ対応の鍵です。ライトテーマでは color-background: {color-white}、ダークテーマでは color-background: {color-gray-900} とします。コンポーネントは特定の色ではなく、color-background を参照します。テーマを変更するとセマンティックトークンのマッピングが切り替わるため、コンポーネントを変更する必要はありません。

Figma Variablesとトークンの同期

Figma Variables(2023年導入)は、Figma内で利用できるデザイントークンです。デザイナーは、エンジニアがコードで実装するものと同じトークン階層をFigmaで定義します。Tokens Studio for Figmaや公式のFigma Tokensプラグインなどのツールを使うと、Figmaの変数をJSONにエクスポートでき、Style DictionaryでCSS変数やJSオブジェクトにコンパイルできます。

W3Cデザイントークン仕様

W3C Design Tokens Community Groupは、デザイントークン向けの標準JSON形式を策定しています。目的は相互運用性です。つまり、どのデザインツール(Figma、Sketch)でも、どのビルドツール(Style Dictionary、Theo、Panda CSS)でも利用できるトークンファイルを実現します。この仕様の形式を採用すれば、トークンシステムを将来にわたって利用しやすくなります。

トークンのガバナンス

デザイントークンには、誰が新しいトークンを追加できるのか(デザイン、エンジニアリング、または両方)、トークンをどのようにバージョン管理するのか、非推奨のトークンをどのように廃止するのか、トークンの変更を利用するチームにどう伝えるのかといった、ガバナンスに関する判断が必要です。ガバナンスがなければ、トークンシステムと並行して新しいハードコード値が増え、トークンの目的が失われます。

トークン階層

デザイントークンの階層において、セマンティックトークンは何を表しますか?

レッスンのまとめ

デザイントークンは、デザインシステムの語彙となる、名前付きの原子的な値(色、間隔、タイポグラフィ)です。デザインとコードの間に、単一の信頼できる情報源を作ります。3層の階層(プリミティブ=生の値、セマンティック=意味、コンポーネント=具体的な用途)によって、複数テーマと複数ブランドに対応できます。Figma VariablesとW3C Design Tokens仕様は、デザインとエンジニアリングの同期を推進しています。トークンのガバナンスによって、システムの一貫性を長期的に保てます。

よくある質問

「デザイントークンとは何か、なぜ重要なのか」レッスンは無料ですか?

はい。「デザイントークンとは何か、なぜ重要なのか」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、React Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 React Academyコースには全4レッスンが含まれています。

「デザイントークンとは何か、なぜ重要なのか」で何を学びますか?

デザイントークンを、色、余白、タイポグラフィなどのデザイン上の決定における唯一の信頼できる情報源として定義します。 ブラウザで直接実行するハンズオンコードでReact Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

React Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのReact Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「デザイントークンとは何か、なぜ重要なのか」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このReact Academyレッスンでコードを書いて実行できますか?

はい。すべてのReact Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. デザイントークンとは何か、なぜ重要なのか
  2. Style Dictionary:トークンの変換と生成
  3. Tailwind のトークン、CSS 変数、CSS-in-JS
  4. マルチテーマ・マルチブランドのトークン設計
← React Academyに戻る