Carousel pagination のクリッピング防止へブロックパディングを追加

shoelace-style/webawesome

この PR は、<wa-carousel> のページネーションドットが拡大表示された際に、上下が切り取られるバグを解消します。.pagination 要素に垂直方向のパディングを追加するだけで、レイアウト全体への影響を最小限に抑えました。

背景

ページネーションのドットが拡大表示されてもコンテナの高さが追従しないという問題が Issue #2495 で報告されました。Carousel を Dialog と組み合わせて Lightbox を構築した際、拡大されたドットの下部が切れ、スクロールが必要と判定される現象が発生していました。根本原因は .pagination のブロックサイズが固定で、拡大ドット分の余白が確保されていなかったことです。解決策として、上下に余白を付与すれば表示が完全になると判断されました。

技術的な変更

.pagination クラスに padding-block を付与し、上下に var(--wa-space-3xs) の余白を追加しました。これにより、拡大ドットが完全に収まり、クリッピングが防止されます。変更は packages/webawesome/src/components/carousel/carousel.styles.ts に以下の差分として実装されています。

@@ -29,6 +29,7 @@ export default css`
     flex-wrap: wrap;
     justify-content: center;
     gap: var(--wa-space-s);
+    padding-block: var(--wa-space-3xs);
   }

   .slides {

さらに、修正内容を公開ノートに反映するため packages/webawesome/docs/docs/resources/changelog.md にエントリを追加しました。

@@ -34,6 +34,7 @@ Web Awesome follows <a href="https://semver.org/" class="appearance-plain">Seman
  :::fixed

  - Fixed a bug in `<wa-select>` that prevented the dropdown menu from scrolling when using the keyboard [issue:2472]
+- Fixed a bug in `<wa-carousel>` that caused the pagination controls to clip vertically by adding block padding around them [issue:2495]
  - Fixed component API tables in the `webawesome` Agent Skill by generating them from the CEM instead of scraping the rendered HTML [issue:2475]

  :::

設計判断

最小限の CSS 調整で機能障害を解消する方針が採用されました。新たなレイアウトロジックやコンポーネント構造の変更は行わず、既存のデザイントークン --wa-space-3xs を利用したことで、他の UI 部分への副作用を回避しつつ保守性を保ちました。パディング追加は安全な手段であり、テーマやカスタマイズとの整合性も維持されます。

まとめ

<wa-carousel> のページネーションが拡大ドットで切れないよう、.paginationpadding-block: var(--wa-space-3xs) を追加しました。限定的な CSS 変更に留めることでバグを解消し、デザイン一貫性と保守性を両立させた実装です。

記事メタデータ

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

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

品質レビュー結果

Review Status:
リトライ後承認
Review Count:
2回 (改善を経て承認)
Reviewed by:
gpt-oss-120b for DiffDaily

Review Criteria:

記事構成 ✓ PASS

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

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

カスタムMarkdown構文 ⚠ WARNING

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

コードブロックのシンタックスハイライトは正しい形式ですが、PRリンクが `[PR #2532](URL)` となっており、推奨の `[#2532](URL)` 形式と若干異なります。Issue番号のリンク化もありません。

対象読者への適合性 ✓ PASS

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

専門的なエンジニア向けの記述で、余計な初心者向け説明はありません。

パラグラフ・ライティング ⚠ WARNING

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

各セクションは総論の冒頭パラグラフがあるものの、背景セクションなどで明確な結論パラグラフが欠けています。全体的には読みやすいですが、結論パラグラフを追加するとより良くなります。

Diff内容との照合 ✓ PASS

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

記事中の diff ブロックは提供された Diff と完全に一致しています。ファイル名も正しく示されています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

使用されている技術用語(padding-block、var(--wa-space-3xs) など)は正確で、PR 内容と一致しています。

説明の技術的正確性 ✓ PASS

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

バグの原因と修正内容の説明が Diff と PR の記述に基づいており、技術的に誤りはありません。

事実の突合 ✓ PASS

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

記事のすべての主張が PR タイトル、説明、Diff、Issue 番号に裏付けられています。推測や捏造は見当たりません。

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

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

Issue 番号 #2495、PR 番号 #2532 など数値は正しく記載されています。

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

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

記事タイトルは PR の内容(Carousel pagination のパディング追加)を正確に表現しています。

外部知識の正確性 ✓ PASS

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

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

時間表現の正確性 ✓ PASS

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

時間表現に関する記述はなく、PR の記述と食い違いもありません。