← Documentationcompatibility
Download Markdown
# RibbonWeb compatibility and capability matrix
RibbonWeb is an independent web implementation informed by public ribbon documentation. There is no single published “Office 365 Ribbon control API”: WPF Ribbon controls, RibbonX host extensibility, and Office.js commands are different APIs. The matrix describes this release without equating similarly named classes to framework-wide compatibility.
## Implemented library surfaces
| Surface | Included behavior | Scope and limits |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Tabs and groups | Ordered groups, visibility, contextual sets, selected tab, group launcher | Context is supplied by the host; native document selection is not inferred |
| Adaptive layout | Classic and simplified layouts, minimized panel, priority-based group overflow | No WPF measure/arrange engine or exact Office group-size algorithm |
| Actions | Button, toggle, check, radio, split, menu, nested menu, dynamic provider | Application owns action semantics and command data |
| Inputs | Text, editable combo, dropdown, numeric spinner, slider, color | Native browser popup/input behavior differs by platform; no full native Office font picker |
| Galleries | Inline items, popup grid, categories, selected value, preview/end events and item styles | Eager rendering; no virtualized thousands-item gallery or arbitrary WPF DataTemplate engine |
| Custom content | DOM renderer callback and named slots | Caller owns safety, focus behavior and cleanup of its custom nodes |
| Quick access | Shared commands, command chooser and stored selection | Application controls initial command list |
| Backstage | Navigation, command items, content callbacks and slots | Rich RibbonX backstage schema translation is incomplete |
| Context surfaces | Application-opened context menu and mini toolbar | Not automatic integration into external editors |
| Keyboard | Alt/F10 key tips, Alt+Q search, command shortcuts, tab/menu/control arrows, Home/End, Escape | Browser/OS-reserved shortcuts can take precedence; assistive-technology certification not claimed |
| Appearance | Light, dark, system, touch density, RTL, CSS tokens/parts, forced-colors rules | Original icons and styling; no proprietary Office assets or pixel-exact theme guarantee |
| Personalization | Tab/group visibility and order, tab labels, quick-access choices, import/export, local persistence | Saved schema version 1; does not consume native Office customization files |
| MVVM | Observable properties/collections, nested binding, converters, notifications, command gating, async cancellation | No CLR, dependency-property system, routed-event system, XAML engine or complete WPF binding language |
| Web usage | Native custom element, JSON/object models, DOM events, TypeScript | Framework examples use native integration rather than separate framework component implementations |
| .NET usage | JS bridge, ICommand routing, Blazor wrapper source and build project | Browser runtime remains JavaScript; arbitrary .NET UI binaries are not loaded |
| RibbonX | Common controls/callbacks, dynamic content, invalidation, contextual tabs | See [the detailed importer mapping](interop.md); unsupported features report warnings |
| Office.js | Comparable ribbon command patterns | No `Office` global or Office.js host implementation |
## Explicit remaining compatibility boundaries
- Microsoft built-in `idMso`/`imageMso` commands and assets, COM/VSTO behavior, native Office command repurposing, every RibbonX callback/schema node, and Office.js host services are not reproduced.
- WPF dependency properties, resources, routed commands/events, arbitrary XAML templates, full binding validation/update-trigger semantics and exact WPF layout contracts are not reproduced.
- RibbonX boxes/button groups are flattened and advanced positioning or rich backstage/context-menu XML is warned about. Read importer warnings when porting existing definitions.
- The three example editors demonstrate application command integration. They are not complete Word, Excel, or PowerPoint replacements; document file compatibility is outside the ribbon library's scope.
- Chromium behavioral tests exercise the shipped component. Firefox/WebKit, real mobile hardware, screen-reader combinations, localization completeness, and long-running production workloads require target-environment qualification.
- The package provides a practical initial release; exhaustive Office control/overload parity and production certification have not been established.
## Public reference sources
- [WPF Ribbon namespace and control families](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.ribbon?view=windowsdesktop-9.0)
- [WPF RibbonGallery](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.ribbon.ribbongallery?view=windowsdesktop-9.0)
- [RibbonGroup.GroupSizeDefinitions](https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.ribbon.ribbongroup.groupsizedefinitions?view=windowsdesktop-10.0)
- [RibbonX Custom UI schema](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-customui/5f3e35d6-70d6-47ee-9e11-f5499559f93a)
- [CustomUI2 root / backstage](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-customui2/a232628d-f6fb-4630-a463-459989a68e7a)
- [IRibbonUI.Invalidate](https://learn.microsoft.com/en-us/office/vba/api/office.iribbonui.invalidate)
- [Office add-in command design](https://learn.microsoft.com/en-us/office/dev/add-ins/design/add-in-commands)
- [ICommand](https://learn.microsoft.com/en-us/dotnet/api/system.windows.input.icommand?view=net-9.0)
- [INotifyPropertyChanged](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanged?view=net-9.0)
- [ObservableCollection](https://learn.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?view=net-9.0)
These sources inform control/API mappings. Their existence is not evidence that RibbonWeb implements all behavior they describe.