shadimage
flx
blockaccordion-03source: ok · hit

With icons

Leading icon beside each trigger label.

npx shadcn add "https://ui.flexnative.com/r/accordion-03.json"
free

Interaction

accordion

Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.

Dependencies

Bundle weight · light

Registry dependencies

accordion

Files1 · source cached 10/15/2026, 7:34:40 AM

registry/patterns/accordion/accordion-03.tsx
import {
  Accordion,
  AccordionContent,
  AccordionItem,
  AccordionTrigger,
} from '@/components/ui/accordion'
import {
  CreditCardIcon,
  LifeBuoyIcon,
  SettingsIcon,
  ShieldIcon,
} from 'lucide-react'

const sections = [
  {
    value: 'account',
    icon: SettingsIcon,
    title: 'Account',
    body: 'Update your name, email, and profile photo from the account settings.',
  },
  {
    value: 'billing',
    icon: CreditCardIcon,
    title: 'Billing',
    body: 'Manage your payment method, view invoices, and change your plan.',
  },
  {
    value: 'security',
    icon: ShieldIcon,
    title: 'Security',
    body: 'Enable two-factor authentication and review active sessions.',
  },
  {
    value: 'support',
    icon: LifeBuoyIcon,
    title: 'Support',
    body: 'Reach our team any time — we typically reply within a few hours.',
  },
]

export function Accordion03() {
  return (
    <Accordion className="w-full max-w-md">
      {sections.map((section) => (
        <AccordionItem key={section.value} value={section.value}>
          <AccordionTrigger>
            <span className="flex items-center gap-2.5">
              <section.icon className="text-muted-foreground size-4" />
              {section.title}
            </span>
          </AccordionTrigger>
          <AccordionContent className="text-muted-foreground">
            {section.body}
          </AccordionContent>
        </AccordionItem>
      ))}
    </Accordion>
  )
}

More from flx

Browse all components in this library →