Native Styles のテキスト要素拡張とリセット調整

shoelace-style/webawesome

Native Styles にテキスト系要素のデザインが追加入されたことで、blockquoteh6 などの表示がテーマと一貫した形に統一されました。この変更は、Prose ユーティリティで培ったタイポグラフィリズムを Native Styles へ移植し、HTML 標準要素だけで同等の体験を提供することを目的としています。

背景

従来、長文コンテンツ向けのリズムは wa-prose ユーティリティに限定されており、標準要素へは別途スタイルを当てる必要がありました。そこで、Native Styles がテキスト要素全体に同様のリズムと見た目を適用できるよう拡張されました。これにより、<blockquote><table> など、テーマだけで一貫したスタイルが保証され、利用者は追加クラスを意識せずに済むようになります。結果として、ドキュメントやブログ記事でのテーマ統合がシンプルになり、保守コストが削減されます。

技術的な変更

ドキュメント更新

packages/webawesome/docs/docs/utilities/native.md では、blockquoteul/olfiguretable の記述が追記・修正され、実際の外観とカスタムプロパティの説明が追加されました。例えば、blockquote の説明が「quiet color、leading border、larger font size」を含む形に変更され、リストマーカーが currentColor と不透明度で静かな表示になる旨が明記されています。これにより、開発者は変更点をすぐに把握でき、実装例も確認できます。

CSS 本体の拡張

packages/webawesome/src/styles/native.css では、以下のような差分が導入されています。

@@
-  h6 {
-    font-size: var(--wa-font-size-s);
-  }
+  h6 {
+    font-size: var(--wa-font-size-xs);
+  }
@@
-  blockquote {
-    padding: var(--wa-space-xl);
-
-    font-family: var(--wa-font-family-longform);
-    font-size: var(--wa-font-size-l);
-
-    border-inline-start: var(--wa-border-style) var(--wa-border-width-l) var(--wa-color-neutral-border-quiet);
-  }
+  blockquote {
+    padding: var(--wa-space-xl);
+
+    color: var(--wa-color-text-quiet);
+    font-family: var(--wa-font-family-longform);
+    font-size: var(--wa-font-size-larger);
+
+    border-inline-start: var(--wa-border-style) var(--wa-border-width-l) var(--wa-color-neutral-border-quiet);
+  }
@@
-  figcaption {
-    margin-block-start: var(--wa-space-xs);
-
-    color: var(--wa-color-text-quiet);
-    font-size: var(--wa-font-size-smaller);
-    line-height: var(--wa-line-height-condensed);
-  }
+  figcaption {
+    margin-block-start: var(--wa-space-xs);
+
+    color: var(--wa-color-text-quiet);
+    font-size: var(--wa-font-size-smaller);
+    line-height: var(--wa-line-height-condensed);
+  }
@@
-  ul > li::marker {
-    color: currentColor;
-  }
-
-  ol > li::marker {
-    color: currentColor;
-  }
+  ul > li::marker {
+    color: color-mix(in oklch, currentColor 40%, transparent);
+  }
+
+  ol > li::marker {
+    color: color-mix(in oklch, currentColor 60%, transparent);
+  }

上記変更点の主な効果は次の通りです。h6--wa-font-size-xs へ縮小され、本文との差別化が強化されます。blockquotequiet colorlarger font size が適用され、長文引用がテーマに溶け込みつつ視認性が向上します。figcaption が新規追加され、メディアキャプションが静かな色調と凝縮行間で補助的要素として機能します。ulol のマーカーは currentColor に不透明度を混合した色へ変更し、テキストカラーに追随しつつコントラストを最適化します。

Changelog の追記

packages/webawesome/docs/docs/resources/changelog.md でも同様の内容が記載され、リリースノートとしてユーザーに変更点が通知されます。変更は「Updated Native Styles for several text elements」項目にまとめられ、blockquoteh6tablethfigcaptionul/olmenu の具体的なスタイル変更が列挙されています。

設計判断

この PR は 既存の Native Styles キーを拡張 する方針を採用しています。新規クラスやユーティリティを追加する代わりに、標準要素向けの CSS カスタムプロパティを活用し、テーマ全体で統一的な外観を実現しています。blockquote のフォントサイズを --wa-font-size-larger にする点や、リストマーカーに color-mix を使う点は、テーマカラーの継承とアクセシビリティ を同時に満たす設計選択です。また、h6 のサイズ縮小は 後方互換性 を保ちつつ、テキスト階層の明確化 を意図しています。figcaption の追加は、HTML セマンティクス を尊重しながらスタイルを提供するという、ユーティリティに依存しない設計思想を示しています。

まとめ

本変更により、Native Styles がテキスト系要素のビジュアルをテーマに合わせて自動的に調整できるようになり、wa-prose の利便性を標準要素へ拡張しました。CSS の拡張はカスタムプロパティと色混合を活用し、後方互換性とアクセシビリティを両立させた点が特徴です。結果として、開発者は追加ユーティリティを意識せずに統一感のある長文コンテンツを提供でき、保守性と一貫性が向上します。

記事メタデータ

Generated by:
gpt-oss-120b for DiffDaily
LLM Trace:
00e9c71a

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

品質レビュー結果

Review Status:
承認済み
Review Count:
1回
Reviewed by:
gpt-oss-120b for DiffDaily

Review Criteria:

記事構成 ✓ PASS

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

リード文、背景、技術的な変更、まとめの各セクションが揃っており、総論→各論→結論の流れが明確です。

カスタムMarkdown構文 ✓ PASS

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

コードブロックは `language:filename` 形式で正しくハイライトされ、PR リンクは `[PR #2459](URL)` 形式で正しく記述されています。

対象読者への適合性 ✓ PASS

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

対象は開発者向けで、専門用語や実装詳細に焦点が当たっており、初心者向けの余計な説明はありません。

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

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

各セクションは総論パラグラフ→各論パラグラフ→結論パラグラフで構成され、段落はトピックセンテンスで始まり、1段落1トピック・6文以内に収まっています。

Diff内容との照合 ✓ PASS

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

記事中の CSS Diff は提供された Diff と一致しており、ファイル名・変更内容・行番号が正確に反映されています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「quiet color」「color‑mix」「currentColor」などの用語は PR 内容と一致し、誤用は見られません。

説明の技術的正確性 ✓ PASS

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

技術的主張はすべて PR の description および Diff で裏付けられており、因果関係も適切に説明されています。

事実の突合 ✓ PASS

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

記事の全ての事実は PR の情報(タイトル、説明、Diff)に基づいており、捏造や推測はありません。

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

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

PR 番号 #2459 などの数値は正確です。その他の数値や日時の記述もありません。

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

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

記事タイトルは PR の「Revise Native Styles」を具体化したもので、内容と矛盾していません。

外部知識の正確性 ✓ PASS

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

LTS、リリース日程など PR に無い外部情報は含まれていません。

時間表現の正確性 ✓ PASS

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

時間表現のずれはなく、PR の記述と一致しています。