{"id":319683,"date":"2026-06-08T13:47:16","date_gmt":"2026-06-08T13:47:16","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/calm-dashboard\/"},"modified":"2026-06-08T18:25:32","modified_gmt":"2026-06-08T18:25:32","slug":"halcyon-admin","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/halcyon-admin\/","author":20017704,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.0","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Halcyon Admin \u2014 Reduced Motion & Resizable Sidebar","header_author":"Miikka M\u00e4kel\u00e4","header_description":"Reduced motion, resizable admin menu, and sensible color defaults for a calmer, accessible wp-admin dashboard.","assets_banners_color":"cad1d6","last_updated":"2026-06-08 18:25:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"pressermannen","date":"2026-06-08 13:46:56"},"1.0.4":{"tag":"1.0.4","author":"pressermannen","date":"2026-06-08 14:15:59"},"1.0.5":{"tag":"1.0.5","author":"pressermannen","date":"2026-06-08 18:25:32"}},"upgrade_notice":{"1.0.5":"<p>Readme fix, plugin page banner, refreshed screenshots, and tightened copy. No code changes.<\/p>","1.0.4":"<p>Readme improvements. No code changes.<\/p>","1.0.3":"<p>Code quality fixes from the Plugin Check tool. No functional change.<\/p>","1.0.2":"<p>Rename to Halcyon Admin. Slug, namespace, and user meta keys have changed. Stored preferences are not migrated.<\/p>","1.0.1":"<p>Metadata fix for WordPress.org plugin directory requirements.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3564790,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3564790,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3564853,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3564853,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3","1.0.4","1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3565056,"resolution":"1","location":"assets","locale":"","width":1448,"height":1086},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3565056,"resolution":"2","location":"assets","locale":"","width":1293,"height":210}},"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."}},"plugin_section":[],"plugin_tags":[1953,83,434,34998,168],"plugin_category":[34,43],"plugin_contributors":[266201,266200],"plugin_business_model":[],"class_list":["post-319683","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-admin","plugin_tags-dashboard","plugin_tags-motion","plugin_tags-sidebar","plugin_category-accessibility","plugin_category-customization","plugin_contributors-miikkamakela","plugin_contributors-pressermannen","plugin_committers-pressermannen"],"banners":{"banner":"https:\/\/ps.w.org\/halcyon-admin\/assets\/banner-772x250.png?rev=3564853","banner_2x":"https:\/\/ps.w.org\/halcyon-admin\/assets\/banner-1544x500.png?rev=3564853","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/halcyon-admin\/assets\/icon-128x128.png?rev=3564790","icon_2x":"https:\/\/ps.w.org\/halcyon-admin\/assets\/icon-256x256.png?rev=3564790","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/halcyon-admin\/assets\/screenshot-1.png?rev=3565056","caption":"The admin menu resized to a comfortable width via the drag handle on its right edge."},{"src":"https:\/\/ps.w.org\/halcyon-admin\/assets\/screenshot-2.png?rev=3565056","caption":"The Halcyon Admin section on the user profile screen, with the single per-user setting."}],"raw_content":"<!--section=description-->\n<p>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 \u2014 it just changes three things wp-admin does by default, and gets out of the way.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li><strong>Resizable admin menu<\/strong> \u2014 drag the right edge of the left menu to resize; width is saved per user and honored by the block editor.<\/li>\n<li><strong>Reduced motion by default<\/strong> \u2014 disables CSS transitions, jQuery animations, and the WordPress 7 view transitions for users who haven't opted in. Honors <code>prefers-reduced-motion<\/code>.<\/li>\n<li><strong>Sensible default<\/strong> \u2014 sets <em>Fresh<\/em> as the default admin color scheme for new users. Users can pick a different scheme through WordPress's standard profile color-scheme picker.<\/li>\n<\/ul>\n\n<p>All preferences are per-user and stored as user meta. There is no global settings page, no telemetry, and no external network calls.<\/p>\n\n<h3>Why \"Halcyon\"?<\/h3>\n\n<p>Halcyon means calm and peaceful. The plugin's only job is to make wp-admin feel that way \u2014 without forcing choices on users who like it the way it is.<\/p>\n\n<h3>Must-use install<\/h3>\n\n<p>To load Halcyon Admin as a must-use plugin (no activation needed, no update prompts):<\/p>\n\n<ol>\n<li>Copy the <code>halcyon-admin\/<\/code> folder to <code>wp-content\/mu-plugins\/halcyon-admin\/<\/code>.<\/li>\n<li><p>Create a new file at <code>wp-content\/mu-plugins\/halcyon-admin-loader.php<\/code> containing:<\/p>\n\n<p>&lt;?php\n\/**<\/p>\n\n<ul>\n<li>Plugin Name: Halcyon Admin (mu-plugin loader)<\/li>\n<li>Description: Loads Halcyon Admin from a mu-plugins subdirectory.\n*\/<\/li>\n<\/ul>\n\n<p>defined( 'ABSPATH' ) || exit;<\/p>\n\n<p>require_once <strong>DIR<\/strong> . '\/halcyon-admin\/halcyon-admin.php';<\/p><\/li>\n<\/ol>\n\n<p>Halcyon Admin will be loaded automatically on every request and won't appear in the Plugins screen.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install via the <strong>Plugins \u2192 Add New<\/strong> screen.<\/li>\n<li>Activate <strong>Halcyon Admin<\/strong>.<\/li>\n<li>Optional: open your profile screen to adjust the three settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%3F\"><h3>Does it work with the block editor?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20mobile%20or%20touch%20devices%3F\"><h3>Does it work on mobile or touch devices?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. All preferences are per-user meta, so each user across the network can have their own settings.<\/p><\/dd>\n<dt id=\"how%20do%20i%20reset%20the%20menu%20width%3F\"><h3>How do I reset the menu width?<\/h3><\/dt>\n<dd><p>Drag the menu edge to a new width \u2014 it saves automatically. To restore the WordPress default, open your profile screen, leave the menu-width field empty, and save.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20individual%20features%3F\"><h3>Can I disable individual features?<\/h3><\/dt>\n<dd><p>Yes, each feature can be turned off independently:<\/p>\n\n<ul>\n<li><strong>Animations<\/strong> \u2014 toggle in your profile under <strong>Users \u2192 Profile \u2192 Halcyon Admin<\/strong>.<\/li>\n<li><strong>Menu width<\/strong> \u2014 drag the menu edge back to a different width; it saves automatically and is per user.<\/li>\n<li><strong>Color scheme<\/strong> \u2014 pick a different scheme through WordPress's standard profile color-scheme picker.<\/li>\n<\/ul><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20store%20about%20me%3F\"><h3>What data does the plugin store about me?<\/h3><\/dt>\n<dd><p>Three user-meta keys, all local to your WordPress install:<\/p>\n\n<ul>\n<li><code>halcyon_admin_animations_enabled<\/code><\/li>\n<li><code>halcyon_admin_color_scheme_chosen<\/code><\/li>\n<li><code>halcyon_admin_sidebar_width<\/code><\/li>\n<\/ul>\n\n<p>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.<\/p><\/dd>\n<dt id=\"does%20it%20conflict%20with%20other%20admin-customization%20plugins%3F\"><h3>Does it conflict with other admin-customization plugins?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Readme fix: the mu-plugin install code block was rendering with the <code>php<\/code> language hint as inline text and the <code>__DIR__<\/code> constant being eaten as bold markdown. Switched to 4-space indented syntax (the WordPress readme parser does not support fenced code blocks).<\/li>\n<li>Add plugin page banner: <code>banner-772x250.png<\/code> and <code>banner-1544x500.png<\/code> (source artwork JPG, converted to PNG per WP.org spec).<\/li>\n<li>Refresh screenshots: replaced with accurate captures from a fresh WP 7.0 install \u2014 one Halcyon Admin checkbox in the profile section, plus a real-drag demo of the resizable menu.<\/li>\n<li>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).<\/li>\n<li>No code changes.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Readme improvements: clearer \"what it does\" overview, mu-plugin install with copy-paste loader snippet, expanded FAQ, and privacy\/data clarification. No code changes.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Code quality: address Plugin Check tool findings. Escape <code>$width<\/code> output in the initial sidebar CSS, sanitize the AJAX <code>width<\/code> input with <code>absint()<\/code>, and add a defensive <code>check_admin_referer()<\/code> to the profile save handlers (<code>save_profile<\/code>, <code>mark_explicit_choice<\/code>). No functional change.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Renamed to Halcyon Admin. New slug, text domain, namespace, asset handles, and user meta keys. Stored preferences are not migrated.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Set Tested up to: 7.0. Add languages directory for translations.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A calmer, accessible wp-admin dashboard: reduced motion, resizable admin menu, and sensible color defaults that work out of the box.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319683"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pressermannen"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319683"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319683"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319683"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319683"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319683"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}