Skip to content

Latest commit

 

History

History
119 lines (87 loc) · 7.18 KB

File metadata and controls

119 lines (87 loc) · 7.18 KB

あえて tc39.es と変えている点

本文 (.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)**に取り、文法シンボルをもう少し浮かせるための調整。

1. 本文 line-height(1.65 / tc39 1.5

  • 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.cssmain[data-pagefind-body](コメントにも 「tc39 uses 1.5 — we keep the slightly airier measure deliberately」と明記)。

2. 本文色(lume は --fg 独自パレット)

モード tc39.es (--foreground-color) lume (--fg)
light #111 #111827
dark #fcfcfc #e5e7eb
  • tc39.es は chromeless なので地の文をほぼ純黒/純白に振っている。
  • lume はヘッダ/サイドバー/フッタ(chrome)と同じ --fg を本文にも 使い、ページ全体で配色を統一する方針。tc39 とは light で青み寄りの暗 グレー、dark で純白より落とした明度になる。

emu-nt リンク色は「地の文との浮き具合」を独自に調整

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(コメントに算出根拠を記載)。

3. <emu-const> / <emu-gprose> のフォント(system sans 維持)

  • 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-constemu-gprosefigcaption 程度と少なく、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" を足すだけでよい。

4. 節番号 .secnum のフォント(本文フォント維持)

  • 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.cssh1 .secnum / aside.toc li + li (コメントに「lume keeps the number in the sans body font (by design)」)。

補足: ページ chrome 全体

ヘッダ/サイドバー/右 TOC/フッタは tc39.es ではなく(旧)Nextra 由来の デザインを踏襲している。これは Nextra → Lume 移行で同じ DOM/見た目を 再現するという方針そのものなので、本ドキュメントの「本文タイポグラフィの 意図的相違」とは別軸。経緯は docs/lume_migration_history.md を参照。