https://github.com/shoelace-style/webawesome
`<wa-textarea>` の `disabled` 状態に視覚的スタイルが適用されていなかったバグを修正。`:has(:disabled)` セレクタでコンテナに `opacity: 0.5` と `cursor: not-allowed` を適用し、`<textarea>` 要素には `cursor: inherit` を追加することで、他のフォームコントロールと同等の無効状態表示を実現しました。
ドキュメントサイトのカードグリッド向けホバー演出を、`hover-grow`(スケールアニメーション)と `hover-emphasize-border`(ブランドボーダー+アウトラインリング)の2つのユーティリティクラスに集約しました。従来は `docs.css` にインライン記述されていた `box-shadow` ベースのリングが `outline` に置き換えられ、`wa-card` のエレベーション影を保持しながらホバー演出を適用できるようになっています。
ドキュメントの個別コンポーネントビューと一覧ページに重複していたバッジ描画ロジックを、共有Nunjucksマクロ `componentStatusBadges` に集約しました。Stableバッジのサイトテーマ適用除外(`class="preview"`)と「Since X.X」バッジの控えめな表示(`--wa-color-surface-lowered`)を統一し、30行のインライン実装を1行の呼び出しに置き換えています。
ドキュメントサイトのパンくずリストUIパターンを再設計し、クラス名を `.docs-subpage-crumbs` から `.page-breadcrumbs` へ改名。スタイル定義を `docs.css` から `utils.css` へ移動して再利用性を高めるとともに、`color-mix(in oklab, ...)` による半透明ティントを採用し任意のサーフェスレベルで機能するよう視覚的な改善を実施しました。
ドキュメント全体に分散していた「Web Awesome Pro」告知用コールアウトのスタイルを `utils.css` の単一ルールに集約し、インラインスタイルや外部スタイルシートへの依存を排除。また `:::pro` Markdownディレクティブがオプションのタイトルとアイコン指定をサポートするよう拡張され、`:::pro Using Web Awesome Pro?` のような記法でタイトル付きコールアウトをMarkdownから直接記述できるようになりました。
モバイルなど狭い画面でポップオーバーがビューポートからはみ出す問題を修正。上下配置では `min()` 関数で `max-width` をビューポート幅に合わせて制限し、左右配置では `max-height` で高さを制御する、配置方向ごとに制約軸を切り替えるCSSルールが追加されました。
デフォルトテーマのニュートラルボタンで発生していた弱い視覚フィードバック問題を解消。`--wa-color-mix-hover` / `--wa-color-mix-active` の混合色算出を `black` 固定から `oklch()` 相対色構文に変更し彩度劣化を排除。また `--wa-button-transform-hover` / `--wa-button-transform-active` デザイントークンを新設し、テーマごとのボタントランスフォーム挙動を統一管理できるようにした。
`<wa-popover>` が狭いビューポートで水平方向にはみ出すバグを修正しました。`.body` 要素の `width: max-content` を `width: auto` に変更し、`max-width` に `min(var(--max-width), 100vw)` を適用することで、既存のカスタムプロパティを維持しつつビューポート幅を上限として強制するよう改善しています。
`wa-radio-group` のラベルが他フォームコントロールと比べて約 3px ずれるバグを修正。原因はコンポーネント固有スタイルの `:host { display: block; }` が共通フォームコントロールスタイルのデフォルト表示を上書きしていたことで、この 4 行を削除するだけで解消された。
ボタンに設定されていた `line-height` の計算式が、複雑なコンテンツを内包した場合にレイアウト崩れを引き起こしていた問題を修正。`wa-button` とネイティブボタンの両方からプロパティを削除し、`inline-flex` コンテナ本来のセンタリング機能に委ねる形に整理されました。
`<wa-badge>` コンポーネントでアイコンをスロットに挿入した際に高さが微妙にずれるバグが修正されました。`badge.styles.ts` の `[part='start']` と `[part='end']` に `line-height: 0` を適用することで、インライン要素の `vertical-align` 計算によって生じていた余分な垂直スペースを除去しています。
`<wa-copy-button>` が `<wa-tooltip>` への直接依存を廃止し、デフォルト・カスタムトリガー双方で動作する組み込みフィードバックポップアップへと刷新されました。`tooltip__*` CSS パーツは `feedback` パートに置き換えられ、カスタムトリガーは追加設定なしで自動的にフィードバックを受け取れるようになっています。あわせてコンポーネントのステータスが experimental から stable に昇格しました。
WebAwesomeのスイッチコンポーネントにRTL対応が追加されました。CSS `:dir(rtl)` 擬似クラスでサムの位置を視覚的に反転し、`LocalizeController` を使ってArrowLeft/ArrowRightキーの論理的な意味もRTL環境に合わせて逆転させています。AndroidやiOSのネイティブスイッチと同等のRTL挙動を、スタイルとロジックの責務を分離した設計で実現しています。
`<wa-button-group>` に子要素が1つだけ存在する場合、その要素が `:first-child` と `:last-child` の両方に同時に一致してしまい、4隅すべてのボーダー半径が 0 に上書きされるバグが修正されました。`::slotted(:first-child:not(:last-child))` と `::slotted(:last-child:not(:first-child))` という対称的なセレクター修正で、JavaScriptを用いずCSSのみで解消しています。
`<wa-textarea resize="auto">`が初期状態で非表示のコンテナ内に配置された場合、表示後も高さが0のままになるバグを修正。ResizeObserverの監視対象をautoモードでは内部のtextareaからホスト要素へ変更し、幅変化フィルタリングとrequestAnimationFrameによる遅延実行を組み合わせることで、再帰ループを防ぎながら非表示→表示遷移での自動リサイズを正しく動作させる。
WebAwesomeに`wa-text-wrap-nowrap`・`wa-text-wrap-balance`・`wa-text-wrap-pretty`の3つのテキストユーティリティクラスが追加されました。既存の`wa-{property}-{value}`命名規則に従い、CSSの`text-wrap`プロパティを統一的なインターフェースで提供します。Firefoxが未サポートの`text-wrap: pretty`は`@supports`ブロックで包まれ、未サポートブラウザでは通常の折り返しにフォールバックするグレースフルデグラデーションが実装されています。
Firefoxで `text-wrap: pretty` が未サポートなことによるテキストオーバーフローバグを修正。`@supports` による機能検出を使ってベースラインを `wrap` に設定しつつ、対応ブラウザには `pretty` を適用するプログレッシブエンハンスメントパターンを導入しました。
WebAwesomeのドキュメントサイトに `_data/site.json` を新設し、ブランド名・メールアドレス・SNS URL・GitHub URL・法的リンクパスを一元管理する仕組みを導入しました。Eleventyの `_data/` 規約を活用することで設定変更不要でグローバルデータとして利用可能となり、約54ファイルに散在していたハードコード値が `{{ site.* }}` テンプレート参照に置き換えられました。
WebAwesomeのドキュメント用CSS(`docs.css` / `utils.css`)から重複ルールや未使用セレクタを除去し、約180行を削減するクリーンアップが行われました。物理プロパティ(`width`・`height`など)を論理プロパティ(`inline-size`・`block-size`など)へ統一し、ブランドカラー変数を `docs.css` から `utils.css` へ移動することで、CSSの責務分離と国際化対応の基盤が整えられています。
ページごとに不統一だったドキュメントサイトのメインコンテンツ余白・最大幅設定を、`.content-container` クラスを正規プリミティブとして刷新することで一元化。`base.njk` にフロントマターの `hasFlushMain` フラグによるオプトアウト機構を導入し、フルブリードページの自由度を保ちつつサイト全体のレイアウト一貫性を実現しました。