Accordion
animate-ui/components-base-accordionFreeComponent
A set of collapsible panels with headings.
Install it
npx shadcn@latest add https://animate-ui.com/r/components-base-accordion.jsonSource
1import * as React from 'react';2import { ChevronDownIcon } from 'lucide-react';34import {5 Accordion as AccordionPrimitive,6 AccordionItem as AccordionItemPrimitive,7 AccordionHeader as AccordionHeaderPrimitive,8 AccordionTrigger as AccordionTriggerPrimitive,9 AccordionPanel as AccordionPanelPrimitive,10 type AccordionProps as AccordionPrimitiveProps,11 type AccordionItemProps as AccordionItemPrimitiveProps,12 type AccordionTriggerProps as AccordionTriggerPrimitiveProps,13 type AccordionPanelProps as AccordionPanelPrimitiveProps,14} from '@/components/animate-ui/primitives/base/accordion';15import { cn } from '@/lib/utils';1617type AccordionProps = AccordionPrimitiveProps;1819function Accordion(props: AccordionProps) {20 return <AccordionPrimitive {...props} />;21}2223type AccordionItemProps = AccordionItemPrimitiveProps;2425function AccordionItem({ className, ...props }: AccordionItemProps) {26 return (27 <AccordionItemPrimitive28 className={cn('border-b last:border-b-0', className)}29 {...props}30 />31 );32}3334type AccordionTriggerProps = AccordionTriggerPrimitiveProps & {35 showArrow?: boolean;36};3738function AccordionTrigger({39 className,40 children,41 showArrow = true,42 ...props43}: AccordionTriggerProps) {44 return (45 <AccordionHeaderPrimitive className="flex">46 <AccordionTriggerPrimitive47 className={cn(48 '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',49 className,50 )}51 {...props}52 >53 {children}54 {showArrow && (55 <ChevronDownIcon className="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" />56 )}57 </AccordionTriggerPrimitive>58 </AccordionHeaderPrimitive>59 );60}6162type AccordionPanelProps = AccordionPanelPrimitiveProps & {63 children: React.ReactNode;64};6566function AccordionPanel({67 className,68 children,69 ...props70}: AccordionPanelProps) {71 return (72 <AccordionPanelPrimitive {...props}>73 <div className={cn('text-sm pt-0 pb-4', className)}>{children}</div>74 </AccordionPanelPrimitive>75 );76}7778export {79 Accordion,80 AccordionItem,81 AccordionTrigger,82 AccordionPanel,83 type AccordionProps,84 type AccordionItemProps,85// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from Animate UI
All 580 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Avatar Groupcomponents-animate-avatar-group | Animate UI | Components | Free | 1 dep | |
| Codecomponents-animate-code | Animate UI | Components | Free | 1 dep | |
| Code Tabscomponents-animate-code-tabs | Animate UI | Components | Free | 1 dep | |
| Cursorcomponents-animate-cursor | Animate UI | Components | Free | no deps | |
| GitHub Stars Wheelcomponents-animate-github-stars-wheel | Animate UI | Components | Free | 1 dep | |
| Tabscomponents-animate-tabs | Animate UI | Components | Free | no deps | |
| Tooltipcomponents-animate-tooltip | Animate UI | Components | Free | 1 dep | |
| Bubble Backgroundcomponents-backgrounds-bubble | Animate UI | Components | Free | 1 dep |
