Changelog - Menu Builder
All notable changes to Menu Builder are documented in this file.
The format is based on Keep a Changelog.
1.1.0 - 2026-10-12
This release moves Menu Builder onto the Hyvä CMS ACL tree and requires Hyvä CMS 1.3.0.
Noteworthy change Menus move onto the Hyvä CMS ACL tree, and custom roles need the new Menus ACL resources granted after upgrading. Magento_Backend::content no longer gates any Menu Builder surface. Its replacement is the Menus group under Hyvä CMS (Hyva_MenuBuilder::menu) with View, Save draft, Publish, Delete, Export, a Version history group (Delete versions, Organise versions) and a Scheduling group (Schedule and reschedule, Cancel scheduled). The menu listing, the admin menu entry and the editor's menu list need View; inline edit and the editor's menu settings need Save draft; delete and mass delete need Delete. REST routes follow the same tree: GET needs View; POST and PUT on /V1/hyvaMenu need Publish and DELETE there needs Delete; version history needs View, Organise versions and Delete versions; the Tailwind routes need View and Save draft. After upgrading, open System > Permissions > User Roles, edit each custom content role and tick the Menus resources it should have. Do the same for every REST integration with a custom resource list. Nothing is migrated automatically, and no code changes are needed. The Administrators role holds all resources and is unaffected.
Added
- Match initial menu setup to the shared CMS form design, with clearer fields, an enable switch, and an Advanced panel that expands the dialog sideways on larger screens.
- Expose store views and style generation under Advanced in initial menu setup, using the grouped CMS store-view checkboxes and placing Enable Menu first.
- Package-owned compiled CMS admin styles with optional optimized aggregate build support.
Changed
- The menu widget chooser needs menu View (
Hyva_MenuBuilder::menu_view) instead ofMagento_Widget::widget_instance, so a role that can place a menu widget but not view menus no longer lists them. - The menu grid collection takes its timezone as a required dependency instead of falling back to the ObjectManager. Internal cleanup, no behaviour change.
- The menu listings panel passes its paging parameters to
getUrl()properly instead of building the path by hand. Internal cleanup, no behaviour change.
Fixed
- Preview > View Published Page reopened the editor for a menu without a preview URL key. The menu store row now carries
published_url, the storefront page with the key or null, and the editor hides the item when it is null. - Save new menus on Create and return validation failures to the setup dialog.
- Keep package admin utilities within menu-builder templates and apply the same processing in build and watch mode.
- A save refused for lack of permission returns a 403 with its message. The menu repository wrapped the refusal in a save error, which the editor reported as a 500 with no message and REST as a 400.
- The menu grid's mass delete only accepts POST now, so it can't be triggered by following a link.
- Setting Top Menu Location to Topmenu no longer logs a
main.CRITICALalias collision on every page load. The top menu now reliably claims the theme'stopmenuslot, and any third-party element it displaces is named inhyva_cms.log. - Missing
closebyandmotion-reducetransition classes for A11Y. - The mobile menu showed Magento's default logo instead of the store's configured logo.
1.0.3 - 2026-06-30
This release is a minor update to Hyvä Menu Builder for bug fixes.
Added
- Menu item, footer column title, and menu content labels (and menu item links) can now be translated inline. Previously only link labels were translatable, and only via the Translations panel. Many thanks to Romain Lafourcade (Razorfish) for his contribution.
Fixed
- Mobile menu slide-out now renders in the top layer correctly. Removing
x-bind:openpreventsshowModal()from finding the dialog already open, which was causing the panel to appear beneath the header. Thanks to Matt Powell (Digital Studio NW) for reporting this.
1.0.2 - 2026-06-30
This release is a minor update to Hyvä Menu Builder to improve cache handling for better performance.
Added
- Shared ESI/Varnish block caching across pages for top and footer menus, configurable in the admin via the design configuration settings for the top and footer menus.
1.0.1 - 2026-06-30
This release is a minor update to Hyvä Menu Builder to bump the hyva-themes/commerce-module-cms dependency to ^1.2.0.
Changed
- Bump
hyva-themes/commerce-module-cmsdependency to^1.2.0.
1.0.0 - 2026-06-30
This release is the first major update to Hyvä Menu Builder, focussed on improvements and bug fixes. Highlights include, Text-only menu items, Initial setup dialog for Menu entities, Icon for Menu entities in the tab bar and Navigator of the CMS Liveview editor, Support for import/export of Menu entities and lots more.
Added
- Text-only menu items. A "Text Only" toggle on a Menu Item swaps the link picker for a plain label and renders the item as text instead of a link, so there is no need to fake non-clickable headings with a
#URL. Text-only items still hold child items, so they work as column headings above a group of links. - Initial setup dialog for Menu entities
- Icon for Menu entities in the tab bar and Navigator of the CMS Liveview editor
- Support for import/export of Menu entities
Changed
- Breaking change: Menu Content is now a styled container, not a built-in grid. Drop Grid/Columns inside for real grids. Controls the position of the menu content. Reconfigure existing blocks after upgrade.
- Position of menu lock button in preview mode to be right 4px from the top avoid overlapping with the liveview-ctx-menu.
- Adopt Hyvä CMS 1.2.0's scoped Tailwind compiler. Requires Hyvä CMS 1.2.0 or later. Menu Builder now implements
getScopeSelector()(.hcms-menu-{id}), so menu CSS is scoped by the compiler at save time.
Fixed
- Menu VersionHistory and Tailwindcss REST responses omitted
id(and VersionHistory omittedentity_type) because the getters weren't declared on the@apidata interfaces, so GET/PUT/DELETE by id were unusable. AddedgetId()/setId()to both interfaces andgetEntityType()/setEntityType()to VersionHistory. - Remove
header_container_after_hyvmbcontainer from checkout layout - Menu breakpoint visibility broke on Magento 2.4.8.
escapeHtmlAttrmangled the media query so the CSS was invalid and the menu never showed. Switched the values inside<style>toescapeHtml, and moved the block inside the menu element so Liveview replaces it on each edit instead of leaving orphaned copies behind. - Ensure mobile menu Alpine components are registered in CMS Liveview previews by defining
initMobileMenu/initMobileSubMenuas global factory functions. - CSS Classes from Advanced Settings to be Applied to Desktop Menu Templates (thanks Lars de Weert - Made by Mouses for the contribution)
- Mobile menu lock functionality in preview mode
Removed
- Removed Pagebuilder Migration Option from Hyvä CMS editor main dropdown menu
0.1.0 - 2026-02-18
The 0.1.0 release for Menu Builder is the initial release.
Added
- Menu entity management via Content > Elements > Menus in the Magento admin
- Four built-in menu components: Mega Menu Columns, Mega Menu Drilldown, Mobile Menu, and Footer Columns
- Link picker supporting categories, products, CMS pages, Magento pages, and custom URLs
- Rich content support via the Menu Content component (images, banners, promotional blocks, and any Hyvä CMS component)
- Menu item highlighting (text color, background color, font weight)
- Category import: bulk-import categories from the catalog as menu items
- Dynamic category tree components that automatically sync with catalog structure
- Menu locking in CMS editor preview for easier iterative editing
- Multiple rendering methods: Design Configuration (header/footer), Hyvä CMS Editor, Magento Widgets, widget shortcodes, layout XML, and phtml templates
- Leverages Hyvä CMS Developer API for creating custom menu components using
context_flagsand the Hyvä CMS component system