Descripción
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.
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.
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.
Cómo funciona Darkify
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.
Darkify está diseñado para funcionar con los temas de WordPress más populares, los maquetadores de páginas y las instalaciones multisitio, lo que permite configurar el modo oscuro sin necesidad de código personalizado.
Why Choose Darkify?
✔ Dark mode for frontend and admin dashboard
✔ Works with Gutenberg, Elementor, and popular builders
✔ OS-aware, scheduled, and manual switching
✔ Lightweight and performance-focused
✔ No theme modification required
Live Demo | Support | Documentation | Upgrade to Pro!
Características clave del plugin de modo oscuro Darkify
-
Frontend Dark Mode: Enable dark mode on the public-facing website and allow visitors to switch between light and dark themes using a toggle.
-
Admin Dashboard Dark Mode: Apply dark mode to the WordPress admin area to provide a darker interface while managing site content and settings.
-
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.
-
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.
-
Modo oscuro por defecto: Carga el sitio web en modo oscuro por defecto, permitiendo a los visitantes cambiar de nuevo al modo claro en cualquier momento.
-
Modo oscuro según el sistema operativo: Detecta la preferencia del sistema operativo del visitante y aplica automáticamente el modo claro u oscuro en consecuencia.
-
Modo oscuro programado: Programa el cambio automático entre el modo claro y el modo oscuro en función de un intervalo de tiempo definido.
-
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.
-
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.
-
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.
-
Interruptor personalizable: Ajusta el tamaño del interruptor, los colores, los iconos y el estilo para que coincidan con el diseño del sitio.
-
Conmutador en el menú: Inserta el conmutador de modo oscuro en los menús de navegación de WordPress seleccionados.
-
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.
-
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.
-
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.
-
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.
-
Dark Mode Widget Support: Easily enable dark mode for WordPress widgets and keep your entire site visually consistent—no extra setup, no hassle.
-
Multiple Switch Placement Options: Display the dark mode toggle as a floating button, menu item, shortcode, or by targeting a custom CSS selector.
-
Controles específicos para móviles: Controla la visibilidad, la posición, el espaciado y el comportamiento de los interruptores por separado para dispositivos móviles.
-
Color Presets & Customization: Choose from 5 predefined dark color presets — 11 in total with Pro — or manually configure background, text, link, and UI colors.
-
Estilo de la barra de desplazamiento en modo oscuro: Aplica opcionalmente un estilo oscuro a las barras de desplazamiento del navegador para lograr una interfaz oscura más uniforme.
-
Control avanzado de imagen: Ajusta el brillo, el contraste y los ajustes de escala de grises de la imagen para mejorar su visibilidad en el modo oscuro.
-
Video Control: Modify video brightness and grayscale settings to better match dark mode layouts.
-
Control a nivel de elemento: Incluye o excluye elementos HTML, etiquetas, clases o IDs específicos del estilo en modo oscuro.
-
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.
-
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.
-
Settings Search: Press Ctrl+K (Cmd+K on macOS) to jump straight to any setting from anywhere in the panel, without hunting through tabs.
-
Reset to Defaults: Restore a single section or every setting at once, each behind a confirmation step.
-
Copia de seguridad y restauración de ajustes: exporta los ajustes del plugin a un archivo e impórtalos en otro sitio o restáuralos más tarde.
-
Clean Uninstall Option: Optionally remove plugin settings and data from the database when uninstalling the plugin.
-
Compatibilidad con maquetadores de páginas: Compatible con maquetadores de páginas populares como Elementor, Divi, WPBakery, Beaver Builder, Visual Composer y Oxygen.
-
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.
-
Compatibilidad con multisitio: Configura los ajustes de modo oscuro para redes multisitio de WordPress, de forma global o por sitio.
-
Preparado para varios idiomas: Listo para traducción y compatible con configuraciones multilingües de WordPress.
-
Theme Compatibility: Designed to work with most WordPress themes without requiring theme-specific modifications.
-
Developer-Friendly: Provides a structured and extensible codebase that developers can customize using hooks and filters.
-
Compatibilidad entre navegadores: Diseñado para funcionar en navegadores modernos como Chrome, Firefox, Safari, Edge, Opera, etc.
-
Documentation & Support: User guides, tutorials, and support are available through documentation and the WordPress.org support forums.
Guía completa de características y configuración
«»
Cómo añadir el modo oscuro en Gutenberg (editor de bloques de WordPress)
«»
How to Add Dark Mode in Elementor
«»
Page Builder Compatibility
- Gutenberg
- WPBakery
- Elementor
- Beaver Builder
- SiteOrigin
- Divi
- «LayersWP»
- MotoPress
- Esencial
- Maquetador Themify
- Spectra
- Visual Composer
- Brizy
- Oxygen Builder
- CoBlocks
- GreenShift
- Bricks Builder
- JetEngine (Crocoblock ecosystem)
- …and more
Temas compatibles (ejemplos)
- Hello Elementor
- Astra
- Divi
- Kadence
- Themify Ultra
- OceanWP
- Hestia
- Inspiro
- GeneratePress
- Avada
- Blocksy
- Neve
- Betheme
- The7
- Flatsome
- BuddyBoss
- Spacious
- Responsive
- Customizr
- ColorMag
- Phlox
- Photograph
- Sydney
- Enfold
- Uncode
- Salient
- Jupiter X
- X Theme
- Newspaper
- Block Theme
- …and more
Slider Compatibility
Darkify is fully compatible with the most popular WordPress slider plugins:
- Slider Revolution
- Smart Slider 3
- LayerSlider
- MetaSlider
- Soliloquy
- Master Slider
- RoyalSlider
- Swiper (Theme-integrated sliders)
- Owl Carousel–based sliders
- Slick Slider integrations
- Kadence Slider
- Elementor Slides Widget
- Divi Slider Module
- Avada Slider (Fusion Slider)
- Block Editor Slider Blocks
- Ultimate Addons Slider Modules
- …and more
WP Dashboard Dark Mode (examples)
- Fluent SMTP
- Fluent Forms
- Fluent CRM
- Ninja Tables
- Fluent Booking
- Fluent Snippets
- Fluent Cart
- WP Social Ninja
- FluentAuth
FUNCIONALIDADES DE LA VERSIÓN PRO
🎨 Opciones de diseño y personalización
-
16+ Floating Switch Designs
Choose from a diverse collection of floating switch styles to perfectly match your website’s look and feel. -
Posicionamiento del interruptor arrastrable
Permite a los usuarios mover el interruptor flotante del modo oscuro a cualquier lugar de la pantalla. Esta funcionalidad de arrastrar y soltar garantiza un acceso cómodo desde cualquier página o sección. -
Personalización especial de preajustes de color
Personaliza tu tema en modo oscuro con ajustes avanzados de color. Cambia los colores de los enlaces, los colores de los bordes, el estilo de los campos de formulario y la apariencia de los botones para alinearlos con la identidad de tu marca. -
CSS personalizado para el modo oscuro
Añadir estilos de CSS personalizado que se apliquen solo en el modo oscuro. Esto ofrece a los desarrolladores y diseñadores un control total para ajustar con precisión la experiencia del tema oscuro.
🖼️ Gestión de medios
-
Inversión de imagen
Invierte automáticamente imágenes específicas para mejorar la visibilidad en el modo oscuro. Mejora tanto la estética como la accesibilidad sin necesidad de editar los recursos originales. -
Sustitución de imágenes
Sustituye sin problemas imágenes específicas por versiones optimizadas para el modo oscuro. Perfecto para logotipos, banners o ilustraciones que necesiten un aspecto personalizado en el modo noche. -
Sustitución de vídeo
Cambia automáticamente los vídeos por versiones adecuadas para entornos oscuros para mantener un diseño coherente en los elementos visuales de tu sitio web.
🔧 Controles avanzados de visibilidad
-
Permitir / Bloquear elementos
Ajusta tu modo oscuro seleccionando qué elementos o secciones HTML deben usar el estilo de modo oscuro y cuáles no. -
Permitir / No permitir páginas
Elige en qué páginas individuales se muestra el modo oscuro. Excluye las páginas de destino, los flujos de pago o cualquier contenido especial para ofrecer una experiencia de usuario totalmente personalizada. -
Permitir / Denegar entradas
Decide qué entradas concretas son compatibles con el modo oscuro. Mantén el control editorial total sobre cómo aparece tu contenido en los distintos tipos de contenido.
External services
Darkify uses the Appsero SDK to collect some telemetry data upon the user’s confirmation. This helps us troubleshoot problems faster and make product improvements.
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.
Integrating the Appsero SDK DOES NOT IMMEDIATELY start gathering data, without confirmation from users in any case.
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.
Learn more about how Appsero collects and uses this data.
Third-Party Libraries
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.
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.
OTROS PRODUCTOS INCREÍBLES DE ThemeAtelier
➡️ ChatHelp – Plugin de chat de WhatsApp – Un plugin de chat de WhatsApp muy versátil que permite a los visitantes de tu sitio web iniciar conversaciones instantáneas contigo directamente desde tu sitio de WordPress.
➡️ Eventful – Events Showcase and Filter Bar for The Events Calendar – Un plugin de visualización de eventos para The Events Calendar que te ayuda a mostrar eventos en estructuras limpias, modernas y totalmente adaptables, sin necesidad de programar.
➡️ Greet – Video Bubble Warm Welcome Plugin – Un plugin de burbuja de vídeo de Te damos la bienvenida que te ayuda a saludar cordialmente a los visitantes y ofrecer opciones rápidas de contacto para aumentar la participación.
➡️ 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.
➡️ Eventful for Elementor – Events Showcase For The Events Calendar and Elementor – Una extensión de Elementor para The Events Calendar que te permite diseñar y mostrar eventos usando widgets de Elementor con estructuras avanzadas y adaptables.
➡️ Better Chat Support For Messenger – Un plugin de chat de Facebook Messenger que permite a los visitantes contactarte al instante a través de Messenger con burbujas de chat personalizables.
Capturas















Bloques
Este plugin proporciona 1 bloque.
- Dark Mode Switcher Easily place a dark mode switch anywhere on your website. Fully customizable and powered by Darkify for a smooth light/dark experience.
Instalación
INSTALACIÓN AUTOMÁTICA (LA FORMA MÁS FÁCIL)
- Visita Plugins > Añadir nuevo.
- Busca Darkify Dark Mode.
- Instala y activa el plugin Darkify.
INSTALACIÓN MANUAL
Subiéndolo en el escritorio de WordPress
- Descargar darkify.zip
- Ve a «Añadir nuevo» en el escritorio de plugins
- Ve al área «Subir»
- Select darkify.zip from your computer
- Haz clic en «Instalar ahora»
- Activa el plugin en el escritorio de plugins
Usando FTP
- Descargar darkify.zip
- Extract the darkify folder to your computer
- Sube la carpeta del plugin al directorio «/wp-content/plugins/»
- Activa el plugin en el escritorio de plugins
Después de la activación
- Go ‘Darkify’ Menu from the left panel of admin
- Configura los ajustes como quieras.
Para un uso básico, echa un vistazo a la guía de inicio rápido de Darkify
FAQ
-
Can I enable Dark Mode only for the WordPress Admin Dashboard?
-
¡Sí! Puedes elegir activar el Modo Oscuro específicamente para el Panel de Administración, el Editor de Bloques (Gutenberg) y el Editor Clásico desde los ajustes de administración, incluso si la vista pública está desactivada.
-
¿Darkify es compatible con el cambio automático según los ajustes del sistema operativo?
-
Por supuesto. Puedes activar la característica OS Aware Dark Mode, que detecta automáticamente si un usuario está utilizando un tema claro u oscuro en su dispositivo (macOS, Windows, iOS o Android) y adapta tu sitio en consecuencia.
-
¿Es posible programar el modo oscuro para determinadas horas?
-
Sí, el plugin incluye una característica de modo oscuro automático basado en la hora, en la que puedes elegir una hora específica “Desde” y “Hasta” para automatizar la transición según la hora local del usuario.
-
¿Puedo personalizar la apariencia del interruptor del modo oscuro?
-
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.
-
¿El plugin me permite excluir ciertas páginas o elementos?
-
Sí, los ajustes avanzados te permiten desactivar el modo oscuro en los slugs de página específicas. También puedes refinar la experiencia permitiendo o bloqueando elementos HTML, etiquetas o IDs de CSS específicos.
-
¿Se verán mis imágenes y vídeos demasiado brillantes en el modo oscuro?
-
Darkify incluye controles de imagen y vídeo que te permiten reducir el brillo, aplicar niveles de escala de grises o incluso sustituir archivos de medios concretos por versiones optimizadas para el modo oscuro, a fin de mantener una estética perfecta.
-
¿Puedo cambiar la combinación de colores para que coincida con mi marca?
-
Definitely. You can choose from several Color Presets (like Midnight Reverie or Verdant Depths) or manually customize the background, text, link, and button colors.
-
Does Darkify clean up data when uninstalled?
-
Sí, en la pestaña Extras tienes la opción de limpiar todos los datos y ajustes del plugin cuando el plugin se borra, manteniendo tu base de datos limpia y optimizada.
-
¿Funciona Darkify con Elementor y otros maquetadores de páginas?
-
¡Sí! Darkify es totalmente compatible con maquetadores de páginas populares como Elementor, Divi, WPBakery, Beaver Builder y Oxygen. Se adapta automáticamente a sus estructuras para ofrecer una experiencia de modo oscuro fluida.
-
¿Darkify ralentizará la velocidad de carga de mi sitio web?
-
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.
-
¿Este plugin es compatible con WooCommerce?
-
Yes, Darkify is WooCommerce ready. It applies dark mode styling to WooCommerce pages such as product, cart, and checkout layouts.
-
Do I need any coding knowledge to use this plugin?
-
No coding is required. You can manage everything—from color presets to switch styles—through our intuitive settings dashboard.
-
¿Cumple Darkify Dark Mode con el RGPD?
-
Darkify no recopila datos personales y almacena las preferencias del usuario localmente en el navegador.
Reseñas
Colaboradores y desarrolladores
«Dark Mode & Night Mode – Darkify» es un software de código abierto. Las siguientes personas han colaborado con este plugin.
Colaboradores«Dark Mode & Night Mode – Darkify» está traducido en 2 idiomas. Gracias a los traductores por sus contribuciones.
Traduce «Dark Mode & Night Mode – Darkify» a tu idioma.
¿Interesado en el desarrollo?
Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
2.1.2 – 31 August 2026
- 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.
- 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.
- 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.
- 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.
2.1.1 – 26 August 2026
- 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-foregroundpair, 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. - 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. - 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.
- 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.
2.1.0 – 25 August 2026
- 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.
- 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.
- 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.
- 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.
- Fixed: Short admin screens were painted in two tones, with a horizontal seam roughly a screen-height down. WordPress colours
bodyand leaveshtmlunpainted, 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Fixed: The «Upgrade To Pro!» menu link replaced the current admin screen instead of opening in a new tab, losing whatever was being configured.
2.0.4 – 18 August 2026
- 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.
- Fixed: A background writer added in 2.0.4 for empty decorative overlay divs (Elementor’s
.elementor-background-overlayand 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. - 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.
- 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.
- 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. - 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.
- 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.
- 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.
2.0.3 – 11 August 2026
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Added: A developer diagnostics mode for support and debugging, off by default and invisible to visitors. Add
?darkify_debug=1to any URL, then rundarkifyDebug.report()in the browser console for pass counts, timings and the number of elements Darkify processed.
For releases before 2.0.3, see the full changelog: https://plugins.svn.wordpress.org/darkify/trunk/changelog.txt
