syncfusion-javascript-accordion
Syncfusion TypeScript Accordion
The Accordion is a vertically collapsible content panel component that displays one or more expandable/collapsible panels. It supports single or multiple expand modes, custom animations, icons, templates, and data binding.
When to Use This Skill
Use this skill when your user needs to:
- Build responsive accordion menus for navigation
- Create expandable content sections to reduce page height
- Implement multi-step wizards or forms with validation
- Display hierarchical data in collapsible panels
- Customize accordion appearance with icons, animations, and styling
- Load accordion content dynamically from data sources or AJAX
- Integrate accordion with other components (TreeView, forms, etc.)
- Create complex UI patterns like shopping cart steps or FAQ sections
Navigation and Documentation Guide
📚 Documentation Structure
The skill is organized into focused reference files covering different aspects:
Fundamentals
- Installation and setup with npm packages
- Items array initialization
- HTML markup initialization
- CSS imports and theme configuration
- Basic working examples
- Single vs Multiple expand modes
- Expand behavior and toggling
- Initial expanded state
- When to use each mode
- Common workflow patterns
Customization & Styling
- CSS customization guide and selectors
- Header, item, and content styling
- Icon integration (built-in and Font Awesome)
- Animation effects and timing
- Hover states and selected item styling
Data & Content
- Dynamic item loading
- Items array approach
- DataSource binding approach
- AJAX content loading
- Nested accordions
- TreeView integration
- Header templates
- Item templates
- Template data binding
- Dynamic template switching
- Performance optimization
Advanced Topics
- All methods (addItem, removeItem, enableItem, expandItem, hideItem, select, refresh, etc.)
- All events (expanding, expanded, clicked, created, destroyed)
- Event arguments and properties
- State management
- Event listeners
- RTL support and accessibility
- Multi-step form wizards
- Conditional validation workflows
- Shopping cart checkout flow
- Progress tracking
- Best practices
Complete Reference
📄 API Reference ⭐ START HERE FOR COMPLETE API
- All properties documented with types and defaults
- All methods with parameters and examples
- All events and event arguments
- Animation configuration
- Complete code examples
Quick Start Example
import { Accordion } from '@syncfusion/ej2-navigations';
// Initialize Accordion with items array
const accordion = new Accordion({
items: [
{
header: 'Getting Started',
content: 'Learn the basics of Accordion component',
expanded: true
},
{
header: 'Features',
content: 'Explore rich features like templates and data binding'
},
{
header: 'API Reference',
content: 'Complete list of properties, events, and methods'
}
],
// Use animation object, not enableAnimation boolean
animation: {
expand: { effect: 'SlideDown', duration: 400, easing: 'ease-in' },
collapse: { effect: 'SlideUp', duration: 400, easing: 'ease-out' }
}
});
accordion.appendTo('#accordion-element');
Common Patterns
Pattern 1: Single Open Panel (Tabs-like Behavior)
const accordion = new Accordion({
expandMode: 'Single',
items: [
{ header: 'Tab 1', content: 'Content 1', expanded: true },
{ header: 'Tab 2', content: 'Content 2' },
{ header: 'Tab 3', content: 'Content 3' }
]
});
Pattern 2: Multiple Open Panels
const accordion = new Accordion({
expandMode: 'Multiple', // Default
items: [
{ header: 'Section A', content: 'Content A', expanded: true },
{ header: 'Section B', content: 'Content B', expanded: true },
{ header: 'Section C', content: 'Content C' }
]
});
Pattern 3: Accordion with Icons
const accordion = new Accordion({
items: [
{
header: 'Sports',
iconCss: 'e-sports e-acrdn-icons',
content: 'Athletic activities content'
},
{
header: 'Games',
iconCss: 'e-games e-acrdn-icons',
content: 'Gaming activities content'
}
]
});
Pattern 4: Dynamically Manage Items
const accordion = new Accordion({
items: [...],
created: (args) => {
// Disable item at index 2 initially
accordion.enableItem(2, false);
// After some action, enable it
setTimeout(() => {
accordion.enableItem(2, true);
}, 2000);
}
});
Key Properties
| Property | Type | Default | Description |
|---|---|---|---|
items |
AccordionItem[] | [] | Array of accordion items with header, content, and options |
dataSource |
object[] | DataManager | - | External data source (items array, OData, JSON, AJAX) |
expandMode |
'Single' | 'Multiple' | 'Multiple' | Single or Multiple expand mode |
headerTemplate |
string | - | Custom HTML template for item headers |
itemTemplate |
string | - | Custom HTML template for entire items |
expandedIndices |
number[] | [] | Indices of items to expand initially |
animation |
AnimationSettings | {expand: {}, collapse: {}} | Animation with effect, duration, easing |
height |
string | number | auto | Height of accordion container |
width |
string | number | 100% | Width of accordion container |
enableRtl |
boolean | false | Right-to-left text direction |
enablePersistence |
boolean | false | Persist expanded state in localStorage |
enableHtmlSanitizer |
boolean | true | Sanitize HTML for security |
Essential Imports
// Main component
import { Accordion } from '@syncfusion/ej2-navigations';
// Optional: Enable ripple effect
import { enableRipple } from '@syncfusion/ej2-base';
enableRipple(true);
// CSS styles (choose one theme)
import '@syncfusion/ej2-base/styles/fluent2.css';
import '@syncfusion/ej2-navigations/styles/fluent2.css';
Next Steps
- Explore data binding patterns in Data Loading and Content
- Learn template syntax in Templates for custom UI
- Implement form wizards in Advanced Use Cases
- Check Advanced Features for event handling and state management
More from syncfusion/javascript-ui-controls-skills
syncfusion-javascript-gantt-chart
Implement Syncfusion Gantt Chart using JavaScript/TypeScript (Essential JS 2). Use this when working with ej2-gantt component for project scheduling, task dependencies, and timeline management. Covers full Gantt implementation including data binding, task scheduling, columns, resources, timeline configuration, WBS, resource view, critical path, baseline tracking, filtering, sorting, editing, and export functionality (Excel/PDF).
9syncfusion-javascript-maps
Guide to implementing Syncfusion Maps in TypeScript and JavaScript. Use this skill whenever the user needs to create interactive maps, add markers, visualize geographical data, work with map layers, apply color mapping, add annotations, configure legends, or handle map interactions and events. Works with TypeScript (module-based) and JavaScript (CDN/ES5).
8syncfusion-javascript-accumulation-chart
Implements Syncfusion JavaScript accumulation charts (Pie, Doughnut, Funnel, Pyramid) for proportional and percentage-based visualizations. Use when displaying categorical or proportional data. Covers legend and label configuration, interactivity, accessibility, and customization. Works with TypeScript (modules) and JavaScript (CDN/ES5).
8syncfusion-javascript-rich-text-editor
Implements the Syncfusion Rich Text Editor and Markdown Editor using TypeScript (ej2-richtexteditor). Supports both HTML (WYSIWYG) and Markdown modes via editorMode on a single RichTextEditor class. Use this skill for toolbar setup, image/media/table handling, inline or iframe editing, AI assistant, smart editing, import/export, and all content editor scenarios.
8syncfusion-javascript-chart
Implements Syncfusion JavaScript chart controls (Line, Area, Bar, Column, Pie, Polar, Radar, Waterfall, Stock). Use when building interactive data visualizations, dashboards, or real-time charts. Covers series and axes configuration, styling, animations, exporting, and technical indicators. Works with TypeScript (webpack/modules) and JavaScript (CDN/ES5).
8syncfusion-javascript-dropdowns
Comprehensive guide for implementing Syncfusion TypeScript dropdown components including AutoComplete, ComboBox, Mention, Dropdownlist and Multiselect. Use this when building selection interfaces, data binding, filtering, cascading dropdowns, custom templates, and accessible dropdown experiences.
7