Accordion

Molecule

Collapsible panel group for progressively disclosing content. Server-renders the initial open/closed state from `defaultOpenIds` (no client JS needed for first paint), then a scoped inline script wires up click handlers. Supports single-open or `allowMultiple` mode.

Single open (default)

Preview

Standard shipping takes 3–5 business days. Express orders arrive in 1–2 business days.

Code
<%- include('modules/ui/Accordion', {
  items: [
    { id: 'shipping', title: 'How long does shipping take?', content: '...' },
    { id: 'returns',  title: 'What is your return policy?',  content: '...' },
    { id: 'support',  title: 'How do I contact support?',    content: '...' },
  ],
  defaultOpenIds: ['shipping'],
}) %>

Allow multiple + disabled item

Preview

Standard shipping takes 3–5 business days. Express orders arrive in 1–2 business days.

Items can be returned within 30 days of delivery for a full refund, provided they are unused and in original packaging.

Code
<%- include('modules/ui/Accordion', {
  allowMultiple: true,
  defaultOpenIds: ['shipping', 'returns'],
  items: [
    { id: 'shipping', title: 'How long does shipping take?', content: '...' },
    { id: 'returns',  title: 'What is your return policy?',  content: '...' },
    { id: 'legal',    title: 'Legal (coming soon)', content: '', disabled: true },
  ],
}) %>
Source modules/ui/Accordion.ejs