# Changelog

All notable changes to SimpleBar – Admin Bar Customiser will be documented in this file.

---

## [2.1.0] – 2026-05-25

### Added
- WordPress Classic preset values as the first-run default style.
- Lazy initialisation for defaults so multisite/network installs can initialise safely when each site first loads wp-admin.
- Seven built-in appearance presets: WordPress Classic, Midnight Admin, Slate Professional, Ocean Blue, Evergreen, High Contrast Light, and Colour Riot.
- Appearance tab preset picker with one-click preset apply.
- Live appearance preview panel for admin bar and admin menu colours.
- Live preview support for custom role links entered on the Roles & Links screen.
- Accessibility contrast guardrails for key background/text colour pairs.
- Tools tab for settings portability.
- JSON export action for plugin options and role settings, including export metadata.
- JSON import action with sanitised option and role payload handling.
- Role UI section for discovered third-party admin bar nodes.
- Search field for filtering discovered third-party node IDs.
- Storage key for discovered node data (`sbabc_discovered_nodes`).
- Runtime support for hiding discovered third-party node IDs per role (`hide_extra`).
- Front-end admin bar visibility rules:
  - hide for selected roles,
  - hide on selected public post types,
  - force wp-admin-only toolbar mode.
- Instant tab switching in plugin settings (no full page reload when switching tabs).

### Changed
- Plugin version bumped to `2.1.0` in plugin header and internal constant.
- Default colour set now aligns with WordPress Classic palette and WordPress 7.0 blue (`#3858E9`).
- Appearance tab now includes preview and accessibility feedback cards below settings fields.
- Settings UI now includes behavioural controls for front-end toolbar visibility by role and post type.
- Roles tab copy updated to reflect new first-class third-party node support.
- Settings page labels and buttons updated to Title Case for UI consistency.
- Reorder section heading changed to `Reorder Top-Level Items` and spacing aligned with other cards.
- Text domain normalised to `simplebar-admin-bar-customizer`.
- Tab markup now includes server-rendered ARIA state (`aria-selected`, `tabindex`, `hidden`) for better no-JS accessibility.
- POT file naming/header now aligned with `simplebar-admin-bar-customizer` text domain.
- Settings tab/panel attribute output now uses explicit escaping to satisfy strict WPCS output rules.
- `readme.txt` updated for 2.1.0 features, installation flow, and stable tag.
- `README.md` updated with a 2.1.0 feature overview.

### Fixed
- Preserved backwards compatibility for existing installs by only writing defaults when the options row is missing.
- Import failures now return a clear error notice instead of silent failure.
- Export and import actions now enforce capability and nonce checks.
- Import flow now uses WordPress file handling and cleanup to improve upload safety and WPCS compatibility.
- Import flow now verifies uploaded extension/type as JSON before parsing and uses WP filesystem reads for WordPress standards compatibility.
- JSON export response now includes explicit WPCS-safe annotation for intentional encoded output.
- Uninstall cleanup now removes discovered node cache data.

---

## [2.0.0] – 2025-12-23

### Added
- Initial public release
- Ability to hide selected WordPress admin bar items
- Clean, minimal settings interface
- Lightweight implementation using core WordPress APIs

### Notes
This release establishes the core philosophy of SimpleBar:
small surface area, low friction, and no unnecessary complexity.

---
