MCPInstall

syncfusion-javascript-menu

When building navigation hierarchies, implement Syncfusion Menu for multi-level nested items, data binding, animations, and event handling. Supports horizontal and vertical orientations, scrollable menus, accessibility, and real-time item management.

Installs
57
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/syncfusion/javascript-ui-controls-skills --skill syncfusion-javascript-menu
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads syncfusion-javascript-menu automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Implementing Syncfusion TypeScript Menu

The Syncfusion Menu is a graphical user interface component that serves as a navigation header for applications and websites. It provides support for multi-level nested menu items, data binding, animations, scrolling, and comprehensive event handling.

When to Use This Skill

Use this skill when you need to:

  • Create navigation hierarchies: Build hierarchical menu structures with multiple levels of nested items
  • Implement data-driven menus: Bind menu items from JSON data, services, or self-referential data sources
  • Customize menu appearance: Configure animations, orientation, styling, and themes
  • Handle menu interactions: Respond to user clicks, menu open/close events, and item selection
  • Build responsive menus: Create horizontal/vertical menus with scrolling for large datasets
  • Support accessibility: Implement keyboard navigation and screen reader support
  • Manage menu state: Dynamically add, remove, enable, disable, show, or hide menu items

Control Overview

Key Features

  • Data Binding: Supports hierarchical JSON data, self-referential data, and service-based data sources
  • Template Support: Customize menu items with HTML templates and custom content
  • Orientation: Display menus in horizontal or vertical direction
  • Animations: Apply fade-in, zoom-in, and slide-down effects to sub-menus
  • Scrolling: Enable scrolling for both horizontal and vertical menus
  • Accessibility: Built-in keyboard navigation and ARIA support for screen readers
  • Events: Comprehensive event system with select, beforeOpen, onOpen, beforeClose, onClose, and beforeItemRender
  • Item Management: Add, remove, enable, disable, show, or hide items dynamically
  • RTL Support: Right-to-left language support
  • Hamburger Mode: Mobile-friendly responsive menu

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Installation and package dependencies
  • Development environment setup
  • CSS imports and theme configuration
  • Basic menu initialization with TypeScript
  • HTML structure for menu rendering
  • Running your first menu application

Menu Items and Hierarchy

📄 Read: references/menu-items-and-hierarchy.md

  • Creating simple flat menu items
  • Building multi-level nested hierarchies
  • MenuItem properties overview
  • Item text, IDs, URLs, and icons
  • Separator items for grouping
  • MenuItemModel interface reference

Data Binding and Field Mapping

📄 Read: references/data-binding.md

  • Binding hierarchical JSON data
  • Self-referential data source patterns
  • Data service integration
  • FieldSettings for custom field mapping
  • HTML element binding
  • Large dataset handling

Customization and Styling

📄 Read: references/customization-and-styling.md

  • CSS class customization
  • Horizontal versus vertical orientation
  • Animation settings and effects
  • Rounded corner styling
  • Custom menu items with templates
  • Right-to-left (RTL) support
  • Theme customization

Working with Events

📄 Read: references/working-with-events.md

  • Event types and lifecycle
  • Select event handling
  • beforeOpen and onOpen events
  • beforeClose and onClose events
  • beforeItemRender event
  • Event argument properties
  • Real-world event examples

Advanced Features and Item Management

📄 Read: references/advanced-features.md

  • Adding and removing menu items
  • Enabling and disabling items
  • Hiding and showing items
  • Scrollable menus (enableScrolling)
  • Sub-menu positioning
  • Hamburger mode for mobile
  • Menu effects and transitions
  • Performance optimization

Use Cases and Scenarios

📄 Read: references/use-cases-and-scenarios.md

  • Scrollable menus with large datasets
  • Accordion menu patterns
  • Sidebar menu implementation
  • Toolbar integration
  • Context menu patterns
  • Mnemonic UI implementation
  • Menu with icons and titles

Accessibility and Best Practices

📄 Read: references/accessibility-and-best-practices.md

  • Keyboard navigation support
  • ARIA attributes and screen readers
  • HTML sanitization for security
  • Mobile responsiveness
  • Performance optimization tips
  • Common pitfalls and solutions
  • Testing and validation

Complete API Reference

📄 Read: references/api-reference.md

  • Menu properties with types and defaults
  • MenuItem properties and options
  • Menu methods and parameters
  • Events with argument structures
  • Animation effects and enums
  • Field settings configuration
  • Complete code examples for each API element

Quick Start Example

import { Menu, MenuItemModel } from '@syncfusion/ej2-navigations';
import { enableRipple } from '@syncfusion/ej2-base';

enableRipple(true);

// Define menu items
let menuItems: MenuItemModel[] = [
    {
        text: 'File',
        items: [
            { text: 'Open' },
            { text: 'Save' },
            { text: 'Exit' }
        ]
    },
    {
        text: 'Edit',
        items: [
            { text: 'Cut' },
            { text: 'Copy' },
            { text: 'Paste' }
        ]
    },
    {
        text: 'View',
        items: [
            { text: 'Toolbar' },
            { text: 'Sidebar' }
        ]
    },
    { text: 'Help' }
];

// Initialize Menu
let menuObj: Menu = new Menu({ items: menuItems }, '#menu');

Common Patterns

Pattern 1: Responding to Item Selection

let menuObj: Menu = new Menu({
    items: menuItems,
    select: (args: MenuEventArgs) => {
        console.log(`Selected: ${args.item.text}`);
    }
}, '#menu');

Pattern 2: Dynamic Item Management

// Add new item
menuObj.insertAfter([{ text: 'Print' }], '#open');

// Enable/disable items
menuObj.enableItems([0, 1]);
menuObj.disableItems([2]);

// Show/hide items
menuObj.showItems([0, 1]);
menuObj.hideItems([2]);

Pattern 3: Event Tracking

let menuObj: Menu = new Menu({
    items: menuItems,
    beforeOpen: (args: BeforeOpenCloseMenuEventArgs) => {
        console.log('Menu opening:', args.name);
    },
    onOpen: (args: OpenCloseMenuEventArgs) => {
        console.log('Menu opened:', args.name);
    },
    beforeClose: (args: BeforeOpenCloseMenuEventArgs) => {
        console.log('Menu closing:', args.name);
    }
}, '#menu');

Pattern 4: Data Binding from JSON

let hierarchicalData: MenuItemModel[] = [
    {
        text: 'Categories',
        items: [
            { text: 'Electronics' },
            { text: 'Furniture' },
            { text: 'Accessories' }
        ]
    }
];

let menuObj: Menu = new Menu({ items: hierarchicalData }, '#menu');

Key Properties and Methods

Essential Properties

PropertyTypePurpose
itemsMenuItemModel[]Array of menu items to display
orientationOrientationHorizontal or Vertical layout
animationSettingsMenuAnimationSettingsModelAnimation effects for sub-menus
enableScrollingbooleanEnable scrolling for large menus
enableRtlbooleanRight-to-left support
cssClassstringCustom CSS classes
fieldsFieldSettingsModelField mapping for data binding

Essential Methods

MethodParametersPurpose
open()element?: HTMLElementOpen menu or sub-menu
close()-Close menu
enableItems()items: string[] | number[]Enable specific items
disableItems()items: string[] | number[]Disable specific items
hideItems()items: string[] | number[]Hide specific items
showItems()items: string[] | number[]Show hidden items
insertAfter()items: MenuItemModel[], target?: string | numberInsert items after target
insertBefore()items: MenuItemModel[], target?: string | numberInsert items before target
removeItems()items: string[] | number[]Remove specific items

Common Use Cases

  1. Application Navigation: Use for main application navigation bars
  2. Dropdown Menus: Context menus and dropdown navigation
  3. Hierarchical Navigation: Multi-level category or section navigation
  4. Responsive Menus: Mobile-friendly hamburger menus
  5. Custom Layouts: Template-based custom menu items
  6. Dynamic Updates: Real-time menu item management
  7. Accessibility: Keyboard-navigable menus

Need more details? Check the complete references above for implementation examples, advanced configurations, and best practices.

FAQ

What does the syncfusion-javascript-menu skill do?

When building navigation hierarchies, implement Syncfusion Menu for multi-level nested items, data binding, animations, and event handling. Supports horizontal and vertical orientations, scrollable menus, accessibility, and real-time item management.

How do I install syncfusion-javascript-menu?

Run npx skills add https://github.com/syncfusion/javascript-ui-controls-skills --skill syncfusion-javascript-menu in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-javascript-menu/ (personal) or .claude/skills/syncfusion-javascript-menu/ (project).

Which AI agents can use syncfusion-javascript-menu?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is syncfusion-javascript-menu safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains syncfusion-javascript-menu?

It is published by syncfusion in syncfusion/javascript-ui-controls-skills. It has 57 recorded installs.

More from syncfusion/javascript-ui-controls-skills

View all →

syncfusion-javascript-grid

syncfusion/javascript-ui-controls-skills

Open the skill to read its SKILL.md instructions.

syncfusion-javascript-common

syncfusion/javascript-ui-controls-skills

Common utilities and features for Syncfusion JavaScript controls. Use this skill when the user needs to implement animations, drag-and-drop, state persistence, RTL support, localization, globalization, security, templates, and advanced features for Syncfusion JavaScript controls.

syncfusion-javascript-dropdowns

syncfusion/javascript-ui-controls-skills

Comprehensive guide for implementing Syncfusion TypeScript dropdown components including AutoComplete, ComboBox, Mention, Dropdownlist, Multiselect, ListBox, and MultiColumn ComboBox. Use this when building selection interfaces, data binding, filtering, cascading dropdowns, dual list transfer, custom templates, and accessible dropdown experiences.

syncfusion-javascript-popups

syncfusion/javascript-ui-controls-skills

Open the skill to read its SKILL.md instructions.

syncfusion-javascript-license

syncfusion/javascript-ui-controls-skills

Open the skill to read its SKILL.md instructions.

syncfusion-javascript-tab

syncfusion/javascript-ui-controls-skills

Open the skill to read its SKILL.md instructions.

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs