=== Menu Styles ===
Contributors: smallapis
Tags: menu, responsive menu, mobile menu, dropdown menu, accordion menu
Requires at least: 6.1
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Responsive menu styles for your WordPress menus: dropdown, accordion, vertical, columns, live preview. Never touches your theme's header.

== Description ==

Menu plugins have a bad reputation for one reason: most of them override the theme's own navigation
and then spend the rest of their life losing a CSS fight against it.

This one never overrides anything. It renders into its own container, with its own scoped rules and
custom properties, and you place it with the **Styled menu block** or a shortcode wherever you want
one. Your theme's header keeps working exactly as it did.

= The styles =

* **Horizontal bar**, the classic.
* **Dropdown**: submenus open on hover, on keyboard focus and on tap.
* **Vertical list** for sidebars and footers.
* **Accordion**: submenus fold and unfold on click.
* **Columns**: one column per top item, for a footer sitemap.

Each takes its colours (text, hover, current page, background), a text size, the spacing between
items, the alignment, capitals, bold, a thin separator, and a burger on phones. Five ready-made
colour sets get you started in one click. Every change shows at once in a **live preview** on the
settings screen.

Dropdowns open on hover, or only on a click of their arrow if you prefer menus that stay put.

All five styles, the live preview and the colour sets are in the free version.

= Small screens =

Every style becomes a tap-to-open accordion on phones, because a menu that opens on hover does
nothing on a touch screen. The width at which that happens is yours to choose, 782 pixels by default.

To keep an item for one kind of screen only, give it the CSS class `msty-hide-mobile` or
`msty-hide-desktop` in Appearance, Menus.

= Keyboards and screen readers =

Submenu toggles are real `<button>` elements with `aria-expanded`. The current page is marked with
`aria-current`, the menu is a labelled `<nav>`, Escape closes what is open and returns focus, and focus
outlines are visible. The menu keeps the classes, attributes and titles that other plugins add to menu
items through the usual WordPress filters.

= Free and paid =

Five styled menus are free. Beyond that a Smallapis key lifts the limit and unlocks every other plugin
in the family on the same site. Menus over the limit stop being shown to visitors rather than
rendering broken; an administrator sees a note in their place.

= External service =

Only if you enter a licence key, the plugin checks it about once a day with the Smallapis service at
https://smallapis.com/v1/me. The request carries the key and, like every request WordPress
makes, the address of your site. Without a key, nothing is sent anywhere. Terms and privacy:
https://smallapis.com/legal.html

== Installation ==

1. Build your menu the usual way, in **Appearance → Menus**.
2. Go to **Appearance → Menu Styles**, add a styled menu, pick a style, watch the preview.
3. Add the **Styled menu** block to a page, a template or a block header, or paste the shortcode.

== Frequently Asked Questions ==

= Will it change my theme's header menu? =

No, and it cannot. It adds a menu where you place it and loads nothing on pages that do not use one.

= Can I put it in my header? =

Yes with a block theme: add the Styled menu block to the header template part. With a classic theme,
use a widget area or a hook with the shortcode.

= Do I have to rebuild my menu? =

No. It uses the menus in Appearance → Menus, with their items, classes and current-page states.

= My theme now shows two menus. =

That is expected: Menu Styles adds a menu where you place it and never replaces the theme's. If the
styled one is meant to replace the header menu, remove the theme's menu from its location in
Appearance, Menus (or from the header template in a block theme), and keep only the block.

= How do I hide an item on phones? =

In Appearance, Menus, open Screen Options and tick CSS Classes. Then give the item the class
`msty-hide-mobile`, or `msty-hide-desktop` for the opposite.

= Can an update break my style? =

Your settings are stored as plain values (colours, sizes, a style name), not as generated CSS, and
the rules all live under the plugin's own `.msty` class. New options arrive with defaults that
reproduce the previous look.

= Does it work with a page builder? =

Anywhere a shortcode works.

== Screenshots ==

1. The list of styled menus with their shortcodes.
2. Editing one, with the live preview.
3. The Styled menu block in the editor.
4. The accordion on a phone.

== Changelog ==

= 1.3.0 =
* New: five ready-made colour sets, applied in one click and visible at once in the preview.
* New: a separate colour for the current page.
* New: dropdowns can open on a click of their arrow only, instead of on hover.
* New: choose the width below which the menu switches to its phone layout.
* New: `msty-hide-mobile` and `msty-hide-desktop` classes to keep an item for one kind of screen.
* New: the empty list explains the three steps to a first styled menu.
* Changed: clearer directory description and answers on double menus, hiding items and updates.

= 1.2.0 =
* New: a Get a key button in the plugin header. After paying, one click activates the key on the site it was bought from, no copy and paste.
* New: once the plugin has done its job, a short request for a review, on its own screens only, which can be put off or turned off.

= 1.1.1 =
* Changed: the Smallapis service moved to its own domain, smallapis.com.

= 1.1.0 =
* New: the Styled menu block now appears in the block inserter, with a menu picker and a preview.
* New: live preview while editing, for new menus too.
* New: alignment, duplicate, and a copy button for the shortcode.
* New: the stylesheet loads in the page head when the page uses the shortcode, so nothing flashes.
* Fixed: menu item titles containing HTML were shown as code.
* Fixed: the current page was not announced to screen readers.
* Fixed: classes and attributes added to menu items by other plugins were dropped.
* Fixed: a key check could slow down a visitor's page; it now happens in the background.
* Fixed: the burger button now says which list it opens.

= 1.0.0 =
* First release.
