コンポーネントドキュメントでProバッジUIの表示を統一

shoelace-style/webawesome

Web Awesomeのコンポーネントドキュメントで、Pro機能を示すバッジ表示が統一され、説明付きツールチップを備えたproBadgeマクロに置き換えられました。これにより、ユーザーはProバッジにカーソルを合わせるだけで、そのコンポーネントがPro機能である理由を確認できるようになります。

背景

これまで、コンポーネントドキュメントのProバッジは <wa-badge class="pro">Pro</wa-badge> として直接記述されていました。この実装では、バッジ自体は表示されるものの、なぜそのコンポーネントがPro機能なのかという説明が不足していました。ユーザーがProコンポーネントの意味を理解するには、別途ドキュメントを参照する必要があり、UXの観点から改善の余地がありました。

本PRは、バッジ表示の実装をマクロ化することで、一貫した表示とツールチップによる説明機能を提供します。

技術的な変更

packages/webawesome/docs/_layouts/component.njk において、Proバッジの表示方法が変更されました。

変更前:

{% if isProComponent %}
  <wa-badge class="pro">Pro</wa-badge>
{% endif %}

変更後:

{% from "pro-badge.njk" import proBadge %}
...
{% if isProComponent %}
  {{ proBadge({ description: (component.tagName | stripPrefix) | capitalize ~ " requires access to Web Awesome Pro" }) }}
{% endif %}

proBadgeマクロ は、コンポーネント名から自動的に説明文を生成します。stripPrefixフィルタでプレフィックスを除去し、capitalizeで先頭を大文字化した後、"requires access to Web Awesome Pro"という定型文を付加します。例えば、wa-advanced-buttonというコンポーネントの場合、"Advanced Button requires access to Web Awesome Pro"というツールチップが表示されます。

この変更により、各コンポーネントのドキュメントで個別にバッジHTMLを記述する必要がなくなり、マクロの実装を更新するだけで全てのProバッジの表示を一括で変更できるようになりました。

設計判断

マクロベースの実装 が採用されました。直接HTMLを記述する方式から、Nunjucksのマクロシステムを活用した実装へ移行することで、DRY(Don't Repeat Yourself)原則に従った保守性の高いコードベースが実現されています。

ツールチップの説明文は、コンポーネント名から動的に生成される設計です。これにより、各コンポーネントのドキュメントでカスタムの説明文を記述する必要がなく、コンポーネント名さえ適切であれば自動的に意味のある説明が提供されます。この自動生成アプローチは、ドキュメント作成の負担を軽減しつつ、一貫性のある表現を保証します。

添付のスクリーンショットからは、ツールチップが視覚的に明確で、ユーザーが直感的に理解できるUIになっていることが確認できます。

本PRは、ドキュメントシステムの保守性とユーザビリティの両面を改善する、実装パターンの標準化を進めた変更です。Proバッジという頻出要素をマクロ化することで、将来的なデザイン変更への対応コストを削減し、コンポーネント固有の説明を自動生成する仕組みでドキュメント作成の効率を向上させています。

記事メタデータ

Generated by:
Claude Sonnet 4.5 for DiffDaily

この記事は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リンク記法の正確性

ファイル名付きシンタックスハイライト(```njk:packages/webawesome/docs/_layouts/component.njk)とGitHubのPRリンク記法([#2056](URL))が正しく使用されています。

対象読者への適合性 ✓ PASS

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

「Nunjucks」「マクロ」「DRY原則」といった用語を前提としており、専門知識を持つエンジニアという対象読者に適した技術レベルと表現で書かれています。

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

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

各セクションが要旨から始まり、各段落がトピックセンテンスで始まるなど、パラグラフ・ライティングの原則が遵守されています。これにより、記事の構造が明快で読みやすいです。

Diff内容との照合 ✓ PASS

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

記事内の変更前後のコードブロックは、提供されたDiffの内容を正確に反映しています。ファイルパスの指定も正確です。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「マクロ」「ツールチップ」「Nunjucks」などの技術用語が、PRの文脈に沿って正確かつ適切に使用されています。

説明の技術的正確性 ✓ PASS

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

マクロによる説明文の動的生成の仕組みについて、Diffのコード `(component.tagName | stripPrefix) | capitalize ~ ...` を基に技術的に正確な解説がなされています。

事実の突合 ✓ PASS

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

記事の主張はすべてPRのタイトル、説明、Diffの内容に基づいており、ハルシネーション(捏造)は見られません。「設計判断」セクションはPRに明記されていませんが、コード変更から導かれる妥当な技術的洞察であり、許容範囲です。

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

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

PR番号(#2056)やファイルパスなどの固有名詞はすべて正確に記載されています。

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

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

記事のタイトルは、PRのタイトル「Docs: Sync Up Pro Badge UI on Component Docs」の内容を的確に要約しており、主題が一致しています。

外部知識の正確性 ✓ PASS

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

PR情報に含まれない外部知識(バージョン情報、リリース予定など)の記述はなく、提供された情報源に忠実です。

時間表現の正確性 ✓ PASS

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

「これまで」といった時間表現が変更の前後関係を正しく反映しており、事実に即しています。