Version 1.0.6

September 3, 2026

Fixed

  • The "Showing your unsaved changes." bar was dark blue on dark, ringed in white. Craft paints that notice — its text, the pencil icon and the Discard button — in --blue-800, a blue picked to sit on a white page, and it lifts the round icon off that page with box-shadow: 0 1px 1px 1px var(--white). On the dark bar the white ring showed up as a bright crescent under the icon while the message itself sank into the background. The notice now uses the light end of the same blue ramp and carries no white ring. Its neutral sibling, the .content-notice banner, had the identical ring and loses it too.

Version 1.0.5

August 27, 2026

Fixed

  • The theme toggle sat on top of the "New entry" button. The button was position: fixed at the account menu's coordinates, which only holds until you scroll: Craft then pins the page header to the top of the viewport (body.fixed-header), and the toggle came to rest on that bar's primary button. It is now a real child of #global-header, right before the account menu, so it rides along with the header instead of floating over the page. (The header is a three-column grid, so it gets a fourth column while the button is in there — otherwise a fourth item would wrap the bar onto a second line.)
  • The sticky footer under element indexes was a frosted white slab. #footer itself follows the ramp, but once it sticks to the bottom of the viewport Craft's .stuck swaps in a light grey baked at build time — no token reaches it — behind a backdrop blur, capped by a 2px var(--white) border. The bar carrying "1–14 of 14 entries" and the index buttons now uses the page surface, keeping the translucency so the blur still reads.
  • The datepicker's year was invisible. Craft paints select.ui-datepicker-year with a literal light pill at a specificity the generic input rule can't reach, so the year sat as light text on a light background next to the month name.

Version 1.0.4

August 16, 2026

Fixed

  • The Yii debugger was left half-dark and unreadable. Its pages are served as control-panel requests, so they got the <head> script and the stylesheet like any other page — but nothing in the theme reaches their markup. yii2-debug ships its own palette, written for a light page, so the result was a dark surface under dark type and log tables nobody could read. Nightshift now skips …/actions/debug/… entirely and the debugger renders in its own design again. This also spares the theme a second third-party UI to chase across releases.
  • The debug toolbar's ajax panel was white on white. The toolbar is injected into normal CP pages, so it cannot be skipped server-side; its white panel sets no colour of its own and inherited ours. The text colour is now reset at the toolbar root to the same value its standalone pages use, without touching any of its internals.

Version 1.0.3

August 16, 2026

Fixed

  • The selected item in the content sidebar was a bright slab. Utilities, Settings, entry sources and asset volumes paint their selected row from --gray-500 directly rather than from --bg-selection-dark, so the flip handed them a light box carrying Craft's white text at ~2.9:1. Now on the same selected surface as everything else, at 8.3:1. The same rule covers exclusive button groups, which pick their pressed state from the same token.

Version 1.0.2

August 16, 2026

Fixed

  • Dropdown fields were unreadable — the real cause. 1.0.1 painted the native <option> list, but a Craft Dropdown field never shows one: Selectize hides the <select> and draws a DOM replica, so those rules landed on an element nobody can see. Two hardcoded palettes stack on that replica — Selectize's own (#fff, #303030, #e8e8e8) and Craft's restyle on top, which pins every label to #3f4d5a and paints .selectize-dropdown-content a flat #fff. None of it derives from a Craft token, so the ramp flip could not reach any of it. The whole widget is now themed: control, list, group headings, hover and selected rows, multi-select chips, and the query highlight that marked the ampersand in every option of a label like "Fotografie & Bild".
  • Text selection had no colour of its own. The CP declares no ::selection outside Prism's code blocks. Selectize makes that constant rather than occasional — opening a Dropdown selects the whole label — so the control carried the browser's own highlight on every click.
  • Selected rows and cards sat at ~3:1. --bg-selection-dark is always paired with white text by Craft; the flip sent it to a mid grey. It is now set outright instead of derived.

Version 1.0.1

August 15, 2026

Fixed

  • CKEditor toolbars stayed white. Craft's field plugin pins --ck-color-toolbar-background and --ck-color-panel-background to var(--white) with !important, so the flipped ramp could not reach them and every rich-text field wore a bright strip. Nightshift now remaps CKEditor's --ck-color-* layer — toolbar, dropdown panels, balloon inputs, dialogs and tooltips — from the same tokens as the rest of the CP.
  • The selected entry/field tab stayed white. Craft sets background-color: var(--white) !important on [role="tab"].sel.
  • The open <select> list was unreadable. color-scheme: dark alone does not do it: the <option>s carry no background of their own, so Chrome painted the popup from its light defaults and the highlighted row came out grey on grey. The options are now painted explicitly.

Version 1.0.0

July 29, 2026

Added

  • Initial release: a dark theme for the Craft 5 control panel.
  • One-click sun/moon toggle in the CP header, pinned next to the account menu.
  • Follows the OS setting (prefers-color-scheme) by default and reacts to it live; clicking the toggle sets an explicit per-browser override, persisted in localStorage['cp-theme'] and applied before first paint (no flash of the wrong theme on load).
  • Token-first theming: flips Craft's HSL neutral ramp (--gray-NNN-hsl) once, so surfaces, hairlines and text recolour coherently — covering the global sidebar, header, panes, cards, inputs, checkboxes, dropdown menus, date/time pickers, HUDs, modals, slideouts (incl. the field-layout designer), data tables, and the Plugin Store (Vue/Tailwind).
  • Elevation expressed with surface + hairline instead of muddy dark-on-dark drop shadows; pop-overs keep only a whisper of shadow.
  • Brand/status colours (red/teal/amber/sky) and focus rings left untouched.
  • Asset bundle depends on CpAsset so overrides load after Craft's core CP CSS.