ui · 6 variants · 1 categories
Accordion
Collapsible stack — single or multi expand, controlled or uncontrolled, with leading/trailing slots.
npx "@rueda.dev/gems-diamond" add accordion Display
6 variantsA systematic design toolkit for makers.
faqA systematic design toolkit for makers.
separatedA systematic design toolkit for makers.
terminalA systematic design toolkit for makers.
editorialA systematic design toolkit for makers.
teamA systematic design toolkit for makers.
insetUsage Guide
How to wire up this component in your app — props, callbacks, customization, and the conventions Diamond shares across the library.
Single vs multi-expand
Default behavior: clicking an item collapses the others. Pass multiple to let any number be open at once.
State
- Uncontrolled:
defaultValue=["id-a", "id-b"]or per-itemdefaultOpen. - Controlled:
value+onValueChangewith an array of ids. - Set
disabledon a single item to make it non-interactive.
Item shape
interface AccordionItem {
id: string;
title: ReactNode;
content: ReactNode;
leading?: ReactNode; // trigger left slot
trailing?: ReactNode; // trigger right slot
defaultOpen?: boolean;
disabled?: boolean;
}Universal patterns
Every Diamond component shares the same prop conventions, so once you learn one you can predict the others.
variant— discriminated union of every visual option. Categories shown above are docs-only metadata; the prop is a flat string union.accent— any CSS color string. Overrides--diamond-accentjust for that instance via inlinestyle. Cascades into hover, ring, and selection states.asChild(when present) — renders the underlying primitive via@radix-ui/react-slot, letting you compose with<Link>,motion.button, etc.className— merged with internal Tailwind classes viacn(). Use it to override layout, spacing, or colors.- Native HTML attributes (
onClick,aria-*,data-*,ref, etc.) flow through to the root element without any whitelist. - Diamond is the skin: zero domain state, zero fetch, zero providers. You wire data and reactions in your app code; the components just render and emit events.