i-Willink
ドキュメントメニュー

カラー & ブランド

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)は持ちません。

css
/* マスターノブ */
--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 がまとめて再派生します。

css
: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-600bg-brand-softtext-fg-secondaryborder-border 等)。--color-brand を 1 行上書きすれば、これらユーティリティもコード変更なしで再派生します。

次は テーマ でブランド override の全体像、 または ダークモード でフリップの仕組みを確認する。