=== 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.4
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 color default** — sets the admin color scheme to *Fresh* until a user picks their own on the profile screen. No "pick a color that doesn't burn my retinas" first-run.

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
<?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 setting on **Users → Profile → Halcyon Admin** is independent. You can re-enable animations, change the color scheme, or reset the menu width without touching the others.

= 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, with the drag handle visible on the right edge.
2. The Halcyon Admin section on the user profile screen, showing the three per-user settings.

== Changelog ==

= 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.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.
