検索

Details

このページは現在調整中です
Lism UI (@lism-css/ui) はまだ準備中です。

クリックでコンテンツを開閉できるアコーディオンUIをdetails/summary要素で作成できるUIコンポーネントです。

Accordionとは違い、jsを使わずCSSだけでの実装となっています。

Preview
Details Title

ここにコンテンツが入ります。

<Details.Root bd>
<Details.Summary p="20" bgc="base-2" hov="neutral">
<Details.Title>Details Title</Details.Title>
<Details.Icon />
</Details.Summary>
<Details.Content p="20">
<p>ここにコンテンツが入ります。</p>
</Details.Content>
</Details.Root>

How to use

@lism-css/ui パッケージでDetails(.c--details)として提供しています。

Import

import { Details } from '@lism-css/ui/react';

以下のコンポーネントが利用できます。

  • <Details.Root>
  • <Details.Summary>
  • <Details.Title>
  • <Details.Icon>
  • <Details.Content>

Props

プロパティ説明
<Details.Root>
--duration
展開アニメーションの秒数
<Details.Title>
as
summary要素内のタイトルを出力するHTMLタグの種類

基本構造

<Details.Root>
<Details.Summary>
<Details.Title>Details Title</Details.Title>
<Details.Icon />
</Details.Summary>
<Details.Content>...Contents...</Details.Content>
</Details.Root>

ソースコード

ソースコードは GitHub で公開しています。

Examples

タイトルのHTMLタグを変更し、複数同時展開を制限する例

<Details.Title>はデフォルトではspanタグで出力されますが、asでHTMLタグを指定できます。

また、details/summaryの基本的な機能として、name属性を指定すると同じグループ内で同時に展開可能な要素が一つのみとなります。

Details Title

ここにコンテンツが入ります。

Details Title

ここにコンテンツが入ります。

<Stack g="10">
<Details.Root bd name="details-group-01">
<Details.Summary p="20" bgc="base-2" hov="neutral">
<Details.Title as="h3">Details Title</Details.Title>
<Details.Icon />
</Details.Summary>
<Details.Content p="20">
<p>ここにコンテンツが入ります。</p>
</Details.Content>
</Details.Root>
<Details.Root bd name="details-group-01">
<Details.Summary p="20" bgc="base-2" hov="neutral">
<Details.Title as="h3">Details Title</Details.Title>
<Details.Icon />
</Details.Summary>
<Details.Content p="20">
<p>ここにコンテンツが入ります。</p>
</Details.Content>
</Details.Root>
</Stack>
summary内の見出し要素について

「summary内に見出し要素を配置しても、スクリーンリーダーでロール検出ができない」という問題がありましたが、2026年現在、すでにモダンブラウザではほとんど解決しているようです。

アニメーション時間を変更する例

<Details>の開閉アニメーションの時間は--duration変数で管理しており、初期値は、<Accordion>と同じ--acc-durationになっています。

局所的な調整には --duration変数を調整し、全体的な調整には:root--acc-durationを上書きしてください。

Details Title

ここにコンテンツが入ります。

<Details.Root bd style={{ '--duration': '.4s' }}>
<Details.Summary p="20" bgc="base-2" hov="neutral">
<Details.Title as="h3">Details Title</Details.Title>
<Details.Icon />
</Details.Summary>
<Details.Content p="20">
<p>ここにコンテンツが入ります。</p>
</Details.Content>
</Details.Root>

© Lism CSS. All rights reserved.