1---2name: syncfusion-angular-ribbon3description: Implement the Syncfusion Angular Ribbon component. Use this skill when you need to create Microsoft Office-style ribbon interfaces, organize application commands in tabs and groups, implement file menus or backstage views, or create sophisticated command interfaces. Includes setup, configuration, event handling, layouts, and customization. Use this skill for all Ribbon component implementation needs.4---56# Syncfusion Angular Ribbon Component78## Component Overview910The **Syncfusion Angular Ribbon** is a professional command interface component that organizes application commands in a tabbed ribbon format, similar to Microsoft Office. It features:1112- **Hierarchical Command Organization:** Tabs → Groups → Collections → Items for logical command structure13- **7 Built-in Item Types:** Button, CheckBox, DropDown, SplitButton, ComboBox, ColorPicker, GroupButton, and Gallery14- **Dual Layout Modes:** Classic (multi-row) and Simplified (collapsible) layouts with automatic resizing15- **File Menu & Backstage Views:** Traditional file menus or modern backstage interfaces for document operations16- **Contextual Tabs:** Dynamic tabs that appear based on user selection or context17- **Responsive Resizing:** Automatic item size adjustment (Large, Medium, Small) based on available width18- **Keyboard Navigation:** Full keytips support for keyboard-first workflows19- **Accessibility Features:** WCAG compliance with ARIA attributes and screen reader support20- **RTL Support:** Right-to-left layout for Arabic, Hebrew, Persian, and Urdu languages21- **Gallery Items:** Visual selection panels for themes, styles, and color schemes22- **Help Pane:** Customizable help pane with template support23- **Advanced Event System:** Comprehensive events for tab selection, collapse/expand, launcher clicks, and item interactions24- **Highly Configurable:** Extensive API with 20+ ribbon properties, 30+ item properties, and 10+ events2526## Key Concepts & Hierarchy2728**Important concepts:**29- **Tabs:** Organize major feature categories (Home, Insert, View)30- **Groups:** Group related commands within a tab (Clipboard, Font, Alignment)31- **Collections:** Visual groupings within a group for better organization32- **Items:** Individual commands with 7 types (Button, DropDown, ColorPicker, etc.)33- **Layouts:** Classic (multi-row) or Simplified (collapse-capable) with automatic switching34- **File Menu/Backstage:** Application-level operations (New, Open, Save, Print)3536## Documentation and Navigation Guide3738### Getting Started39📄 **Read:** [references/getting-started.md](references/getting-started.md)40- Installation and package setup (Ivy vs ngcc)41- CSS theme imports and dependencies42- Creating your first Ribbon43- Adding tabs and groups44- Basic items and running the application4546### Tabs, Groups, and Items Structure47📄 **Read:** [references/tabs-groups-items.md](references/tabs-groups-items.md)48- Tab hierarchy and properties49- Adding groups to tabs50- Ribbon collections and items51- Item size configuration (Large, Medium, Small)52- Orientation settings (Row/Column)53- Multiple tabs and groups examples5455### Item Types and Configuration56📄 **Read:** [references/item-types.md](references/item-types.md)57- All 7 built-in item types58- Button items (toggle, disabled states)59- CheckBox, DropDown, SplitButton items60- ComboBox, ColorPicker, GroupButton items61- Complete code examples for each type62- Item settings models and properties6364### Ribbon Layouts and Resizing65📄 **Read:** [references/layouts.md](references/layouts.md)66- Classic layout (default multi-row format)67- Simplified layout (with collapse support)68- Switching between layouts69- Item size allowances and configuration70- Responsive resizing behavior71- Layout examples and best practices7273### File Menu and Backstage Views74📄 **Read:** [references/file-menu-and-backstage.md](references/file-menu-and-backstage.md)75- File Menu configuration and visibility76- Adding menu items with icons and actions77- Backstage view as file menu replacement78- Backstage items and content79- Footer items and separators80- Back button customization81- Target element positioning82- Complete file menu and backstage examples8384### Advanced Features85📄 **Read:** [references/advanced-features.md](references/advanced-features.md)86- Contextual tabs (dynamic tab creation)87- Keytips for keyboard navigation88- Gallery items for visual selection89- Help pane templates90- Tooltip configuration91- Resizing behavior and responsive design92- RTL support for right-to-left languages93- Accessibility features and WCAG compliance9495### Events and Interactivity96📄 **Read:** [references/events.md](references/events.md)97- Tab selection events (tabSelected, tabSelecting)98- Ribbon collapse/expand events99- Backstage item click events100- Event arguments and cancellation101- Event handling patterns102- Complete event examples103104### Customization and Styling105📄 **Read:** [references/customization-and-styling.md](references/customization-and-styling.md)106- CSS class customization107- Theme integration and switching108- CSS variables for styling109- Custom styling examples110- Group icon customization111- Item customization and appearance112- Launcher icon usage113114## Quick Start Example115116Here's a minimal Ribbon with Home and Insert tabs:117118```typescript119import { Component } from "@angular/core";120import { RibbonModule } from '@syncfusion/ej2-angular-ribbon';121import { RibbonButtonSettingsModel, RibbonSplitButtonSettingsModel } from '@syncfusion/ej2-angular-ribbon';122123@Component({124 imports: [ RibbonModule ],125 standalone: true,126 selector: "app-root",127 template: `128 <ejs-ribbon id="ribbon">129 <e-ribbon-tabs>130 <e-ribbon-tab header="Home">131 <e-ribbon-groups>132 <e-ribbon-group header="Clipboard" orientation="Row">133 <e-ribbon-collections>134 <e-ribbon-collection>135 <e-ribbon-items>136 <e-ribbon-item type="SplitButton" [splitButtonSettings]="pasteSettings"></e-ribbon-item>137 </e-ribbon-items>138 </e-ribbon-collection>139 <e-ribbon-collection>140 <e-ribbon-items>141 <e-ribbon-item type="Button" [buttonSettings]="cutButton"></e-ribbon-item>142 <e-ribbon-item type="Button" [buttonSettings]="copyButton"></e-ribbon-item>143 </e-ribbon-items>144 </e-ribbon-collection>145 </e-ribbon-collections>146 </e-ribbon-group>147 </e-ribbon-groups>148 </e-ribbon-tab>149 <e-ribbon-tab header="Insert">150 <e-ribbon-groups>151 <e-ribbon-group header="Illustrations" orientation="Row">152 <e-ribbon-collections>153 <e-ribbon-collection>154 <e-ribbon-items>155 <e-ribbon-item type="Button" [buttonSettings]="chartButton"></e-ribbon-item>156 </e-ribbon-items>157 </e-ribbon-collection>158 </e-ribbon-collections>159 </e-ribbon-group>160 </e-ribbon-groups>161 </e-ribbon-tab>162 </e-ribbon-tabs>163 </ejs-ribbon>164 `,165 styleUrls: ['./app.component.css']166})167export class AppComponent {168 public pasteSettings = { 169 iconCss: "e-icons e-paste", 170 items: [{ text: "Keep Source Format" }, { text: "Merge format" }], 171 content: "Paste" 172 };173 public cutButton: RibbonButtonSettingsModel = { iconCss: "e-icons e-cut", content: "Cut" };174 public copyButton: RibbonButtonSettingsModel = { iconCss: "e-icons e-copy", content: "Copy" };175 public chartButton: RibbonButtonSettingsModel = { iconCss: "e-icons e-chart", content: "Chart" };176}177```178179---180181## Common Patterns182183### Pattern 1: Multi-Tab Command Interface1841. Define multiple tabs for major features (Home, Insert, View, Format)1852. Add groups within each tab for related commands1863. Configure collections to organize items visually1874. Use appropriate item types (Button, DropDown, ColorPicker)1885. Set `activeLayout` to Classic or Simplified1896. Handle `tabSelected` event for tab-specific actions190191### Pattern 2: File Menu Integration with Backstage1921. Configure `fileMenu` or `backStageMenu` for document operations1932. Add menu items for New, Open, Save, Print, Export1943. Set icons with `iconCss` and content areas for backstage1954. Handle menu item clicks with event handlers1965. Use footer items for settings or account options1976. Configure back button for backstage navigation198199### Pattern 3: Responsive Resizing with Size Priorities2001. Set `allowedSizes` array on items (Large, Medium, Small)2012. Configure `activeSize` for initial display size2023. Ribbon automatically adjusts item sizes based on width2034. Use `Large` for primary commands, `Small` for secondary2045. Handle `ribbonCollapsing` event for custom resize logic2056. Test responsive behavior at different viewport widths206207### Pattern 4: Contextual Tabs for Dynamic Commands2081. Define `contextualTabs` array with tab configurations2092. Set `visible` property based on user selection or context2103. Use `isSelected` to activate contextual tab programmatically2114. Add tab-specific groups and items for contextual commands2125. Handle `tabSelected` to detect contextual tab activation2136. Toggle visibility dynamically in response to user actions214215### Pattern 5: Keyboard Navigation with Keytips2161. Enable `enableKeyTips` on ribbon component2172. Assign `keyTip` property to tabs (Alt+H for Home)2183. Add keytips to groups and individual items2194. Configure `layoutSwitcherKeyTip` for layout toggle2205. Set keytips on file menu and backstage items2216. Follow consistent keytip patterns (Alt+ letter combinations)222223### Pattern 6: Gallery Items for Visual Selection2241. Configure items with `type="Gallery"` for visual panels2252. Define `gallerySettings` with groups and items2263. Set `itemCount`, `popupWidth`, `popupHeight` for display2274. Use templates for custom gallery item rendering2285. Handle selection events for gallery item clicks2296. Common use cases: themes, styles, colors, table designs230231---232233## Key Properties & Events234235### Core Ribbon Configuration236| Property | Type | Default | When to Use |237|----------|------|---------|------------|238| `tabs` | RibbonTabModel[] | `[]` | Define ribbon tabs with groups and items |239| `activeLayout` | LayoutType | `'Classic'` | Set layout mode (Classic or Simplified) |240| `selectedTab` | number | `0` | Set or get the currently active tab index |241| `isMinimized` | boolean | `false` | Control ribbon minimized state |242243### Layout & Appearance244| Property | Type | Default | When to Use |245|----------|------|---------|------------|246| `width` | string \| number | `'100%'` | Set ribbon container width |247| `cssClass` | string | `''` | Apply custom CSS classes for styling and themes |248| `hideLayoutSwitcher` | boolean | `false` | Hide the Classic/Simplified layout toggle button |249| `tabAnimation` | object | `null` | Configure tab switching animation settings |250251### Keyboard & Accessibility252| Property | Type | Default | When to Use |253|----------|------|---------|------------|254| `enableKeyTips` | boolean | `false` | Enable keytips for keyboard navigation (Alt+ shortcuts) |255| `layoutSwitcherKeyTip` | string | `''` | Set keytip for layout switcher button |256| `launcherIconCss` | string | `''` | Default CSS class for launcher icons across all groups |257258### File Menu & Backstage259| Property | Type | Default | When to Use |260|----------|------|---------|------------|261| `fileMenu` | FileMenuSettingsModel | `null` | Configure traditional file menu (New, Open, Save, Print) |262| `backStageMenu` | BackStageMenuModel | `null` | Configure modern backstage view (replaces file menu) |263264### Advanced Features265| Property | Type | Default | When to Use |266|----------|------|---------|------------|267| `contextualTabs` | RibbonContextualTabModel[] | `[]` | Define tabs that appear based on context or selection |268| `helpPaneTemplate` | string | `''` | Custom template for help pane content |269270### Globalization271| Property | Type | Default | When to Use |272|----------|------|---------|------------|273| `locale` | string | `'en-US'` | Set language/culture for localization |274| `enableRtl` | boolean | `false` | Enable right-to-left layout (Arabic, Hebrew, Persian, Urdu) |275| `enablePersistence` | boolean | `false` | Save ribbon state between page reloads |276277### Tab Configuration278| Property | Type | Default | When to Use |279|----------|------|---------|------------|280| `header` | string | `''` | Tab display text (Home, Insert, View) |281| `groups` | RibbonGroupModel[] | `[]` | Array of groups within the tab |282| `id` | string | `''` | Unique identifier for the tab |283| `keyTip` | string | `''` | Keyboard shortcut keytip (H for Home) |284285### Group Configuration286| Property | Type | Default | When to Use |287|----------|------|---------|------------|288| `header` | string | `''` | Group display text (Clipboard, Font, Alignment) |289| `orientation` | ItemOrientation | `'Column'` | Layout direction (Row or Column) |290| `enableGroupOverflow` | boolean | `false` | Show overflow dropdown when group doesn't fit |291| `isCollapsible` | boolean | `true` | Allow group to collapse in simplified layout |292| `showLauncherIcon` | boolean | `false` | Show launcher icon for dialog/pane launch |293| `groupIconCss` | string | `''` | CSS class for group icon in overflow/launcher |294295### Item Configuration296| Property | Type | Default | When to Use |297|----------|------|---------|------------|298| `type` | RibbonItemType | `'Button'` | Item type: Button, CheckBox, DropDown, SplitButton, ComboBox, ColorPicker, GroupButton, Gallery |299| `id` | string | `''` | Unique identifier for the item |300| `allowedSizes` | RibbonItemSize[] | `['Large', 'Medium', 'Small']` | Sizes item can resize to (responsive behavior) |301| `activeSize` | RibbonItemSize | `'Medium'` | Current display size of item |302| `disabled` | boolean | `false` | Disable item to prevent user interaction |303| `displayOptions` | DisplayMode | `'Auto'` | Control display (Auto, Classic, Simplified, Overflow) |304| `cssClass` | string | `''` | Custom CSS class for item styling |305| `keyTip` | string | `''` | Keyboard shortcut keytip for item |306| `ribbonTooltipSettings` | TooltipSettingsModel | `null` | Tooltip configuration (id, title, content, iconCss, cssClass) |307| `itemTemplate` | string | `''` | Custom template for item rendering |308| `buttonSettings` | RibbonButtonSettingsModel | `null` | Button-specific settings (iconCss, content, clicked) |309| `dropDownSettings` | RibbonDropDownSettingsModel | `null` | DropDown-specific settings (iconCss, content, items) |310| `splitButtonSettings` | RibbonSplitButtonSettingsModel | `null` | SplitButton-specific settings (iconCss, items, clicked) |311| `checkBoxSettings` | RibbonCheckBoxSettingsModel | `null` | CheckBox-specific settings (label, checked, change) |312| `colorPickerSettings` | RibbonColorPickerSettingsModel | `null` | ColorPicker-specific settings (value, change) |313| `comboBoxSettings` | RibbonComboBoxSettingsModel | `null` | ComboBox-specific settings (dataSource, value, fields) |314| `groupButtonSettings` | RibbonGroupButtonSettingsModel | `null` | GroupButton-specific settings (items, selected) |315| `gallerySettings` | RibbonGallerySettingsModel | `null` | Gallery configuration (groups, items, itemCount, popupWidth, popupHeight, template) |316317### File Menu Configuration318| Property | Type | Default | When to Use |319|----------|------|---------|------------|320| `visible` | boolean | `false` | Show/hide file menu button |321| `text` | string | `'File'` | File menu button text |322| `menuItems` | FileMenuItemModel[] | `[]` | Array of menu items (New, Open, Save, Print) |323| `itemTemplate` | string | `''` | Custom template for menu items |324| `popupTemplate` | string | `''` | Custom template for entire popup |325| `keyTip` | string | `''` | Keytip for file menu (F for File) |326| `ribbonTooltipSettings` | TooltipSettingsModel | `null` | Tooltip settings for file menu button |327328### Backstage Configuration329| Property | Type | Default | When to Use |330|----------|------|---------|------------|331| `visible` | boolean | `false` | Show/hide backstage view |332| `text` | string | `'File'` | Backstage button text |333| `items` | BackStageItemModel[] | `[]` | Backstage items (id, text, iconCss, content, separator, isFooter) |334| `backButton` | BackButtonModel | `null` | Back button configuration (text, iconCss, visible) |335| `width` | string | `'auto'` | Backstage width dimension |336| `height` | string | `'auto'` | Backstage height dimension |337| `target` | HTMLElement | `null` | Element for positioning backstage |338| `template` | string | `''` | Custom template for backstage content |339| `keyTip` | string | `''` | Keytip for backstage button |340| `ribbonTooltipSettings` | TooltipSettingsModel | `null` | Tooltip settings for backstage button |341342### Contextual Tab Configuration343| Property | Type | Default | When to Use |344|----------|------|---------|------------|345| `visible` | boolean | `false` | Show/hide contextual tab group |346| `isSelected` | boolean | `false` | Whether contextual tab is active |347| `tabs` | RibbonTabModel[] | `[]` | Array of tabs in contextual group |348349### Key Events350| Event | Arguments | When to Use |351|-------|-----------|------------|352| `(tabSelected)` | TabSelectedEventArgs | After a tab is selected (get tab index and data) |353| `(tabSelecting)` | TabSelectingEventArgs | Before tab selection (cancelable, validate selection) |354| `(ribbonCollapsing)` | RibbonCollapsingEventArgs | Before ribbon collapses (cancelable) |355| `(ribbonExpanded)` | RibbonExpandedEventArgs | After ribbon expands |356| `(launcherClick)` | LauncherClickEventArgs | When launcher icon is clicked (open dialog/pane) |357| `(overflowPopupOpen)` | OverflowPopupEventArgs | Before overflow popup opens (cancelable) |358| `(overflowPopupClose)` | OverflowPopupEventArgs | Before overflow popup closes (cancelable) |359| `(layoutSwitched)` | LayoutSwitchedEventArgs | When layout switches between Classic/Simplified |360| `(backStageItemClick)` | BackStageItemClickEventArgs | When backstage item is clicked |361362### File Menu Events363| Event | Arguments | When to Use |364|-------|-----------|------------|365| `beforeOpen` | BeforeOpenCloseMenuEventArgs | Before file menu opens (cancelable) |366| `open` | OpenCloseMenuEventArgs | After file menu opens |367| `beforeClose` | BeforeOpenCloseMenuEventArgs | Before file menu closes (cancelable) |368| `close` | OpenCloseMenuEventArgs | After file menu closes |369| `beforeItemRender` | MenuEventArgs | Before menu item renders (customize rendering) |370| `select` | MenuEventArgs | When menu item is selected |371372---