Accordion
thegridcn/accordionFreeComponent
thegridcn publishes no description for this item.
Install it
npx shadcn@latest add https://thegridcn.com/r/accordion.jsonSource
1"use client"23import * as React from "react"4import * as AccordionPrimitive from "@radix-ui/react-accordion"5import { ChevronDownIcon } from "lucide-react"67import { cn } from "@/lib/utils"89function Accordion({10 ...props11}: React.ComponentProps<typeof AccordionPrimitive.Root>) {12 return <AccordionPrimitive.Root data-slot="accordion" {...props} />13}1415function AccordionItem({16 className,17 ...props18}: React.ComponentProps<typeof AccordionPrimitive.Item>) {19 return (20 <AccordionPrimitive.Item21 data-slot="accordion-item"22 className={cn("border-b last:border-b-0", className)}23 {...props}24 />25 )26}2728function AccordionTrigger({29 className,30 children,31 ...props32}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {33 return (34 <AccordionPrimitive.Header className="flex">35 <AccordionPrimitive.Trigger36 data-slot="accordion-trigger"37 className={cn(38 "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md px-4 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-state=open]>svg]:rotate-180",39 className40 )}41 {...props}42 >43 {children}44 <ChevronDownIcon className="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" />45 </AccordionPrimitive.Trigger>46 </AccordionPrimitive.Header>47 )48}4950function AccordionContent({51 className,52 children,53 ...props54}: React.ComponentProps<typeof AccordionPrimitive.Content>) {55 return (56 <AccordionPrimitive.Content57 data-slot="accordion-content"58 className="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"59 {...props}60 >61 <div className={cn("px-4 pt-0 pb-4", className)}>{children}</div>62 </AccordionPrimitive.Content>63 )64}6566export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
What it pulls in
npm packages
Files it writes
More from thegridcn
All 139 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Agent Avataragent-avatar | thegridcn | Components | Free | no deps | |
| Alertalert | thegridcn | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | thegridcn | Components | Free | 1 dep | |
| Announcement Barannouncement-bar | thegridcn | Components | Free | no deps | |
| Anomaly Banneranomaly-banner | thegridcn | Components | Free | no deps | |
| Arrival Panelarrival-panel | thegridcn | Components | Free | no deps | |
| Aspect Ratioaspect-ratio | thegridcn | Components | Free | 1 dep | |
| Avataravatar | thegridcn | Components | Free | 1 dep |
