Accordion

A disclosure list with hairline or card rows, an optional heading column, and a CSS-only open transition that never measures or remounts a panel.

Frequently asked questions

Anything else, write to hello@lazy-ui.dev.

A copy-and-paste component library for React and Tailwind. You take the file, not a dependency — every component lands in your repo as source you can read and edit.

Yes. Once a component is in your project it is your file. Rename it, gut it, ship it in client work — there is nothing to attribute and nothing to license.

Nothing, until you decide. Pasted files never change under you. Re-run the CLI on a component when you want the newer version and diff it like any other change.

Components are animated by default and every one honours prefers-reduced-motion. Where motion is a prop, turning it off leaves a static component that still looks finished.

Tailwind v4. Components ship as utility classes plus the odd CSS variable — no config plugin, no theme file to merge, no build step of ours in your pipeline.

Every component carries its own light and dark styling through the dark: variant, so it follows whatever theme switch your app already uses.
0px

Customize

Layout
Variant
Icon
Mode
Size
Speed1.00x
Numbered
Rail

Usage

import { Accordion } from "@/components/lazy-ui/accordion";

const items = [
  {
    title: "Do I own the code I paste?",
    content:
      "Yes. Once a component is in your project it is your file — nothing to attribute, nothing to license.",
  },
  {
    title: "What happens when a component updates?",
    content:
      "Nothing, until you decide. Re-run the CLI on a component when you want the newer version.",
  },
];

export function Demo() {
  return <Accordion items={items} defaultOpen={0} />;
}