本文 (.ecma-spec 配下) のタイポグラフィ/配色は基本的に tc39.es
に寄せているが、こちらは あえて tc39.es と揃えずに独自のまま維持している点
をまとめる。 将来「tc39 と違う=バグ」と誤解して直されないための備忘録。
参照:
- tc39.es CSS:
https://tc39.es/ecma262/assets/css/ecmarkup.css - lume CSS:
lume/styles.css
| 項目 | tc39.es | lume(維持) | 理由 |
|---|---|---|---|
| 本文 line-height | 1.5 |
1.65 |
少し広めの行送りを好みで採用 |
| 本文色(light) | #111 |
#111827(--fg) |
lume の chrome と共通パレットに統一 |
| 本文色(dark) | #fcfcfc |
#e5e7eb(--fg) |
同上(純白より少し落とした明度) |
emu-nt a 通常リンク色 |
#333 / #d0d0d0 |
#434343 / #aeaeae |
地の文との比を tc39 より少し高め ≈1.8:1(§2) |
<emu-const> / <emu-gprose> font-family |
'IBM Plex Sans' |
system sans(--font-sans) |
Plex Sans は webfont 未読み込み |
節番号 .secnum のフォント |
monospace(tnum) |
本文フォント(sans/serif) | 数字を本文と馴染ませる意図 |
注: font-size 18px・IBM Plex Serif / Mono の webfont・
slashed-zero・ 見出しスケール・emu-xrefのリンク色・emu-ntの hover 青などは tc39 に 揃えている。ここに挙げたのは意図的 に外したもの。なおemu-ntの通常時のリンク色は tc39 と絶対値が 異なる。これは §2 のとおり、地の文とのコントラスト比を tc39(約 1.5:1)より **少しだけ高め(≈1.8:1)**に取り、文法シンボルをもう少し浮かせるための調整。
- tc39.es:
body { line-height: 1.5 } - lume:
main[data-pagefind-body] { line-height: 1.65 }
font-size は 18px に揃えた(tc39 と同じ)が、行送りだけは 1.65 を維持。 計算後の行高は lume 29.7px / tc39 27px。
該当: lume/styles.css の main[data-pagefind-body](コメントにも 「tc39 uses
1.5 — we keep the slightly airier measure deliberately」と明記)。
| モード | tc39.es (--foreground-color) |
lume (--fg) |
|---|---|---|
| light | #111 |
#111827 |
| dark | #fcfcfc |
#e5e7eb |
- tc39.es は chromeless なので地の文をほぼ純黒/純白に振っている。
- lume はヘッダ/サイドバー/フッタ(chrome)と同じ
--fgを本文にも 使い、ページ全体で配色を統一する方針。tc39 とは light で青み寄りの暗 グレー、dark で純白より落とした明度になる。
emu-nt a の通常リンク色に tc39 と同じグレー(#333 / #d0d0d0)を
そのまま使うと、lume は地の文色が違うぶん「地の文 ↔ emu-nt」コントラスト 比が
tc39(約 1.5:1)からずれる:
| 旧(tc39 グレー流用) | 地の文 | emu-nt | 比 |
|---|---|---|---|
| lume light | #111827 |
#333 |
1.40 : 1 |
| lume dark | #e5e7eb |
#d0d0d0 |
1.25 : 1 |
加えて tc39 の約 1.5:1 自体が lume の地の文に対しては少し平坦に感じる ため、文法シンボルをもう少しだけ浮かせる方針で比を 約 1.8:1 に 引き上げた(tc39 より意図的に少し高め):
| 現行(やや強調) | 地の文 | emu-nt | 比 | tc39 の比 |
|---|---|---|---|---|
| lume light | #111827 |
#434343 |
1.79 : 1 | 1.49 : 1 |
| lume dark | #e5e7eb |
#aeaeae |
1.79 : 1 | 1.50 : 1 |
(tc39 の比は light #111↔#333=1.49、dark #fcfcfc↔#d0d0d0=1.50。
現行はそれより少し高い ≈1.8:1。)
hover の青(#239dee / #80cafb)は tc39 と同一のまま。地の文↔背景・
emu-nt↔背景はいずれも 11〜19:1 と高く、可読性/アクセシビリティ上の 問題はない。
該当: 本文色は lume/styles.css の :root / html.dark の --fg、 emu-nt
調整色は .ecma-spec emu-nt a(コメントに算出根拠を記載)。
- tc39.es: どちらも
font-family: 'IBM Plex Sans', sans-serif。 - lume:
var(--font-sans)(-apple-system等の system sans)。
IBM Plex Serif / Mono は webfont として読み込んだが、Plex Sans は読み
込んでいない。Sans を使うのは emu-const・emu-gprose・figcaption
程度と少なく、system sans で十分近いと判断してフォント追加を見送った。
small-caps / uppercase / italic などの装飾は tc39 に合わせてある。
該当: lume/styles.css の .ecma-spec emu-const /
.ecma-spec emu-grammar emu-gprose(コメントに「We keep our system-sans token
(--font-sans) rather than loading IBM Plex Sans」)。
将来 Plex Sans を入れて完全一致させたくなったら @font-face 追加 +
--font-sans の先頭に "IBM Plex Sans" を足すだけでよい。
- tc39.es: グローバル
.secnumを monospace(font-feature-settings:"tnum") でレンダリング。 - lume: 節番号を本文フォント(sans / serif)のまま表示し、monospace に
しない。見出し内の
h1 .secnumにも monospace 指定を入れていない。
数字を等幅にせず本文と馴染ませる意図。なお tc39 の TOC は monospace の .secnum
を持つぶん行ボックスが 2x ディスプレイで約 0.5px 高くなるため、 lume 側は TOC
の行間(aside.toc li + li)に +0.5px を足してリズムを
揃えている(これも本項の派生対応)。
該当: lume/styles.css の h1 .secnum / aside.toc li + li (コメントに「lume
keeps the number in the sans body font (by design)」)。
ヘッダ/サイドバー/右 TOC/フッタは tc39.es ではなく(旧)Nextra 由来の
デザインを踏襲している。これは Nextra → Lume 移行で同じ DOM/見た目を
再現するという方針そのものなので、本ドキュメントの「本文タイポグラフィの
意図的相違」とは別軸。経緯は docs/lume_migration_history.md を参照。