{"id":312081,"date":"2026-05-15T11:21:51","date_gmt":"2026-05-15T11:21:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/menux-free\/"},"modified":"2026-06-03T10:07:58","modified_gmt":"2026-06-03T10:07:58","slug":"giuliomax-menu-builder","status":"publish","type":"plugin","link":"https:\/\/pap-aw.wordpress.org\/plugins\/giuliomax-menu-builder\/","author":23497901,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.3.2","stable_tag":"3.3.2","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Giuliomax Menu Builder","header_author":"giuliomax","header_description":"Menu management via Shortcode [menux]. Supports hamburger style, icons, role-based visibility, multilingual (WPML, Polylang, TranslatePress) and advanced layouts.","assets_banners_color":"fcfcfe","last_updated":"2026-06-03 10:07:58","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/paypalme\/giuliosw","header_plugin_uri":"https:\/\/github.com\/Giulio001\/menux-free-version","header_author_uri":"https:\/\/profiles.wordpress.org\/giuliomax\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":357,"num_ratings":7,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1.2":{"tag":"2.1.2","author":"giuliomax","date":"2026-05-15 11:21:30"},"2.2.0":{"tag":"2.2.0","author":"giuliomax","date":"2026-05-18 10:33:09"},"2.3.6":{"tag":"2.3.6","author":"giuliomax","date":"2026-05-18 15:55:15"},"2.4.2":{"tag":"2.4.2","author":"giuliomax","date":"2026-05-27 15:57:00"},"2.6.5":{"tag":"2.6.5","author":"giuliomax","date":"2026-05-28 15:51:36"},"2.8.0":{"tag":"2.8.0","author":"giuliomax","date":"2026-05-29 14:47:28"},"3.0.0":{"tag":"3.0.0","author":"giuliomax","date":"2026-06-01 11:34:37"},"3.0.1":{"tag":"3.0.1","author":"giuliomax","date":"2026-06-01 14:03:55"},"3.0.2":{"tag":"3.0.2","author":"giuliomax","date":"2026-06-01 14:08:10"},"3.1.0":{"tag":"3.1.0","author":"giuliomax","date":"2026-06-01 14:19:26"},"3.3.2":{"tag":"3.3.2","author":"giuliomax","date":"2026-06-03 10:07:58"}},"upgrade_notice":{"3.3.2":"<p>Fixes a PHP fatal error caused by an unescaped apostrophe in the help modal, corrects the Announcement Bar width and flush alignment with the menu, and adds the missing help documentation for the Announcement panel. Recommended for all users.<\/p>","3.3.1":"<p>Adds a countdown timer to the Announcement Bar; fixes stale mobile open-state after hamburger close, accordion sibling-collapse depth, and sticky spacer drift after late-loading Google Fonts. Recommended for all users.<\/p>","3.3.0":"<p>New feature: Announcement Bar. Display a dismissible full-width promotional banner above or below your menu with custom colors, a link and configurable dismiss duration. Go to MenuX \u2192 Announcement to enable it.<\/p>","3.2.1":"<p>New mobile accordion mode: enable &quot;Close other submenus when one opens&quot; in the Mobile panel for cleaner one-at-a-time navigation on small screens.<\/p>","3.2.0":"<p>New feature: fully customizable dropdown indicator (triangle, chevron, dot or none) with color, size and open\/close animation controls.<\/p>","3.1.3":"<p>Sticky spacer height is now re-measured after Google Fonts load; duplicate HTML IDs when using multiple [menux] shortcodes on one page are fixed. Recommended for all users.<\/p>","3.1.2":"<p>Security and reliability fixes: overlay\/Escape handlers no longer duplicate when multiple menus are on the same page; search result rendering is now XSS-safe for page text and menu labels containing HTML characters. Recommended for all users.<\/p>","3.1.1":"<p>Important fixes: Scroll Progress Bar and sticky shrink\/transition settings now save correctly; mega menu shortcode columns (forms, embeds) render intact; mega panel overflow, staggered entrance, sticky spacer height and the per-item Appearance editor are all fixed. Recommended for all users.<\/p>","3.1.0":"<p>Stability and compatibility release. Fixes mega menu z-index on all animated themes, Elementor overflow clipping, right-edge padding for cart\/search icons, and bottom-only border-radius on mega panels. Recommended for all users.<\/p>","3.0.0":"<p>Major release. Each mega menu now has its own independent Appearance tab \u2014 background, padding, colors and more \u2014 so you can style every mega menu differently. The admin panel is redesigned for clarity, the Themes section is directly accessible from the sidebar, and the WooCommerce cart integration continues to be completely free. Recommended for all users.<\/p>","2.10.0":"<p>Adds WooCommerce integration: a cart icon with live item count, optional total and a mini-cart dropdown that updates without a page reload. Enable it under MenuX \u2192 WooCommerce. Fully optional and silent when WooCommerce is not installed.<\/p>","2.9.0":"<p>Adds a native Gutenberg block (giuliomax\/menu) for Full Site Editing themes. Drop it into any FSE template header or template part directly from the Site Editor.<\/p>","2.8.0":"<p>Sticky menu now mirrors the main menu by default, logo visible in admin live preview, entrance animation preview fixed, and several layout improvements.<\/p>","2.6.0":"<p>Major admin UI overhaul: collapsible accordion builder, streamlined Add pane, polished sortable rows.<\/p>","2.5.0":"<p>New Google Font picker with live preview, onboarding tutorial, free search bar. Recommended for all users.<\/p>","2.3.0":"<p>Major update: full Mega Menu system added for free. Supports up to 4 columns, 5 item types, gradient backgrounds, mobile handling and more.<\/p>","2.2.0":"<p>Major update: 20 preset themes, submenu controls, WP integration, reset button and multiple bug fixes. Recommended for all users.<\/p>","2.1.1":"<p>First public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":7},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3533094,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3533094,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3559249,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3559259,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"giuliomax\/menu":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":2,"name":"giuliomax\/menu","version":"2.10.0","title":"MenuX \u2014 Menu","category":"widgets","description":"Renders a MenuX navigation menu. Embed it in FSE template headers, template parts or any page template.","icon":"menu","keywords":["menu","navigation","menux","hamburger","mega menu"],"supports":{"html":false},"attributes":{"location":{"type":"string","default":"primary"}},"editorScript":"file:.\/editor.js","textdomain":"giuliomax-menu-builder"}},"tagged_versions":["2.1.2","2.2.0","2.3.6","2.4.2","2.6.5","2.8.0","3.0.0","3.0.1","3.0.2","3.1.0","3.3.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3553247,"resolution":"1","location":"assets","locale":"","width":1411,"height":1037},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3553296,"resolution":"10","location":"assets","locale":"","width":1429,"height":1040},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3535901,"resolution":"2","location":"assets","locale":"","width":1399,"height":728},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3553247,"resolution":"3","location":"assets","locale":"","width":1155,"height":760},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3533008,"resolution":"4","location":"assets","locale":"","width":1179,"height":1027},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3535901,"resolution":"5","location":"assets","locale":"","width":1784,"height":866},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3535901,"resolution":"6","location":"assets","locale":"","width":1762,"height":923},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3553247,"resolution":"7","location":"assets","locale":"","width":1422,"height":588},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3535901,"resolution":"8","location":"assets","locale":"","width":1672,"height":941},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3535901,"resolution":"9","location":"assets","locale":"","width":1527,"height":764}},"screenshots":{"1":"Main admin panel with visual menu builder","2":"Preset themes panel with live preview","3":"Style panel \u2014 Colors tab","4":"Style panel \u2014 Layout and spacing options","5":"Mega Menu editor \u2014 column builder with live preview","6":"Mega Menu editor \u2014 per-item Appearance tab","7":"Mega Menu preset templates picker","8":"WooCommerce cart settings panel","9":"Frontend \u2014 desktop view with mega menu open","10":"Frontend \u2014 WooCommerce cart icon with mini-cart dropdown"}},"plugin_section":[],"plugin_tags":[131278,6276,1865,1753,7604],"plugin_category":[43],"plugin_contributors":[263047],"plugin_business_model":[],"class_list":["post-312081","plugin","type-plugin","status-publish","hentry","plugin_tags-hamburger-menu","plugin_tags-mega-menu","plugin_tags-menu","plugin_tags-navigation","plugin_tags-woocommerce-cart","plugin_category-customization","plugin_contributors-giuliomax","plugin_committers-giuliomax"],"banners":{"banner":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/banner-772x250.png?rev=3559259","banner_2x":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/banner-1544x500.png?rev=3559249","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/icon-128x128.png?rev=3533094","icon_2x":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/icon-256x256.png?rev=3533094","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-1.png?rev=3553247","caption":"Main admin panel with visual menu builder"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-2.png?rev=3535901","caption":"Preset themes panel with live preview"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-3.png?rev=3553247","caption":"Style panel \u2014 Colors tab"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-4.png?rev=3533008","caption":"Style panel \u2014 Layout and spacing options"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-5.png?rev=3535901","caption":"Mega Menu editor \u2014 column builder with live preview"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-6.png?rev=3535901","caption":"Mega Menu editor \u2014 per-item Appearance tab"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-7.png?rev=3553247","caption":"Mega Menu preset templates picker"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-8.png?rev=3535901","caption":"WooCommerce cart settings panel"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-9.png?rev=3535901","caption":"Frontend \u2014 desktop view with mega menu open"},{"src":"https:\/\/ps.w.org\/giuliomax-menu-builder\/assets\/screenshot-10.png?rev=3553296","caption":"Frontend \u2014 WooCommerce cart icon with mini-cart dropdown"}],"raw_content":"<!--section=description-->\n<p><strong>Giuliomax Menu Builder<\/strong> lets you create fully customized navigation menus and place them anywhere \u2014 drop the <strong>MenuX block<\/strong> into any FSE header or template part, or use the <code>[menux]<\/code> shortcode in pages, widgets and builders. Everything is configured visually from the WordPress admin: pick one of 20 preset themes or dial in every detail manually. Works perfectly on desktop, tablet and mobile \u2014 completely free.<\/p>\n\n<h4>\u2728 Why switch to a proper menu builder?<\/h4>\n\n<p>Most navigation plugins lock advanced features behind a paywall or make you fight their builder. This plugin gives you <strong>mega menus, a live WooCommerce cart, per-item appearance styles, WCAG 2.2 AA accessibility, Google Fonts, 20 preset themes, a countdown Announcement Bar and an FSE Gutenberg block<\/strong> \u2014 all in the free version, with zero upsells nagging you while you build.<\/p>\n\n<h4>\u2728 Main Features<\/h4>\n\n<ul>\n<li><strong>Accordion menu builder<\/strong> \u2014 every item collapses to a compact header; click to expand into clearly labelled sections (Label, Icon &amp; Badge, Visibility &amp; Behavior, Schedule &amp; Conditions, Submenu); newly added items open automatically<\/li>\n<li><strong>Page + custom link support<\/strong> \u2014 use existing WP pages or external URLs, with target controls and role visibility<\/li>\n<li><strong>Advanced item targeting<\/strong> \u2014 show\/hide items by user role, login state, device, current page, schedule, time range or UTM source<\/li>\n<li><strong>Menu location assignment<\/strong> \u2014 tag items for Primary, Footer, Sidebar or Mobile and render with <code>[menux location=\"...\"]<\/code><\/li>\n<li><strong>20 preset themes<\/strong> \u2014 professionally designed themes with one-click apply and live preview: Ghost, Void Dark, Indigo Pulse, Aurora Night, Navy Command, Tropical Bloom, Evergreen, Cyber Matrix, Rose Silk, Sky Fresh, Newspaper Ink, Dev Dark, Ocean Electric, Violet Cloud, Swiss Pro, Cosmic Dusk, Warm Honey, Cloud Glass, Carbon Pro, Aegean Teal<\/li>\n<li><strong>Responsive mobile menu<\/strong> \u2014 automatic fit-based breakpoint or manual pixel threshold<\/li>\n<li><strong>4 mobile opening modes<\/strong> \u2014 Dropdown, Fullscreen overlay, Drawer left, Drawer right<\/li>\n<li><strong>Hamburger style controls<\/strong> \u2014 Classic, Modern or Minimal icon appearance, alignment and colors<\/li>\n<li><strong>Link shape<\/strong> \u2014 configurable border-radius for pill-style or sharp links<\/li>\n<li><strong>Sticky header<\/strong> \u2014 fixed menu on scroll; \"Match main menu\" option mirrors the main menu automatically; custom background, shadow, padding and alignment available when mirroring is disabled<\/li>\n<li><strong>Scroll progress bar<\/strong> \u2014 page reading indicator that works on sticky or normal menus<\/li>\n<li><strong>Dark mode support<\/strong> \u2014 Light, Dark or Auto (follows OS preference)<\/li>\n<li><strong>Typography &amp; layout<\/strong> \u2014 searchable Google Fonts dropdown (70+ fonts, lazy typeface preview), fallback font, size, weight, letter spacing, text transform and items alignment<\/li>\n<li><strong>Visual gradient picker<\/strong> \u2014 mouse-driven widget: live preview strip, Linear \/ Radial toggle, 8-direction compass rose, 0\u2013360\u00b0 angle slider and two color pickers<\/li>\n<li><strong>Link animations<\/strong> \u2014 hover effects like Lift, Scale, Pulse, Bounce, Shake, Glow and Underline<\/li>\n<li><strong>Entrance animations<\/strong> \u2014 Fade, Slide, Zoom, Flip with duration, delay and stagger controls<\/li>\n<li><strong>Submenu styling<\/strong> \u2014 background, border, link color, shadow and animation controls<\/li>\n<li><strong>Logo support<\/strong> \u2014 add and position a logo image directly inside the menu bar; configure width, height, per-side margin and padding, vertical alignment and border-radius for circular or pill-shaped logos<\/li>\n<li><strong>Native Gutenberg block (giuliomax\/menu)<\/strong> \u2014 drag it directly into FSE template headers or template parts; uses a <code>SelectControl<\/code> sidebar to pick the menu location; rendered server-side so no HTML is duplicated<\/li>\n<li><strong>WP Menu Integration<\/strong> \u2014 intercept classic theme <code>wp_nav_menu()<\/code> calls and replace them with MenuX output<\/li>\n<li><strong>Import \/ Export<\/strong> \u2014 save and restore menu configurations as JSON<\/li>\n<li><strong>Full reset<\/strong> \u2014 one-click button to delete all saved items, styles and settings<\/li>\n<li><strong>Multilingual ready<\/strong> \u2014 WPML, Polylang and TranslatePress support with language-specific item labels<\/li>\n<li><strong>High-fidelity live preview<\/strong> \u2014 real-time desktop\/tablet\/mobile preview that mirrors the actual frontend layout<\/li>\n<li><strong>Search bar<\/strong> \u2014 optional magnifying-glass icon; opens a modal with a Menu search tab and an In-page search tab with keyboard prev\/next navigation<\/li>\n<li><strong>Announcement Bar<\/strong> \u2014 display a full-width promotional banner above or below the menu; set text, link, background\/text colors, font size and padding; dismissible by visitors (localStorage, configurable expiry days); auto-reset when the message changes; optional countdown timer (target date\/time, label, expired message, auto-hide of the days segment when it reaches zero)<\/li>\n<li><strong>Onboarding tutorial<\/strong> \u2014 guided 5-step walkthrough driven by a \ud83d\udc1d bee mascot that auto-starts on first admin visit<\/li>\n<li><strong>Accessibility (WCAG 2.2 AA)<\/strong> \u2014 keyboard navigation, focus ring, skip link, ARIA labels, touch targets, reduced motion and high-contrast support; enabled with a single master toggle<\/li>\n<\/ul>\n\n<h4>\ud83d\uded2 WooCommerce Cart \u2014 Free<\/h4>\n\n<p>Most navigation plugins charge extra for a WooCommerce cart integration. MenuX includes it for free.<\/p>\n\n<ul>\n<li><strong>Live cart icon<\/strong> \u2014 cart, bag or basket icon with a real-time item-count badge; count updates instantly when products are added, no page reload<\/li>\n<li><strong>Optional cart total<\/strong> \u2014 show the cart subtotal next to the icon<\/li>\n<li><strong>Mini-cart dropdown<\/strong> \u2014 shows the current cart contents; configurable to open on hover (with automatic tap-to-open on touch), on click, or not at all (icon links to cart page)<\/li>\n<li><strong>Fully customisable<\/strong> \u2014 choose the icon style, position (left or right of nav), icon color and count-badge color; optionally hide the cart when it's empty<\/li>\n<li><strong>Multi-instance safe<\/strong> \u2014 every cart icon on the page (header, footer, multiple blocks) updates together via WooCommerce's native add-to-cart fragments<\/li>\n<li><strong>Graceful fallback<\/strong> \u2014 completely silent when WooCommerce is not installed; the settings panel shows a notice and the feature activates automatically when WooCommerce is turned on<\/li>\n<li><strong>Import\/Export parity<\/strong> \u2014 cart settings are included in configuration backups and restored on import<\/li>\n<\/ul>\n\n<h4>\u26a1 Mega Menu \u2014 Free<\/h4>\n\n<p>Build rich, full-width dropdown panels for any first-level navigation item. Per-item independent appearance styling is a 3.0 highlight \u2014 each mega menu can have a completely different look.<\/p>\n\n<ul>\n<li><strong>Up to 4 columns<\/strong> per panel, each independently sized (% width or auto)<\/li>\n<li><strong>5 column item types<\/strong>: clickable links, section headings, dividers, images, and arbitrary shortcodes \/ Gutenberg blocks<\/li>\n<li><strong>Icon + description<\/strong> on link items \u2014 give users context at a glance<\/li>\n<li><strong>Click-to-pick icon picker<\/strong> \u2014 browse and search Font Awesome 6 Free icons directly from the editor<\/li>\n<li><strong>Drag &amp; drop reordering<\/strong> of items within each column<\/li>\n<li><strong>Per-item independent toggle<\/strong> \u2014 enable Mega Menu on one or multiple nav items; each manages its own columns and appearance independently<\/li>\n<li><strong>Full-width panel<\/strong> anchored to the navigation container<\/li>\n<li><strong>Per-item appearance tab<\/strong> \u2014 each mega menu has its own \ud83c\udfa8 Appearance tab inside the editor with:\n\n<ul>\n<li>Background (solid, gradient presets or fully custom gradient builder)<\/li>\n<li>Padding top\/bottom and left\/right<\/li>\n<li>Column gap and border radius<\/li>\n<li>Font size override<\/li>\n<li>Color overrides: link, heading, accent\/icon, link hover, description and divider<\/li>\n<li>\"Reset to global defaults\" clears all overrides for that item<\/li>\n<\/ul><\/li>\n<li><strong>12 preset templates<\/strong> with one-click apply \u2014 SaaS, E-Commerce, Agency, News, Corporate, Restaurant, Travel, Learning, Healthcare, Real Estate, Fitness, Photography<\/li>\n<li><strong>Always-on live preview<\/strong> \u2014 permanently visible below the editor, updates in real time<\/li>\n<li><strong>Smooth hover<\/strong> \u2014 200 ms grace timer so the panel never disappears when moving the mouse from the trigger to the panel<\/li>\n<li><strong>Mobile-aware<\/strong> \u2014 collapses inline on small screens, or disabled on mobile entirely<\/li>\n<\/ul>\n\n<h4>\ud83d\udce2 Announcement Bar \u2014 Free<\/h4>\n\n<p>Drive conversions with a prominent, dismissible message strip that sits above or below your navigation \u2014 no extra plugin needed.<\/p>\n\n<ul>\n<li><strong>Flexible positioning<\/strong> \u2014 place the bar above the menu (before the sticky spacer, so it scrolls away naturally) or below it<\/li>\n<li><strong>Full style control<\/strong> \u2014 background color, text color, font size (px), vertical padding; output as clean, scoped CSS so it never conflicts with your theme<\/li>\n<li><strong>Clickable message<\/strong> \u2014 optionally wrap the entire announcement text in a link with configurable new-tab behavior<\/li>\n<li><strong>Dismissal with memory<\/strong> \u2014 a configurable \u00d7 close button stores the dismissal in <code>localStorage<\/code>; the bar stays hidden for a configurable number of days; the key is keyed to the message text, so changing the copy automatically resets dismissal for all visitors<\/li>\n<li><strong>Countdown timer<\/strong> \u2014 attach a live ticking countdown to any bar: set a target date\/time, a label (e.g. \"Ends in:\"), and an optional \"expired\" message shown after the deadline; the days segment hides automatically when it reaches zero; initial digit values are rendered server-side to avoid a first-paint flash<\/li>\n<li><strong>Once-per-page<\/strong> \u2014 when multiple <code>[menux]<\/code> shortcodes are on the same page the bar renders exactly once, matching the behavior of the overlay backdrop<\/li>\n<\/ul>\n\n<h4>\ud83c\udfa8 Style Options<\/h4>\n\n<ul>\n<li>Colors: background (solid or gradient with visual picker), links, hover state, active state, submenus, hamburger<\/li>\n<li>Typography: Google Fonts (searchable, 70+ fonts with live preview), font family, size, weight, letter spacing, text transform<\/li>\n<li>Layout: gap, horizontal padding, vertical padding, container border-radius, items alignment, link border-radius<\/li>\n<li>Mobile: breakpoint, opening mode, overlay color\/opacity\/blur, drawer width, open animation<\/li>\n<li>Sticky: background, shadow, padding, alignment, transition, shrink effect, auto-hide on scroll<\/li>\n<\/ul>\n\n<h4>\ud83d\udd0c Usage<\/h4>\n\n<ol>\n<li>Go to <strong>Giuliomax Menu Builder<\/strong> in the WordPress admin sidebar<\/li>\n<li>Build your menu items using the visual drag-and-drop builder<\/li>\n<li>Apply a preset theme or configure colors and style manually<\/li>\n<li>To add a Mega Menu: go to <strong>\u26a1 Mega Menu<\/strong> in the sidebar, enable it on a nav item, click <strong>\u26a1 Edit Columns \u25b6<\/strong>, add columns and items; click <strong>\ud83c\udfa8 Appearance<\/strong> to style that mega menu independently<\/li>\n<li>To add a WooCommerce cart icon: go to <strong>\ud83d\uded2 WooCommerce<\/strong> in the sidebar and enable the cart<\/li>\n<li>Place <code>[menux]<\/code> in any page, post, widget or template<\/li>\n<\/ol>\n\n<h4>\u2615 Support the Developer<\/h4>\n\n<p>MenuX is free and always will be. If it saves you time or money, a small donation helps me keep improving it:<\/p>\n\n<p>\ud83d\udc49 https:\/\/www.paypal.com\/paypalme\/giuliosw<\/p>\n\n<p>Thank you \u2014 every contribution genuinely matters.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin may connect to the following external service:<\/p>\n\n<p><strong>Google Fonts<\/strong> (optional)<\/p>\n\n<p>If a Google Font name is entered in the Style panel (Typography tab), the plugin loads that font's stylesheet from Google's servers at <code>https:\/\/fonts.googleapis.com<\/code>. This request is made only when a Google Font is explicitly configured by the site administrator. The font name and the visitor's IP address are sent to Google as part of the standard HTTP request.<\/p>\n\n<ul>\n<li>Terms of service: https:\/\/developers.google.com\/terms<\/li>\n<li>Privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p>Font Awesome icons are bundled locally within the plugin and do <strong>not<\/strong> load from any external server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<li>Go to <strong>MenuX<\/strong> in the admin menu<\/li>\n<li>Build your menu and copy the shortcode <code>[menux]<\/code><\/li>\n<li>Paste <code>[menux]<\/code> wherever you want the menu to appear<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20display%20the%20menu%3F\"><h3>How do I display the menu?<\/h3><\/dt>\n<dd><p>The easiest way: open any page or your site header in the editor, click the <strong>+<\/strong> inserter and search for <strong>MenuX<\/strong> \u2014 drop the block in and you're done, no code required. Prefer a shortcode? Just type <code>[menux]<\/code> into any page, post or widget. To show different menus in different spots (header, footer, sidebar\u2026), pick the location from the block sidebar or pass it to the shortcode as <code>[menux location=\"footer\"]<\/code>.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%3F%20are%20there%20ads%2C%20watermarks%20or%20upsells%3F\"><h3>Is it really free? Are there ads, watermarks or upsells?<\/h3><\/dt>\n<dd><p>Yes, genuinely free. Every feature described here \u2014 mega menus, the WooCommerce cart, 20 themes, the Announcement Bar with countdown, accessibility, Google Fonts, the Gutenberg block \u2014 is included with no paywall, no \"upgrade now\" banners inside the builder, no ads and no watermark on your menu. If the plugin saves you time, a small voluntary donation is welcome, but nothing is locked behind it.<\/p><\/dd>\n<dt id=\"can%20i%20have%20different%20menus%20for%20different%20pages%3F\"><h3>Can I have different menus for different pages?<\/h3><\/dt>\n<dd><p>Use role-based visibility or per-item device\/page conditionals to adapt the menu per context. A single menu configuration covers the most common multi-location scenarios via the <code>location<\/code> attribute.<\/p><\/dd>\n<dt id=\"how%20do%20i%20create%20dropdown%20submenus%3F\"><h3>How do I create dropdown submenus?<\/h3><\/dt>\n<dd><p>In the visual builder, drag any item slightly to the right under another item to nest it \u2014 it becomes a submenu entry. You can nest several levels deep. On desktop the submenu opens on hover; on mobile it expands inline when tapped. No code needed.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20logo%3F\"><h3>How do I add a logo?<\/h3><\/dt>\n<dd><p>Go to <strong>MenuX \u2192 Logo<\/strong> in the admin sidebar, upload or pick an image, then set its position inside the bar (left, center or right), width, height, margins and border-radius (handy for circular or pill-shaped logos). The logo appears immediately in the live preview.<\/p><\/dd>\n<dt id=\"how%20do%20i%20make%20the%20menu%20stick%20to%20the%20top%20when%20scrolling%3F\"><h3>How do I make the menu stick to the top when scrolling?<\/h3><\/dt>\n<dd><p>Open <strong>MenuX \u2192 Style \u2192 Sticky<\/strong> and enable the sticky header. By default it mirrors your main menu's look (\"Match main menu\"); turn that off to give the sticky bar its own background, shadow, padding and alignment. You can also enable a shrink-on-scroll effect and an auto-hide behavior.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20search%20bar%3F\"><h3>How do I add a search bar?<\/h3><\/dt>\n<dd><p>Enable it from the Search panel in the admin. A magnifying-glass icon is added to the menu; clicking it opens a modal with two tabs \u2014 search your menu items, or search the text on the current page with keyboard prev\/next navigation.<\/p><\/dd>\n<dt id=\"does%20it%20work%20in%20full%20site%20editing%20%28fse%29%20themes%20like%20twenty%20twenty-five%3F\"><h3>Does it work in Full Site Editing (FSE) themes like Twenty Twenty-Five?<\/h3><\/dt>\n<dd><p>Yes \u2014 and it couldn't be simpler. From <strong>Appearance \u2192 Editor<\/strong>, open the header template part, click the <strong>+<\/strong> inserter, search for <strong>MenuX<\/strong>, and drop the <strong>MenuX \u2014 Menu<\/strong> block where you want the navigation. Use the block sidebar to pick the menu location. Font Awesome icons, your configured Google Font, and the mega-menu \/ hamburger JavaScript all load correctly right inside the editor preview, so you see the real thing as you build.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%3F\"><h3>Does it work with page builders?<\/h3><\/dt>\n<dd><p>Yes. In the WordPress block editor use the native <strong>MenuX<\/strong> block. In Elementor, Divi, WPBakery and other builders just add a Shortcode element with <code>[menux]<\/code> \u2014 both produce the same menu.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The menu HTML is generated server-side and compatible with WP Rocket, LiteSpeed Cache, W3 Total Cache and similar plugins.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20font%20awesome%20icons%3F\"><h3>How do I add Font Awesome icons?<\/h3><\/dt>\n<dd><p>In the menu builder, each item has an icon field. Type the FA class name, e.g. <code>fa-solid fa-house<\/code>, or use the <strong>\ud83c\udfa8 Pick<\/strong> button to browse and search icons visually. Font Awesome 6 Free is loaded automatically.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20wpml%20%2F%20polylang%20%2F%20translatepress%3F\"><h3>Is it compatible with WPML \/ Polylang \/ TranslatePress?<\/h3><\/dt>\n<dd><p>Yes. This plugin automatically detects installed multilingual plugins and lets you set a label per language for each menu item.<\/p><\/dd>\n<dt id=\"where%20is%20the%20mobile%20breakpoint%3F\"><h3>Where is the mobile breakpoint?<\/h3><\/dt>\n<dd><p>Go to <strong>MenuX \u2192 Style \u2192 Mobile<\/strong> and set your preferred pixel breakpoint, or choose Auto to detect based on available space. Default is 768px.<\/p><\/dd>\n<dt id=\"how%20do%20i%20use%20the%20preset%20themes%3F\"><h3>How do I use the preset themes?<\/h3><\/dt>\n<dd><p>In the admin sidebar click <strong>\u2728 Themes<\/strong>. Browse the 20 preset themes, hover to preview and click <strong>Apply<\/strong> to try one live.<\/p><\/dd>\n<dt id=\"how%20does%20the%20mega%20menu%20work%3F\"><h3>How does the Mega Menu work?<\/h3><\/dt>\n<dd><p>Go to <strong>\u26a1 Mega Menu<\/strong> in the sidebar, enable the toggle next to a first-level nav item, then click <strong>\u26a1 Edit Columns \u25b6<\/strong>. Add up to 4 columns, fill them with headings, links (with icon and description), dividers, images or shortcodes. Click <strong>\ud83c\udfa8 Appearance<\/strong> to give this specific mega menu its own background, colors and spacing. Hit <strong>\u2728 Presets<\/strong> to load one of 12 ready-made templates.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20an%20announcement%20bar%3F\"><h3>How do I add an Announcement Bar?<\/h3><\/dt>\n<dd><p>Go to <strong>MenuX \u2192 Announcement<\/strong> in the admin sidebar, check <strong>Enable Announcement Bar<\/strong>, enter your message, optionally add a link and configure the colors. Choose <strong>Above<\/strong> or <strong>Below<\/strong> to control where the bar appears relative to the navigation. To add a countdown, enable the Countdown Timer toggle, pick a target date\/time and optionally set an expired message.<\/p><\/dd>\n<dt id=\"can%20i%20have%20a%20different%20background%20for%20each%20mega%20menu%3F\"><h3>Can I have a different background for each mega menu?<\/h3><\/dt>\n<dd><p>Yes, since version 3.0. Click <strong>\u26a1 Edit Columns \u25b6<\/strong> on any enabled item, then switch to the <strong>\ud83c\udfa8 Appearance<\/strong> tab. Changes apply only to that item's panel and override the global defaults.<\/p><\/dd>\n<dt id=\"does%20the%20woocommerce%20cart%20work%20with%20all%20themes%3F\"><h3>Does the WooCommerce cart work with all themes?<\/h3><\/dt>\n<dd><p>Yes. The cart icon is part of the menu output, so it works with any theme whether you place the menu via the MenuX block or the <code>[menux]<\/code> shortcode. The mini-cart uses WooCommerce's native fragments system for live updates.<\/p><\/dd>\n<dt id=\"does%20the%20wp%20menu%20integration%20work%20with%20all%20themes%3F\"><h3>Does the WP Menu Integration work with all themes?<\/h3><\/dt>\n<dd><p>It works with classic PHP themes that call <code>wp_nav_menu()<\/code> directly (e.g. GeneratePress, OceanWP, Neve, Kadence). Themes that use a custom header builder (e.g. Astra Header Builder) bypass <code>wp_nav_menu()<\/code> internally, so the integration cannot intercept them \u2014 in that case just drop the MenuX block (or the <code>[menux]<\/code> shortcode) into your header instead.<\/p><\/dd>\n<dt id=\"will%20i%20lose%20my%20menu%20if%20i%20switch%20themes%3F\"><h3>Will I lose my menu if I switch themes?<\/h3><\/dt>\n<dd><p>No. Your menu items and styles are stored by the plugin, not by the theme. When you change theme the menu stays intact \u2014 you only need to place the block (or <code>[menux]<\/code> shortcode) again in the new theme's header.<\/p><\/dd>\n<dt id=\"can%20i%20move%20my%20menu%20to%20another%20website%3F\"><h3>Can I move my menu to another website?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Import \/ Export<\/strong>: export your full configuration (items, styles, mega menus, cart, announcement and all settings) to a JSON file, then import it on another site to recreate the menu exactly. It's also a convenient backup.<\/p><\/dd>\n<dt id=\"is%20the%20menu%20accessible%3F\"><h3>Is the menu accessible?<\/h3><\/dt>\n<dd><p>Yes. A single master toggle enables a full WCAG 2.2 AA layer: keyboard navigation, a visible focus ring, a skip link, ARIA labels, adequate touch-target sizes, reduced-motion support and a high-contrast mode.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>No. The menu HTML and its CSS are generated server-side, Font Awesome is bundled locally (no external request), and Google Fonts load only if you actually choose one. There's no heavy framework, so the footprint stays light and caching-plugin friendly.<\/p><\/dd>\n<dt id=\"can%20i%20reset%20everything%20and%20start%20fresh%3F\"><h3>Can I reset everything and start fresh?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>MenuX \u2192 Tools \u2192 Reset Everything<\/strong> and confirm. This permanently deletes all menu items, styles and integration settings.<\/p><\/dd>\n<dt id=\"can%20i%20use%20custom%20css%3F\"><h3>Can I use custom CSS?<\/h3><\/dt>\n<dd><p>You can target the <code>.menux-container<\/code> wrapper and its child elements from your theme's stylesheet or from any \"Additional CSS\" field in the WordPress Customizer.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.3.2<\/h4>\n\n<ul>\n<li><strong>Fix: Announcement Bar width and gap<\/strong> \u2014 the bar is now wrapped in a shared flex-column container with the nav, so it always matches the menu width exactly and sits flush against it with no white-space gap, regardless of the theme layout<\/li>\n<li><strong>Fix: PHP fatal error on admin pages<\/strong> \u2014 an unescaped apostrophe in <code>help-content.php<\/code> caused a parse error that crashed the entire WordPress admin; fixed by escaping the offending character (<code>bar\\'s<\/code>)<\/li>\n<li><strong>Fix: Announcement Bar section missing from help modal<\/strong> \u2014 the \ud83d\udce2 Announcement panel was not documented in the contextual help; a full section covering all fields (message, link, colors, position, dismissal, countdown timer) has been added<\/li>\n<li><strong>Improvement: Help modal display instructions<\/strong> \u2014 the \"How to display the menu\" entry now leads with the native MenuX block (no-code path) instead of the shortcode<\/li>\n<\/ul>\n\n<h4>3.3.1<\/h4>\n\n<ul>\n<li><strong>New: Countdown Timer in Announcement Bar<\/strong> \u2014 attach a live ticking countdown (days \/ hours \/ minutes \/ seconds) to any announcement; set a target date\/time, a label (e.g. \"Ends in:\") and an optional expired message; initial values are rendered server-side to eliminate first-paint flash; the days segment hides automatically when it reaches zero<\/li>\n<li><strong>Fix: Stale open-state on mobile after closing the menu<\/strong> \u2014 second-level and third-level submenus that were open before the hamburger close remained visually open on the next open; <code>bmCloseMenu()<\/code> now collapses all nested <code>.mobile-sm-open<\/code> links and resets mega-menu <code>.menux-open<\/code> state including <code>aria-expanded<\/code><\/li>\n<li><strong>Fix: Accordion not fully collapsing sibling branches<\/strong> \u2014 closing a sibling item on mobile only removed the direct-child open class; now clears all descendant <code>.mobile-open<\/code> \/ <code>.mobile-sm-open<\/code> in the sibling branch so deeply nested submenus are fully reset<\/li>\n<li><strong>Fix: Sticky spacer height drift when web fonts load late<\/strong> \u2014 when a Google Font was configured and the page was scrolled before the font finished loading, the spacer kept the wrong height permanently; the new <code>recalcMetricsForce()<\/code> function briefly removes the fixed class synchronously (no visual flicker) to re-measure, called on <code>document.fonts.ready<\/code> and on resize<\/li>\n<\/ul>\n\n<h4>3.3.0<\/h4>\n\n<ul>\n<li><strong>New: Announcement Bar<\/strong> \u2014 add a full-width promotional banner above or below the navigation from <strong>MenuX \u2192 Announcement<\/strong> in the admin sidebar; configure text, link, background color, text color, font size, vertical padding and position; optionally make it dismissible with a configurable expiry (localStorage); the bar renders exactly once per page even when multiple <code>[menux]<\/code> shortcodes are present; settings are included in Import\/Export<\/li>\n<\/ul>\n\n<h4>3.2.1<\/h4>\n\n<ul>\n<li><strong>New: Mobile accordion mode<\/strong> \u2014 a new toggle in the Mobile panel (\"Close other submenus when one opens\") collapses sibling submenus at the same level whenever a new one is opened on mobile; works for all nesting levels and all mobile opening styles (dropdown, fullscreen, drawer)<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li><strong>New: Dropdown Indicator customization<\/strong> \u2014 choose between Triangle (\u25be), Chevron (\u2304), Dot (\u2022) or None for the arrow shown on items with submenus; set a custom color, size (6\u201324 px) and toggle the open\/close rotation animation. Applies to all levels: top-level items animate on hover or mega-panel open, nested items rotate when their sub-submenu opens. Settings are included in Import\/Export.<\/li>\n<\/ul>\n\n<h4>3.1.3<\/h4>\n\n<ul>\n<li><strong>Fix: Sticky spacer height stale after Google Font load<\/strong> \u2014 when a Google Font was set, the font swap could change the nav height slightly after the initial measurement; <code>document.fonts.ready<\/code> now triggers a re-measure so the spacer is always the correct height when sticky first engages<\/li>\n<li><strong>Fix: Duplicate HTML IDs with multiple shortcodes on same page<\/strong> \u2014 using <code>[menux]<\/code> twice on the same page produced duplicate <code>id<\/code> attributes (<code>menux-nav-main<\/code>, <code>menux-spacer<\/code>, <code>menux-list-main<\/code>, <code>menux-progress-bar<\/code>); the shortcode now applies the same per-instance suffix strategy already used by the Gutenberg block<\/li>\n<\/ul>\n\n<h4>3.1.2<\/h4>\n\n<ul>\n<li><strong>Fix: Overlay and Escape key fire multiple times with multiple nav instances<\/strong> \u2014 the overlay click and <code>document<\/code> Escape listener were registered once per nav element on the page; both are now bound exactly once and dispatch to all nav instances, so pressing Escape or clicking the backdrop always closes the correct open menu<\/li>\n<li><strong>Fix: Search results XSS with HTML in page text or menu labels<\/strong> \u2014 page text containing <code>&lt;<\/code>, <code>&gt;<\/code> or <code>&amp;<\/code> characters was inserted into search result HTML without escaping, potentially breaking layout or allowing injected markup; all text piped through <code>bmSmHL<\/code> is now HTML-escaped before the <code>&lt;mark&gt;<\/code> replacement<\/li>\n<li><strong>Fix: Search \"No results\" display with special characters<\/strong> \u2014 the user's query string was inserted raw into the \"No results for \u2026\" message; it is now escaped before rendering<\/li>\n<li><strong>Fix: Admin language list XSS<\/strong> \u2014 language codes and labels returned by the multilingual-plugin AJAX endpoint were inserted into innerHTML without escaping; <code>menux_esc()<\/code> is now applied to both values<\/li>\n<\/ul>\n\n<h4>3.1.1<\/h4>\n\n<ul>\n<li><strong>Fix: Scroll Progress Bar settings were never saved<\/strong> \u2014 enabling the progress bar and setting its color, height or position had no effect because the save handler dropped these four fields; they are now persisted and survive import\/export<\/li>\n<li><strong>Fix: Sticky \"Shrink on scroll\" and \"Transition duration\" were never saved<\/strong> \u2014 both sticky options were rendered in the form but silently discarded on save; now persisted and included in import\/export<\/li>\n<li><strong>Fix: Mega menu shortcode\/widget columns<\/strong> \u2014 shortcodes that output forms, iframes or inputs (e.g. Contact Form 7, video embeds) were being stripped by output sanitisation; trusted admin shortcode output now renders intact while the surrounding markup stays sanitised<\/li>\n<li><strong>Fix: Mega panel overflow escape (Elementor)<\/strong> \u2014 the page-builder overflow workaround is now ref-counted across sibling mega items and correctly released when a panel is closed by clicking outside or via keyboard, so wrappers are never left with permanently broken clipping<\/li>\n<li><strong>Fix: Staggered entrance animation<\/strong> \u2014 menus with more than 20 top-level items no longer leave the items beyond the 20th permanently invisible<\/li>\n<li><strong>Fix: Sticky spacer height<\/strong> \u2014 the sticky placeholder height is now re-measured on resize and font reflow, preventing a content jump when the bar engages<\/li>\n<li><strong>Fix: Per-item mega Appearance editor<\/strong> \u2014 picking a background no longer wipes unsaved padding\/gap\/colour edits; every Appearance field now updates the live preview immediately, and the preview honours the per-item border radius and divider style<\/li>\n<li><strong>Fix: In-page search<\/strong> \u2014 clicking a specific result now jumps to that match instead of snapping back to the first; repeated searches no longer fragment the page text<\/li>\n<li><strong>Internal<\/strong> \u2014 aligned the mobile overlay opacity default (0.9) across all layers; removed a per-render document click-listener leak in the mega editor<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li><strong>Elementor compatibility<\/strong> \u2014 mega menu panels now correctly escape Elementor columns that use <code>overflow:hidden<\/code>; the JavaScript walks up the DOM on open and restores overflow values on close, so the panel is fully visible and receives mouse events correctly<\/li>\n<li><strong>Entrance animation z-index fix<\/strong> \u2014 themes with CSS entrance animations (Indigo Pulse: slideDown, Cosmic Dusk: fadeIn, Violet Cloud, Aurora Night, Ocean Electric, Cloud Glass) no longer trap the mega panel inside a stacking context; changed <code>animation-fill-mode<\/code> from <code>both<\/code> to <code>backwards<\/code> so no transform\/opacity is retained after the animation ends, and added an <code>animationend<\/code> listener to remove the animation rule entirely<\/li>\n<li><strong>Nav bar right padding<\/strong> \u2014 WooCommerce cart icon and search icon no longer sit flush against the right edge of the menu bar; the container now applies the same horizontal padding on the right side as the link items use internally (minimum 8 px)<\/li>\n<li><strong>Mega menu border-radius<\/strong> \u2014 per-item border-radius now applies only to the two bottom corners of the panel, eliminating the visual gap between the nav bar and the panel top edge<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li><strong>Per-item mega menu appearance<\/strong> \u2014 each mega menu now has its own independent \ud83c\udfa8 Appearance tab inside the editor modal with full control over: background (solid color, 12 gradient presets or a custom gradient builder with direction selector and two color pickers), padding top\/bottom, padding left\/right, column gap, border radius, font size, link color, heading color, accent\/icon color, link hover color, description color, divider color and divider style (solid\/dashed\/dotted); settings are saved per item and generate scoped CSS so each mega menu panel renders with a completely independent look; a \"\u21ba Reset to global defaults\" button clears all overrides for that item<\/li>\n<li><strong>Redesigned Mega Menu admin panel<\/strong> \u2014 the item list now shows clear ON\/OFF status badges (green \u26a1 ON \/ grey OFF) for each first-level nav item; items in OFF state show a dashed \"\uff0b Enable Mega Menu\" call-to-action button; items in ON state show the \"\u26a1 Edit Columns \u25b6\" primary button, a Full Width checkbox and a \"\u2715 Disable\" link; the editor modal adds \ud83d\udccb Content and \ud83c\udfa8 Appearance tab buttons in the toolbar for switching between the column editor and the per-item style panel<\/li>\n<li><strong>Sidebar reorganisation<\/strong> \u2014 \u26a1 Mega Menu moved into the Structure group (alongside Menu Structure) since it configures what is in the menu, not how it looks; \ud83d\uddbc\ufe0f Logo moved into the Style group (below Colors) since it is a visual\/brand setting; \u2728 Themes added as a first-class sidebar entry at the top of the Style group for immediate discoverability<\/li>\n<li><strong>Themes panel accessible directly from sidebar<\/strong> \u2014 clicking \u2728 Themes in the sidebar now opens the theme grid immediately without requiring a form save first; <code>buildInlineThemeGrid()<\/code> is called both on DOMContentLoaded and on every navigation to the Themes section<\/li>\n<li><strong>Descriptive empty-menu state<\/strong> \u2014 the builder sidebar empty state now shows a helpful message with a clickable link (\"\u2192 Go to Menu Structure\") rather than just \"Empty menu\"<\/li>\n<li><strong>Live preview empty state<\/strong> \u2014 the live preview also shows an informative message referencing Menu Structure when no items have been added<\/li>\n<\/ul>\n\n<h4>2.12.0<\/h4>\n\n<ul>\n<li>New: Duplicate Column button in the mega menu editor \u2014 clone any column (including all its items) and insert it right after the original; disabled automatically when the 4-column maximum is reached.<\/li>\n<li>New: Column text alignment controls (L \/ C \/ R) in the mega menu editor \u2014 set per-column alignment for links and headings; stored as a column-level property and rendered via data-align CSS selectors.<\/li>\n<li>New: Mega menu divider color and style settings \u2014 choose a custom color for column dividers and headings border, and select between solid, dashed or dotted line styles.<\/li>\n<li>New: Mega menu open\/close animation speed control \u2014 configure the panel transition duration (0\u2013800 ms) from the Panel Appearance settings.<\/li>\n<\/ul>\n\n<h4>2.11.0<\/h4>\n\n<ul>\n<li>New: Dedicated Mega Menu text styling, independent from the main Colors section \u2014 separate controls for heading, link, link hover and description colors, plus the existing panel background.<\/li>\n<li>New: Per-item heading and link color overrides in the mega menu editor (alongside the existing description color).<\/li>\n<li>Improved: All 12 mega menu preset templates now ship with professional, high-contrast color palettes tuned to each template's panel background, so they look polished out of the box regardless of the theme or main menu colors.<\/li>\n<li>Fix: Mega menu text no longer borrows colors from the main navigation; applying a preset now also applies its colors end-to-end.<\/li>\n<\/ul>\n\n<h4>2.10.0<\/h4>\n\n<ul>\n<li><strong>WooCommerce integration<\/strong> \u2014 adds a cart icon to the menu with a live item-count badge, an optional cart subtotal, and a mini-cart dropdown showing the current cart contents; the count, total and mini-cart refresh instantly when products are added, with no page reload, via WooCommerce's native add-to-cart fragments<\/li>\n<li><strong>Cart icon options<\/strong> \u2014 choose between cart, bag or basket icons; place the cart on the left or right of the menu; customise the icon and count-badge colors; optionally hide the cart while it's empty<\/li>\n<li><strong>Mini-cart behavior<\/strong> \u2014 open the dropdown on hover (with automatic tap-to-open on touch devices), on click, or disable it so the icon links straight to the cart page; closes on outside-click and Escape<\/li>\n<li><strong>Multi-instance &amp; block safe<\/strong> \u2014 every cart icon on the page (header, footer, multiple Gutenberg blocks) updates together; works in classic themes via the shortcode and in FSE themes via the giuliomax\/menu block<\/li>\n<li><strong>Graceful fallback<\/strong> \u2014 when WooCommerce is not installed the feature stays completely silent; the settings panel remains available and shows a notice<\/li>\n<li><strong>Import\/Export parity<\/strong> \u2014 the new cart settings are included in configuration export and restored on import<\/li>\n<\/ul>\n\n<h4>2.9.0<\/h4>\n\n<ul>\n<li><strong>Native Gutenberg block (giuliomax\/menu)<\/strong> \u2014 adds a dynamic block registered via <code>register_block_type()<\/code> + <code>block.json<\/code>; the <code>render_callback<\/code> delegates entirely to the existing <code>menux_render_shortcode()<\/code> function so no HTML is duplicated; the shortcode, WP Menu Integration and all other existing features are completely unchanged<\/li>\n<li><strong>FSE \/ Site Editor support<\/strong> \u2014 the block works in Full Site Editing themes (e.g. Twenty Twenty-Five): drag it into any header template part from the Site Editor; the <code>enqueue_block_editor_assets<\/code> hook ensures Font Awesome 6, the configured Google Font, and the dynamic theme CSS are loaded inside the editor's iframe; the mega-menu and hamburger JS initialise correctly in the template-preview iframe<\/li>\n<li><strong>InspectorControls sidebar<\/strong> \u2014 a <code>SelectControl<\/code> in the block sidebar lets you pick the menu location (Primary, Footer, Sidebar, Mobile); live preview updates via <code>ServerSideRender<\/code> using the REST block-renderer endpoint<\/li>\n<li><strong>Multi-instance ID safety<\/strong> \u2014 when two or more <code>giuliomax\/menu<\/code> blocks appear on the same page, structural element IDs are automatically suffixed with a unique instance counter<\/li>\n<li><strong>No new build toolchain<\/strong> \u2014 the editor script is plain vanilla JS registered directly via <code>wp_register_script()<\/code>; no <code>@wordpress\/scripts<\/code>, Webpack or npm required<\/li>\n<\/ul>\n\n<h4>2.8.0<\/h4>\n\n<ul>\n<li><strong>Sticky mirror<\/strong> \u2014 new \"Match main menu\" toggle (on by default) makes the sticky bar inherit all styles from the main menu automatically; custom options shown when mirror is disabled<\/li>\n<li><strong>Container border-radius<\/strong> \u2014 new field in Layout \u2192 Spacing to round the corners of the menu container<\/li>\n<li><strong>Page Load Animation<\/strong> \u2014 renamed from \"Entrance Animation\" with improved UX; duration\/delay\/stagger controls hidden when \"None\" is selected<\/li>\n<li><strong>Logo in live preview<\/strong> \u2014 the admin live preview now shows the configured logo at the correct position; updates immediately without a save<\/li>\n<li><strong>Mega Menu preset modal<\/strong> \u2014 the template grid was clipped after the first row; the grid wrapper now scrolls independently so all 12 templates are reachable<\/li>\n<\/ul>\n\n<h4>2.7.0<\/h4>\n\n<ul>\n<li><strong>Help &amp; Documentation modal<\/strong> \u2014 a full-screen contextual help overlay accessible from every section via the \u2753 Help button; 12 sections covering every panel and field, navigable via a sidebar<\/li>\n<li><strong>Section persistence after save<\/strong> \u2014 saving settings returns the admin to the same panel section the user was in rather than jumping to the top<\/li>\n<\/ul>\n\n<h4>2.6.5<\/h4>\n\n<ul>\n<li><strong>Rock-solid search modal<\/strong> \u2014 the open\/close click handler now runs unconditionally at page load, independent of any JS configuration flag<\/li>\n<li><strong>Full deferred-script support<\/strong> \u2014 the plugin JS now detects whether the DOM is already parsed when the script executes; if an optimisation plugin adds <code>defer<\/code>, the init runs immediately<\/li>\n<\/ul>\n\n<h4>2.6.2<\/h4>\n\n<ul>\n<li><strong>Visual gradient picker for container background<\/strong> \u2014 a fully mouse-driven widget: live preview strip, Linear \/ Radial type toggle, 8-direction compass rose, 0\u2013360\u00b0 fine-tune slider, two native colour pickers<\/li>\n<\/ul>\n\n<h4>2.6.0<\/h4>\n\n<ul>\n<li><strong>Accordion menu builder<\/strong> \u2014 collapsible per-item editor with clearly labelled sections; streamlined Add pane; polished drag-and-drop rows<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li><strong>Google Font picker<\/strong> \u2014 searchable dropdown with 70+ fonts, lazy typeface preview, live update<\/li>\n<li><strong>Onboarding tutorial<\/strong> \u2014 floating \ud83d\udc1d bee mascot auto-starts on first visit and guides through 4 steps<\/li>\n<li><strong>Search bar<\/strong> \u2014 moved to free tier; Menu tab + In-page search tab with full keyboard navigation<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li><strong>Accessibility master toggle<\/strong> \u2014 all WCAG features disabled by default, activated with a single switch<\/li>\n<li><strong>Close button color config<\/strong> \u2014 color pickers for the \u00d7 close button in Fullscreen\/Drawer modes<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Added complete <strong>Accessibility<\/strong> settings panel (WCAG 2.2 AA): keyboard navigation, focus ring, skip link, ARIA, touch targets, reduced motion, high-contrast, focus trap in mobile overlay<\/li>\n<\/ul>\n\n<h4>2.3.5<\/h4>\n\n<ul>\n<li>Added <strong>12 demo templates<\/strong> for the Mega Menu editor \u2014 load a full column layout in one click<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Mega Menu: gradient background picker with 12 presets and custom gradient builder; font size, link color, heading color and accent\/icon color controls; icon picker for all item types; drag &amp; drop reordering<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Introduced <strong>Mega Menu<\/strong> \u2014 full-width column panels for first-level nav items (free); up to 4 columns, 5 item types, mobile support<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added 20 preset themes, link border-radius, submenu styling, WP Menu Integration, full Reset button<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Initial release \u2014 builder, 4 mobile modes, sticky, scroll progress bar, entrance animations, import\/export, multilingual<\/li>\n<\/ul>","raw_excerpt":"Build fully custom navigation menus with Mega Menus, WooCommerce cart, icons, roles, mobile modes and multilingual support. Free.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/312081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=312081"}],"author":[{"embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/giuliomax"}],"wp:attachment":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=312081"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=312081"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=312081"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=312081"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=312081"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=312081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}