=== Halcyon Admin — Reduced Motion & Resizable Sidebar ===
Contributors: pressermannen, miikkamakela
Tags: admin, dashboard, accessibility, sidebar, motion
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.0.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A calmer, accessible wp-admin dashboard: reduced motion, resizable admin menu, and sensible color defaults that work out of the box.

== Description ==

Halcyon Admin tunes the WordPress admin for people who prefer a steady, low-distraction workspace. It doesn't add a settings page, a dashboard widget, or a notice — it just changes three things wp-admin does by default, and gets out of the way.

**What it does**

* **Resizable admin menu** — drag the right edge of the left menu to resize; width is saved per user and honored by the block editor.
* **Reduced motion by default** — disables CSS transitions, jQuery animations, and the WordPress 7 view transitions for users who haven't opted in. Honors `prefers-reduced-motion`.
* **Sensible default** — sets *Fresh* as the default admin color scheme for new users. Users can pick a different scheme through WordPress's standard profile color-scheme picker.

All preferences are per-user and stored as user meta. There is no global settings page, no telemetry, and no external network calls.

== Why "Halcyon"? ==

Halcyon means calm and peaceful. The plugin's only job is to make wp-admin feel that way — without forcing choices on users who like it the way it is.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install via the **Plugins → Add New** screen.
2. Activate **Halcyon Admin**.
3. Optional: open your profile screen to adjust the three settings.

== Must-use install ==

To load Halcyon Admin as a must-use plugin (no activation needed, no update prompts):

1. Copy the `halcyon-admin/` folder to `wp-content/mu-plugins/halcyon-admin/`.
2. Create a new file at `wp-content/mu-plugins/halcyon-admin-loader.php` containing:

    <?php
    /**
     * Plugin Name: Halcyon Admin (mu-plugin loader)
     * Description: Loads Halcyon Admin from a mu-plugins subdirectory.
     */

    defined( 'ABSPATH' ) || exit;

    require_once __DIR__ . '/halcyon-admin/halcyon-admin.php';

Halcyon Admin will be loaded automatically on every request and won't appear in the Plugins screen.

== Frequently Asked Questions ==

= Does it work with the block editor? =

Yes. The block editor's layout offsets follow your saved menu width, so resizing works the same in the editor as in the main admin.

= Does it work on mobile or touch devices? =

The drag-to-resize handle is desktop-only (mouse / trackpad). On touch devices, the menu uses the default WordPress width. Reduced motion and the color-scheme default work everywhere.

= Does it work on multisite? =

Yes. All preferences are per-user meta, so each user across the network can have their own settings.

= How do I reset the menu width? =

Drag the menu edge to a new width — it saves automatically. To restore the WordPress default, open your profile screen, leave the menu-width field empty, and save.

= Can I disable individual features? =

Yes, each feature can be turned off independently:

* **Animations** — toggle in your profile under **Users → Profile → Halcyon Admin**.
* **Menu width** — drag the menu edge back to a different width; it saves automatically and is per user.
* **Color scheme** — pick a different scheme through WordPress's standard profile color-scheme picker.

= What data does the plugin store about me? =

Three user-meta keys, all local to your WordPress install:

* `halcyon_admin_animations_enabled`
* `halcyon_admin_color_scheme_chosen`
* `halcyon_admin_sidebar_width`

No data is sent off-site, no cookies are set, no external services are contacted. All stored data is removed automatically when the plugin is uninstalled.

= Does it conflict with other admin-customization plugins? =

Generally no, but two plugins adjusting the same thing (admin color scheme, sidebar width, or animation state) will produce whichever loads last. Test any existing admin-customization plugins after activating Halcyon Admin.

== Screenshots ==

1. The admin menu resized to a comfortable width via the drag handle on its right edge.
2. The Halcyon Admin section on the user profile screen, with the single per-user setting.

== Changelog ==

= 1.0.5 =
* Readme fix: the mu-plugin install code block was rendering with the `php` language hint as inline text and the `__DIR__` constant being eaten as bold markdown. Switched to 4-space indented syntax (the WordPress readme parser does not support fenced code blocks).
* Add plugin page banner: `banner-772x250.png` and `banner-1544x500.png` (source artwork JPG, converted to PNG per WP.org spec).
* Refresh screenshots: replaced with accurate captures from a fresh WP 7.0 install — one Halcyon Admin checkbox in the profile section, plus a real-drag demo of the resizable menu.
* Tighten the "What it does" copy and FAQ so the description matches the actual plugin UI (no implied "three settings" claim; color-scheme description points to WordPress's standard picker).
* No code changes.

= 1.0.4 =
* Readme improvements: clearer "what it does" overview, mu-plugin install with copy-paste loader snippet, expanded FAQ, and privacy/data clarification. No code changes.

= 1.0.3 =
* Code quality: address Plugin Check tool findings. Escape `$width` output in the initial sidebar CSS, sanitize the AJAX `width` input with `absint()`, and add a defensive `check_admin_referer()` to the profile save handlers (`save_profile`, `mark_explicit_choice`). No functional change.

= 1.0.2 =
* Renamed to Halcyon Admin. New slug, text domain, namespace, asset handles, and user meta keys. Stored preferences are not migrated.

= 1.0.1 =
* Set Tested up to: 7.0. Add languages directory for translations.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.5 =
Readme fix, plugin page banner, refreshed screenshots, and tightened copy. No code changes.

= 1.0.4 =
Readme improvements. No code changes.

= 1.0.3 =
Code quality fixes from the Plugin Check tool. No functional change.

= 1.0.2 =
Rename to Halcyon Admin. Slug, namespace, and user meta keys have changed. Stored preferences are not migrated.

= 1.0.1 =
Metadata fix for WordPress.org plugin directory requirements.

= 1.0.0 =
Initial release.
