Accordion
A vertically stacked set of interactive headings that each reveal a section of content. Perfect for organizing information in a space-efficient way while maintaining accessibility.
Features
- Collapsible sections - Show/hide content to save space
- Keyboard navigation - Full keyboard accessibility support
- Multiple modes - Single or multiple sections open simultaneously
- Smooth animations - Elegant expand/collapse transitions
- Accessible - Built on Radix UI with proper ARIA attributes
Installation
pnpm add @helgadigitals/vera-uinpm install @helgadigitals/vera-uiyarn add @helgadigitals/vera-uiUsage
Basic Accordion
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from "@helgadigitals/vera-ui";function BasicAccordionExample() { return ( <Accordion type="single" collapsible className="w-full"> <AccordionItem value="item-1"> <AccordionTrigger>Is it accessible?</AccordionTrigger> <AccordionContent> Yes. It adheres to the WAI-ARIA design pattern and uses semantic HTML. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Is it styled?</AccordionTrigger> <AccordionContent> Yes. It comes with default styles that match your theme and can be customized. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Is it animated?</AccordionTrigger> <AccordionContent> Yes. It's animated by default, but you can disable it if you prefer. </AccordionContent> </AccordionItem> </Accordion> );}Multiple Accordion
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from "@helgadigitals/vera-ui";function MultipleAccordionExample() { return ( <Accordion type="multiple" className="w-full"> <AccordionItem value="item-1"> <AccordionTrigger>Getting Started</AccordionTrigger> <AccordionContent> <div className="space-y-2"> <p>Learn the basics of our platform with these essential steps:</p> <ul className="list-disc ml-4 space-y-1"> <li>Create your account</li> <li>Complete your profile</li> <li>Set up your preferences</li> <li>Explore the dashboard</li> </ul> </div> </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Account Settings</AccordionTrigger> <AccordionContent> <div className="space-y-2"> <p>Manage your account settings including:</p> <ul className="list-disc ml-4 space-y-1"> <li>Profile information</li> <li>Privacy settings</li> <li>Notification preferences</li> <li>Security options</li> </ul> </div> </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Billing & Payments</AccordionTrigger> <AccordionContent> <div className="space-y-2"> <p>Handle your billing and payment information:</p> <ul className="list-disc ml-4 space-y-1"> <li>View current plan</li> <li>Update payment methods</li> <li>Download invoices</li> <li>Manage subscriptions</li> </ul> </div> </AccordionContent> </AccordionItem> </Accordion> );}Disabled Items
You can disable specific accordion items to prevent user interaction:
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from "@helgadigitals/vera-ui";function DisabledAccordionExample() { return ( <Accordion type="single" collapsible className="w-full"> <AccordionItem value="item-1"> <AccordionTrigger>Available Section</AccordionTrigger> <AccordionContent> This section is fully interactive and can be expanded or collapsed. </AccordionContent> </AccordionItem> <AccordionItem value="item-2" disabled> <AccordionTrigger>Disabled Section</AccordionTrigger> <AccordionContent> This content won't be accessible because the item is disabled. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Another Available Section</AccordionTrigger> <AccordionContent> <div className="space-y-2"> <p> This section is also interactive. Disabled items are useful for: </p> <ul className="list-disc ml-4 space-y-1"> <li>Premium features requiring upgrades</li> <li>Temporarily unavailable content</li> <li>Conditional access based on user permissions</li> </ul> </div> </AccordionContent> </AccordionItem> </Accordion> );}API Reference
Accordion
The root accordion container.
Prop
Type
AccordionItem
Individual accordion section container.
Prop
Type
AccordionTrigger
The clickable header that toggles the content.
Prop
Type
AccordionContent
The collapsible content area.
Prop
Type
Use Cases
Documentation & Help
- FAQ sections - Frequently asked questions
- User guides - Step-by-step instructions
- API documentation - Endpoint details and examples
- Troubleshooting - Common issues and solutions
Content Organization
- Product features - Feature lists and descriptions
- Service details - Service offerings and specifications
- Course modules - Educational content organization
- Article sections - Long-form content breakdown
User Interfaces
- Settings panels - Grouped configuration options
- Filter menus - Collapsible filter categories
- Form sections - Grouped form fields
- Navigation menus - Hierarchical menu structures
Related Components
- Collapsible - Simple show/hide content
- Tabs - Alternative content organization
- Card - Content containers
Introduction
Data display components are essential for presenting information in a clear, organized, and accessible manner. These components help users understand and interact with data efficiently.
Alert
An alert component for displaying important messages, notifications, and system feedback to users. Provides clear visual hierarchy and supports different severity levels.