Syncfusion angular ribbon
Skill syncfusion/angular-ui-components-skills/skills/syncfusion-angular-ribbon
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.From its SKILL.md
npx -y skills add syncfusion/angular-ui-components-skills --skill syncfusion-angular-ribbonAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
18.2 KB, ~4.3k tokens by cl100k_base, as published. Nobody here has run it
Syncfusion Angular Ribbon Component
Component Overview
The Syncfusion Angular Ribbon is a professional command interface component that organizes application commands in a tabbed ribbon format, similar to Microsoft Office. It features:
- Hierarchical Command Organization: Tabs β Groups β Collections β Items for logical command structure
- 7 Built-in Item Types: Button, CheckBox, DropDown, SplitButton, ComboBox, ColorPicker, GroupButton, and Gallery
- Dual Layout Modes: Classic (multi-row) and Simplified (collapsible) layouts with automatic resizing
- File Menu & Backstage Views: Traditional file menus or modern backstage interfaces for document operations
- Contextual Tabs: Dynamic tabs that appear based on user selection or context
- Responsive Resizing: Automatic item size adjustment (Large, Medium, Small) based on available width
- Keyboard Navigation: Full keytips support for keyboard-first workflows
- Accessibility Features: WCAG compliance with ARIA attributes and screen reader support
- RTL Support: Right-to-left layout for Arabic, Hebrew, Persian, and Urdu languages
- Gallery Items: Visual selection panels for themes, styles, and color schemes
- Help Pane: Customizable help pane with template support
- Advanced Event System: Comprehensive events for tab selection, collapse/expand, launcher clicks, and item interactions
- Highly Configurable: Extensive API with 20+ ribbon properties, 30+ item properties, and 10+ events
Key Concepts & Hierarchy
Important concepts:
- Tabs: Organize major feature categories (Home, Insert, View)
- Groups: Group related commands within a tab (Clipboard, Font, Alignment)
- Collections: Visual groupings within a group for better organization
- Items: Individual commands with 7 types (Button, DropDown, ColorPicker, etc.)
- Layouts: Classic (multi-row) or Simplified (collapse-capable) with automatic switching
- File Menu/Backstage: Application-level operations (New, Open, Save, Print)
Documentation and Navigation Guide
Getting Started
π Read: references/getting-started.md
- Installation and package setup (Ivy vs ngcc)
- CSS theme imports and dependencies
- Creating your first Ribbon
- Adding tabs and groups
- Basic items and running the application
Tabs, Groups, and Items Structure
π Read: references/tabs-groups-items.md
- Tab hierarchy and properties
- Adding groups to tabs
- Ribbon collections and items
- Item size configuration (Large, Medium, Small)
- Orientation settings (Row/Column)
- Multiple tabs and groups examples
Item Types and Configuration
π Read: references/item-types.md
- All 7 built-in item types
- Button items (toggle, disabled states)
- CheckBox, DropDown, SplitButton items
- ComboBox, ColorPicker, GroupButton items
- Complete code examples for each type
- Item settings models and properties
Ribbon Layouts and Resizing
π Read: references/layouts.md
- Classic layout (default multi-row format)
- Simplified layout (with collapse support)
- Switching between layouts
- Item size allowances and configuration
- Responsive resizing behavior
- Layout examples and best practices
File Menu and Backstage Views
π Read: references/file-menu-and-backstage.md
- File Menu configuration and visibility
- Adding menu items with icons and actions
- Backstage view as file menu replacement
- Backstage items and content
- Footer items and separators
- Back button customization
- Target element positioning
- Complete file menu and backstage examples
Advanced Features
π Read: references/advanced-features.md
- Contextual tabs (dynamic tab creation)
- Keytips for keyboard navigation
- Gallery items for visual selection
- Help pane templates
- Tooltip configuration
- Resizing behavior and responsive design
- RTL support for right-to-left languages
- Accessibility features and WCAG compliance
Events and Interactivity
π Read: references/events.md
- Tab selection events (tabSelected, tabSelecting)
- Ribbon collapse/expand events
- Backstage item click events
- Event arguments and cancellation
- Event handling patterns
- Complete event examples
Customization and Styling
π Read: references/customization-and-styling.md
- CSS class customization
- Theme integration and switching
- CSS variables for styling
- Custom styling examples
- Group icon customization
- Item customization and appearance
- Launcher icon usage
Quick Start Example
Here's a minimal Ribbon with Home and Insert tabs:
import { Component } from "@angular/core";
import { RibbonModule } from '@syncfusion/ej2-angular-ribbon';
import { RibbonButtonSettingsModel, RibbonSplitButtonSettingsModel } from '@syncfusion/ej2-angular-ribbon';
@Component({
imports: [ RibbonModule ],
standalone: true,
selector: "app-root",
template: `
<ejs-ribbon id="ribbon">
<e-ribbon-tabs>
<e-ribbon-tab header="Home">
<e-ribbon-groups>
<e-ribbon-group header="Clipboard" orientation="Row">
<e-ribbon-collections>
<e-ribbon-collection>
<e-ribbon-items>
<e-ribbon-item type="SplitButton" [splitButtonSettings]="pasteSettings"></e-ribbon-item>
</e-ribbon-items>
</e-ribbon-collection>
<e-ribbon-collection>
<e-ribbon-items>
<e-ribbon-item type="Button" [buttonSettings]="cutButton"></e-ribbon-item>
<e-ribbon-item type="Button" [buttonSettings]="copyButton"></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="Illustrations" orientation="Row">
<e-ribbon-collections>
<e-ribbon-collection>
<e-ribbon-items>
<e-ribbon-item type="Button" [buttonSettings]="chartButton"></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>
`,
styleUrls: ['./app.component.css']
})
export class AppComponent {
public pasteSettings = {
iconCss: "e-icons e-paste",
items: [{ text: "Keep Source Format" }, { text: "Merge format" }],
content: "Paste"
};
public cutButton: RibbonButtonSettingsModel = { iconCss: "e-icons e-cut", content: "Cut" };
public copyButton: RibbonButtonSettingsModel = { iconCss: "e-icons e-copy", content: "Copy" };
public chartButton: RibbonButtonSettingsModel = { iconCss: "e-icons e-chart", content: "Chart" };
}
Common Patterns
Pattern 1: Multi-Tab Command Interface
- Define multiple tabs for major features (Home, Insert, View, Format)
- Add groups within each tab for related commands
- Configure collections to organize items visually
- Use appropriate item types (Button, DropDown, ColorPicker)
- Set
activeLayoutto Classic or Simplified - Handle
tabSelectedevent for tab-specific actions
Pattern 2: File Menu Integration with Backstage
- Configure
fileMenuorbackStageMenufor document operations - Add menu items for New, Open, Save, Print, Export
- Set icons with
iconCssand content areas for backstage - Handle menu item clicks with event handlers
- Use footer items for settings or account options
- Configure back button for backstage navigation
Pattern 3: Responsive Resizing with Size Priorities
- Set
allowedSizesarray on items (Large, Medium, Small) - Configure
activeSizefor initial display size - Ribbon automatically adjusts item sizes based on width
- Use
Largefor primary commands,Smallfor secondary - Handle
ribbonCollapsingevent for custom resize logic - Test responsive behavior at different viewport widths
Pattern 4: Contextual Tabs for Dynamic Commands
- Define
contextualTabsarray with tab configurations - Set
visibleproperty based on user selection or context - Use
isSelectedto activate contextual tab programmatically - Add tab-specific groups and items for contextual commands
- Handle
tabSelectedto detect contextual tab activation - Toggle visibility dynamically in response to user actions
Pattern 5: Keyboard Navigation with Keytips
- Enable
enableKeyTipson ribbon component - Assign
keyTipproperty to tabs (Alt+H for Home) - Add keytips to groups and individual items
- Configure
layoutSwitcherKeyTipfor layout toggle - Set keytips on file menu and backstage items
- Follow consistent keytip patterns (Alt+ letter combinations)
Pattern 6: Gallery Items for Visual Selection
- Configure items with
type="Gallery"for visual panels - Define
gallerySettingswith groups and items - Set
itemCount,popupWidth,popupHeightfor display - Use templates for custom gallery item rendering
- Handle selection events for gallery item clicks
- Common use cases: themes, styles, colors, table designs
Key Properties & Events
Core Ribbon Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
tabs | RibbonTabModel[] | [] | Define ribbon tabs with groups and items |
activeLayout | LayoutType | 'Classic' | Set layout mode (Classic or Simplified) |
selectedTab | number | 0 | Set or get the currently active tab index |
isMinimized | boolean | false | Control ribbon minimized state |
Layout & Appearance
| Property | Type | Default | When to Use |
|---|---|---|---|
width | string | number | '100%' | Set ribbon container width |
cssClass | string | '' | Apply custom CSS classes for styling and themes |
hideLayoutSwitcher | boolean | false | Hide the Classic/Simplified layout toggle button |
tabAnimation | object | null | Configure tab switching animation settings |
Keyboard & Accessibility
| Property | Type | Default | When to Use |
|---|---|---|---|
enableKeyTips | boolean | false | Enable keytips for keyboard navigation (Alt+ shortcuts) |
layoutSwitcherKeyTip | string | '' | Set keytip for layout switcher button |
launcherIconCss | string | '' | Default CSS class for launcher icons across all groups |
File Menu & Backstage
| Property | Type | Default | When to Use |
|---|---|---|---|
fileMenu | FileMenuSettingsModel | null | Configure traditional file menu (New, Open, Save, Print) |
backStageMenu | BackStageMenuModel | null | Configure modern backstage view (replaces file menu) |
Advanced Features
| Property | Type | Default | When to Use |
|---|---|---|---|
contextualTabs | RibbonContextualTabModel[] | [] | Define tabs that appear based on context or selection |
helpPaneTemplate | string | '' | Custom template for help pane content |
Globalization
| Property | Type | Default | When to Use |
|---|---|---|---|
locale | string | 'en-US' | Set language/culture for localization |
enableRtl | boolean | false | Enable right-to-left layout (Arabic, Hebrew, Persian, Urdu) |
enablePersistence | boolean | false | Save ribbon state between page reloads |
Tab Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
header | string | '' | Tab display text (Home, Insert, View) |
groups | RibbonGroupModel[] | [] | Array of groups within the tab |
id | string | '' | Unique identifier for the tab |
keyTip | string | '' | Keyboard shortcut keytip (H for Home) |
Group Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
header | string | '' | Group display text (Clipboard, Font, Alignment) |
orientation | ItemOrientation | 'Column' | Layout direction (Row or Column) |
enableGroupOverflow | boolean | false | Show overflow dropdown when group doesn't fit |
isCollapsible | boolean | true | Allow group to collapse in simplified layout |
showLauncherIcon | boolean | false | Show launcher icon for dialog/pane launch |
groupIconCss | string | '' | CSS class for group icon in overflow/launcher |
Item Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
type | RibbonItemType | 'Button' | Item type: Button, CheckBox, DropDown, SplitButton, ComboBox, ColorPicker, GroupButton, Gallery |
id | string | '' | Unique identifier for the item |
allowedSizes | RibbonItemSize[] | ['Large', 'Medium', 'Small'] | Sizes item can resize to (responsive behavior) |
activeSize | RibbonItemSize | 'Medium' | Current display size of item |
disabled | boolean | false | Disable item to prevent user interaction |
displayOptions | DisplayMode | 'Auto' | Control display (Auto, Classic, Simplified, Overflow) |
cssClass | string | '' | Custom CSS class for item styling |
keyTip | string | '' | Keyboard shortcut keytip for item |
ribbonTooltipSettings | TooltipSettingsModel | null | Tooltip configuration (id, title, content, iconCss, cssClass) |
itemTemplate | string | '' | Custom template for item rendering |
buttonSettings | RibbonButtonSettingsModel | null | Button-specific settings (iconCss, content, clicked) |
dropDownSettings | RibbonDropDownSettingsModel | null | DropDown-specific settings (iconCss, content, items) |
splitButtonSettings | RibbonSplitButtonSettingsModel | null | SplitButton-specific settings (iconCss, items, clicked) |
checkBoxSettings | RibbonCheckBoxSettingsModel | null | CheckBox-specific settings (label, checked, change) |
colorPickerSettings | RibbonColorPickerSettingsModel | null | ColorPicker-specific settings (value, change) |
comboBoxSettings | RibbonComboBoxSettingsModel | null | ComboBox-specific settings (dataSource, value, fields) |
groupButtonSettings | RibbonGroupButtonSettingsModel | null | GroupButton-specific settings (items, selected) |
gallerySettings | RibbonGallerySettingsModel | null | Gallery configuration (groups, items, itemCount, popupWidth, popupHeight, template) |
File Menu Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
visible | boolean | false | Show/hide file menu button |
text | string | 'File' | File menu button text |
menuItems | FileMenuItemModel[] | [] | Array of menu items (New, Open, Save, Print) |
itemTemplate | string | '' | Custom template for menu items |
popupTemplate | string | '' | Custom template for entire popup |
keyTip | string | '' | Keytip for file menu (F for File) |
ribbonTooltipSettings | TooltipSettingsModel | null | Tooltip settings for file menu button |
Backstage Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
visible | boolean | false | Show/hide backstage view |
text | string | 'File' | Backstage button text |
items | BackStageItemModel[] | [] | Backstage items (id, text, iconCss, content, separator, isFooter) |
backButton | BackButtonModel | null | Back button configuration (text, iconCss, visible) |
width | string | 'auto' | Backstage width dimension |
height | string | 'auto' | Backstage height dimension |
target | HTMLElement | null | Element for positioning backstage |
template | string | '' | Custom template for backstage content |
keyTip | string | '' | Keytip for backstage button |
ribbonTooltipSettings | TooltipSettingsModel | null | Tooltip settings for backstage button |
Contextual Tab Configuration
| Property | Type | Default | When to Use |
|---|---|---|---|
visible | boolean | false | Show/hide contextual tab group |
isSelected | boolean | false | Whether contextual tab is active |
tabs | RibbonTabModel[] | [] | Array of tabs in contextual group |
Key Events
| Event | Arguments | When to Use |
|---|---|---|
(tabSelected) | TabSelectedEventArgs | After a tab is selected (get tab index and data) |
(tabSelecting) | TabSelectingEventArgs | Before tab selection (cancelable, validate selection) |
(ribbonCollapsing) | RibbonCollapsingEventArgs | Before ribbon collapses (cancelable) |
(ribbonExpanded) | RibbonExpandedEventArgs | After ribbon expands |
(launcherClick) | LauncherClickEventArgs | When launcher icon is clicked (open dialog/pane) |
(overflowPopupOpen) | OverflowPopupEventArgs | Before overflow popup opens (cancelable) |
(overflowPopupClose) | OverflowPopupEventArgs | Before overflow popup closes (cancelable) |
(layoutSwitched) | LayoutSwitchedEventArgs | When layout switches between Classic/Simplified |
(backStageItemClick) | BackStageItemClickEventArgs | When backstage item is clicked |
File Menu Events
| Event | Arguments | When to Use |
|---|---|---|
beforeOpen | BeforeOpenCloseMenuEventArgs | Before file menu opens (cancelable) |
open | OpenCloseMenuEventArgs | After file menu opens |
beforeClose | BeforeOpenCloseMenuEventArgs | Before file menu closes (cancelable) |
close | OpenCloseMenuEventArgs | After file menu closes |
beforeItemRender | MenuEventArgs | Before menu item renders (customize rendering) |
select | MenuEventArgs | When menu item is selected |
What ships with it: 8 files
125.8 KB alongside SKILL.md
references/
- advanced-features.md18.7 KB
- customization-and-styling.md11.1 KB
- events.md20.1 KB
- file-menu-and-backstage.md19.2 KB
- getting-started.md7.4 KB
- item-types.md15.2 KB
- layouts.md20.4 KB
- tabs-groups-items.md13.7 KB