Implementing Syncfusion Angular Menu Component
The Menu component is a graphical user interface that serves as a navigation header for your application or site. It supports multi-level nested menu items, rich customization, data binding, templates, animations, comprehensive event handling, internationalization, state persistence, and mobile-friendly hamburger mode.
When to Use This Skill
Use this skill when you need to:
- Create navigation menus with hierarchical structures
- Bind data from arrays or remote sources
- Customize menu items dynamically (add, remove, enable, disable)
- Handle menu events (click, open, close, select)
- Apply animations and control orientation
- Add icons, images, and navigation URLs to menu items
- Implement accessibility features
- Style and theme the menu
- Build real-world patterns (sidebar menus, toolbar menus, context menus)
Component Overview
Key Features:
- ✅ Hierarchical and self-referential data binding
- ✅ HTML templates and custom item rendering
- ✅ Multi-level submenu support with nesting
- ✅ Multiple animation effects (FadeIn, SlideDown, ZoomIn)
- ✅ Horizontal and vertical orientation
- ✅ Icon and image support
- ✅ Enable/disable, show/hide menu items dynamically
- ✅ Event-driven customization
- ✅ RTL (Right-to-Left) support
- ✅ Accessibility features (keyboard navigation, ARIA)
- ✅ CSS customization and theming
Documentation and Navigation Guide
📖 Core Documentation (Start Here)
1️⃣ Getting Started
📄 Read: references/getting-started.md (Start here for new users)
- ✅ Installation and package setup
- ✅ Basic menu implementation
- ✅ CSS imports and theme configuration
- ✅ Essential properties (enablePersistence, enableRtl, cssClass, hoverDelay, enableScrolling, locale)
- ✅ Standalone architecture setup
- ✅ First application example
2️⃣ Data Source Binding and Templates
📄 Read: references/data-source-binding.md
- ✅ Hierarchical data binding with field mappings
- ✅ Self-referential data structures
- ✅ Remote data binding with DataManager
- ✅ HTML templates and custom item rendering
- ✅ Dynamic data population
- ✅ FieldSettingsModel configuration
3️⃣ Menu Items Customization & Dynamic Management
📄 Read: references/menu-items.md (Now includes methods!)
- ✅ Menu item properties (text, id, iconCss, url, separator)
- ✅ Icons and images in menu items
- ✅ Navigation URLs
- ✅ Custom attributes (htmlAttributes)
- ✅ NEW: Dynamic Methods Reference:
insertBefore() - Add items before a target
insertAfter() - Add items after a target
removeItems() - Delete menu items
enableItems() - Enable/disable items
showItems() - Display hidden items
hideItems() - Hide menu items
- ✅ Enable/disable menu items
- ✅ Show/hide menu items
- ✅ Add, remove, insert menu items dynamically
- ✅ Separators for grouping items
- ✅ Complete dynamic menu management example
4️⃣ Animation and Orientation
📄 Read: references/animation-and-orientation.md
- ✅ Animation settings (effect, duration, easing)
- ✅ Animation effects (FadeIn, SlideDown, ZoomIn, None)
- ✅ Horizontal and vertical orientation
- ✅ Sub-menu positioning and behavior
- ✅ Menu open-on-click vs hover behavior
5️⃣ Events and Interactions
📄 Read: references/events-and-interactions.md (Enhanced with event arguments)
- ✅ Event overview (7 events documented)
- ✅ NEW: Complete Event Arguments Documentation:
BeforeOpenCloseMenuEventArgs - beforeOpen/beforeClose events
OpenCloseMenuEventArgs - onOpen/onClose events
MenuEventArgs - select/beforeItemRender events
- ✅ beforeOpen and beforeClose events (cancelable)
- ✅ onOpen and onClose events
- ✅ Select event handling
- ✅ beforeItemRender event (for tooltips and custom rendering)
- ✅ Created event for initialization
- ✅ Dynamic menu modification through events
🎯 Advanced Features & Patterns
6️⃣ Complete API Reference
📄 Read: references/api-reference.md (Comprehensive API documentation!)
- ✅ All MenuModel properties with examples (16 properties)
- ✅ All MenuItem properties with examples (7 properties)
- ✅ Animation settings configuration
- ✅ Field settings for data binding
- ✅ All Menu Methods with signatures and examples:
- insertBefore(), insertAfter(), removeItems()
- enableItems(), showItems(), hideItems()
- ✅ All Menu Events with arguments
- ✅ Event arguments interfaces
- ✅ Enumerations (Orientation, MenuEffect, MenuOpenType)
- ✅ Quick reference summary
7️⃣ Hamburger Mode and Responsive Design
📄 Read: references/hamburger-and-responsive.md (Mobile-first design)
- ✅ Hamburger mode overview
- ✅ hamburgerMode property configuration
- ✅ target and title properties
- ✅ Basic hamburger implementation
- ✅ Responsive toggle (Desktop/Mobile)
- ✅ Hamburger with animations
- ✅ Complete mobile menu solution
- ✅ State persistence with hamburger
- ✅ Accessibility best practices
- ✅ Touch-friendly interactions
8️⃣ Internationalization and State Management
📄 Read: references/internationalization-and-persistence.md (i18n + Storage)
- ✅ Localization (i18n) with 15+ locales
- ✅ RTL language support (Arabic, Hebrew, Persian)
- ✅ State persistence (enablePersistence)
- ✅ HTML sanitization (enableHtmlSanitizer)
- ✅ Hover delay control (hoverDelay)
- ✅ Custom CSS classes (cssClass)
- ✅ Advanced configuration patterns
- ✅ Complete setup example
9️⃣ Styling and Appearance
📄 Read: references/styling-and-appearance.md
- ✅ CSS styling and custom classes
- ✅ Rounded corner styling
- ✅ Title and icon positioning
- ✅ Theme customization
- ✅ Material3 and other theme integration
- ✅ CSS variable customization
🔟 Advanced Features and Scrolling
📄 Read: references/advanced-features.md
- ✅ Right-to-Left (RTL) language support
- ✅ Horizontal and vertical scrolling
- ✅ Large menu handling
- ✅ Menu item grouping with separators
- ✅ Accessibility features (keyboard navigation, ARIA)
- ✅ Nested submenu patterns
1️⃣1️⃣ Use Cases and Real-World Patterns
📄 Read: references/use-cases-and-scenarios.md
- ✅ Sidebar menu implementations
- ✅ Toolbar menu patterns
- ✅ Context menu scenarios
- ✅ ListView and other component integrations
- ✅ Multi-level menu structures
- ✅ Mobile navigation
- ✅ Admin dashboard patterns
- ✅ Best practices and common patterns
🔍 Quick Access by Task
I need to...
- ▶️ Install and get started → getting-started.md
- ▶️ Add dynamic menu items → menu-items.md
- ▶️ Bind data from array/API → data-source-binding.md
- ▶️ Handle menu clicks and events → events-and-interactions.md
- ▶️ Add animations → animation-and-orientation.md
- ▶️ Make mobile-friendly menu → hamburger-and-responsive.md
- ▶️ Support multiple languages → internationalization-and-persistence.md
- ▶️ Find all properties/methods/events → api-reference.md
- ▶️ Style and customize appearance → styling-and-appearance.md
- ▶️ Build production pattern → use-cases-and-scenarios.md
Quick Start Example
import { Component } from '@angular/core';
import { MenuModule } from '@syncfusion/ej2-angular-navigations';
import { MenuItemModel } from '@syncfusion/ej2-angular-navigations';
import { enableRipple } from '@syncfusion/ej2-base';
enableRipple(true);
@Component({
imports: [MenuModule],
standalone: true,
selector: 'app-root',
template: `<ejs-menu [items]="menuItems"></ejs-menu>`
})
export class AppComponent {
public menuItems: MenuItemModel[] = [
{
text: 'File',
items: [
{ text: 'Open' },
{ text: 'Save' },
{ separator: true },
{ text: 'Exit' }
]
},
{
text: 'Edit',
items: [
{ text: 'Cut' },
{ text: 'Copy' },
{ text: 'Paste' }
]
},
{ text: 'Help' }
];
}
CSS Setup:
@import '../node_modules/@syncfusion/ej2-base/styles/material3.css';
@import '../node_modules/@syncfusion/ej2-navigations/styles/material3.css';
Common Patterns
1. Menu with Icons
public menuItems: MenuItemModel[] = [
{
text: 'File',
iconCss: 'e-icons e-file',
items: [
{ text: 'Open', iconCss: 'e-icons e-open' },
{ text: 'Save', iconCss: 'e-icons e-save' }
]
}
];
2. Menu with Animation
public animationSettings: MenuAnimationSettingsModel = {
effect: 'FadeIn',
duration: 800
};
Use in template: <ejs-menu [animationSettings]="animationSettings"></ejs-menu>
3. Menu with Events
public onItemSelect(args: MenuEventArgs): void {
console.log('Selected item:', args.item.text);
}
Use in template: <ejs-menu (select)="onItemSelect($event)"></ejs-menu>
4. Dynamic Menu Modification
@ViewChild('menu')
public menuObj?: MenuComponent;
public addItem(): void {
const newItem: MenuItemModel[] = [
{ text: 'New Menu Item' }
];
this.menuObj?.insertAfter(newItem, 'File', false);
}
Complete API Reference
The Menu component includes 16 component properties, 7 menu item properties, 7 events, 3 animation properties, 6 field settings properties, and 10+ methods.
See references/api-reference.md for complete documentation of:
- ✅ All MenuModel properties with examples
- ✅ All MenuItem properties with examples
- ✅ All methods (insertBefore, insertAfter, removeItems, enableItems, showItems, hideItems)
- ✅ All events with event arguments
- ✅ Enumerations and quick reference
Key Properties
Essential Properties (Most Used)
| Property |
Type |
Purpose |
Default |
items |
MenuItemModel[] |
Array of menu items to render |
[] |
fields |
FieldSettingsModel |
Maps data source fields to menu structure |
- |
template |
string |
Custom template for menu items |
- |
animationSettings |
MenuAnimationSettingsModel |
Controls menu animation behavior |
- |
orientation |
Orientation |
'Horizontal' or 'Vertical' |
'Horizontal' |
showItemOnClick |
boolean |
Open submenu on click (true) or hover (false) |
false |
cssClass |
string |
Custom CSS class for styling |
- |
enableRtl |
boolean |
Enable right-to-left layout |
false |
Advanced Properties (For Special Cases)
| Property |
Type |
Purpose |
Default |
hamburgerMode |
boolean |
Enable mobile hamburger menu |
false |
target |
string |
Hamburger toggle button selector |
- |
title |
string |
Title for hamburger drawer |
- |
enablePersistence |
boolean |
Save menu state to localStorage |
false |
enableScrolling |
boolean |
Enable scrollbar for large menus |
false |
enableHtmlSanitizer |
boolean |
Sanitize HTML content (security) |
true |
hoverDelay |
number |
Delay before submenu opens (ms) |
0 |
locale |
string |
Localization culture code |
'en-US' |
Common Use Cases
- Application Menu Bar - File, Edit, View, Tools menus with submenus
- Navigation Sidebar - Vertical menu for page navigation
- Toolbar Menu - Horizontal menu with icons and commands
- Context Menu - Right-click menu with dynamic items
- Mobile Navigation - Collapsible menu for responsive design
- Admin Dashboard - Multi-level navigation for admin panels
Feature Summary
✅ Data Binding
- Hierarchical menus (parent-child structure)
- Self-referential data (id/parentId relationships)
- Remote data binding via DataManager/HTTP
- Custom templates for items
✅ Customization
- Dynamic add/remove/insert menu items
- Enable/disable items (grayed out)
- Show/hide items programmatically
- Custom HTML attributes and content
- Icon and image support
- Navigation URLs
✅ Interactivity
- 7 events (beforeOpen, beforeClose, onOpen, onClose, select, beforeItemRender, created)
- Cancelable events for control flow
- Keyboard shortcuts support
- Mnemonic UI
✅ Styling & Theming
- 6+ built-in themes (Material3, Bootstrap5, Fluent2, etc.)
- Custom CSS classes
- Rounded corners support
- Icon/title customization
- Dark mode support
✅ Responsive & Mobile
- Hamburger mode for mobile
- RTL language support (15+ locales)
- Horizontal and vertical layouts
- Touch-friendly interactions
- Hamburger animations
✅ Performance & State
- State persistence to localStorage
- Hover delay control
- HTML sanitization for security
- Efficient rendering of large menus
Next Steps:
- Start with getting-started.md for installation
- Choose a reference based on your task (see "Quick Access by Task" above)
- Refer to api-reference.md for complete API details
1---2name: syncfusion-angular-menu3description: Guide for implementing Syncfusion Angular Menu component. Use this skill when the user needs to create navigation menus, hierarchical menu structures, submenu items, menu events, animation, orientation changes, RTL support, or customize menu appearance. Covers installation, data binding, templates, events, styling, accessibility, and real-world implementations like sidebar menus and toolbars.4---56# Implementing Syncfusion Angular Menu Component78The Menu component is a graphical user interface that serves as a navigation header for your application or site. It supports multi-level nested menu items, rich customization, data binding, templates, animations, comprehensive event handling, internationalization, state persistence, and mobile-friendly hamburger mode.910## When to Use This Skill1112Use this skill when you need to:13- **Create navigation menus** with hierarchical structures14- **Bind data** from arrays or remote sources15- **Customize menu items** dynamically (add, remove, enable, disable)16- **Handle menu events** (click, open, close, select)17- **Apply animations** and control orientation18- **Add icons, images, and navigation URLs** to menu items19- **Implement accessibility** features20- **Style and theme** the menu21- **Build real-world patterns** (sidebar menus, toolbar menus, context menus)2223## Component Overview2425**Key Features:**26- ✅ Hierarchical and self-referential data binding27- ✅ HTML templates and custom item rendering28- ✅ Multi-level submenu support with nesting29- ✅ Multiple animation effects (FadeIn, SlideDown, ZoomIn)30- ✅ Horizontal and vertical orientation31- ✅ Icon and image support32- ✅ Enable/disable, show/hide menu items dynamically33- ✅ Event-driven customization34- ✅ RTL (Right-to-Left) support35- ✅ Accessibility features (keyboard navigation, ARIA)36- ✅ CSS customization and theming3738## Documentation and Navigation Guide3940### 📖 Core Documentation (Start Here)4142#### 1️⃣ Getting Started43📄 **Read:** [references/getting-started.md](references/getting-started.md) **(Start here for new users)**44- ✅ Installation and package setup45- ✅ Basic menu implementation46- ✅ CSS imports and theme configuration47- ✅ Essential properties (enablePersistence, enableRtl, cssClass, hoverDelay, enableScrolling, locale)48- ✅ Standalone architecture setup49- ✅ First application example5051#### 2️⃣ Data Source Binding and Templates52📄 **Read:** [references/data-source-binding.md](references/data-source-binding.md)53- ✅ Hierarchical data binding with field mappings54- ✅ Self-referential data structures55- ✅ Remote data binding with DataManager56- ✅ HTML templates and custom item rendering57- ✅ Dynamic data population58- ✅ FieldSettingsModel configuration5960#### 3️⃣ Menu Items Customization & Dynamic Management61📄 **Read:** [references/menu-items.md](references/menu-items.md) **(Now includes methods!)**62- ✅ Menu item properties (text, id, iconCss, url, separator)63- ✅ Icons and images in menu items64- ✅ Navigation URLs65- ✅ Custom attributes (htmlAttributes)66- ✅ **NEW:** Dynamic Methods Reference:67 - `insertBefore()` - Add items before a target68 - `insertAfter()` - Add items after a target69 - `removeItems()` - Delete menu items70 - `enableItems()` - Enable/disable items71 - `showItems()` - Display hidden items72 - `hideItems()` - Hide menu items73- ✅ Enable/disable menu items74- ✅ Show/hide menu items75- ✅ Add, remove, insert menu items dynamically76- ✅ Separators for grouping items77- ✅ Complete dynamic menu management example7879#### 4️⃣ Animation and Orientation80📄 **Read:** [references/animation-and-orientation.md](references/animation-and-orientation.md)81- ✅ Animation settings (effect, duration, easing)82- ✅ Animation effects (FadeIn, SlideDown, ZoomIn, None)83- ✅ Horizontal and vertical orientation84- ✅ Sub-menu positioning and behavior85- ✅ Menu open-on-click vs hover behavior8687#### 5️⃣ Events and Interactions88📄 **Read:** [references/events-and-interactions.md](references/events-and-interactions.md) **(Enhanced with event arguments)**89- ✅ Event overview (7 events documented)90- ✅ **NEW:** Complete Event Arguments Documentation:91 - `BeforeOpenCloseMenuEventArgs` - beforeOpen/beforeClose events92 - `OpenCloseMenuEventArgs` - onOpen/onClose events93 - `MenuEventArgs` - select/beforeItemRender events94- ✅ beforeOpen and beforeClose events (cancelable)95- ✅ onOpen and onClose events96- ✅ Select event handling97- ✅ beforeItemRender event (for tooltips and custom rendering)98- ✅ Created event for initialization99- ✅ Dynamic menu modification through events100101### 🎯 Advanced Features & Patterns102103#### 6️⃣ Complete API Reference104📄 **Read:** [references/api-reference.md](references/api-reference.md) **(Comprehensive API documentation!)**105- ✅ All MenuModel properties with examples (16 properties)106- ✅ All MenuItem properties with examples (7 properties)107- ✅ Animation settings configuration108- ✅ Field settings for data binding109- ✅ **All Menu Methods** with signatures and examples:110 - insertBefore(), insertAfter(), removeItems()111 - enableItems(), showItems(), hideItems()112- ✅ **All Menu Events** with arguments113- ✅ Event arguments interfaces114- ✅ Enumerations (Orientation, MenuEffect, MenuOpenType)115- ✅ Quick reference summary116117#### 7️⃣ Hamburger Mode and Responsive Design118📄 **Read:** [references/hamburger-and-responsive.md](references/hamburger-and-responsive.md) **(Mobile-first design)**119- ✅ Hamburger mode overview120- ✅ hamburgerMode property configuration121- ✅ target and title properties122- ✅ Basic hamburger implementation123- ✅ Responsive toggle (Desktop/Mobile)124- ✅ Hamburger with animations125- ✅ Complete mobile menu solution126- ✅ State persistence with hamburger127- ✅ Accessibility best practices128- ✅ Touch-friendly interactions129130#### 8️⃣ Internationalization and State Management131📄 **Read:** [references/internationalization-and-persistence.md](references/internationalization-and-persistence.md) **(i18n + Storage)**132- ✅ Localization (i18n) with 15+ locales133- ✅ RTL language support (Arabic, Hebrew, Persian)134- ✅ State persistence (enablePersistence)135- ✅ HTML sanitization (enableHtmlSanitizer)136- ✅ Hover delay control (hoverDelay)137- ✅ Custom CSS classes (cssClass)138- ✅ Advanced configuration patterns139- ✅ Complete setup example140141#### 9️⃣ Styling and Appearance142📄 **Read:** [references/styling-and-appearance.md](references/styling-and-appearance.md)143- ✅ CSS styling and custom classes144- ✅ Rounded corner styling145- ✅ Title and icon positioning146- ✅ Theme customization147- ✅ Material3 and other theme integration148- ✅ CSS variable customization149150#### 🔟 Advanced Features and Scrolling151📄 **Read:** [references/advanced-features.md](references/advanced-features.md)152- ✅ Right-to-Left (RTL) language support153- ✅ Horizontal and vertical scrolling154- ✅ Large menu handling155- ✅ Menu item grouping with separators156- ✅ Accessibility features (keyboard navigation, ARIA)157- ✅ Nested submenu patterns158159#### 1️⃣1️⃣ Use Cases and Real-World Patterns160📄 **Read:** [references/use-cases-and-scenarios.md](references/use-cases-and-scenarios.md)161- ✅ Sidebar menu implementations162- ✅ Toolbar menu patterns163- ✅ Context menu scenarios164- ✅ ListView and other component integrations165- ✅ Multi-level menu structures166- ✅ Mobile navigation167- ✅ Admin dashboard patterns168- ✅ Best practices and common patterns169170### 🔍 Quick Access by Task171172**I need to...**173- ▶️ **Install and get started** → [getting-started.md](references/getting-started.md)174- ▶️ **Add dynamic menu items** → [menu-items.md](references/menu-items.md)175- ▶️ **Bind data from array/API** → [data-source-binding.md](references/data-source-binding.md)176- ▶️ **Handle menu clicks and events** → [events-and-interactions.md](references/events-and-interactions.md)177- ▶️ **Add animations** → [animation-and-orientation.md](references/animation-and-orientation.md)178- ▶️ **Make mobile-friendly menu** → [hamburger-and-responsive.md](references/hamburger-and-responsive.md)179- ▶️ **Support multiple languages** → [internationalization-and-persistence.md](references/internationalization-and-persistence.md)180- ▶️ **Find all properties/methods/events** → [api-reference.md](references/api-reference.md)181- ▶️ **Style and customize appearance** → [styling-and-appearance.md](references/styling-and-appearance.md)182- ▶️ **Build production pattern** → [use-cases-and-scenarios.md](references/use-cases-and-scenarios.md)183184## Quick Start Example185186```typescript187import { Component } from '@angular/core';188import { MenuModule } from '@syncfusion/ej2-angular-navigations';189import { MenuItemModel } from '@syncfusion/ej2-angular-navigations';190import { enableRipple } from '@syncfusion/ej2-base';191192enableRipple(true);193194@Component({195 imports: [MenuModule],196 standalone: true,197 selector: 'app-root',198 template: `<ejs-menu [items]="menuItems"></ejs-menu>`199})200export class AppComponent {201 public menuItems: MenuItemModel[] = [202 {203 text: 'File',204 items: [205 { text: 'Open' },206 { text: 'Save' },207 { separator: true },208 { text: 'Exit' }209 ]210 },211 {212 text: 'Edit',213 items: [214 { text: 'Cut' },215 { text: 'Copy' },216 { text: 'Paste' }217 ]218 },219 { text: 'Help' }220 ];221}222```223224**CSS Setup:**225```css226@import '../node_modules/@syncfusion/ej2-base/styles/material3.css';227@import '../node_modules/@syncfusion/ej2-navigations/styles/material3.css';228```229230## Common Patterns231232### 1. Menu with Icons233```typescript234public menuItems: MenuItemModel[] = [235 {236 text: 'File',237 iconCss: 'e-icons e-file',238 items: [239 { text: 'Open', iconCss: 'e-icons e-open' },240 { text: 'Save', iconCss: 'e-icons e-save' }241 ]242 }243];244```245246### 2. Menu with Animation247```typescript248public animationSettings: MenuAnimationSettingsModel = {249 effect: 'FadeIn',250 duration: 800251};252```253Use in template: `<ejs-menu [animationSettings]="animationSettings"></ejs-menu>`254255### 3. Menu with Events256```typescript257public onItemSelect(args: MenuEventArgs): void {258 console.log('Selected item:', args.item.text);259}260```261Use in template: `<ejs-menu (select)="onItemSelect($event)"></ejs-menu>`262263### 4. Dynamic Menu Modification264```typescript265@ViewChild('menu')266public menuObj?: MenuComponent;267268public addItem(): void {269 const newItem: MenuItemModel[] = [270 { text: 'New Menu Item' }271 ];272 this.menuObj?.insertAfter(newItem, 'File', false);273}274```275276## Complete API Reference277278The Menu component includes **16 component properties**, **7 menu item properties**, **7 events**, **3 animation properties**, **6 field settings properties**, and **10+ methods**.279280**See [references/api-reference.md](references/api-reference.md) for complete documentation of:**281- ✅ All MenuModel properties with examples282- ✅ All MenuItem properties with examples283- ✅ All methods (insertBefore, insertAfter, removeItems, enableItems, showItems, hideItems)284- ✅ All events with event arguments285- ✅ Enumerations and quick reference286287## Key Properties288289### Essential Properties (Most Used)290291| Property | Type | Purpose | Default |292|----------|------|---------|---------|293| `items` | `MenuItemModel[]` | Array of menu items to render | `[]` |294| `fields` | `FieldSettingsModel` | Maps data source fields to menu structure | - |295| `template` | `string` | Custom template for menu items | - |296| `animationSettings` | `MenuAnimationSettingsModel` | Controls menu animation behavior | - |297| `orientation` | `Orientation` | 'Horizontal' or 'Vertical' | `'Horizontal'` |298| `showItemOnClick` | `boolean` | Open submenu on click (true) or hover (false) | `false` |299| `cssClass` | `string` | Custom CSS class for styling | - |300| `enableRtl` | `boolean` | Enable right-to-left layout | `false` |301302### Advanced Properties (For Special Cases)303304| Property | Type | Purpose | Default |305|----------|------|---------|---------|306| `hamburgerMode` | `boolean` | Enable mobile hamburger menu | `false` |307| `target` | `string` | Hamburger toggle button selector | - |308| `title` | `string` | Title for hamburger drawer | - |309| `enablePersistence` | `boolean` | Save menu state to localStorage | `false` |310| `enableScrolling` | `boolean` | Enable scrollbar for large menus | `false` |311| `enableHtmlSanitizer` | `boolean` | Sanitize HTML content (security) | `true` |312| `hoverDelay` | `number` | Delay before submenu opens (ms) | `0` |313| `locale` | `string` | Localization culture code | `'en-US'` |314315## Common Use Cases3163171. **Application Menu Bar** - File, Edit, View, Tools menus with submenus3182. **Navigation Sidebar** - Vertical menu for page navigation3193. **Toolbar Menu** - Horizontal menu with icons and commands3204. **Context Menu** - Right-click menu with dynamic items3215. **Mobile Navigation** - Collapsible menu for responsive design3226. **Admin Dashboard** - Multi-level navigation for admin panels323324---325326## Feature Summary327328✅ **Data Binding**329- Hierarchical menus (parent-child structure)330- Self-referential data (id/parentId relationships)331- Remote data binding via DataManager/HTTP332- Custom templates for items333334✅ **Customization**335- Dynamic add/remove/insert menu items336- Enable/disable items (grayed out)337- Show/hide items programmatically338- Custom HTML attributes and content339- Icon and image support340- Navigation URLs341342✅ **Interactivity**343- 7 events (beforeOpen, beforeClose, onOpen, onClose, select, beforeItemRender, created)344- Cancelable events for control flow345- Keyboard shortcuts support346- Mnemonic UI347348✅ **Styling & Theming**349- 6+ built-in themes (Material3, Bootstrap5, Fluent2, etc.)350- Custom CSS classes351- Rounded corners support352- Icon/title customization353- Dark mode support354355✅ **Responsive & Mobile**356- Hamburger mode for mobile357- RTL language support (15+ locales)358- Horizontal and vertical layouts359- Touch-friendly interactions360- Hamburger animations361362✅ **Performance & State**363- State persistence to localStorage364- Hover delay control365- HTML sanitization for security366- Efficient rendering of large menus367368**Next Steps:** 3691. Start with [getting-started.md](references/getting-started.md) for installation3702. Choose a reference based on your task (see "Quick Access by Task" above)3713. Refer to [api-reference.md](references/api-reference.md) for complete API details