Skip to content

Design Tokens

This content is not available in your language yet.

トークン名変数
base--c-base
base-2--c-base-2
text--c-text
text-2--c-text-2
divider--c-divider
link--c-link
main--c-main
accent--c-accent

モダンCSSではcolor-mix()があるので、hsl値の中身を変数にすることはしていません。

パレットトークン変数
red--red
orange--orange
yellow--yellow
green--green
blue--blue
purple--purple
pink--pink
gray--gray
black--black
white--white
トークン値変数デフォルト値
5--s50.25rem
10--s100.375rem
20--s200.625rem
30--s301rem
40--s401.625rem
50--s502.625rem
60--s604.25rem
70--s706.875rem
80--s8011.125rem
Preview

5

10

20

30

40

50

60

70

80

リサイズ可能

フィボナッチ数列 ((0, 1,) 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …) に基づいたスケーリングを採用しています。
デフォルトでは1 = 0.125rem, 2 = 0.25rem として計算し、0.25remから順にトークン化しています。

トークン値変数クラス初期値
5--bdrs-5-bdrs:52px
10--bdrs-10-bdrs:100.25rem
20--bdrs-20-bdrs:200.5rem
30--bdrs-30-bdrs:301rem
40--bdrs-40-bdrs:401.5rem
50--bdrs-50-bdrs:502rem
99--bdrs-99-bdrs:9999rem
Preview
5
10
20
30
40
50
99
<div class="-bdrs:5">...</div>
<div class="-bdrs:10">...</div>
<div class="-bdrs:20">...</div>
<div class="-bdrs:30">...</div>
<div class="-bdrs:40">...</div>
<div class="-bdrs:50">...</div>
<div class="-bdrs:99">...</div>
トークン値変数クラス
50--bxsh-50-bxsh:50
40--bxsh-40-bxsh:40
30--bxsh-30-bxsh:30
20--bxsh-20-bxsh:20
10--bxsh-10-bxsh:10

--bxsh-{token}の値の中身は、次の変数で構成されます。

構成変数初期値
--_sh_chsl(var(--_sh_hsl) / var(--_sh_a))
--_sh_hsl220 4% 8%
--_sh_a5%
--_sh_sz-[0~5]
--_sh_i (空白)
Preview
10
20
30
40
50
<div class="-bxsh:10">...</div>
<div class="-bxsh:20">...</div>
<div class="-bxsh:30">...</div>
<div class="-bxsh:40">...</div>
<div class="-bxsh:50">...</div>

--_sh_iinsetを指定することで、内向きshadowに変更できます。
(当ドキュメントサイトでは、ダークモード時にinsetになっています。)

font-family 用のトークンです。

トークン変数クラス
base--ff-base-ff:base
accent--ff-accent-ff:accent
mono--ff-mono-ff:mono
Preview

base: English text, 漢字ひらがな

accent: English text, 漢字ひらがな

mono: English text, 漢字ひらがな

<p class="-ff:base -fz:xl">Lorem ipsum ...</p>
<p class="-ff:accent -fz:xl">Lorem ipsum ...</p>
<p class="-ff:mono -fz:xl">Lorem ipsum ...</p>

font-weight 用のトークンです。

トークン変数クラス初期値
light--fw-light-fw:light300
normal--fw-normal-fw:normal400
bold--fw-bold-fw:bold700
Preview

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.

<p class="-fw:light">Lorem ipsum ...</p>
<p class="-fw:normal">Lorem ipsum ...</p>
<p class="-fw:bold">Lorem ipsum ...</p>

font-size 用のトークンです。

トークン変数クラス初期値
2xs--fz-2xs-fz:2xscalc(1em * 8 / 11)
xs--fz-xs-fz:xscalc(1em * 8 / 10)
s--fz-s-fz:scalc(1em * 8 / 9)
m--fz-m-fz:m1em
l--fz-l-fz:lcalc(1em * 8 / 7)
xl--fz-xl-fz:xlcalc(1em * 8 / 6)
2xl--fz-2xl-fz:2xlcalc(1em * 8 / 5)
3xl--fz-3xl-fz:3xlcalc(1em * 8 / 4)
4xl--fz-4xl-fz:4xlcalc(1em * 8 / 3)
5xl--fz-5xl-fz:5xlcalc(1em * 8 / 2)
Preview

2xs

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

xs

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

s

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

m

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

l

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

2xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

3xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

4xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

5xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

<p class='-fz:2xs'>Lorem ipsum ...</p>
<p class='-fz:xs'>Lorem ipsum ...</p>
<p class='-fz:s'>Lorem ipsum ...</p>
<p class='-fz:m'>Lorem ipsum ...</p>
<p class='-fz:l'>Lorem ipsum ...</p>
<p class='-fz:xl'>Lorem ipsum ...</p>
<p class='-fz:2xl'>Lorem ipsum ...</p>
<p class='-fz:3xl'>Lorem ipsum ...</p>
<p class='-fz:4xl'>Lorem ipsum ...</p>

Lism では、フォントサイズのスケーリングには数学的に美しいとされるスケーリング理論に基づいて定義することを推奨しています。

デフォルトでは、分子8の調和数列ベースに設定しています。

:root{
--_fzmol: 8;
--fz-4xl: calc(1em * var(--_fzmol) / (var(--_fzmol) - 5));
--fz-3xl: calc(1em * var(--_fzmol) / (var(--_fzmol) - 4));
--fz-2xl: calc(1em * var(--_fzmol) / (var(--_fzmol) - 3));
--fz-xl: calc(1em * var(--_fzmol) / (var(--_fzmol) - 2));
--fz-l: calc(1em * var(--_fzmol) / (var(--_fzmol) - 1));
--fz-m: 1em;
--fz-s: calc(1em * var(--_fzmol) / (var(--_fzmol) + 1));
--fz-xs: calc(1em * var(--_fzmol) / (var(--_fzmol) + 2));
--fz-2xs: calc(1em * var(--_fzmol) / (var(--_fzmol) + 3));
}

:rootで指定している --_fzmol を上書きすることで、スケーリングの基準(分子)を変更できます。

分子は 7~9 あたりで選ぶのがおすすめです。

:root{--_fzmol:7}

2xs

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

xs

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

s

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

m

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

l

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

2xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

3xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

4xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

5xl

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

line-height 用のトークンです。

トークン変数クラス初期値
base--lh-base-lh:base1.75
xs--lh-xs-lh:xscalc({base} - 0.25)
s--lh-s-lh:scalc({base} - 0.125)
l--lh-l-lh:lcalc({base} + 0.125)
xl--lh-xl-lh:xlcalc({base} + 0.25)

base値は 日本語では 1.625, 1.75, 1.875 あたりがおすすめです。(英語なら 1.5, 1.625 あたりがおすすめ)

Preview

xs: Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

s: Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

base: Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

l: Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

xl: Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

<p class="-lh:xs">Lorem ipsum ...</p>
<p class="-lh:s">Lorem ipsum ...</p>
<p class="-lh:base">Lorem ipsum ...</p>
<p class="-lh:l">Lorem ipsum ...</p>
<p class="-lh:xl">Lorem ipsum ...</p>

letter-spacing 用のトークンです。

トークン変数クラス初期値
base--lts-base-lts:basenormal
s--lts-s-lts:s-0.05em
l--lts-l-lts:l0.05em
Preview

s: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.

base: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.

l: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.

<p class="-lts:s">Lorem ipsum ...</p>
<p class="-lts:base">Lorem ipsum ...</p>
<p class="-lts:l">Lorem ipsum ...</p>
トークン値変数クラス初期値
low--op-low-op:low0.25
mid--op-mid-op:mid0.5
high--op-high-op:high0.75
Preview

Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.

<p class="-op:low">Lorem ipsum ...</p>
<p class="-op:mid">Lorem ipsum ...</p>
<p class="-op:high">Lorem ipsum ...</p>

コンテンツサイズ用のトークンです。

トークン値変数
xs--size-xs
s--size-s
m--size-m
l--size-l

.is--container 等で使用されています。

  1. xs, s, m(root), l, xl などによるサイズ表記
    • 基本となる中心値があって、それに対して小さいか?大きいか?というのを表すトークン。
    • :rootbodyにセットされている値に戻すためのものは base。そうでないが基本的な中心値となるものはmで表現。
    • sm, md, lg ではない理由は、ブレイクポイント表記と被らないようにするため。
  2. 0, (5,) 10, 20, 30,… などの数値による段階表記
    • 基本となる値がなく、0スタートで段階的なトークン値を持つものを表すトークン。
    • 0,1,2,3… という単純な繰り上げではなく数値に間隔を持たせているのは、ユーザーが既存トークンの間に新しいトークンを追加できるようにするため。
  3. それ以外のセマンティックトークン
    • サイズ表記や段階表記では表現できないものを表すトークン。

カラートークンのバリエーション名について

Section titled “カラートークンのバリエーション名について”

base-2, text-2などは、よくある表現としては secondary, weak, subtle などがありますが、これといった正解があるわけではなく、命名するのが非常に難しいトークンです。
名前を決めてしまうと、ユーザーによっては意味合いとして明確なズレが発生する可能性もあります。

そのため、単純に数値を後ろにつけることによって意味付けをなくし、バリエーションを表すだけにしました。
トークンを追加したい時も、名前に悩む必要はなくbase-3,accent-2のように増やしていけます。