SSupport multi-level/nested menus in Office.js ribbon commands
Please add support for multi-level or nested ribbon menus in Office.js add-ins, equivalent to the child-menu functionality available through COM/VSTO Ribbon XML.
Office.js currently supports a Menu control containing a single level of buttons. However, it does not allow a menu item to open a second-level flyout menu.
We would like to define structures such as:
- Number Format
- Percentage
- Percentage – whole number
- Percentage – one decimal place
- Percentage – two decimal places
- Currency
- GBP
- EUR
- USD
- Date
- Short date
- Long date
- Month and year
- Percentage
Ideally, nested menus would:
- Be declared in the add-in manifest.
- Support multiple levels of child menu items.
- Allow each final item to run an action or open a task pane.
- Support labels, icons, enabled/disabled state and Supertips.
- Be rendered by Office as native ribbon flyout menus.
- Work consistently across Excel, PowerPoint and Word.
- Be supported on Windows, macOS and Office on the web where technically possible.
Business case
Our Office add-ins provide users with large libraries of formatting and productivity commands. These commands naturally fall into categories and subcategories—for example, number formats, chart formatting, table styles and presentation layouts.
Without nested menus, we must either:
- Place a long, flat list of commands in a single menu.
- Add numerous separate controls to the ribbon.
- Move the functionality into a task pane.
- Build a Windows-only COM/VSTO add-in.
These alternatives reduce usability, consume limited ribbon space and make commonly used commands harder to discover. A task pane also interrupts the user’s workflow and occupies document workspace for functionality that is better suited to a compact ribbon menu.
Nested menus would let developers present complex command libraries in a clear hierarchy while retaining a native Office user experience. They would also make it easier for organisations to migrate existing COM/VSTO add-ins to the modern, cross-platform Office.js framework.
This capability would deliver:
- Better command discoverability.
- Less ribbon clutter.
- Faster user workflows.
- Improved accessibility through native Office controls.
- Greater feature parity with COM/VSTO add-ins.
- Fewer reasons to maintain legacy Windows-only integrations.
Current limitation and workaround
The current one-level Menu control and informational Supertips do not provide an equivalent experience. Supertips can explain an item but cannot contain interactive child commands. A task pane can display a custom hierarchy, but it is not a native ribbon flyout and is significantly more intrusive.
Please consider adding nested menu support to the Office Add-ins platform and manifest schema. This would remove an important barrier to migrating sophisticated enterprise add-ins from COM/VSTO to Office.js.