一组垂直堆叠的交互式标题,每个标题都显示相关的内容部分。
import React from 'react';import * as Accordion from '@radix-ui/react-accordion';import classNames from 'classnames';import { ChevronDownIcon } from '@radix-ui/react-icons';import './styles.css';const AccordionDemo = () => (<Accordion.Root className="AccordionRoot" type="single" defaultValue="item-1" collapsible><Accordion.Item className="AccordionItem" value="item-1"><AccordionTrigger>Is it accessible?</AccordionTrigger><AccordionContent>Yes. It adheres to the WAI-ARIA design pattern.</AccordionContent></Accordion.Item><Accordion.Item className="AccordionItem" value="item-2"><AccordionTrigger>Is it unstyled?</AccordionTrigger><AccordionContent>Yes. It's unstyled by default, giving you freedom over the look and feel.</AccordionContent></Accordion.Item><Accordion.Item className="AccordionItem" value="item-3"><AccordionTrigger>Can it be animated?</AccordionTrigger><Accordion.Content className="AccordionContent"><div className="AccordionContentText">Yes! You can animate the Accordion with CSS or JavaScript.</div></Accordion.Content></Accordion.Item></Accordion.Root>);const AccordionTrigger = React.forwardRef(({ children, className, ...props }, forwardedRef) => (<Accordion.Header className="AccordionHeader"><Accordion.Trigger className={classNames('AccordionTrigger', className)} {...props} ref={forwardedRef} >{children}<ChevronDownIcon className="AccordionChevron" aria-hidden /></Accordion.Trigger></Accordion.Header>));const AccordionContent = React.forwardRef(({ children, className, ...props }, forwardedRef) => (<Accordion.Content className={classNames('AccordionContent', className)} {...props} ref={forwardedRef} ><div className="AccordionContentText">{children}</div></Accordion.Content>));export default AccordionDemo;
完整的键盘导航。
支持水平/垂直方向。
支持从右到左方向。
可以展开一个或多个项目。
可以是受控或非受控的。
从命令行安装组件。
导入所有部分并将其组合在一起。
包含手风琴的所有部分。
包含可折叠部分的所有部分。
包装一个 Accordion.Trigger
。使用 asChild
属性将其更新为页面中适当的标题级别。
切换其关联项目的折叠状态。它应该嵌套在 Accordion.Header
中。
包含项目的可折叠内容。
使用 defaultValue
属性定义默认打开的项目。
使用 collapsible
属性允许所有项目关闭。
将 type
属性设置为 multiple
以启用一次打开多个项目。
您可以添加额外的装饰元素,例如斜角,并在项目打开时将其旋转。
使用 orientation
属性创建水平手风琴。
使用 --radix-accordion-content-width
和/或 --radix-accordion-content-height
CSS 变量来为内容打开/关闭时的尺寸添加动画。