BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/adn-ui/accordion

Accordion

adn-ui/accordion
FreeComponent

A set of collapsible panels with headings.

Live preview

live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.

Install it

npx shadcn@latest add https://ui.awaiden.com/r/accordion.json

Source

src/components/ui/accordion/accordion.tsxui.awaiden.com/r/accordion.json
1"use client";
2
3import "./accordion.css";
4import { Accordion as BaseAccordion } from "@base-ui/react/accordion";
5import type React from "react";
6import { cn } from "tailwind-variants";
7
8import { AccordionContext, useAccordionContext } from "./accordion.context";
9import { accordionVariants, type AccordionVariants } from "./accordion.variants";
10
11export type AccordionProps = AccordionVariants & React.ComponentProps<typeof BaseAccordion.Root>;
12
13export const AccordionRoot = ({ children, className, variant, ...props }: AccordionProps) => {
14 const slots = accordionVariants({ variant });
15
16 return (
17 <AccordionContext.Provider value={{ slots }}>
18 <BaseAccordion.Root className={cn(slots.root(), className)} {...props}>
19 {children}
20 </BaseAccordion.Root>
21 </AccordionContext.Provider>
22 );
23};
24
25export type AccordionItemProps = React.ComponentProps<typeof BaseAccordion.Item>;
26
27export const AccordionItem = ({ className, ...props }: AccordionItemProps) => {
28 const { slots } = useAccordionContext();
29 return <BaseAccordion.Item className={cn(slots.item(), className)} {...props} />;
30};
31
32export type AccordionHeaderProps = React.ComponentProps<typeof BaseAccordion.Header>;
33
34export const AccordionHeader = ({ className, ...props }: AccordionHeaderProps) => {
35 const { slots } = useAccordionContext();
36 return <BaseAccordion.Header className={cn(slots.header(), className)} {...props} />;
37};
38
39export type AccordionTriggerProps = React.ComponentProps<typeof BaseAccordion.Trigger> & {
40 hideChevron?: boolean;
41};
42
43export const AccordionTrigger = ({
44 children,
45 className,
46 hideChevron = false,
47 ...props
48}: AccordionTriggerProps) => {
49 const { slots } = useAccordionContext();
50 return (
51 <BaseAccordion.Trigger className={cn(slots.trigger(), className)} {...props}>
52 {children}
53 {!hideChevron && (
54 <svg
55 className="text-muted-foreground h-4 w-4 shrink-0 transition-transform duration-200 group-data-panel-open:rotate-180"
56 fill="none"
57 stroke="currentColor"
58 strokeLinecap="round"
59 strokeLinejoin="round"
60 strokeWidth="2"
61 viewBox="0 0 24 24"
62 >
63 <path d="m6 9 6 6 6-6" />
64 </svg>
65 )}
66 </BaseAccordion.Trigger>
67 );
68};
69
70export type AccordionPanelProps = React.ComponentProps<typeof BaseAccordion.Panel>;
71
72export const AccordionPanel = ({ children, className, ...props }: AccordionPanelProps) => {
73 const { slots } = useAccordionContext();
74 return (
75// … truncated

What it pulls in

npm packages

  • @base-ui/react
  • tailwind-variants

Files it writes

  • src/components/ui/accordion/accordion.tsx
  • src/components/ui/accordion/accordion.variants.ts
  • src/components/ui/accordion/accordion.context.ts
  • src/components/ui/accordion/accordion.css
  • src/components/ui/accordion/index.ts

Facts

Registry
adn-ui
Type
registry:ui
Access
Free
Files written
5
Licence
MIT
First indexed
2026-08-04
Last confirmed
today

Go to the source

Docs on adn-ui ui.awaiden.com awaiden/adn-ui on GitHub Raw registry item This item as JSON

More from adn-ui

All 46 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
Alert Dialogalert-dialogadn-uiComponentsFree2 deps · 5 files
Aspect Ratioaspect-ratioadn-uiComponentsFree1 dep · 5 files
Autocompleteautocompleteadn-uiComponentsFree2 deps · 5 files
Avataravataradn-uiComponentsFree2 deps · 5 files
Badgebadgeadn-uiComponentsFree1 dep · 5 files
Breadcrumbbreadcrumbadn-uiComponentsFree1 dep · 5 files
Buttonbuttonadn-uiComponentsFree1 dep · 4 files
Button Groupbutton-groupadn-uiComponentsFree1 dep · 5 files
BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex