ブランドカラーを少し変えたいだけなのに、ボタン・リンク・バッジ・アイコン——コード中に散らばった色指定を、grepで探しながら1つずつ直す。直し忘れが1箇所でもあれば、その日から画面はブランドカラーがバラバラになります。
デザインシステムの本質は、豪華なコンポーネント集ではなく「変更を1箇所に集約する仕組み」です。この記事ではその中核であるデザイントークンを、実際にコードで実行して効果を示します。
デザインシステムの本質は「部品集」ではなく「一貫性を保つ仕組み」。実際にトークンで色を変更すると、その効果が数字で見える。
デザインシステムの定義は、Figmaが公開しているものが分かりやすいです。“a set of building blocks and standards that help keep the look and feel … consistent”。製品や体験の見た目と使用感を一貫させる、部品と規約のセットです。
以下は編集部が実際にNode.jsで実行したコードです。ブランドカラーを直書きした場合と、デザイントークン(変数)を使った場合で、色変更の作業がどう変わるかを比較します。
// ❌ ハードコード: 各コンポーネントが色を直接指定
const buttonStyleHardcoded = { background: "#3B82F6", color: "#FFFFFF" };
const linkStyleHardcoded = { color: "#3B82F6" };
const badgeStyleHardcoded = { background: "#3B82F6", color: "#FFFFFF" };
// ✅ トークン方式: 1つの変数を全コンポーネントが参照する
const tokens = { colorPrimary: "#3B82F6", colorOnPrimary: "#FFFFFF" };
function getButtonStyle() {
return { background: tokens.colorPrimary, color: tokens.colorOnPrimary };
}
function getLinkStyle() {
return { color: tokens.colorPrimary };
}
=== トークン方式: tokens.colorPrimary を1箇所変更 ===
変更後の button: { background: '#7C3AED', color: '#FFFFFF' }
変更後の link: { color: '#7C3AED' }
変更後の badge: { background: '#7C3AED', color: '#FFFFFF' }
→ 1行の変更が3つのコンポーネント全てに反映された
ハードコード方式では3箇所を手動で書き換える必要があり、1箇所でも直し忘れれば色の不整合が生まれます。トークン方式はtokens.colorPrimaryを1行変えるだけで、参照している全コンポーネントに反映されました。
コンポーネントが3つなら手作業でも耐えられますが、数十のボタン・カード・バッジがある実際のアプリでは、直書き方式は必ずどこかで整合性を崩します。トークンは「変更を1箇所に閉じ込める」ための最小の仕組みです。
At its core, a design system is a set of building blocks and standards that help keep the look and feel of products and experiences consistent.出典Figma Blog「Design Systems 101: What Is a Design System?」 一次情報を確認2026-08-14 この内容の有効期限2027-02-14
色・余白・文字サイズの3種類だけをトークン化すれば、UIの一貫性は大きく改善する。コンポーネント集の整備は後回しでよい。
デザインシステムという言葉の重さに反して、個人開発が最初にやることはシンプルです。色・余白・文字サイズの3種類を変数にするだけで、効果の大半を得られます。
| トークン | 内容 | 効果 |
|---|---|---|
| 色 | ブランドカラー・テキスト色・背景色 | 配色変更が1箇所で完結する |
| 余白 | 8pxの倍数で統一した数値の集合 | 画面ごとの余白のバラつきが消える |
| 文字サイズ | 見出し・本文・注釈の3〜4段階 | サイズの種類が増殖しなくなる |
:root {
--color-primary: #3B82F6;
--color-on-primary: #FFFFFF;
--space-sm: 8px;
--space-md: 16px;
--font-body: 16px;
--font-heading: 24px;
}
最初から完璧なコンポーネント集を目指すと、本来の開発が止まる。画面を作りながら繰り返し出てきた部分だけをトークン・部品に昇格させる。
デザインシステムの失敗で最も多いのは、技術的な難しさではなく作り込みすぎです。最初から数十種類のコンポーネントとルールを整備しようとして、肝心のプロダクト開発が止まります。
個人開発に向くのは、画面を作りながら繰り返し使うパターンが見えたら、そこで初めてトークンや共通部品に昇格させるやり方です。3回目に同じボタンのスタイルを書いたら共通化する、という程度の緩さで十分機能します。ボタンの状態表示(処理中・成功・失敗)を統一する話はUI/UXデザイン入門の記事とも重なります。
1人開発では効果が限定的でも、複数人(自分+外注デザイナー、共同開発者)が関わる規模になると、デザインシステムの価値は跳ね上がります。認識のズレを防ぐ共通言語としての役割が主役になるためです。個人開発の間は最小構成、人が増えたら本格投資——という段階を踏むのが無駄がないと編集部は見ています。
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る