Accordion
basecn/accordionFreeComponent
A set of collapsible panels with headings.
Live preview
live · rendered by the registry
Rendered by basecn on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://basecn.dev/r/accordion.jsonSource
1"use client";23import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";4import { ChevronDownIcon } from "lucide-react";56import { cn } from "@/lib/utils";78function Accordion({ ...props }: AccordionPrimitive.Root.Props) {9 return (10 <AccordionPrimitive.Root data-slot="accordion" keepMounted {...props} />11 );12}1314function AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {15 return (16 <AccordionPrimitive.Item17 data-slot="accordion-item"18 className={cn("border-b last:border-b-0", className)}19 {...props}20 />21 );22}2324function AccordionTrigger({25 className,26 children,27 ...props28}: AccordionPrimitive.Trigger.Props) {29 return (30 <AccordionPrimitive.Header className="flex">31 <AccordionPrimitive.Trigger32 data-slot="accordion-trigger"33 className={cn(34 "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-panel-open]>svg]:rotate-180",35 className36 )}37 {...props}38 >39 {children}40 <ChevronDownIcon className="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" />41 </AccordionPrimitive.Trigger>42 </AccordionPrimitive.Header>43 );44}4546function AccordionContent({47 className,48 children,49 ...props50}: AccordionPrimitive.Panel.Props) {51 return (52 <AccordionPrimitive.Panel53 data-slot="accordion-content"54 className="data-[closed]:animate-accordion-collapse data-[open]:animate-accordion-expand overflow-hidden text-sm"55 {...props}56 >57 <div className={cn("pt-0 pb-4", className)}>{children}</div>58 </AccordionPrimitive.Panel>59 );60}6162export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
What it pulls in
npm packages
Files it writes
More from basecn
All 56 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Alertalert | basecn | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | basecn | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | basecn | Components | Free | no deps | |
| Autocompleteautocomplete | basecn | Components | Free | 2 deps | |
| Avataravatar | basecn | Components | Free | 1 dep | |
| Badgebadge | basecn | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | basecn | Components | Free | 2 deps | |
| Buttonbutton | basecn | Components | Free | 2 deps |
