This component no longer exists. It was in Quantumblack Design System Registry’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-08 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Accordion
quantumblack-design-system-registry/accordionRemovedComponent
Vertical stack of expand/collapse rows for progressively disclosing grouped content. Defaults to regular size with chevron on the right.
Install it
npx shadcn@latest add http://designsystem.quantumblack.com/r/accordion.jsonSource
1'use client';23import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion';4import { cva } from 'class-variance-authority';5import * as React from 'react';67import { Icon } from '@/components/ui/icon';8import { IconShell } from '@/components/ui/icon-shell';9import { cn } from '@/lib/utils';1011type AccordionSize = 'default' | 'lg';12type AccordionExpandAlign = 'left' | 'right';1314// Two contexts bridge values to consumer-composed descendants (the trigger/icon)15// that a prop can't reach: root-level config (size) and per-item state (disabled).16// IconShell owns the size→dimensions and disabled→opacity mappings; the accordion17// just says which. Layout it owns (padding, gap, typography) stays in CSS.18const AccordionSizeContext = React.createContext<AccordionSize>('default');19const AccordionItemContext = React.createContext<{ disabled: boolean }>({20 disabled: false,21});2223const accordionItemVariants = cva(['group/accordion-item flex flex-col']);2425const accordionTriggerVariants = cva([26 'group/accordion-trigger relative flex w-full flex-1 items-center outline-none',27 'focus-visible:ring-stroke-status-focus focus-visible:ring-2',28 'cursor-pointer text-left text-fg-secondary transition-colors duration-200 ease-out',29 'group-data-open/accordion-item:text-fg-primary',30 'group-data-disabled/accordion-item:cursor-not-allowed group-data-disabled/accordion-item:text-fg-disabled',31 'group-data-[expand-align=left]/accordion:px-1',32 'group-data-[expand-align=right]/accordion:pr-1',33 'group-data-[expand-align=left]/accordion:group-data-[size=default]/accordion:gap-2',34 'group-data-[expand-align=left]/accordion:group-data-[size=lg]/accordion:gap-3',35 'group-data-[expand-align=right]/accordion:group-data-[size=default]/accordion:gap-3',36 'group-data-[expand-align=right]/accordion:group-data-[size=lg]/accordion:gap-4',37 'group-data-[size=default]/accordion:py-3 group-data-[size=default]/accordion:headings-h4-regular',38 'group-data-[size=lg]/accordion:py-4 group-data-[size=lg]/accordion:headings-h3-regular',39 '**:data-[slot=accordion-trigger-icon]:shrink-0',40 'group-data-[expand-align=right]/accordion:**:data-[slot=accordion-trigger-icon]:ml-auto',41 'group-data-[expand-align=left]/accordion:**:data-[slot=accordion-trigger-icon]:order-first',42]);4344const accordionTriggerIconVariants = cva(['pointer-events-none']);4546const accordionContentPanelVariants = cva([47 'h-(--accordion-panel-height) overflow-hidden',48// … truncated
What it pulls in
npm packages
Other registry items
