Accordion
hextaui/accordionFreeComponent
Expands to show or hide content.
Live preview
live · rendered by the registry
Rendered by HextaUI on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://hextaui.com/r/accordion.jsonSource
1"use client";23import * as AccordionPrimitive from "@radix-ui/react-accordion";4import { ChevronDownIcon } from "lucide-react";5import type * as React from "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 className={cn("border-b last:border-b-0", className)}22 data-slot="accordion-item"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 className={cn(37 "flex min-h-11 flex-1 touch-manipulation items-start justify-between gap-4 rounded-md py-4 text-left font-medium text-sm outline-none transition-colors hover:underline focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 motion-safe:duration-200 [&[data-state=open]>svg]:rotate-180",38 className39 )}40 data-slot="accordion-trigger"41 type="button"42 {...props}43 >44 {children}45 <ChevronDownIcon46 aria-hidden="true"47 className="pointer-events-none size-4 shrink-0 translate-y-0.5 text-muted-foreground transition-transform duration-200"48 />49 </AccordionPrimitive.Trigger>50 </AccordionPrimitive.Header>51 );52}5354function AccordionContent({55 className,56 children,57 ...props58}: React.ComponentProps<typeof AccordionPrimitive.Content>) {59 return (60 <AccordionPrimitive.Content61 className="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down motion-reduce:animate-none"62 data-slot="accordion-content"63 {...props}64 >65 <div className={cn("pt-0 pb-4", className)}>{children}</div>66 </AccordionPrimitive.Content>67 );68}6970export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
What it pulls in
npm packages
Files it writes
More from HextaUI
All 139 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| AI Chat Historyai-chat-history | HextaUI | Components | Free | no deps | |
| AI Citationsai-citations | HextaUI | Components | Free | no deps | |
| AI Conversationai-conversation | HextaUI | Components | Free | no deps | |
| AI Error Handlerai-error-handler | HextaUI | Components | Free | no deps | |
| AI File Uploadai-file-upload | HextaUI | Components | Free | no deps | |
| AI Messageai-message | HextaUI | Components | Free | 4 deps | |
| AI Model Selectorai-model-selector | HextaUI | Components | Free | no deps | |
| AI Prompt Inputai-prompt-input | HextaUI | Components | Free | no deps |
