PluginProbe
Darkify – Dark Mode & Night Mode for Website & Admin (Dark Theme Included) / 2.1.3
Darkify – Dark Mode & Night Mode for Website & Admin (Dark Theme Included) v2.1.3
2.1.3 2.1.2 2.1.1 2.1.0 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 trunk 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 All 57 releases
darkify / README.txt

README.txt in Darkify – Dark Mode & Night Mode for Website & Admin (Dark Theme Included) 2.1.3, at README.txt

436 lines 38.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === Darkify – Dark Mode & Night Mode for Website & Admin (Dark Theme Included) ===
2 Contributors: themeatelier, darkify, faysal61, shshakib2001, tamimaziz
3 Tags: dark mode, night mode, wordpress dark mode, dark, dark theme
4 Requires at least: 5.5
5 Tested up to: 7.1
6 Requires PHP: 7.1
7 Stable tag: 2.1.3
8 License: GPLv2 or later
9 License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
11 Darkify Dark Mode adds dark mode and night mode to WordPress websites and admin dashboards using a fast, lightweight, customizable dark mode toggle.
12 == Description ==
13
14 Darkify adds **WordPress Dark Mode** and **Night Mode** to both the website frontend and the WordPress admin dashboard. Visitors can switch between light and dark themes using a toggle, while site owners control how dark mode behaves across the frontend, admin panel, and editors.
15
16 Darkify supports **frontend dark mode**, **admin dashboard dark mode**, and **editor-specific dark mode** for Gutenberg (Block Editor) and the Classic Editor. It includes OS-aware detection, default dark mode, time-based scheduling, keyboard shortcuts, and multiple toggle placement options. Designed for performance and compatibility, Darkify works seamlessly with popular WordPress themes, page builders, and WooCommerce — without modifying theme files or requiring custom code.
17
18 Site owners can customize dark mode colors, switches, media handling, and element visibility. Darkify also provides controls for images, videos, scrollbars, mobile behavior, and page or element-level targeting to ensure dark mode integrates cleanly with different themes, builders, and layouts.
19
20 = How Darkify Works =
21
22 Darkify applies dark mode styling using configurable rules rather than modifying theme files. You can enable dark mode globally or limit it to specific areas, pages, posts, or elements. Settings can be adjusted from a centralized admin panel and reused across different sites using import and export tools.
23
24 Darkify is designed to work with popular WordPress themes, page builders, and multisite installations, allowing dark mode to be configured without requiring custom code.
25
26 = Why Choose Darkify? =
27
28 ✔ Dark mode for frontend and admin dashboard
29 ✔ Works with Gutenberg, Elementor, and popular builders
30 ✔ OS-aware, scheduled, and manual switching
31 ✔ Lightweight and performance-focused
32 ✔ No theme modification required
33
34 [youtube https://www.youtube.com/watch?v=camMkoEa_4Q&list=PL_Vf9qsWW467H24WgSPp7eFtl-7LFBeIq]
35
36 **[Live Demo](https://darkifywp.com/) | [Support](https://wordpress.org/support/plugin/darkify/) | [Documentation](https://darkifywp.com/docs/) | [Upgrade to Pro!](https://darkifywp.com/pricing/?ref=1)**
37
38 = Key Features of Darkify Dark mode Plugin =
39
40 - **Frontend Dark Mode**: Enable dark mode on the public-facing website and allow visitors to switch between light and dark themes using a toggle.
41
42 - **Admin Dashboard Dark Mode**: Apply dark mode to the WordPress admin area to provide a darker interface while managing site content and settings.
43
44 - **Editor-Specific Dark Mode**: Enable dark mode independently for the WordPress Admin Panel, Block Editor (Gutenberg), and Classic Editor — darken the editor while the rest of the dashboard stays light, or the other way around.
45
46 - **Admin & Editor Color Presets**: Choose a color preset for the WordPress admin and a separate one for the Block Editor. Both default to Auto, which derives a shade for every color on screen rather than forcing one background and one text color — so admin screens added by other plugins come out readable without being configured first.
47
48 - **Default Dark Mode**: Load the website in dark mode by default while allowing visitors to switch back to light mode at any time.
49
50 - **OS-Aware Dark Mode**: Detect the visitor’s operating system preference and automatically apply light or dark mode accordingly.
51
52 - **Time-Based Dark Mode**: Schedule automatic switching between light and dark mode based on a defined time range.
53
54 - **Keyboard Shortcut**: Allow users to toggle dark mode with a keyboard shortcut. **Ctrl + Alt + D** works out of the box, and you can record any key combination you prefer instead.
55
56 - **Multiple Floating Switch Designs**: Choose from 5 floating switch styles — 16 in total with Pro — and pick the screen corner it sits in, with its own margin controls.
57
58 - **Switch Attention Effect**: Enable an animation on the floating switch to draw visitor attention. Choose from multiple effect styles including Pulse to highlight the toggle without being intrusive.
59
60 - **Customizable Switch**: Adjust the switch size, colors, icons, and styling to match the site’s design.
61
62 - **Switch in Menu**: Insert the dark mode toggle into selected WordPress navigation menus.
63
64 - **Shortcode Switch**: Place the dark mode toggle anywhere on the site using a shortcode, including pages, posts, widgets, or templates. Style it independently of the floating switch, or reuse the global settings.
65
66 - **Dark Mode Gutenberg Block**: Instantly add a sleek dark mode toggle to any post or page using the Gutenberg block. Place it anywhere and give your visitors full control over their viewing experience.
67
68 - **Per-Block Switch Styling**: Set the switch style, size, background, icon color, text color, border, corner radius, and alignment for each block directly inside the Gutenberg editor.
69
70 - **Dark Mode Elementor Widget**: Seamlessly insert a customizable dark mode switch into any Elementor layout. Design it your way and match it perfectly with your site’s style.
71
72 - **Dark Mode Widget Support**: Easily enable dark mode for WordPress widgets and keep your entire site visually consistent—no extra setup, no hassle.
73
74 - **Multiple Switch Placement Options**: Display the dark mode toggle as a floating button, menu item, shortcode, or by targeting a custom CSS selector.
75
76 - **Mobile-Specific Controls**: Control switch visibility, position, spacing, and behavior separately for mobile devices.
77
78 - **Color Presets & Customization**: Choose from 5 predefined dark color presets — 11 in total with Pro — or manually configure background, text, link, and UI colors.
79
80 - **Dark Mode Scrollbar Styling**: Optionally apply dark styling to browser scrollbars for a more consistent dark interface.
81
82 - **Advanced Image Control**: Adjust image brightness, contrast, and grayscale settings to improve image visibility in dark mode.
83
84 - **Video Control**: Modify video brightness and grayscale settings to better match dark mode layouts.
85
86 - **Element-Level Control**: Include or exclude specific HTML elements, tags, classes, or IDs from dark mode styling.
87
88 - **Iframe Dark Mode**: Keep embedded content in step with the active theme. Same-origin iframes are styled directly, and cross-origin embeds are notified of theme changes so they can follow along.
89
90 - **Live Preview**: See your own site with your unsaved settings applied, right beside the settings — with desktop and mobile views, a refresh control, and a full screen mode.
91
92 - **Settings Search**: Press Ctrl+K (Cmd+K on macOS) to jump straight to any setting from anywhere in the panel, without hunting through tabs.
93
94 - **Reset to Defaults**: Restore a single section or every setting at once, each behind a confirmation step.
95
96 - **Settings Backup & Restore**: Export plugin settings to a file and import them on another site or restore them later.
97
98 - **Clean Uninstall Option**: Optionally remove plugin settings and data from the database when uninstalling the plugin.
99
100 - **Page Builder Compatibility**: Compatible with popular page builders such as Elementor, Divi, WPBakery, Beaver Builder, Visual Composer, and Oxygen.
101
102 - **Easy Settings Panel**: Manage every feature from one modern, centralized settings panel in the WordPress admin area — organized into clear sections, usable on phones and tablets, with instant saves and clear success and error messages.
103
104 - **Multisite Support**: Configure dark mode settings for WordPress multisite networks, globally or per site.
105
106 - **Multilingual Ready**: Translation-ready and compatible with multilingual WordPress setups.
107
108 - **Theme Compatibility**: Designed to work with most WordPress themes without requiring theme-specific modifications.
109
110 - **Developer-Friendly**: Provides a structured and extensible codebase that developers can customize using hooks and filters.
111
112 - **Cross-Browser Compatibility**: Designed to work across modern browsers such as Chrome, Firefox, Safari, Edge, Opera, etc.
113
114 - **Documentation & Support**: User guides, tutorials, and support are available through documentation and the WordPress.org support forums.
115
116 == Full Features & Setup Guide ==
117 [youtube https://youtu.be/H51pgFm52LY]
118
119 == How to Add Dark Mode in Gutenberg (WordPress Block Editor) ==
120 [youtube https://youtu.be/VbujMOaKp4o]
121
122 == How to Add Dark Mode in Elementor ==
123 [youtube https://youtu.be/7NAxigAQU6E]
124
125 = Page Builder Compatibility =
126 * Gutenberg
127 * WPBakery
128 * Elementor
129 * Beaver Builder
130 * SiteOrigin
131 * Divi
132 * LayersWP
133 * MotoPress
134 * Cornerstone
135 * Themify Builder
136 * Spectra
137 * Visual Composer
138 * Brizy
139 * Oxygen Builder
140 * CoBlocks
141 * GreenShift
142 * Bricks Builder
143 * JetEngine (Crocoblock ecosystem)
144 * …and more
145
146 = Compatible Themes (examples) =
147 * Hello Elementor
148 * Astra
149 * Divi
150 * Kadence
151 * Themify Ultra
152 * OceanWP
153 * Hestia
154 * Inspiro
155 * GeneratePress
156 * Avada
157 * Blocksy
158 * Neve
159 * Betheme
160 * The7
161 * Flatsome
162 * BuddyBoss
163 * Spacious
164 * Responsive
165 * Customizr
166 * ColorMag
167 * Phlox
168 * Photograph
169 * Sydney
170 * Enfold
171 * Uncode
172 * Salient
173 * Jupiter X
174 * X Theme
175 * Newspaper
176 * Block Theme
177 * …and more
178
179 = ↔ Slider Compatibility =
180 Darkify is fully compatible with the most popular WordPress slider plugins:
181
182 * Slider Revolution
183 * Smart Slider 3
184 * LayerSlider
185 * MetaSlider
186 * Soliloquy
187 * Master Slider
188 * RoyalSlider
189 * Swiper (Theme-integrated sliders)
190 * Owl Carousel–based sliders
191 * Slick Slider integrations
192 * Kadence Slider
193 * Elementor Slides Widget
194 * Divi Slider Module
195 * Avada Slider (Fusion Slider)
196 * Block Editor Slider Blocks
197 * Ultimate Addons Slider Modules
198 * …and more
199
200 = WP Dashboard Dark Mode (examples) =
201 * Fluent SMTP
202 * Fluent Forms
203 * Fluent CRM
204 * Ninja Tables
205 * Fluent Booking
206 * Fluent Snippets
207 * Fluent Cart
208 * WP Social Ninja
209 * FluentAuth
210
211 == PRO VERSION FEATURES ==
212
213 🎨 **Design & Customization Options**
214
215 - **16+ Floating Switch Designs**
216 Choose from a diverse collection of floating switch styles to perfectly match your website’s look and feel.
217
218 - **Draggable Switch Positioning**
219 Allow users to move the floating dark mode switch anywhere on the screen. This drag-and-drop flexibility ensures convenient access from any page or section.
220
221 - **Special Color Preset Customization**
222 Customize your dark mode theme with advanced color settings. Change link colors, border colors, form field styling, and button appearances to align with your brand identity.
223
224 - **Custom CSS for Dark Mode**
225 Add custom CSS styles that apply **only** in dark mode. This gives developers and designers complete control for fine-tuning the dark theme experience.
226
227
228 🖼️ **Media Handling**
229
230 - **Image Inversion**
231 Automatically invert specific images for better visibility in dark mode. Improve both aesthetics and accessibility without needing to edit the original assets.
232
233 - **Image Replacement**
234 Seamlessly replace specific images with dark-mode-optimized versions. Perfect for logos, banners, or illustrations that need a customized look in night mode.
235
236 - **Video Replacement**
237 Automatically swap videos with dark-friendly versions to maintain a consistent design across your website’s visual elements.
238
239
240 🔧 **Advanced Visibility Controls**
241
242 - **Allow / Disallow Elements**
243 Fine-tune your dark mode display by selecting which HTML elements or sections should use dark mode styling—and which should not.
244
245 - **Allow / Disallow Pages**
246 Choose which individual pages display dark mode. Exclude landing pages, checkout flows, or any special content for a fully tailored user experience.
247
248 - **Allow / Disallow Posts**
249 Decide which specific posts support dark mode. Maintain full editorial control over how your content appears across different post types.
250
251 == External services ==
252
253 Darkify uses the [Appsero](https://appsero.com) SDK to collect some telemetry data upon the user's confirmation. This helps us troubleshoot problems faster and make product improvements.
254
255 Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users.
256
257 Integrating the Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.**
258
259 If you decline the notice, the SDK sends one anonymous request recording that telemetry was declined — it contains a random site identifier only, and no data about you, your site or your visitors. Nothing further is sent, and the weekly telemetry schedule is never started.
260
261 Learn more about how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).
262
263 == Third-Party Libraries ==
264
265 Darkify bundles **Dark Reader** (https://github.com/darkreader/darkreader), which renders dark mode in the WordPress admin. It is licensed under the MIT License, which is compatible with this plugin's GPLv2-or-later license. The full copyright and permission notice is included at the top of both `src/assets/js/vendor/darkreader.js` and the minified build produced from it.
266
267 Dark Reader runs entirely in the browser on the pages you are already viewing. It makes no network requests of its own and sends nothing anywhere — it is a bundled library, not an external service.
268
269 == OTHER AMAZING PRODUCTS FROM ThemeAtelier ==
270
271 ➡️ **[ChatHelp - WhatsApp Chat Help Plugin](https://wordpress.org/plugins/chat-help/)** - A flexible WhatsApp chat plugin that helps website visitors start instant conversations with you directly from your WordPress site.
272
273 ➡️ **[Eventful – Events Showcase and Filter Bar for The Events Calendar](https://wordpress.org/plugins/eventful/)** - An event display plugin for The Events Calendar that helps you showcase events in clean, modern, and fully responsive layouts without any coding.
274
275 ➡️ **[Greet – Video Bubble Warm Welcome Plugin](https://wordpress.org/plugins/greet-bubble/)** - A video welcome bubble plugin that helps you greet visitors warmly and provide quick contact options to boost engagement.
276
277 ➡️ **[Domain For Sale](https://wordpress.org/plugins/domain-for-sale/)** - A domain listing and offer management plugin that helps you list domains, collect buyer offers, and manage secure sales with escrow payments directly from WordPress.
278
279 ➡️ **[Eventful for Elementor – Events Showcase For The Events Calendar and Elementor](https://wordpress.org/plugins/eventful-for-elementor/)** - An Elementor addon for The Events Calendar that lets you design and display events using Elementor widgets with advanced, responsive layouts.
280
281 ➡️ **[Better Chat Support For Messenger](https://wordpress.org/plugins/better-chat-support/)** - A Facebook Messenger chat plugin that allows visitors to contact you instantly through Messenger with customizable chat bubbles.
282
283 == Installation ==
284
285 = AUTOMATIC INSTALLATION (EASIEST WAY) =
286
287 * Visit **Plugins > Add New**.
288 * Search for **Darkify Dark Mode**.
289 * Install and activate the Darkify plugin.
290
291 = MANUAL INSTALLATION =
292
293 **Uploading in WordPress Dashboard**
294
295 * Download darkify.zip
296 * Navigate to the ‘Add New’ in the plugins dashboard
297 * Navigate to the ‘Upload’ area
298 * Select darkify.zip from your computer
299 * Click ‘Install Now’
300 * Activate the plugin in the Plugin dashboard
301
302 **Using FTP**
303
304 * Download darkify.zip
305 * Extract the darkify folder to your computer
306 * Upload the darkify folder to the /wp-content/plugins/ directory
307 * Activate the plugin in the Plugin dashboard
308
309 = After activation =
310 * Go 'Darkify' Menu from the left panel of admin
311 * Configure settings as you want.
312
313 [For basic usage, have a look at Darkify quick start guide](https://darkifywp.com/docs/quick-start-guide/)
314
315 == Screenshots ==
316
317 1. WordPress dark mode in action — one click on the floating switch turns the whole site dark, instantly and with no page reload.
318 2. Gutenberg block editor dark mode — write and edit posts and pages in a comfortable dark WordPress editor interface.
319 3. WooCommerce dark mode — shop, product, and category pages converted to a dark theme automatically, with product images kept readable.
320 4. Frontend dark mode controls — enable dark mode for visitors, set default dark mode, OS aware (system preference) dark mode, keyboard shortcut, and time based automatic dark mode, with a live preview of your site.
321 5. Admin dark mode controls — turn on WordPress admin dashboard dark mode, Block Editor (Gutenberg) dark mode, and Classic Editor dark mode independently, plus page exclusions and custom admin dark mode CSS.
322 6. Dark mode for the WordPress admin dashboard — the Darkify settings screen itself shown in dark mode for eye-friendly, low-light editing.
323 7. Floating dark mode switch styles — choose from 15 animated toggle designs, set switch size, position, background and icon colors, and preview changes live.
324 8. Dark mode color presets — pick from 11 ready-made dark color schemes (Carbon Mist, Midnight Reverie, Verdant Depths, Celestial Tide, Emberwood and more), then fine-tune background, text, and link colors.
325 9. Dark mode image controls — adjust image brightness and grayscale so photos and product images stay clear on dark backgrounds, with per-image exclusions.
326 10. Dark mode video controls — set video brightness and grayscale, or swap in a dark mode version of self-hosted, YouTube, Vimeo, and Dailymotion videos.
327 11. Custom dark mode CSS — add your own CSS that loads only when dark mode is active, plus CSS that applies in both light and dark mode.
328 12. Backup and restore dark mode settings — export your Darkify configuration as a JSON file and import it to migrate settings to another WordPress site.
329 13. Dark mode toggle Gutenberg block — drop a dark mode switcher block into any post or page and style it from the block sidebar.
330 14. Dark mode color themes in the block editor — switch the Gutenberg editor color scheme straight from the toolbar and preview your content in every dark preset.
331 15. Elementor dark mode widget — add the Darkify dark mode switcher to any Elementor page or template and choose your switch style.
332
333 == Frequently Asked Questions ==
334
335 = Can I enable Dark Mode only for the WordPress Admin Dashboard? =
336 Yes! You can choose to enable Dark Mode specifically for the **Admin Panel, Block Editor (Gutenberg)**, and **Classic Editor** from the Admin settings, even if the frontend is disabled.
337
338 = Does Darkify support automatic switching based on OS settings? =
339 Absolutely. You can enable the **OS Aware Dark Mode** feature, which automatically detects if a user is using a dark or light theme on their device (macOS, Windows, iOS, or Android) and matches your site accordingly.
340
341 = Is it possible to schedule Dark Mode for specific hours? =
342 Yes, the plugin includes a **Time Based Auto Dark Mode** feature where you can pick a specific "From" and "To" time to automate the transition based on the user's local time.
343
344 = Can I customize the appearance of the dark mode switch? =
345 Yes, Darkify offers a range of **Switch Togglers** (e.g., Orbit, Classic, Expand, Inner Moon, Within), with more available in Pro. You can also fully customize the switch background, size, icon color, and border.
346
347 = Does the plugin allow me to exclude certain pages or elements? =
348 Yes, the **Advanced** settings allow you to disallow Dark Mode on specific page slugs. You can also fine-tune the experience by allowing or disallowing specific HTML elements, tags, or CSS IDs.
349
350 = Will my images and videos look too bright in Dark Mode? =
351 Darkify includes **Image and Video Controls** that allow you to lower brightness, apply grayscale levels, or even replace specific media files with dark-mode-optimized versions to maintain a perfect aesthetic.
352
353 = Can I change the color scheme to match my brand? =
354 Definitely. You can choose from several **Color Presets** (like Midnight Reverie or Verdant Depths) or manually customize the background, text, link, and button colors.
355
356 = Does Darkify clean up data when uninstalled? =
357 Yes, under the **Extras** tab, you have an option to clean up all plugin data and settings when the plugin is deleted, keeping your database clean and optimized.
358
359 = Does Darkify work with Elementor and other Page Builders? =
360 Yes! Darkify is fully compatible with popular page builders like **Elementor, Divi, WPBakery, Beaver Builder, and Oxygen**. It automatically adapts to their structures for a seamless dark mode experience.
361
362 = Will Darkify slow down my website loading speed? =
363 Not at all. Darkify is built with a **performance-first approach**. It is extremely lightweight, uses optimized CSS/JS, and works perfectly with caching plugins like **WP Rocket, W3 Total Cache, and LiteSpeed Cache**.
364
365 = Is this plugin compatible with WooCommerce? =
366 Yes, Darkify is **WooCommerce ready**. It applies dark mode styling to WooCommerce pages such as product, cart, and checkout layouts.
367
368 = Do I need any coding knowledge to use this plugin? =
369 No coding is required. You can manage everything—from color presets to switch styles—through our intuitive settings dashboard.
370
371 = Is Darkify Dark Mode GDPR compliant? =
372 Darkify does not collect personal data and stores user preferences locally in the browser.
373
374 == Changelog ==
375
376 = 2.1.3 – 14 September 2026 =
377 Fixed: Restored smooth transitions and animations for accordions, dropdowns, hover states, and other interactive elements while preventing unwanted color transition effects during initial Dark Mode rendering.
378 Fixed: Prevented the light theme from briefly appearing before Dark Mode is applied on slow or uncached page loads.
379 Fixed: Disallowed Elements and elements with the darkify_ignore class are now completely excluded from Darkify processing, including their child elements. Darkify classes, data attributes, and inline styles will no longer be added to them.
380 Fixed: Replace Individual Colors no longer disables hover colors. Pinned colors now apply correctly while hover states continue to work.
381 Fixed: Menu Switch → Menu Select now supports classic WordPress menus, block theme navigation menus, and Kadence Navigation menus.
382 * Fixed: A dark mode switch placed in a footer, sidebar or menu still rendered while Frontend Dark Mode was turned off — as an unstyled, unresponsive control, since the stylesheet and script it needs are exactly what that setting stops loading. Every other entry point already checked the setting; the shortcode did not, and the Gutenberg block and the Elementor widget both draw through it. All three now render nothing when dark mode is off for the front end.
383 * Fixed: A colour pinned under Replace Individual Colors with Apply To set to Icons only did nothing on icons whose colour already read clearly against the page — Elementor's Icon List being the plain case, its default blue staying blue. The icon writer measured contrast first and stopped there whenever the design had already got it right, so the pinned colour was never consulted on precisely the icons an admin was most likely to be pinning. An override is an explicit instruction about one exact colour and is now resolved before that check; the automatic recolouring behind it is unchanged.
384 * Fixed: Two colour overrides pinned to near-identical colours collapsed into one — #ffffff and #fffffe were treated as the same colour, so the second rule silently never applied. Matching allowed about five percent of drift per channel, on the reasoning that a colour typed from a design tool or rounded by a build pipeline should still find its rule; that guess costs more than it gives when an admin has deliberately pinned two colours a channel apart. Matching is now exact — #ffffff is #ffffff and #fffffe is #fffffe — and where two rows do pin the same colour, the first one listed wins.
385
386 = 2.1.2 – 31 August 2026 =
387 * Fixed: Admin dark mode did nothing on the admin screens of Fluent Forms, FluentCRM, Fluent Booking, FluentSMTP and WP Social Ninja, and the admin-bar toggle reported an error when clicked. Each of those plugins runs a "no-conflict mode" that removes every script served from the plugins directory on its own screens, and it runs after scripts are enqueued — so Darkify's engine was stripped while the admin-bar switch it powers stayed on the page, wired to a function that no longer existed. Darkify now registers with the allow-lists those plugins publish, re-adds its own engine after the sweep for the ones that publish none, and the switch fails quietly rather than throwing if it is ever removed again.
388 * Fixed: With a colour preset selected, the current item in Darkify's own settings sidebar was invisible, as was the highlight on a hovered menu entry. Preset colours are pushed into the screen's design tokens, and the selected-item token was being handed the same value as the surface behind it — so the highlight was painted, in exactly the colour it was meant to stand out from. It now takes the preset's next step up, the same relation the screen's own dark theme uses.
389 * Fixed: Switching Admin Panel Dark Mode off left the settings screen in a broken half-state — dark cards and unreadable text on a light page — until it was reloaded. Turning the option off returned the page to light but left the preset's colours written into the screen's tokens, because the engine that wrote them never re-ran. It is now asked to re-run, which clears them in the same step.
390 * Fixed: With a colour preset selected, links inside admin notices stayed WordPress blue while every other link took the preset's colour. WordPress styles notice links more specifically than plain links, and the darkening engine marks everything it rewrites as important — so Darkify's own rule no longer outranked it, it merely tied and lost. The rule is now specific enough to win, while still leaving the admin menu, the admin bar and buttons to their own colours.
391
392 = 2.1.1 – 26 August 2026 =
393 * Fixed: Primary buttons, switches and selected states on Darkify's own settings screens ignored the Admin Panel Palette and stayed on a near-white default. Those parts are drawn from a `--primary` / `--primary-foreground` pair, and the pair had been left out of the palette map on the grounds that overwriting half of a contrast pair makes a button unreadable. Both halves are now taken from the palette's own button fill and button text — a pair its author already chose to be readable together — so a chosen palette finally reaches the last part of the screen it never did.
394 * Fixed: Switch tracks and thumbs rendered transparent under some palettes. A palette that did not carry a field was still writing that field's variable, as the literal text `undefined`, and a custom property that parses but never resolves takes its whole declaration down with it — so the track did not fall back to a default colour, it lost its background outright. A missing field now clears the variable instead of writing it, leaving the stylesheet's own value to stand.
395 * Fixed: Toggles were hard to see once they did have a colour, because the checked track took the palette's button fill — a colour chosen to sit on the page background, not to be read at a glance against a card, and measuring between 1.21 and 2.86 against each palette's card. The track now takes the palette's accent colour (4.29 to 14.50 across the same palettes) and the thumb takes the page background, so the moving part reads clearly against the part that does not.
396 * Fixed: Changing a colour preset in Live Preview only partly applied until the preview was reloaded. Rules written in terms of Darkify's variables follow a preset instantly, but the engine also writes colours inline as it walks the page — gradients, shadows, overlays, image brightness, icon colour — and an inline declaration has no variable in it to re-resolve. Worse, the gradient and shadow writers refuse to run twice by design, so a second pass changed nothing at all. Live Preview now clears those markers and re-runs the writers against the new colours, so a hero gradient follows the preset with everything else.
397
398 = 2.1.0 – 25 August 2026 =
399 * Changed: Dark mode in wp-admin is now rendered by Dark Reader instead of the per-element engine. The old engine walked every element on the screen, read its computed style, and re-walked on any DOM change — workable on a page that settles, and untenable in wp-admin, which never does. Dark Reader works a stylesheet at a time and generates an inverted sheet once, so the cost no longer scales with how busy the screen is. The front end is untouched and still uses the original engine.
400 * Fixed: The block editor became unresponsive with Admin Panel Dark Mode on, and stayed that way — typing, adding a block or opening the inserter could each trigger it. Every DOM change queued a fresh walk of the whole editor, each visited element forcing a style recalculation, and the editor changes the DOM continuously; the work never finished before more arrived. The new admin engine does no per-element work at all.
401 * Added: Admin Panel Palette and Block Editor Palette settings, chosen independently. Both default to Auto, which derives a colour for every colour on screen rather than pinning a background and a text colour — that derivation is what lets unfamiliar admin screens from other plugins come out right, and a preset gives it up. Presets remain available for anyone who wants a fixed look, and the block editor's toolbar picker still overrides both for that user.
402 * Fixed: The classic editor's dark mode button did nothing whenever the admin itself was light. Its state had been folded into the admin's, so a light admin ruled out a dark writing area — a combination people deliberately choose. The two are independent again, and the editor body now follows the chosen palette instead of a fixed grey.
403 * Fixed: Short admin screens were painted in two tones, with a horizontal seam roughly a screen-height down. WordPress colours `body` and leaves `html` unpainted, so the two were being darkened from different starting points and the join showed wherever the content was shorter than the window. Both now resolve to the same colour, measured rather than predicted, so it holds under every palette.
404 * Fixed: Darkify's own settings screens rendered card borders and toggle backgrounds in red. Those screens ship their own dark theme, so darkening them a second time layered two themes over each other — and the modern colour values they use could not be parsed by the darkening engine, leaving the unresolved ones to settle on the theme's error colour. Those screens are now left to the theme they already have.
405 * Fixed: The Darkify menu icon in the WordPress sidebar sat noticeably brighter than every other icon. WordPress renders a menu icon as a background image, which cannot take the menu's colour the way its own font icons do, so ours stayed flat white. It now takes its colour from the menu like everything around it, under any admin colour scheme.
406 * Fixed: Resizing the browser window could freeze the page outright. Whether the admin menu needs its own scrollbar is a measurement that its own answer changes, and with a single threshold a menu sitting near that boundary flipped between the two answers without ever settling — a resize drag holds it there. The test now needs clear evidence in each direction before it changes its mind.
407 * Changed: The block editor has one dark mode toggle instead of two. The admin bar carried a second one alongside the toolbar button, both doing the same thing. The toolbar button is the one that survives, because the admin bar is hidden in the editor's fullscreen mode — which is its default.
408 * Fixed: The Help screen collapsed awkwardly at narrower widths — review cards wrapping to a word per line, plugin titles crushed against their install button, a tab clipped mid-word behind the upgrade button. Each of those laid itself out from the browser window's width while sitting in a column that only ever had a fraction of it. They now measure the space they are actually given, which also means collapsing the WordPress menu reflows them correctly.
409 * Fixed: Several Help screen elements were unreadable in dark mode: video play buttons vanished into their own white circles, the Lite vs Pro table header became a bright white band, and hovering a plugin card drew a hard white outline. Each used a colour that inverts between light and dark against something that does not — imagery, or a full-width band.
410 * Added: Pro colour presets now appear in the palette pickers as locked, badged entries rather than being absent. They cannot be selected or saved, and the engine falls back to Auto if one is ever set.
411 * Fixed: The "Upgrade To Pro!" menu link replaced the current admin screen instead of opening in a new tab, losing whatever was being configured.
412
413 = 2.0.4 – 18 August 2026 =
414 * Fixed: Brand-coloured icons — star ratings, coloured logo marks — lost their colour and read as the same flat grey as body text. The icon recolouring introduced in 2.0.4 mapped every icon onto the page's text colour unconditionally, with no exception for a colour that was never meant to blend in; a five-star testimonial rating was the clearest case, gold turning grey. Icon colour now runs through the same hue-preserving ramp gradients already use, so a brand colour keeps its hue and only its depth shifts for a dark backdrop.
415 * Fixed: A background writer added in 2.0.4 for empty decorative overlay divs (Elementor's `.elementor-background-overlay` and similar) was also catching real, content-bearing elements that simply never picked up one of the class-based repaint's own classes — a countdown timer's number box, a page-builder button. Flattening a background with no matching foreground adjustment is how a white button with dark text, or a navy countdown box, ended up the same dark shade as its own text and effectively vanished. The writer now skips anything with real text content, which an empty overlay div never has.
416 * Fixed: A dark icon sitting on its own light background — a WordPress social icon link's circle, for instance — was being recoloured to the page's light text colour, because the contrast check only looked at the page's general dark backdrop, not what the icon is actually sitting on. That turned a perfectly readable dark icon on a light circle into a light icon on the same light circle: invisible. Icon colour is now judged against the real, current colour immediately behind it, and left untouched whenever it already reads clearly there.
417 * Added: Border Color and Hover Border Color controls for buttons, in every color preset. A button's border was the one color dark mode never touched, so an outline button kept its light-design brand edge — a bright ring around a dark fill — and no setting could reach it. Each preset now ships a border color that matches its button fill, so solid buttons look exactly as before and outline buttons finally follow the palette.
418 * Fixed: Card outlines drawn as a shadow ring (`0 0 0 1px`) disappeared in dark mode. A ring like that is a border written in the wrong property, and it was being painted black like a real shadow — black on near-black is nothing at all — so a card outlined this way lost its edge while the card beside it, outlined with a real border, kept one. Rings now take the palette's border color, and turning shadows off no longer deletes them.
419 * Fixed: Body text and headings came out tinted on themes whose text color is a tinted near-black — inks like #0A232A or #101828, which most modern themes use instead of pure black. Those read as highly saturated brand colors and were lifted to a light teal or blue, overriding the text color chosen in settings. Near-black and near-white text is now treated as ink, while genuinely saturated deep colors stay on the brand path.
420 * Fixed: Hover effects, dropdowns, sliders and reveal animations snapped to their end state instead of easing. Darkify pauses CSS transitions while it reads a page's real colors, and that pause was applied to the whole document — including elements the pass never looked at — on passes triggered by any class change anywhere on the page. The pause is now scoped to the element being read.
421 * Fixed: Live Preview hid the site header on many themes. The panel filters out cookie banners, chat widgets and popups so the preview shows the page itself, and headers named "sticky-bar", "top bar" and similar were caught by that filter — hiding the part of the page most worth previewing. Semantic headers, banner landmarks and header/nav class names are now recognized and kept.
422
423 = 2.0.3 – 11 August 2026 =
424 * Fixed: Pages could freeze or crawl once dark mode was on, worse the larger the page. Every element was watched for class changes individually, and each watcher had to be re-registered across the whole document whenever anything changed — on a 2,929-element page that came to 1.23 million registrations during load and 6.31 million on a single toggle, growing with the square of the page size. One watcher now covers the document, registered once, and the cost no longer scales with the page.
425 * Improved: Pages that keep changing after load — infinite scroll, carousels, WooCommerce cart and fragment refreshes, page builders and anything React-rendered — no longer re-scan the entire document on every change. Only the newly inserted parts are examined, so a long page stays as responsive as a short one.
426 * Improved: Switching between light and dark now only revisits the elements Darkify actually styled, and reads each one's colours once instead of twice, so the toggle settles noticeably faster on large pages.
427 * Fixed: The dark mode toggle snapped between states instead of animating. Darkify pauses CSS transitions while it reads a page's real colours, and the switcher was being caught by that pause even though its colours are never read.
428 * Improved: Pausing transitions during a pass is now a single rule on the page root rather than an inline style written to and removed from every element, which removed one forced style recalculation per element from every pass.
429 * Changed: The screen no longer dims while a page loads in dark mode. The brightness baseline added in 2.0.2 covered the gap before the first pass, but on a slow page it read as a grey overlay sitting over the whole site until loading finished, and it returned on every navigation. The page background is painted dark from the first frame instead, and the safety timeout that clears it drops from 2s to 0.8s.
430 * Added: A developer diagnostics mode for support and debugging, off by default and invisible to visitors. Add `?darkify_debug=1` to any URL, then run `darkifyDebug.report()` in the browser console for pass counts, timings and the number of elements Darkify processed.
431
432 For releases before 2.0.3, see the full changelog: [https://plugins.svn.wordpress.org/darkify/trunk/changelog.txt](https://plugins.svn.wordpress.org/darkify/trunk/changelog.txt)
433
434 == Upgrade Notice ==
435 Update to the latest version for new features, improvements, and bug fixes.
436