フォントサイズスケールに `3xs`(10px)と `5xl`(66px)を追加

shoelace-style/webawesome

Web Awesomeのタイポグラフィスケールが両端に拡張され、--wa-font-size-3xs(10px)と --wa-font-size-5xl(66px)の2つのデザイントークンが全テーマに追加されました。これに合わせて、関連するすべてのユーティリティクラスにも新サイズが追加されています。

背景

Issue #1606 において、既存の --wa-font-size-* トークンのスケールでは実際のUIニーズをカバーできないケースが報告されていました。具体的には、ラベルやメタデータ向けのより小さなフォントサイズと、大見出しや視覚的インパクトを持たせるための特大サイズの両方が不足していました。同 Issue では --wa-space-5xl の追加要望も含まれており、スペーシングスケールの拡張(wa-gap-5xl など)は既に対応済みでした。本PRはその残タスクとして、フォントサイズスケールを補完するものです。

技術的な変更

--wa-font-size-3xs--wa-font-size-5xl の2トークンが、awesome.cssdefault.cssshoelace.css の3テーマすべてに追加されました。既存スケールの比率である 1.125 を一貫して適用することで、スケール全体の連続性が保たれています。

各トークンの定義は以下の通りです:

--wa-font-size-3xs: round(calc(var(--wa-font-size-2xs) / 1.125), 1px); /* 10px */
--wa-font-size-5xl: round(calc(var(--wa-font-size-4xl) * 1.125 * 1.125), 1px); /* 66px */

小さい側の 3xs2xs(11px)を 1.125 で割り、大きい側の 5xl4xl(52px)に 1.125 を2乗して掛けることで算出されます。round(..., 1px) による整数ピクセルへの丸め処理も他のトークンと統一されています。

src/styles/utilities/text.css には 3xs5xl 向けのユーティリティクラスが追加されました。各サイズに対して、wa-font-size-*wa-body-*wa-heading-*wa-caption-*wa-longform-* の5プレフィックスがまとめて定義される既存パターンに従い、2サイズ分10クラスが追加されています。

.wa-font-size-3xs,
.wa-body-3xs,
.wa-heading-3xs,
.wa-caption-3xs,
.wa-longform-3xs {
  font-size: var(--wa-font-size-3xs);
}

.wa-font-size-5xl,
.wa-body-5xl,
.wa-heading-5xl,
.wa-caption-5xl,
.wa-longform-5xl {
  font-size: var(--wa-font-size-5xl);
}

設計判断

3xs および 2xs については、アクセシビリティ上の注意点がドキュメントに明示されました。12px未満のサイズは一般的な可読性を下回るため、ラベルやメタデータなど非本質的なUIに限定して使用するよう、typography.mdtext.md の両ドキュメントに警告ブロックが追加されています。

:::info
`3xs` and `2xs` fall below typical legibility. It's best to keep their use to non-essential UI only (e.g. labels, metadata) to maintain accessibility.
:::

トークンとユーティリティクラスを提供しながらも、使用を制約しない方針を採りつつ、ドキュメントによるガイダンスで実装者の判断を促す設計です。また、4xl の定義に存在していた round() 関数の第2引数(1px)の欠落が今回あわせて修正されており、スケール定義の一貫性も改善されています。

まとめ

フォントサイズスケールの両端を拡張することで、ラベル・メタデータから大型見出しまでカバーできる表現力が得られます。スケールの比率・命名規則・ユーティリティクラスの生成パターンという既存の設計を踏襲した拡張であり、既存コードへの影響なく新しいサイズを選択肢として追加しています。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
15a7d660

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
承認済み
Review Count:
1回
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

Title, Context, Technical Detailの存在と明確さ

リード文(総論)→背景・技術的な変更・設計判断(各論)→まとめ(結論)の3部構成が明確に適用されています。特に、任意項目である「設計判断」セクションが含まれており、変更の背景にある思想まで解説できている点が優れています。

カスタムMarkdown構文 ✓ PASS

シンタックスハイライト・GitHubリンク記法の正確性

ファイル名付きシンタックスハイライト(例: ```css:filepath)、Issue番号([#1606](URL))、PR番号([#2154](URL))のリンク記法がすべて正しく使用されています。

対象読者への適合性 ✓ PASS

エンジニア向けの適切な技術レベルと表現

「デザイントークン」「ユーティリティクラス」「スケール比率」といった専門用語を適切に使用しており、対象読者であるエンジニアに適した技術レベルと表現で書かれています。

パラグラフ・ライティング ✓ PASS

トピックセンテンス・1段落1トピック・段落長

各セクションが総論→各論の構成になっており、各段落はトピックセンテンスで始まっています。1段落1トピックの原則も守られており、段落長も適切で非常に読みやすいです。

Diff内容との照合 ✓ PASS

コードブロックとDiff内容の一致

記事内で引用されている3つのコードブロック(default.css, text.css, typography.md)は、提供されたDiffの内容と完全に一致しています。ファイルパスの指定も正確です。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「デザイントークン」「タイポグラフィスケール」「ユーティリティクラス」「round()」などの技術用語が、PRの文脈に沿って正確に使用されています。

説明の技術的正確性 ✓ PASS

技術的主張の正確性と論理性

スケール比率(1.125)の適用方法や、`round()`関数の引数欠落修正など、Diffから読み取れる技術的な詳細を正確に説明できています。

事実の突合 ✓ PASS

PR情報による主張の裏付け(ハルシネーション検出)

記事内のすべての主張(新トークンの追加、Issue番号、アクセシビリティに関する注意喚起など)は、PRのDescriptionやDiffの内容によって裏付けられています。ハルシネーションは検出されませんでした。

数値・固有名詞の確認 ✓ PASS

PR番号・コミットID・バージョン等の正確性

PR番号(#2154)、Issue番号(#1606)、フォントサイズ(10px, 66px)、スケール比率(1.125)など、すべての数値と固有名詞が正確です。

タイトル・説明との一致 ✓ PASS

記事タイトル・説明とPR内容の一致

記事のタイトル「フォントサイズスケールに `3xs`(10px)と `5xl`(66px)を追加」は、PRの主題「Extend Typography's Font Size Scale + Utilities」を具体的かつ正確に要約しています。

外部知識の正確性 ✓ PASS

PRに記載のない外部知識(LTS、サポート状況など)の不使用

記事の内容はすべてPR情報(Description, Diff)に基づいており、バージョンサポート情報やリリース日程など、PRに記載のない外部知識の追記はありません。

時間表現の正確性 ✓ PASS

時間表現がPR情報と一致しているか

「スペーシングスケールの拡張...は既に対応済みでした」という時間表現は、changelog.mdのDiff内容から推測できる前後関係と一致しており、正確です。