导航与展开@neumorphism-ui/accordion

Accordion

保留 Base UI Accordion 的状态管理与无障碍关联,并以 inset 表面呈现已展开的项目。支持 multiple 模式以及受控、非受控用法。

@neumorphism-ui/accordion
Registry JSON

预览

添加第一个组件时,也会将新拟态的 surface、shadow 和 radius token 接入项目 CSS。

安装

安装: accordionnpx shadcn@latest add @neumorphism-ui/accordion

CLI 会依次处理 npm 依赖、base token、utils 和组件源码。

首次使用此 Registry?请先完成 namespace 配置 。

用法

Import

Accordion import 代码
import {
  Accordion,
  AccordionContent,
  AccordionItem,
  AccordionTrigger,
} from "@/components/ui/accordion"

Example

Accordion 用法代码
<Accordion defaultValue={["shipping"]}>
  <AccordionItem value="shipping">
    <AccordionTrigger>配送需要多长时间?</AccordionTrigger>
    <AccordionContent>
      订单会在 2–3 个工作日内发出。
    </AccordionContent>
  </AccordionItem>
  <AccordionItem value="returns">
    <AccordionTrigger>可以退货吗?</AccordionTrigger>
    <AccordionContent>
      收货后 14 天内可以申请退货。
    </AccordionContent>
  </AccordionItem>
</Accordion>

API 参考

组件属性类型默认值说明
Accordionmultiplebooleanfalse允许同时展开多个项目。
Accordionvalue / defaultValuestring[]—当前展开项目的受控值或非受控初始值。
AccordiononValueChange(value) => void—展开项目发生变化时调用。
AccordionItemvalue必填string—用于标识项目的唯一值。
AccordionItemdisabledbooleanfalse禁用该项目的触发器。
AccordionContentkeepMountedbooleanfalse关闭后仍将面板保留在 DOM 中。

无障碍

  • 01

    Base UI 负责维护触发器与面板之间的 aria-expanded、aria-controls 关联。

  • 02

    使用 Tab 聚焦触发器,再用 Enter 或 Space 展开和收起项目。

  • 03

    AccordionTrigger 本身就是按钮,不要在标题中嵌套其他按钮。