syncfusion-aspnetcore-ribbon
Syncfusion ASP.NET Core Ribbon Control
Overview
A comprehensive skill for implementing the Syncfusion EJ2 Ribbon component in ASP.NET Core applications using Razor Tag Helpers. This skill covers installation, setup, component structure, all item types, events, theming, and advanced features. The Ribbon component is a feature-rich navigation control that:
- Organizes commands in tabs and groups - Tabbed interface with logical grouping
- Supports 7 item types - Button, CheckBox, DropDown, SplitButton, ComboBox, ColorPicker, GroupButton
- Provides file menu & backstage - Traditional file menu or modern backstage view
- Contextual tabs on demand - Tabs appear when needed (e.g., on image/table selection)
- Gallery items - Visual selection of styles, templates, or options
- Responsive layouts - Classic (multi-row) and Simplified (compact) modes
- Keyboard navigation - KeyTips for Alt+key shortcuts
- WCAG 2.1 compliant - Full accessibility support with ARIA
- Built-in themes - Material, Bootstrap, Fluent, Tailwind, Fabric
Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- NuGet package installation
- Tag Helper registration in _ViewImports.cshtml
- CSS and script setup in _Layout.cshtml
- First working example with complete setup
- Available themes (Material, Bootstrap, Fluent, Tailwind, Fabric)
- Advanced feature registration (no separate module injection needed in ASP.NET Core)
- Localization with
localeproperty - State persistence with
enablePersistence
Ribbon Structure
📄 Read: references/ribbon-structure.md
- Component hierarchy (Ribbon → Tab → Group → Collection → Item)
- Adding tabs with
<e-ribbon-tab> - Adding groups with
<e-ribbon-group> - Adding collections and items
- Organizing ribbon content
- Best practices for structure
Items & Groups Configuration
📄 Read: references/items-and-groups.md
- All 7 item types (Button, CheckBox, DropDown, SplitButton, ComboBox, ColorPicker, GroupButton, Template)
- Exact
RibbonXxxSettingsconfiguration for each type - Group properties (header, collapsibility, priority, overflow)
- Item sizing (Large, Medium, Small)
- Display options (Auto, Classic, Simplified, Overflow)
- Disabled states
Tabs & Groups Management
📄 Read: references/tabs-and-groups.md
- Tab management patterns
- Multi-tab setup examples
- Group organization
- Collapsibility control (
isCollapsible) - Priority handling (higher = collapses first)
- Launcher icons
- Group overflow behavior
Layouts & Display Modes
📄 Read: references/layouts-display-modes.md
- Classic layout (default, multi-row)
- Simplified layout (compact, single-row)
- Layout switching
- Responsive resizing behavior
- Item sizing progression (Large → Medium → Small)
- Minimized state
- Hide layout switcher option
File Menu & Backstage
📄 Read: references/file-menu-backstage.md
- File menu basics (
<e-ribbon-filemenusettings>) - Menu item configuration with
MenuItemlist - Backstage view (
<e-ribbon-backstagemenusettings>) - Backstage items with content
- Footer items and separators
- Back button customization
Contextual Tabs & Gallery
📄 Read: references/contextual-tabs-gallery.md
- Contextual tabs on demand
- Visibility control with conditions
- Gallery items (
type=Gallery) - Gallery groups with headers
- Gallery item properties (content, iconCss, disabled)
- Visual selection patterns
Events & Accessibility
📄 Read: references/events-accessibility.md
- Ribbon events (tabSelected, tabSelecting, itemClick, etc.)
- KeyTips configuration (
enableKeyTips,keyTipproperty) - Keyboard navigation
- WCAG 2.1 compliance
- ARIA attributes support
- RTL support (
enableRtl)
Customization & Theming
📄 Read: references/customization-theming.md
- Built-in themes table (5 themes)
- Theme CSS import paths
- Theme switching implementation
- CSS customization classes
- Dark mode support
- Custom icons and styling
Tooltips & Help
📄 Read: references/tooltips-help-pane.md
- Item tooltips with
RibbonTooltipSettings - Title and content properties
- Custom tooltip HTML
- Help pane component patterns
- Contextual help implementation
Methods & Properties
📄 Read: references/methods-and-properties.md
- Ribbon methods (getComponent, destroy)
- Key events and callbacks
- Property access patterns
- Programmatic control
- State management
Troubleshooting
📄 Read: references/troubleshooting.md
- Common issues and solutions
- Tag helper registration problems
- Data binding issues
- Event handling troubleshooting
- Performance optimization
- Styling problems
- ASP.NET Core-specific gotchas
Key Properties & Events
Essential Properties:
id- Unique identifier for the ribbonactiveLayout- Set toClassicorSimplifiedisMinimized- Collapse/expand the ribbon (true/false)enableKeyTips- Enable keyboard shortcuts (true/false)enableRtl- Right-to-left support (true/false)hideLayoutSwitcher- Hide layout switcher button (true/false)layoutSwitcherKeyTip- KeyTip character for the layout switcher buttonhelpPaneTemplate- CSS selector or HTML string for the right-side help paneenablePersistence- Persist ribbon state across page reloads (true/false)locale- Locale string for built-in UI text (e.g.,"en-us","fr-FR")
Key Events:
created- Triggered after component creationtabSelected- Triggered after tab selection (args.selectedIndex,args.previousIndex,args.isContextual)tabSelecting- Triggered before tab selection (args.cancelto prevent,args.isInteracted)ribbonCollapsing- Triggered before ribbon collapses (args.cancelto prevent)ribbonExpanding- Triggered before ribbon expands (args.cancelto prevent)ribbonLayoutSwitched- Triggered after layout switch (args.activeLayout)launcherIconClick- Triggered when a group launcher icon is clicked (args.groupId)overflowPopupOpen- Triggered when overflow popup opens (args.element,args.cancel)overflowPopupClose- Triggered when overflow popup closes (args.element,args.cancel)
Quick Start
Basic Ribbon with Tabs & Groups
@using Syncfusion.EJ2
@using Syncfusion.EJ2.Ribbon
@using Syncfusion.EJ2.Navigations
<ejs-ribbon id="ribbon">
<e-ribbon-tabs>
<e-ribbon-tab header="Home">
<e-ribbon-groups>
<e-ribbon-group header="Clipboard">
<e-ribbon-collections>
<e-ribbon-collection>
<e-ribbon-items>
<e-ribbon-item type=Button>
<e-ribbon-buttonsettings iconCss="e-icons e-paste" content="Paste"></e-ribbon-buttonsettings>
</e-ribbon-item>
</e-ribbon-items>
</e-ribbon-collection>
</e-ribbon-collections>
</e-ribbon-group>
</e-ribbon-groups>
</e-ribbon-tab>
<e-ribbon-tab header="Insert">
<e-ribbon-groups>
<e-ribbon-group header="Tables">
<e-ribbon-collections>
<e-ribbon-collection>
<e-ribbon-items>
<e-ribbon-item type=Button>
<e-ribbon-buttonsettings iconCss="e-icons e-table" content="Table"></e-ribbon-buttonsettings>
</e-ribbon-item>
</e-ribbon-items>
</e-ribbon-collection>
</e-ribbon-collections>
</e-ribbon-group>
</e-ribbon-groups>
</e-ribbon-tab>
</e-ribbon-tabs>
</ejs-ribbon>
With File Menu
@{
List<MenuItem> fileOptions = new List<MenuItem>() {
new MenuItem { Text = "New", IconCss = "e-icons e-file-new" },
new MenuItem { Text = "Open", IconCss = "e-icons e-folder-open" },
new MenuItem { Text = "Save", IconCss = "e-icons e-save" }
};
}
<ejs-ribbon id="ribbon">
<e-ribbon-filemenusettings visible="true" menuItems=fileOptions></e-ribbon-filemenusettings>
<e-ribbon-tabs>
<!-- tabs -->
</e-ribbon-tabs>
</ejs-ribbon>
Common Patterns
Pattern: Multi-Tab Ribbon with Multiple Groups
<ejs-ribbon id="ribbon">
<e-ribbon-tabs>
<e-ribbon-tab header="Home">
<e-ribbon-groups>
<e-ribbon-group header="Clipboard" orientation=Row>
<!-- Items -->
</e-ribbon-group>
<e-ribbon-group header="Font" orientation=Row enableGroupOverflow=true>
<!-- Items -->
</e-ribbon-group>
</e-ribbon-groups>
</e-ribbon-tab>
<e-ribbon-tab header="View">
<e-ribbon-groups>
<e-ribbon-group header="Views" orientation=Row>
<!-- Items -->
</e-ribbon-group>
</e-ribbon-groups>
</e-ribbon-tab>
</e-ribbon-tabs>
</ejs-ribbon>
Pattern: Multiple Item Types in Groups
@{
List<string> fontOptions = new List<string>() { "Arial", "Calibri", "Cambria", "Georgia" };
}
<e-ribbon-group header="Formatting">
<e-ribbon-collections>
<e-ribbon-collection>
<e-ribbon-items>
<!-- ComboBox -->
<e-ribbon-item type=ComboBox>
<e-ribbon-comboboxsettings dataSource=fontOptions index=0 width="120px"></e-ribbon-comboboxsettings>
</e-ribbon-item>
<!-- ColorPicker -->
<e-ribbon-item type=ColorPicker allowedSizes=Small>
<e-ribbon-colorpickersettings value="#123456"></e-ribbon-colorpickersettings>
</e-ribbon-item>
<!-- Toggle Button -->
<e-ribbon-item type=Button allowedSizes=Small>
<e-ribbon-buttonsettings iconCss="e-icons e-bold" isToggle=true></e-ribbon-buttonsettings>
</e-ribbon-item>
</e-ribbon-items>
</e-ribbon-collection>
</e-ribbon-collections>
</e-ribbon-group>
Pattern: Event Handling
<ejs-ribbon id="ribbon"
tabSelected="onTabSelected"
tabSelecting="onTabSelecting"
ribbonLayoutSwitched="onLayoutSwitched"
launcherIconClick="onLauncherClick">
<!-- ribbon content -->
</ejs-ribbon>
<script>
function onTabSelected(args) {
console.log('Tab selected:', args.selectedIndex);
console.log('Previous tab:', args.previousIndex);
console.log('Is contextual:', args.isContextual);
}
function onTabSelecting(args) {
console.log('Tab selecting:', args.selectedIndex);
// args.cancel = true; // Prevent selection if needed
}
function onLayoutSwitched(args) {
console.log('Layout changed to:', args.activeLayout); // 'Classic' or 'Simplified'
}
function onLauncherClick(args) {
console.log('Launcher clicked for group:', args.groupId);
}
</script>
Workflow Pattern
When a user needs Ribbon functionality:
- Identify scope: Tab organization, item types, file menu, events needed
- Start with Getting Started: Installation and basic setup
- Choose references based on features:
- Items configuration → items-and-groups.md
- Layout/responsive → layouts-display-modes.md
- File menu → file-menu-backstage.md
- Keyboard/accessibility → events-accessibility.md
- Look & feel → customization-theming.md
- Implement patterns following copy-paste examples
- Debug issues → troubleshooting.md
More from syncfusion/aspnetcore-ui-components-skills
syncfusion-aspnetcore-charts
Implements Syncfusion ASP.NET Core Chart (SfChart) for data visualization. Use this when building charts, visualizing time-series or categorical data, or creating dashboards. Covers series configuration (line, bar, pie), axes, tooltips, legends, and customization for ASP.NET Core applications.
11syncfusion-aspnetcore-textbox
Complete guide to implementing the Syncfusion TextBox component in ASP.NET Core applications with tag helpers, validation, floating labels, and adornments for building accessible input forms.
11syncfusion-aspnetcore-list-box
Implement and configure Syncfusion ASP.NET Core ListBox component with selection controls. Use this when building selection interfaces with single/multiple modes, data binding, or advanced features. Covers ListBox implementation, selection state management, appearance customization, and user interaction handling.
10syncfusion-aspnetcore-common
**CONFIGURATION GUIDE** — Assist with Syncfusion ASP.NET Core EJ2 components setup, localization, and version compatibility. Use when: installing Syncfusion packages, configuring globalization/localization, selecting compatible versions.
10syncfusion-aspnetcore-rich-text-editor
Implements the Syncfusion ASP.NET Core Rich Text Editor (ejs-richtexteditor tag helper) supporting HTML (WYSIWYG) and Markdown editing modes. Set editorMode='Markdown' for Markdown; default is HTML. Use this skill for toolbar configuration, image upload, table editing, inline or iframe mode, AI assistant integration, mentions, and form validation with rich text in ASP.NET Core projects.
10syncfusion-aspnetcore-theme
**THEMING & APPEARANCE GUIDE** — Assist with Syncfusion ASP.NET Core EJ2 component theming, customization, size modes, and dynamic theme switching. Use when: applying themes (Bootstrap, Material, Tailwind, Fluent, etc.), customizing theme variables, implementing theme switchers, enabling touch mode, or customizing icons and appearance.
10