テキスト整列ユーティリティの追加とクラス名フラット化

shoelace-style/webawesome

WebAwesome v3.7.0 では、テキスト配置を行うユーティリティクラスが四つ新規追加され、既存のラップ系ユーティリティの名前が平坦化されました。これにより、書字方向に依存しない論理的な text‑align が簡潔なクラス名で利用でき、同時に過去のクラス名は互換性を保ちつつ段階的に廃止できます。

背景

WebAwesome のテキスト系ユーティリティは従来、wa-text-wrap-* のようにプロパティ名を前置した冗長な命名が主流でした。PR #2404 のレビューで「wa-text-{property}-{value} は可読性が低い」という指摘があり、主要デザインシステム(Bootstrap、Tailwind 等)を調査した結果、値だけで表すフラットな名前空間 が広く採用されていることが判明しました。そこで、wa-text-* という単一プレフィックスに統一し、text-align 用の logical 値(start/end)を追加する方向へ設計がシフトしました。

技術的な変更

新規テキスト配置ユーティリティ

  • wa-text-starttext-align: start
  • wa-text-centertext-align: center
  • wa-text-endtext-align: end
  • wa-text-justifytext-align: justify

これらは 論理的text-align 値を使用し、文書の directionltr でも rtl でも自動的に適切な配置に切り替わります。実装は packages/webawesome/src/styles/utilities/text.css に新しいセレクタ .wa-text-start.wa-text-justify を追加する形で行われ、他のユーティリティと同様に @supports でフォールバックが提供されます。

ラップユーティリティのクラス名フラット化

  • wa-text-wrap-nowrapwa-text-nowrap
  • wa-text-wrap-balancewa-text-balance
  • wa-text-wrap-prettywa-text-pretty

元の wa-text-wrap-*エイリアス として残存し、ドキュメント上は「deprecated」マークが付与されています。text.css では新しいクラス名と旧クラス名の両方に同一の text-wrap ルールが適用され、互換性が維持されています。

ドキュメント更新

  • docs/docs/utilities/text.mdAlignment セクションが新設され、各クラスのプレビューが掲載されました。
  • 旧ラップ系クラスの表は新しい名前に差し替え、エイリアス情報と廃止告知を追記しました。
  • docs/docs/resources/changelog.md では新規クラスとクラス名変更がリスト化され、バージョン 3.7.0 の変更点として明示されています。

設計判断

今回の変更は 「フラット命名」 を採用することで、クラス名の長さと冗長さを削減し、UI 開発時の可読性を向上させました。設計上のトレードオフとしては、既存ユーザーへの影響を最小化するために旧クラス名をエイリアスとして残した点です。このアプローチは後方互換性を保ちつつ、将来的なメジャーリリースでのクラス名統廃合を容易にします。また、text-align に logical 値を採用したことは、国際化対応を自動化する設計上の利点を提供します。UI フレームワーク全体で命名規則を統一する方針が明確に示されたと言えます。

まとめ

本 PR は、テキスト配置ユーティリティの追加とクラス名の平坦化という二本柱で、可読性・国際化・後方互換性 を同時に高めました。新しい wa-text-* 系は論理的 text-align をシンプルに適用でき、旧ラップ系クラスはエイリアスとして残すことで既存実装への影響を回避しています。これにより、開発者はより直感的にテキストユーティリティを使用でき、次期メジャーでのクラス名整理もスムーズに進むでしょう。

記事メタデータ

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

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

品質レビュー結果

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

Review Criteria:

記事構成 ✓ PASS

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

リード文、背景、技術的詳細、設計判断(任意)、まとめの3部構成が明確に存在し、各セクションが総論→各論→結論の流れになっている。

カスタムMarkdown構文 ⚠ WARNING

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

コードブロックは使用されていないためシンタックスハイライトの問題はなし。GitHubリンクは PR #2403 の形式で記載されており、求められる `[#2403](URL)` の形式と異なるため警告とした。

対象読者への適合性 ✓ PASS

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

対象は Web 開発者・デザイナー向けで、専門用語や実装詳細が中心。初心者向けの過剰な説明はなく、適切なレベルで書かれている。

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

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

各セクションの冒頭段落が要旨を示し、以降の段落が1トピックに絞られ、トピックセンテンスで始まっている。段落長も6文未満で空行で区切られている。

Diff内容との照合 ✓ PASS

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

記事中の変更点(新規テキスト配置クラス、ラップユーティリティのリネーム、ドキュメント更新)は Diff に記載された内容と一致している。コード例は Diff の内容を正しく反映している。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「logical values」「text-align」「wrap utilities」など、PR で使用されている用語と一致し、誤用は見られない。

説明の技術的正確性 ✓ PASS

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

論理的 text‑align が LTR/RTL で自動適応する旨や、エイリアス保持による後方互換性の説明など、PR と Diff が裏付ける事実に基づいて正確に記述されている。

事実の突合 ✓ PASS

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

記事の全ての主張は PR タイトル・説明・Diff のコードに裏付けられており、推測や外部知識の付加はない。

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

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

PR 番号 #2403、バージョン 3.7.0 など数値は正確に記載されている。

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

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

記事タイトルは PR の内容(テキスト整列ユーティリティの追加とフラット命名)を日本語で適切に要約している。

外部知識の正確性 ✓ PASS

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

LTS、リリーススケジュール等、PR に記載されていない外部情報は一切記載されていない。

時間表現の正確性 ✓ PASS

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

時間表現は使用されておらず、PR の記述と齟齬はない。