Components
- AccordionNew
- Alert
- Alert DialogNew
- AutocompleteNew
- AvatarNew
- Badge
- Breadcrumb
- Button
- CalendarNew
- CardNew
- Checkbox
- Checkbox GroupNew
- CollapsibleNew
- ComboboxNew
- CommandNew
- Context MenuNew
- Date PickerNew
- DialogNew
- DrawerNew
- EmptyNew
- FieldNew
- FieldsetNew
- FormNew
- FrameNew
- GroupNew
- Input
- Input GroupNew
- KbdNew
- Label
- MenuNew
- MeterNew
- Number Field
- OTP FieldNew
- Pagination
- PopoverNew
- Preview CardNew
- Progress
- Radio Group
- Scroll AreaNew
- Select
- Separator
- SheetNew
- SkeletonNew
- Slider
- Spinner
- StepperNew
- Switch
- Table
- TabsNew
- Textarea
- ToastNew
- ToggleNew
- Toggle GroupNew
- ToolbarNew
- Tooltip
Accordion
A set of collapsible panels with headings and content.
Of course! Mako UI is free and open source.
import {
Accordion,
AccordionItem,
AccordionPanel,
AccordionTrigger,
} from "mako-ui/components/accordion";
export default function Particle() {
const items = [
{
content:
"Mako UI is a library of accessible, composable React components for design systems and web apps.",
id: "1",
title: "What is Mako UI?",
},
{
content:
'Head to the "Quick start" guide in the docs. Install the package, import a component, and you\'re running.',
id: "2",
title: "How do I get started?",
},
{
content: "Of course! Mako UI is free and open source.",
id: "3",
title: "Can I use it for my project?",
},
];
return (
<Accordion className="w-full" defaultValue={["3"]}>
{items.map((item) => (
<AccordionItem key={item.id} value={item.id}>
<AccordionTrigger>{item.title}</AccordionTrigger>
<AccordionPanel>{item.content}</AccordionPanel>
</AccordionItem>
))}
</Accordion>
);
}
Usage
import {
Accordion,
AccordionItem,
AccordionPanel,
AccordionTrigger,
} from "mako-ui/components/accordion"<Accordion>
<AccordionItem value="item-1">
<AccordionTrigger>Is it accessible?</AccordionTrigger>
<AccordionPanel>
Yes. It adheres to the WAI-ARIA design pattern.
</AccordionPanel>
</AccordionItem>
</Accordion>API Reference
Accordion
Root component.
AccordionItem
Individual accordion item container. Includes bottom border styling.
AccordionTrigger
Trigger button that toggles the accordion panel. Includes a built-in chevron icon that rotates when expanded.
AccordionPanel
Collapsible content panel. Includes animated height transitions. Also exported as AccordionContent.
Examples
Single Accordion
import {
Accordion,
AccordionItem,
AccordionPanel,
AccordionTrigger,
} from "mako-ui/components/accordion";
export default function Particle() {
return (
<Accordion className="w-full">
<AccordionItem value="item-1">
<AccordionTrigger>What is Mako UI?</AccordionTrigger>
<AccordionPanel>
Mako UI is a library of accessible, composable React components for
design systems and web apps.
</AccordionPanel>
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger>How do I get started?</AccordionTrigger>
<AccordionPanel>
Head to the "Quick start" guide in the docs. Install the package,
import a component, and you're running.
</AccordionPanel>
</AccordionItem>
<AccordionItem value="item-3">
<AccordionTrigger>Can I use it for my project?</AccordionTrigger>
<AccordionPanel>
Of course! Mako UI is free and open source.
</AccordionPanel>
</AccordionItem>
</Accordion>
);
}
Multiple Accordion
import {
Accordion,
AccordionItem,
AccordionPanel,
AccordionTrigger,
} from "mako-ui/components/accordion";
export default function Particle() {
return (
<Accordion className="w-full" multiple>
<AccordionItem value="item-1">
<AccordionTrigger>What is Mako UI?</AccordionTrigger>
<AccordionPanel>
Mako UI is a library of accessible, composable React components for
design systems and web apps.
</AccordionPanel>
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger>How do I get started?</AccordionTrigger>
<AccordionPanel>
Head to the "Quick start" guide in the docs. Install the package,
import a component, and you're running.
</AccordionPanel>
</AccordionItem>
<AccordionItem value="item-3">
<AccordionTrigger>Can I use it for my project?</AccordionTrigger>
<AccordionPanel>
Of course! Mako UI is free and open source.
</AccordionPanel>
</AccordionItem>
</Accordion>
);
}
Controlled Accordion
Open items: None
"use client";
import {
Accordion,
AccordionItem,
AccordionPanel,
AccordionTrigger,
} from "mako-ui/components/accordion";
import { Button } from "mako-ui/components/button";
import { useState } from "react";
export default function Particle() {
const [value, setValue] = useState<string[]>([]);
return (
<div className="flex w-full flex-col gap-4">
<Accordion className="w-full" onValueChange={setValue} value={value}>
<AccordionItem value="item-1">
<AccordionTrigger>What is Mako UI?</AccordionTrigger>
<AccordionPanel>
Mako UI is a library of accessible, composable React components for
design systems and web apps.
</AccordionPanel>
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger>How do I get started?</AccordionTrigger>
<AccordionPanel>
Head to the "Quick start" guide in the docs. Install the package,
import a component, and you're running.
</AccordionPanel>
</AccordionItem>
<AccordionItem value="item-3">
<AccordionTrigger>Can I use it for my project?</AccordionTrigger>
<AccordionPanel>
Of course! Mako UI is free and open source.
</AccordionPanel>
</AccordionItem>
</Accordion>
<div className="flex flex-col items-start gap-4">
<Button
onClick={() => setValue(["item-1", "item-2"])}
variant="outline"
>
Open First Two
</Button>
<p className="text-muted-foreground text-sm">
Open items: {value.length > 0 ? value.join(", ") : "None"}
</p>
</div>
</div>
);
}