コラプシブル
hc-collapsible は単一の表示 / 非表示ディスクロージャです — 1 つの
領域のための、軽量でリンク風の「もっと見る」トグル。ネイティブの
<details> / <summary> 要素の上の純 CSS です: キーボード処理と
open 状態はブラウザが所有します。JavaScript なし。
別名: 折りたたみ、ディスクロージャー。
基本の HTML
Section titled “基本の HTML”Show details
This region is hidden until the user opens it. It is great for secondary details, advanced options, or a long “read more” passage that would otherwise crowd the page.
<details class="hc-collapsible"> <summary class="hc-collapsible__trigger"> Show details <span class="hc-collapsible__icon" aria-hidden="true">▾</span> </summary> <div class="hc-collapsible__content"> <p>This region is hidden until the user opens it.</p> </div></details>最初から展開しておくには、<details> に open 属性を足します。
| パーツ | 用途 |
|---|---|
.hc-collapsible | <details> 要素(展開するには open を追加)。 |
.hc-collapsible__trigger | <summary> — クリック可能なトグル。 |
.hc-collapsible__icon | シェブロン。開くと 180° 回転。 |
.hc-collapsible__content | 表示される領域。 |
高さのアニメーション
Section titled “高さのアニメーション”開閉時に領域は高さをアニメーションします — 純 CSS、JavaScript
なし — interpolate-size: allow-keywords つきの
::details-content によって(高さが auto との間でトランジション
できます)。シェブロンの回転も高さも
prefers-reduced-motion: reduce を尊重します。
アクセシビリティ
Section titled “アクセシビリティ”<details>/<summary>が正しいセマンティクスを無料でくれます: summary はaria-expandedをトグルするボタンで、キーボード操作可能 (Enter / Space)、タブ順にも入っています — 足す ARIA はありません。- シェブロンは装飾のまま(
aria-hidden="true")にしてください。 summary のテキストがアクセシブルな名前なので、明確なアクション (「詳細を表示」)として書いてください。 - 折りたたみ中もコンテンツは DOM に残るため、高さアニメーションを サポートするエンジンでは、ページ内検索(と検索リンク)が引き続き 届きます。
テーマ用トークン
Section titled “テーマ用トークン”| トークンパス | 用途 |
|---|---|
collapsible.trigger.gap | ラベルとシェブロンの間のギャップ。 |
collapsible.trigger.padding-x / -y | トリガーのパディング。 |
collapsible.trigger.font-weight | トリガーのウェイト。 |
collapsible.trigger.fg / hover-fg | トリガー(リンク)の色。 |
collapsible.icon.size | シェブロンのサイズ。 |
collapsible.icon.transition-duration | シェブロンの回転速度。 |
collapsible.content.fg | 表示されるテキストの色。 |
collapsible.content.padding-block-start | トリガーの下のギャップ。 |
collapsible.content.transition-duration | 高さアニメーションの速度。 |
CSS 変数
Section titled “CSS 変数”生成される CSS 変数を表示
--hc-collapsible-trigger-gap | -trigger-padding-x | -trigger-padding-y--hc-collapsible-trigger-font-weight | -trigger-fg | -trigger-hover-fg--hc-collapsible-icon-size | -icon-transition-duration--hc-collapsible-content-fg | -content-padding-block-start--hc-collapsible-content-transition-duration