デザイントークン
Lism CSS では、主要なCSSプロパティに対してデザイントークンを用意しています。
COLOR
| トークン名 | 変数 |
|---|---|
base |
--base |
base-2 |
--base-2 |
text |
--text |
text-2 |
--text-2 |
divider |
--divider |
link |
--link |
brand |
--brand |
accent |
--accent |
neutral |
--neutral |
パレットカラー(--red, --blue, --green 等)やカスタマイズ方法は カラートークン を参照してください。
Typography
| トークン | 変数 |
|---|---|
FF (font-family) |
--ff--base, --ff--accent, --ff--mono |
FW (font-weight) |
--fw--light, --fw--normal, --fw--bold |
FZ (font-size) |
--fz--2xs 〜 --fz--5xl |
HL (half-leading) |
--hl--xs, --hl--s, --hl--base, --hl--l, --hl--xl |
LH (line-height) |
--lh--xs, --lh--s, --lh--m, --lh--l, --lh--xl |
LTS (letter-spacing) |
--lts--xs, --lts--s, --lts--base, --lts--l, --lts--xl |
各トークンの詳細やスケーリング規則は タイポグラフィトークン を参照してください。
Lism CSS で使用するフォントファミリー、フォントサイズ、行間などのタイポグラフィ関連のデザイントークンについて解説します。
RADIUS
| トークン値 | 変数 | クラス | 初期値 |
|---|---|---|---|
10 |
--bdrs--10 |
-bdrs:10 |
0.25rem |
20 |
--bdrs--20 |
-bdrs:20 |
0.375rem |
30 |
--bdrs--30 |
-bdrs:30 |
0.625rem |
40 |
--bdrs--40 |
-bdrs:40 |
1rem |
50 |
--bdrs--50 |
-bdrs:50 |
1.5rem |
99 |
--bdrs--99 |
-bdrs:99 |
99rem |
増分が+0.125rem → +0.25rem → +0.375rem → +0.5remと一定量ずつ大きくなっていく、二階等差数列のスケールです。小さいサイズほど刻みが細かく、大きいサイズほど大胆に変化します。
<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>SHADOW
| トークン値 | 変数 | クラス |
|---|---|---|
10 |
--bxsh--10 |
-bxsh:10 |
20 |
--bxsh--20 |
-bxsh:20 |
30 |
--bxsh--30 |
-bxsh:30 |
40 |
--bxsh--40 |
-bxsh:40 |
50 |
--bxsh--50 |
-bxsh:50 |
--bxsh--{token}は、要素に近い薄い影と、主となる影の2層で構成されます。近い側の影には、1段小さいシャドウサイズと、--shcを半分の濃さにした--shc--nearを使います。
| 変数 | 値 |
|---|---|
--bxsh--10 |
var(--shsz--5) var(--shc--near), var(--shsz--10) var(--shc) |
--bxsh--20 |
var(--shsz--10) var(--shc--near), var(--shsz--20) var(--shc) |
--bxsh--30 |
var(--shsz--20) var(--shc--near), var(--shsz--30) var(--shc) |
--bxsh--40 |
var(--shsz--30) var(--shc--near), var(--shsz--40) var(--shc) |
--bxsh--50 |
var(--shsz--40) var(--shc--near), var(--shsz--50) var(--shc) |
構成変数の初期値は次の通りです。
| 構成変数 | 初期値 |
|---|---|
--shc |
var(--shadow)(hsl(220 2% 4% / 8%)) |
--shc--near |
color-mix(in srgb, var(--shc), transparent 50%) |
--shsz--5 |
0px 0px 1px |
--shsz--10 |
0px 1px 3px |
--shsz--20 |
0px 2px 6px |
--shsz--30 |
0px 4px 12px |
--shsz--40 |
0px 8px 24px |
--shsz--50 |
0px 16px 48px |
シャドウサイズは10以降、オフセットとぼかしが毎段2倍になるスケールです。ぼかしは常にオフセットの3倍で統一されています。5はオフセットなしの小さなぼかしだけの段階で、--bxsh--10の近い側の影に使われます。
<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>SPACE
| トークン値 | 変数 | 概算値 |
|---|---|---|
5 |
--s5 |
4px |
10 |
--s10 |
8px |
15 |
--s15 |
12px |
20 |
--s20 |
16px |
25 |
--s25 |
20px |
30 |
--s30 |
24px |
35 |
--s35 |
32px |
40 |
--s40 |
40px |
45 |
--s45 |
52px |
50 |
--s50 |
64px |
60 |
--s60 |
104px |
70 |
--s70 |
168px |
主軸(--s10 〜 --s70)はフィボナッチ数列 ((0, 1,) 1, 2, 3, 5, 8, 13, 21, …) に基づくスケールで、タイポグラフィの縦のリズムを作るための設計です。--s-unit(デフォルト 0.5rem ≒ 8px)を基準単位として算出しています。
水平方向の gap や padding は縦のリズムに縛られなくてよいため、50 までは主軸トークン間を補う 5 刻みの中間値 --s5 (4px) / --s15 (12px) / --s25 (20px) / --s35 (32px) / --s45 (52px) を追加しています。
51015202530354045506070:root,.set--s { /* 余白単位 ≒ 8px */ --s-unit: 0.5rem;
/* n * 10 はフィボナッチ数列スケール */ --s10: var(--s-unit); /* ≒ 8px */ --s20: calc(var(--s-unit) * 2); /* ≒ 16px */ --s30: calc(var(--s-unit) * 3); /* ≒ 24px */ --s40: calc(var(--s-unit) * 5); /* ≒ 40px */ --s50: calc(var(--s-unit) * 8); /* ≒ 64px */ --s60: calc(var(--s-unit) * 13); /* ≒ 104px */ --s70: calc(var(--s-unit) * 21); /* ≒ 168px */
/* 50 までは 5 刻みの中間値で間を埋める(水平方向の gap / padding 用) */ --s5: calc(var(--s-unit) * 0.5); /* ≒ 4px */ --s15: calc(var(--s-unit) * 1.5); /* ≒ 12px */ --s25: calc(var(--s-unit) * 2.5); /* ≒ 20px */ --s35: calc(var(--s-unit) * 4); /* ≒ 32px */ --s45: calc(var(--s-unit) * 6.5); /* ≒ 52px */}
.set--s { --s-unit: 0.5em;}余白トークンは、padding, margin, gap 系のすべての Property Class で利用できます。詳細は Property Class の一覧表を参照してください。
また、set--s クラスを使うと --s-unit が 0.5em に切り替わり、余白を現在のフォントサイズ基準で再計算できます。
--fz--base を clamp() 等を使って流体値にしているサイトで、余白もフォントサイズ基準にして流体的に変化させたい場合は、:root で --s-unit: calc(var(--fz--base) * 0.5); のように上書きしてください。
参考資料: タイポグラフィと余白のスケーリング設計について
OPACITY
| トークン値 | 変数 | クラス | 初期値 |
|---|---|---|---|
mp |
--o--mp |
-o:mp |
0.9 |
p |
--o--p |
-o:p |
0.8 |
pp |
--o--pp |
-o:pp |
0.6 |
ppp |
--o--ppp |
-o:ppp |
0.4 |
音楽の強弱記号(piano 系列)に由来します。p(piano / 弱く)の反復回数が多いほど透明度が増す命名です。
(mezzo-piano/piano/pianissimo/pianississimo)
mp: ロレム・イプサムの座り雨。目まぐるしい文章の流れの中で、それは静かに歩く仮の言葉です。
p: ロレム・イプサムの座り雨。目まぐるしい文章の流れの中で、それは静かに歩く仮の言葉です。
pp: ロレム・イプサムの座り雨。目まぐるしい文章の流れの中で、それは静かに歩く仮の言葉です。
ppp: ロレム・イプサムの座り雨。目まぐるしい文章の流れの中で、それは静かに歩く仮の言葉です。
<p class="-o:mp">mp: Lorem ipsum ...</p><p class="-o:p">p: Lorem ipsum ...</p><p class="-o:pp">pp: Lorem ipsum ...</p><p class="-o:ppp">ppp: Lorem ipsum ...</p><Text o="mp">mp: Lorem ipsum ...</Text><Text o="p">p: Lorem ipsum ...</Text><Text o="pp">pp: Lorem ipsum ...</Text><Text o="ppp">ppp: Lorem ipsum ...</Text>SIZE
コンテンツサイズ用のトークンです。
| トークン値 | 変数 |
|---|---|
xs |
--sz--xs |
s |
--sz--s |
m |
--sz--m |
l |
--sz--l |
xl |
--sz--xl |
max-sz, .is--wrapper 等で使用できます。