デザイントークンドキュメントの全面改訂:タブナビゲーション導入と「デフォルト値」列の廃止

shoelace-style/webawesome

Web Awesomeのデザイントークンドキュメントが大きく刷新され、サイドバーの整理・タブナビゲーションの追加・各トークンへの説明文の付与が行われました。また、保守上の問題があった「Default Value」列が全トークンテーブルから削除されています。

背景

これまで /docs/tokens/* 配下には、borderscolorshadows など各カテゴリのページがサイドバーに個別に並んでいました。この構成はサイドバーを肥大化させ、カテゴリをまたいでトークンを比較・探索する際に多くのコンテキストスイッチを強いていました。同時に、各トークンテーブルに設けられていた「Default Value」列は、CSS関数を多用した値の計算式が長くなりがちで視認性が悪く、カスタムテーマを使用するユーザーにとっては実態と乖離した情報となっていました。

PR本文では「Default Value を削除したのは正しい判断か」を著者自身が問いかけており、この判断がトレードオフを含む設計変更であることが示されています。関連する #2249 ではテーマ全体のドキュメント改訂が並行して進められており、本PRはその一部をなす変更です。

技術的な変更

/docs/tokens/index.njk のレイアウト変更が今回の構造改革の中心です。layout: docs から layout: page-outline に変更され、wide: true が追加されたことでページが横幅を広く使えるようになりました。あわせて <wa-divider> で区切りを設けた後、「Using Design Tokens」セクションが新設され、var() 関数での使い方をCSSとインラインスタイルの両方で示す具体的なコード例が追加されています。

トークン一覧テーブルの構造が Markdown のパイプテーブルから <wa-scroller> で包んだ HTML テーブルへと移行されました。各行には id="token-wa-*" 属性が付与され、特定トークンへの直接リンクが可能になっています。列構成は「Default Value」を廃し「Description」を追加する形に変わっています。

変更前の列構成:

| Custom Property       | Default Value                    | Preview |

変更後の列構成:

<tr><th>Custom Property</th><th>Description</th><th>Preview</th></tr>

docs/assets/styles/docs.css では、グローバルに定義されていた .swatch スタイルが削除され、各トークンページのスコープ内スタイルとして再定義されています。transitions.md では .swatch.transition-swatch にリネームされ、overflow: hidden の追加と :focus 疑似クラスへの対応も加えられました。また focus.md 内のクロスリンクが /docs/tokens/color/#interactions から ?active_tab=color 形式に変更されており、タブナビゲーションによるページ内遷移への対応が見られます。

設計判断

「Default Value」列の廃止は、正確性と保守性を優先した判断です。Web Awesomeのトークン値には calc(var(--wa-space-scale) * 0.125rem)round(calc(2 * var(--wa-form-control-padding-block) + 1em * var(--wa-form-control-value-line-height)), 1px) のようなCSS関数の連鎖が多く含まれており、テーブルセルに収めると可読性が著しく下がります。さらにカスタムテーマ利用者にはこれらの値が実態と一致しないため、情報として誤解を招くリスクがありました。

<wa-scroller> によるHTMLテーブルへの移行は、Markdownパイプテーブルでは困難だったセル内HTMLレンダリング(プレビューswatchやコード整形)とid属性付与の両立を実現するための選択です。各行に id="token-wa-*" を付与することで、ドキュメント間のディープリンクが可能になっています。

.swatch スタイルのグローバル定義廃止は、各トークンページが独自のプレビュー要件を持つことへの対応です。transitions.md がアニメーション専用の .transition-swatch を必要とするように、ページごとに異なるswatch定義が必要なケースに対して、グローバルスタイルでの一括管理よりもスコープ内定義を選んでいます。

まとめ

この変更は、デザイントークンドキュメントをサイドバーの散在ページから集約されたタブ型ページへと再編し、「Default Value」列をDescription列に置き換えることで正確性と可読性を両立させた刷新です。各トークン行へのid付与という細部の変更も含め、ドキュメントを参照用リファレンスとして機能させるための一貫した設計判断が反映されています。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
7eb7d9c0

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

品質レビュー結果

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

Review Criteria:

記事構成 ✓ PASS

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

リード文(総論)、背景・技術的な変更・設計判断(各論)、まとめ(結論)という「総論→各論→結論」の構成が明確に適用されています。特に、PRで議論された設計判断を独立したセクションとして取り上げており、変更の意図が深く伝わる良い構成です。

カスタムMarkdown構文 ✓ PASS

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

ファイル名付きのシンタックスハイライト(`言語:ファイルパス`)およびPR番号のリンク記法(`[#2249](URL)`)が正しく使用されています。

対象読者への適合性 ✓ PASS

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

デザイントークン、CSSカスタムプロパティ、Nunjucksテンプレートといった専門用語を前提としており、対象読者であるエンジニアに適した技術レベルと表現で書かれています。

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

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

各セクションが総論から各論へと展開され、各段落の冒頭にトピックセンテンスが置かれているため、非常に読みやすい構造です。1段落1トピックの原則も守られています。

Diff内容との照合 ✓ PASS

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

記事内で引用されているコードブロック(MarkdownテーブルからHTMLテーブルへの変更、CSSクラス名のリネームなど)は、提供されたDiff情報と正確に一致しています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「デザイントークン」「パイプテーブル」「スコープ内スタイル」「ディープリンク」など、文脈に応じた技術用語が正確かつ適切に使用されています。

説明の技術的正確性 ✓ PASS

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

「Default Value列の廃止理由」や「HTMLテーブルへの移行理由」など、技術的な変更に対する説明は論理的であり、Diff内容とも整合性が取れています。

事実の突合 ✓ PASS

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

記事内のすべての主張(サイドバーの肥大化、Default Value列の保守性問題、関連PRの存在など)は、PRのDescriptionやDiff内容によって裏付けられており、ハルシネーションは検出されませんでした。

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

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

PR番号(#2321)および関連PR番号(#2249)が正確に記載されています。

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

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

記事のタイトルは、PRの主題である「デザイントークンドキュメントの全面改訂」を的確に要約し、主要な変更点(タブナビゲーション導入、Default Value列廃止)を明示しており、内容と完全に一致しています。

外部知識の正確性 ✓ PASS

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

記事はPRで提供された情報のみに基づいており、バージョンサポート状況やリリース日程など、PR外の知識を持ち込んでいません。

時間表現の正確性 ✓ PASS

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

完了した変更に対して「〜が行われました」といった過去形の表現が使われており、時間的な表現はPRの状況と一致しています。