一组垂直堆叠的交互式标题,每个标题都显示关联的内容部分。
import * as React from "react";import { Accordion } from "radix-ui";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 andfeel.</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;
完整的键盘导航。
支持水平/垂直方向。
支持从右到左的方向。
可以展开一个或多个项目。
可以是受控的或非受控的。
从命令行安装组件。
导入所有部分并将它们组装在一起。
包含手风琴的所有部分。
包含可折叠部分的所有部分。
包裹 `asChild
属性将其更新为页面上合适的标题级别。
切换其关联项的折叠状态。 它应该嵌套在 `
包含项目的可折叠内容。
使用 defaultValue
属性来默认定义打开的项目。
使用 collapsible
属性来允许所有项目关闭。
将 type
属性设置为 multiple
以启用一次打开多个项目。
您可以添加额外的装饰元素,例如 Chevron,并在项目打开时旋转它。
使用 orientation
属性来创建水平手风琴。
使用 --radix-accordion-content-width
和/或 --radix-accordion-content-height
CSS 变量来动画化内容在打开/关闭时的大小