Get Started
Input
Feedback
Display
Installation
i18n
A vertically stacked set of interactive headings that each reveal a section of content.
We offer standard (5-7 days), express (2-3 days), and overnight shipping. Free shipping on international orders.
import {
Accordion,
AccordionContent,Installation#
pnpm dlx shadcn@latest add https://ui.tyap.me/r/styles/base/accordion.jsonnpx shadcn@latest add https://ui.tyap.me/r/styles/base/accordion.jsonyarn dlx shadcn@latest add https://ui.tyap.me/r/styles/base/accordion.jsonbunx --bun shadcn@latest add https://ui.tyap.me/r/styles/base/accordion.json
Install the following dependencies:
pnpm add @base-ui/reactnpm install @base-ui/reactyarn add @base-ui/reactbun add @base-ui/react
Copy and paste the following code into your project.
import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion"
import { cn } from "@/lib/utils"
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react"
function Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {
return (
<AccordionPrimitive.Root
data-slot="accordion"
className={cn("flex w-full flex-col", className)}
{...props}
/>
)
}
function AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {
return (
<AccordionPrimitive.Item
data-slot="accordion-item"
className={cn(className)}
{...props}
/>
)
}
function AccordionTrigger({
className,
children,
...props
}: AccordionPrimitive.Trigger.Props) {
return (
<AccordionPrimitive.Header className="flex">
<AccordionPrimitive.Trigger
data-slot="accordion-trigger"
className={cn(
"group/accordion-trigger relative flex flex-1 items-start justify-between border border-transparent transition-all outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
className
)}
{...props}
>
{children}
<span className="t-icon-swap ml-auto shrink-0">
<span className="t-icon" data-icon="a">
<ChevronDownIcon data-slot="accordion-trigger-icon" className="pointer-events-none" />
</span>
<span className="t-icon" data-icon="b">
<ChevronUpIcon data-slot="accordion-trigger-icon" className="pointer-events-none" />
</span>
</span>
</AccordionPrimitive.Trigger>
</AccordionPrimitive.Header>
)
}
function AccordionContent({
className,
children,
...props
}: AccordionPrimitive.Panel.Props) {
return (
<AccordionPrimitive.Panel
data-slot="accordion-content"
className="overflow-hidden"
{...props}
>
<div
className={cn(
"h-(--accordion-panel-height) data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
className
)}
>
{children}
</div>
</AccordionPrimitive.Panel>
)
}
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
Update the import paths to match your project setup.
Usage#
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion"<Accordion defaultValue={["item-1"]}>
<AccordionItem value="item-1">
<AccordionTrigger>Is it accessible?</AccordionTrigger>
<AccordionContent>
Yes. It adheres to the WAI-ARIA design pattern.
</AccordionContent>
</AccordionItem>
</Accordion>Composition#
Use the following composition to build an Accordion:
Accordion
├── AccordionItem
│ ├── AccordionTrigger
│ └── AccordionContent
└── AccordionItem
├── AccordionTrigger
└── AccordionContentExamples#
Basic#
A basic accordion that shows one item at a time. The first item is open by default.
Click on 'Forgot Password' on the login page, enter your email address, and we'll send you a link to reset your password. The link will expire in 24 hours.
import {
Accordion,
AccordionContent,Multiple#
Use the multiple prop to allow multiple items to be open at the same time.
Manage how you receive notifications. You can enable email alerts for updates or push notifications for mobile devices.
import {
Accordion,
AccordionContent,Disabled#
Use the disabled prop on AccordionItem to disable individual items.
import {
Accordion,
AccordionContent,Borders#
Add border to the Accordion and border-b last:border-b-0 to the AccordionItem to add borders to the items.
We offer monthly and annual subscription plans. Billing is charged at the beginning of each cycle, and you can cancel anytime. All plans include automatic backups, 24/7 support, and unlimited team members.
import {
Accordion,
AccordionContent,Card#
Wrap the Accordion in a Card component.
Subscription & Billing
Common questions about your account, plans, payments and cancellations.
We offer three subscription tiers: Starter ($9/month), Professional ($29/month), and Enterprise ($99/month). Each plan includes increasing storage limits, API access, priority support, and team collaboration features.
import {
Accordion,
AccordionContent,RTL#
To enable RTL support in shadcn/ui, see the RTL configuration guide.
انقر على 'نسيت كلمة المرور' في صفحة تسجيل الدخول، أدخل عنوان بريدك الإلكتروني، وسنرسل لك رابطًا لإعادة تعيين كلمة المرور. سينتهي صلاحية الرابط خلال 24 ساعة.
"use client"
import * as React from "react"API Reference#
See the Base UI documentation for more information.