カラー & ブランド
willink DS のカラーは 単一ノブ設計です(0.8.0 以降の single-brand baseline)。consumer が宣言するのは --color-brand ただ 1 つで、scale(50〜950)・state・gradient・dark フリップはすべて OKLCH の color-mix() で render 時に派生します(ADR-0021)。
単一ノブと OKLCH 派生
マスターノブ --color-brand の default は #7c3aed(i-willink violet)です。scale の各ステップはこの 1 値からの color-mix(in oklch, …) で導出され、per-step の別名定義(aliasing)は持ちません。
/* マスターノブ */
--color-brand: #7c3aed; /* default = i-willink violet */
/* scale は OKLCH color-mix() で render 時に派生(per-step alias なし) */
--color-brand-500: color-mix(in oklch, var(--color-brand) 100%, transparent);
/* --color-brand-50 … --color-brand-950 まで同様に自動生成 */したがって :root で --color-brand を上書きすれば、scale・state・gradient・dark がまとめて再派生します。
:root {
--color-brand: #2563eb; /* これ 1 行で scale / state / gradient / dark まで再派生 */
}複数ブランドは --color-brand を別の値に再宣言するだけで表現します(例: clublink は #2563eb の blue、willink baseline は #7c3aed の violet)。ブランド軸のような専用機構(data-brand 等)は DS には存在せず、各ブランドは単に異なる --color-brand 値です。 詳細は テーマ を参照してください。
override-safe と internal
公開トークン(override-safe)は :root で上書きしてかまいません。それ以外は派生された内部トークンなので override しないでください(壊すと派生チェーンが破綻します)。
- override-safe(PUBLIC):
--color-brand/--color-accent-cyan/--color-accent-pink/--shadow-glow - internal(派生・override 禁止):
--color-brand-50〜--color-brand-950、brand state トークン、gradient endpoint、neutral ramp
brand state トークン
ブランドの interaction / surface は state トークンとして派生されます(light / dark の順で記載)。これらは internal なので、変えたい場合は --color-brand 側を動かします。
--color-brand-fg(#fff) /--color-brand-glow(= brand-500)--color-brand-hover(brand-700 / brand-500) /--color-brand-active(brand-800 / brand-400)--color-brand-soft(brand-100 / brand-950) /--color-brand-soft-fg(brand-700 / brand-300)
semantic neutral ロール
背景・前景・境界・surface は意味ベースのロールで提供され、dark モードで適切にフリップします。
--color-bg/--color-fg/--color-muted/--color-border- surfaces:
--color-surface-subtle/--color-surface-muted/--color-track/--color-surface-inverted(+-fg)
text-emphasis ladder
本文テキストは強調度のはしご(ladder)で 5 段に分かれます(ADR-0016)。5 段すべてが dark でフリップします。
--color-fg-strong(AAA ≥7:1) /--color-fg-emphasis(AAA ≥7:1)--color-fg-secondary(AA ≥4.5:1)--color-fg-subtle(caption 用・4.5 未満を明示した baseline) /--color-fg-faint(disabled / separator)
accent と feedback
accent は mode-invariant(dark でも同値)です。feedback はモードでフリップします。
- accent(override-safe):
--color-accent-cyan(#06b6d4) /--color-accent-pink(#ec4899) - feedback(light / dark):
--color-success(green-600 / 500) /--color-warning(amber-600 / 500) /--color-danger(red-600 / 500)
Tailwind ユーティリティ
これらのトークンは Tailwind ユーティリティとして自動的に追従します(text-brand-600、bg-brand-soft、text-fg-secondary、border-border 等)。--color-brand を 1 行上書きすれば、これらユーティリティもコード変更なしで再派生します。