ナビゲーション

トークン

カラーロール

テキスト、サーフェス、線のロール。それぞれライト用とダーク用の値を持ちます。

このページの内容

クラス

クラス宣言
fg-text-<name>color: var(--color-text-<name>);
bg-surface-<name>background-color: var(--color-surface-<name>);
b-line-<name>border-color: var(--color-line-<name>);
その他のカラーファミリー(19 件)
クラス宣言
b-<role>-<name>border-color: var(--color-<role>-<name>);
bb-<role>-<name>border-bottom-color: var(--color-<role>-<name>);
bg-<role>-<name>background-color: var(--color-<role>-<name>);
bl-<role>-<name>border-left-color: var(--color-<role>-<name>);
br-<role>-<name>border-right-color: var(--color-<role>-<name>);
bt-<role>-<name>border-top-color: var(--color-<role>-<name>);
bx-<role>-<name>border-inline-color: var(--color-<role>-<name>);
by-<role>-<name>border-block-color: var(--color-<role>-<name>);
fg-<role>-<name>color: var(--color-<role>-<name>);
bxe-<role>-<name>border-inline-end-color: var(--color-<role>-<name>);
bxs-<role>-<name>border-inline-start-color: var(--color-<role>-<name>);
bye-<role>-<name>border-block-end-color: var(--color-<role>-<name>);
bys-<role>-<name>border-block-start-color: var(--color-<role>-<name>);
fill-<role>-<name>fill: var(--color-<role>-<name>);
caret-<role>-<name>caret-color: var(--color-<role>-<name>);
accent-<role>-<name>accent-color: var(--color-<role>-<name>);
stroke-<role>-<name>stroke: var(--color-<role>-<name>);
outline-<role>-<name>outline-color: var(--color-<role>-<name>);
text-fill-color-<role>-<name>-webkit-text-fill-color: var(--color-<role>-<name>);

ロールは色のキーの一部です。fg-text-muted は color 名前空間を通じて --color-text-muted を参照します。bg-text-link や outline-line-control も含め、すべてのカラーファミリーでロールのキーを使えます。ロール名がプロパティを制限することはありません。

値

ライトとダークは、各プリセット light-dark() 値の 2 つの引数に対応します。選択は要素で実際に使われるカラースキームによって決まり、クラスの接頭辞や OS だけでは決まりません。

テキスト

クラスライトダーク
fg-text-bodyvar(--color-zinc-70)var(--color-zinc-30)
fg-text-strongvar(--color-zinc-100)var(--color-white)
fg-text-mutedvar(--color-zinc-60)var(--color-zinc-40)
fg-text-disabledvar(--color-zinc-40)var(--color-zinc-60)
fg-text-inversevar(--color-white)var(--color-black)
fg-text-stonevar(--color-stone-60)var(--color-stone-30)
fg-text-grayvar(--color-gray-60)var(--color-gray-30)
fg-text-zincvar(--color-zinc-60)var(--color-zinc-30)
fg-text-neutralvar(--color-neutral-60)var(--color-neutral-30)
fg-text-slatevar(--color-slate-60)var(--color-slate-30)
fg-text-brownvar(--color-brown-60)var(--color-brown-30)
fg-text-orangevar(--color-orange-70)var(--color-orange-30)
fg-text-ambervar(--color-amber-80)var(--color-amber-40)
fg-text-yellowvar(--color-yellow-90)var(--color-yellow-40)
fg-text-limevar(--color-lime-80)var(--color-lime-40)
fg-text-greenvar(--color-green-80)var(--color-green-40)
fg-text-berylvar(--color-beryl-90)var(--color-beryl-40)
fg-text-tealvar(--color-teal-90)var(--color-teal-40)
fg-text-cyanvar(--color-cyan-90)var(--color-cyan-40)
fg-text-skyvar(--color-sky-70)var(--color-sky-30)
fg-text-bluevar(--color-blue-60)var(--color-blue-30)
fg-text-indigovar(--color-indigo-60)var(--color-indigo-30)
fg-text-violetvar(--color-violet-60)var(--color-violet-30)
fg-text-purplevar(--color-purple-60)var(--color-purple-30)
fg-text-fuchsiavar(--color-fuchsia-70)var(--color-fuchsia-30)
fg-text-pinkvar(--color-pink-80)var(--color-pink-30)
fg-text-crimsonvar(--color-crimson-80)var(--color-crimson-30)
fg-text-redvar(--color-red-80)var(--color-red-30)

サーフェス

クラスライトダーク
bg-surface-basevar(--color-zinc-0)var(--color-zinc-95)
bg-surface-insetvar(--color-zinc-5)var(--color-zinc-100)
bg-surface-raisedvar(--color-white)var(--color-zinc-90)
bg-surface-floatingvar(--color-white)var(--color-zinc-80)
bg-surface-inversevar(--color-black)var(--color-white)

線

クラスライトダーク
b-line-divideroklch(0% 0 none / .12)oklch(100% 0 none / .12)
b-line-controlvar(--color-zinc-50)var(--color-zinc-40)
b-line-subtleoklch(0% 0 none / .06)oklch(100% 0 none / .06)

その場所のカラースキームが値を選ぶ

fg-text-muted は color: var(--color-text-muted) を出力します。プリセット値は light-dark(var(--color-zinc-60), var(--color-zinc-40)) で、ライトでは最初の色を、ダークでは 2 番目の色を選びます。クラスと生成ルールは変わりません。

1 つのロールと 2 つのローカルなカラースキーム

実際に使われるカラースキームが、最初か 2 番目の色を選びます。両方の見本は fg-text-muted と bg-surface-base を保ち、その場所のスキームが計算された色を変えます。

テキストによる説明
  1. fg-text-muted は color: var(--color-text-muted) を生成します。プリセットトークンは light-dark(var(--color-zinc-60), var(--color-zinc-40)) を含みます。
  2. ライトの見本は最初の引数 --color-zinc-60 を、ダークの見本は 2 番目の引数 --color-zinc-40 を使います。
  3. 両方の見本は bg-surface-base と同じテキストクラスを使います。色付きの引き出し線は 2 つの引数を識別するための注記であり、結果の文字色ではありません。
  4. 分岐を選ぶのは、その場所で実際に使われるカラースキームです。この比較は、システムのメディアクエリーが手動のローカルテーマに従うことを意味しません。

プリセットはルートで color-scheme: light dark を有効にします。data-theme="light" と data-theme="dark" のセレクターにより、ルート、入れ子の領域、シャドウホストでスキームを選べます。選択はネイティブ CSS が行うため、切り替え時にこのユーティリティを再生成する必要はありません。

@dark と @light のクラス接尾辞が調べるのはシステムの設定です。data-theme を手動で選んでも、これらのメディアクエリーは有効になりません。セレクターに基づく条件には、モードの仕様で定義する形式を使います。

ロールが提供するのは色であり、コンポーネントや、あらゆる背景に対するコントラストの保証ではありません。反転サーフェスには対になる反転テキストのロールがあります。区切り線や控えめな線は装飾用で、コントロールの線は境界を識別するためのものです。サーフェス、不透明度、トークン値を変更したら、実際の色の組み合わせを再確認してください。

使用例

ロールを組み合わせてカードを作ります。浮き上がったサーフェス、区切り線、強調・本文・控えめなテキストを使います。

Make space for ideas

A steady rhythm keeps the focus on the content.

4 min read

<article class="… b(1) b-solid b-line-divider bg-surface-raised">  <h3 class="… fg-text-strong">Make space for ideas</h3>  <p class="… fg-text-body">A steady rhythm keeps the focus on the content.</p>  <p class="… bt(1) bt-solid bt-line-divider fg-text-muted">4 min read</p></article>
生成された CSS
@layer theme {  :root,  :host {    --color-zinc-30: oklch(78% .0025 265);    --color-zinc-40: oklch(68.6% .0028 265);    --color-zinc-60: oklch(48.6% .003 265);    --color-zinc-70: oklch(39.8% .0028 265);    --color-zinc-90: oklch(24.6% .0022 265);    --color-zinc-100: oklch(15% .0016 265)  }  :root,  :host {    --color-surface-raised: light-dark(var(--color-white), var(--color-zinc-90));    --color-line-divider: light-dark(oklch(0% 0 none / .12), oklch(100% 0 none / .12));    --color-text-body: light-dark(var(--color-zinc-70), var(--color-zinc-30));    --color-text-strong: light-dark(var(--color-zinc-100), var(--color-white));    --color-text-muted: light-dark(var(--color-zinc-60), var(--color-zinc-40))  }  :root,  :host {    --color-white: oklch(100% 0 none)  }}@layer utilities {  .bg-surface-raised {    background-color: var(--color-surface-raised)  }  .b-line-divider {    border-color: var(--color-line-divider)  }  .bt-line-divider {    border-top-color: var(--color-line-divider)  }  .b-solid {    border-style: solid  }  .bt-solid {    border-top-style: solid  }  .b\(1\) {    border-width: calc(1 * 1px)  }  .bt\(1\) {    border-top-width: calc(1 * 1px)  }  .fg-text-body {    color: var(--color-text-body)  }  .fg-text-muted {    color: var(--color-text-muted)  }  .fg-text-strong {    color: var(--color-text-strong)  }}

カスタマイズ

カラースキームごとに値を 1 つ持つロールを追加します。--color-text-brand を定義すると fg-text-brand が使えるようになります。

@theme {  --color-text-brand: light-dark(    var(--color-indigo-60),    var(--color-indigo-30)  );}
生成された CSS
@layer theme {  :root,  :host {    --color-indigo-30: oklch(70.2% .1611 282.9);    --color-indigo-60: oklch(50.06% .2906 282)  }  :root,  :host {    --color-text-brand: light-dark(var(--color-indigo-60), var(--color-indigo-30))  }}@layer utilities {  .fg-text-brand {    color: var(--color-text-brand)  }}