

Dark Mode
CREATE A COMPELLING DARK MODE VERSION OF YOUR WEBSITE ✨
Create a dark mode version of your website without any complicated setup. Activate the plugin and your site visitors will experience a dark mode or light mode version of your website as per their preferred operating system preference. This is a reliable dark mode plugin for WordPress, designed to make setup simple.
Let’s grow, connect, and thrive together!
Check what popular WordPress expert Matt (WPress Doctor) thinks about Dark Mode.
👁️ View Demo | 🚀 Get Ultimate | 🤝 Join Our Facebook Community
👁️ View Demo | 🚀 Get Ultimate | 🤝 Join Our Facebook Community
It is used by thousands of WordPress sites to enhance accessibility and reading comfort. It adds a dark theme toggle for both frontend and WordPress admin, improving accessibility and user experience. With increasing device-level dark mode adoption, providing this option can improve the browsing experience for many visitors. The widespread use of dark theme features across mobile and desktop platforms makes this compatibility beneficial for modern websites.
Dark Mode works with popular page builders, including:
WP Dark Mode is optimized to work with thousands of WordPress themes, including the most popular ones:
WP Dark Mode is fully compatible with the most popular slider plugins:
WP Dark Mode works across all operating systems including Windows, Android, iOS and macOS. No additional setups are required. It detects the user’s system theme preference and applies a matching dark theme to the site. You can also enable a toggle to switch between different modes manually.
If you like Dark Mode, then consider checking out our other awesome plugins:
🟢 Google Sheets to WP Table:
Try FlexTable – Sheets To WP Table Live Sync | Google Sheets allows you to input data on your Google sheet and show the same data on WordPress as a table effortlessly. Try Flex Table now!
🔄 Manage WooCommerce Inventory from Google Sheets:
FlexStock – Stock Sync with Google Sheet for WooCommerce | Auto-sync WooCommerce products from Google Sheets. Flex Stock is an easy, powerful, and simple inventory management system to handle your WooCommerce products.
🛒 Manage Order with Google Sheets:
Try FlexOrder – Bulk Order Sync with Google Sheet for WooCommerce | Manage WooCommerce orders from Google Sheets. WooCommerce order sync, e-commerce order management, and sales order management with Google Sheets. Try Flex Order now!
💬 Form to Chat:
Try FormyChat | Connect Form to Chat Apps with Contact Form 7, WPForms, Gravity Form | Welcome Popup & Multi-agent Live Chat
WP Dark Mode uses Appsero SDK to collect some telemetry data upon user’s confirmation. This helps us to troubleshoot problems faster & 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 Appsero SDK DOES NOT IMMEDIATELY start gathering data, without confirmation from users in any case.
Learn more about how Appsero collects and uses this data.
Additionally read the WPPOOL privacy policy.
This plugin relies on the following third party and external services. Each is described below with what it is used for, what data is sent, and when.
1. WPPOOL AI Preset Generator (aiware.wppool.dev)
Used to generate dark mode colour presets from a text description. This service performs the AI colour generation on WPPOOL’s servers; it cannot be performed locally by the plugin.
Data sent: only the text prompt an administrator types into the AI Preset Generator, plus a randomly generated per-request identifier. No visitor data, no site content and no personal data are sent. The request is made only at the moment an administrator clicks the generate button in the plugin settings; it never runs on the front end and never runs automatically.
This service is provided by WPPOOL: terms of service, privacy policy.
2. Headway (cdn.headwayapp.co)
Used to display the plugin’s changelog inside the WordPress admin.
Data sent: loading the widget script causes your browser to contact Headway’s CDN, which receives your IP address, browser user agent and the referring page, as with any remotely loaded script. The widget is loaded only on the WP Dark Mode settings screen in the admin area, and never on the front end.
This service is provided by Headway: terms of use, privacy policy, security information.
3. Appsero (appsero.com, icanhazip.com)
Used for optional usage telemetry and for licence management of the paid add-on.
Data sent: nothing is sent unless an administrator explicitly opts in via the admin notice. After opt-in, Appsero receives site URL, WordPress and PHP version, active theme and plugin list, and the administrator’s email address and name. icanhazip.com is contacted to determine the site’s public IP address as part of the same opt-in telemetry.
This service is provided by Appsero: privacy policy. See also the icanhazip privacy notice.
4. WPPOOL contact sync (fluent.wppool.dev)
Used to subscribe an administrator to product update emails when they opt in to telemetry.
Data sent: the administrator’s email address, first name and last name. This request is made only as part of the same explicit opt-in described above. If you do not opt in, no request is made.
This service is provided by WPPOOL: terms of service, privacy policy.
5. Social sharing networks
The optional Social Share module renders share buttons. When, and only when, a visitor clicks one of these buttons, their browser opens a share URL on the network they chose: www.facebook.com (Facebook and Messenger), twitter.com (X/Twitter), www.linkedin.com (LinkedIn), www.google.com (Google), plus.google.com (Google+), pinterest.com (Pinterest), www.tumblr.com (Tumblr), reddit.com (Reddit), www.stumbleupon.com (StumbleUpon), delicious.com (Delicious), www.evernote.com (Evernote), wordpress.com (WordPress.com), getpocket.com (Pocket), api.whatsapp.com (WhatsApp), telegram.me (Telegram), www.instagram.com (Instagram), chat.openai.com (ChatGPT), grok.com (Grok), www.perplexity.ai (Perplexity) and claude.ai (Claude). The module also offers sms: and mailto: links, which open the visitor’s own SMS or email app and do not contact any external server.
Data sent: only the permalink and title (or, for the AI assistant channels ChatGPT/Grok/Perplexity/Claude, a short prompt built from the permalink and title) of the post being shared, as part of that URL. No data is sent to any of these networks until a visitor actively clicks a share button, and each network’s own terms and privacy policy then apply.
6. Webmail compose links (mail.google.com, outlook.office.com, compose.mail.yahoo.com)
The admin-side “Mail To” helper opens a pre-filled compose window on Gmail, Outlook or Yahoo Mail when an administrator clicks one of these options, so they can email a link from the plugin settings. This only happens when the administrator clicks the option; no data is sent automatically. Each provider’s own terms and privacy policy apply to that webmail service.
7. Embedded video players (youtube.com, player.vimeo.com)
If a site owner embeds a YouTube or Vimeo video, the plugin adjusts that embed for dark mode. The embed itself is created by WordPress or the site owner, not by this plugin, and those providers’ terms apply to the embedded player.
The JavaScript and CSS shipped in this plugin are generated with build tools. The complete, human-readable source for every generated file is included in the src/ directory of this plugin, along with the build configuration. package.json (npm) and composer.json (Composer) are also included at the plugin root, so exact dependency versions can be installed.
Toolchain: Vite, Vue 3, Tailwind CSS and Sass.
To build from source:
npm installnpm run buildIndividual bundles can be rebuilt with the scripts listed in package.json. For example, npm run frontend:js builds assets/js/app.min.js from src/frontend/main.js using src/frontend/vite.config.js.
Note on .map files: this plugin’s build tooling can generate .map sourcemap files alongside each minified bundle. These are excluded from the packaged plugin via .distignore because they are dev-only debug artifacts, not executable code, and they embed literal URL strings copied from bundled third-party libraries’ own metadata (for example a state-management library’s devtools logo URL) which are never …