Command Palette

Search for a command to run...

2.4KGitHub stars
Components

Apple Accordion

Accordion whose items morph from pills into cards, inspired by Apple’s product pages.

Loading…

Features

  • Each item morphs from a pill into a card while the others make room.
  • Up and down buttons step through items without closing the card.

Installation

pnpm dlx shadcn@latest add @ncdai/apple-accordion

Usage

import {
  AppleAccordionClose,
  AppleAccordionContent,
  AppleAccordionItem,
  AppleAccordionList,
  AppleAccordionNext,
  AppleAccordionPrevious,
  AppleAccordionRoot,
  AppleAccordionTrigger,
  AppleAccordionTriggerIcon,
} from "@/components/apple-accordion"
<AppleAccordionRoot>
  <AppleAccordionPrevious />
  <AppleAccordionNext />
 
  <AppleAccordionList>
    <AppleAccordionItem value="display">
      <AppleAccordionTrigger>
        <AppleAccordionTriggerIcon />
        Display
      </AppleAccordionTrigger>
      <AppleAccordionContent>
        <p>Brighter, with deeper blacks.</p>
      </AppleAccordionContent>
    </AppleAccordionItem>
  </AppleAccordionList>
 
  <AppleAccordionClose />
</AppleAccordionRoot>

Items must be direct children of AppleAccordionList. Use value and onValueChange to show matching media beside the list.

Composition

Use the following composition to build an AppleAccordion

AppleAccordionRoot
├── AppleAccordionPrevious
├── AppleAccordionNext
├── AppleAccordionList
│   └── AppleAccordionItem
│       ├── AppleAccordionTrigger
│       │   └── AppleAccordionTriggerIcon
│       └── AppleAccordionContent
└── AppleAccordionClose

API reference

Every part except AppleAccordionTriggerIcon accepts a render prop to change its element.

AppleAccordionRoot

Prop

Type

AppleAccordionItem

Prop

Type

Data attributes

AttributeElementPresent when
data-openAppleAccordionRootAny item is open.
data-openAppleAccordionItemThe item is open.
aria-disabledAppleAccordionPrevious, AppleAccordionNextNo item in that direction.

Accessibility

  • Focus moves into the open card, and Escape or Close returns it to the pill.
  • With prefers-reduced-motion, cards resize instantly and content only fades.

Credits

Was this helpful?

Command Palette

Search for a command to run...