Descripció
JTZL’s Dark Mode automatically applies dark mode styling to your WordPress site based on your visitors’ operating system preferences. No configuration required – it just works.
Interactive demo:
https://playground.wordpress.net/?blueprint-url=https://wordpress.org/plugins/wp-json/plugins/v1/plugin/jtzls-dark-mode/blueprint.json
Key Features:
- Automatic detection using CSS
prefers-color-scheme: darkmedia query - Zero configuration – works out of the box
- Privacy-respecting – all detection happens client-side
- Theme-agnostic – works with any WordPress theme
- Media preservation – images, videos, and embeds display correctly
- Developer-friendly – extensible via WordPress filter hooks
How It Works:
The plugin uses the CSS prefers-color-scheme media query to detect when a visitor’s operating system is set to dark mode. When detected, dark mode styles are automatically applied without any JavaScript or server-side processing.
Technical Features:
- Modern PHP 8.2+ architecture with dependency injection (PHP-DI)
- Service-oriented design with PSR-4 autoloading
- Separate styling strategies for Block themes (CSS variables) and Classic themes (filter inversion)
- Comprehensive test coverage with PHPUnit
Developer Hooks:
Customize the plugin behavior using these filter hooks:
jtzl_dark_mode_enabled– Enable/disable dark mode on specific pagesjtzl_dark_mode_css_variables– Customize dark mode colorsjtzl_dark_mode_custom_css– Add custom CSS rules
Instal·lació
- Upload the
jtzls-dark-modefolder to the/wp-content/plugins/directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- That’s it! Dark mode will automatically apply based on visitor preferences
PMF
-
Does this plugin require any configuration?
-
No. JTZL’s Dark Mode works automatically without any settings or configuration.
-
How does dark mode detection work?
-
The plugin uses the CSS
prefers-color-scheme: darkmedia query, which detects your operating system’s color scheme preference. This is a privacy-respecting, client-side-only approach. -
Will this affect my images and videos?
-
No. The plugin includes media preservation rules that ensure images, videos, iframes, and embedded content display without color distortion.
-
Can I disable dark mode on specific pages?
-
Yes. Use the
jtzl_dark_mode_enabledfilter hook:add_filter( 'jtzl_dark_mode_enabled', function( $enabled ) { if ( is_page( 'landing-page' ) ) { return false; } return $enabled; } ); -
Can I customize the dark mode colors?
-
Yes. Use the
jtzl_dark_mode_css_variablesfilter hook to override default CSS variables:add_filter( 'jtzl_dark_mode_css_variables', function( $variables ) { $variables['--id-bg-primary'] = '#0d1117'; $variables['--id-text-primary'] = '#f0f0f0'; return $variables; } );Available CSS variables:
*--id-bg-primary– Primary background color
*--id-bg-secondary– Secondary background color
*--id-text-primary– Primary text color
*--id-text-secondary– Secondary text color
*--id-border-color– Border color
*--id-link-color– Link color
*--id-link-hover– Link hover colorNote: CSS variables only apply to Block themes. Classic themes use filter inversion.
-
Does this work with Full Site Editing (FSE) themes?
-
Yes. JTZL’s Dark Mode uses different styling strategies optimized for each theme type:
- Block themes (FSE): Uses CSS custom properties for precise color control
- Classic themes: Uses CSS filter inversion for broad compatibility
Both approaches ensure proper dark mode rendering without theme modifications.
-
Does this affect the WordPress admin area?
-
No. Dark mode styling is applied only to the public-facing frontend of your site.
-
Can I add custom CSS rules?
-
Yes. Use the
jtzl_dark_mode_custom_cssfilter hook:add_filter( 'jtzl_dark_mode_custom_css', function( $css ) { return $css . '@media (prefers-color-scheme: dark) { .my-element { color: #fff; } }'; } ); -
What are the system requirements?
-
- PHP 8.2 or higher
- WordPress 6.9 or higher
- Composer (for development only)
-
Is there an interactive preview?
-
Yes. Launch a live preview in WordPress Playground:
https://playground.wordpress.net/?blueprint-url=https://wordpress.org/plugins/wp-json/plugins/v1/plugin/jtzls-dark-mode/blueprint.json
Ressenyes
No hi ha ressenyes per a aquesta extensió.
Col·laboradors i desenvolupadors
«JTZL's Dark Mode» és programari de codi obert. La següent gent ha col·laborat en aquesta extensió.
Col·laboradorsTraduïu «JTZL's Dark Mode» a la vostra llengua.
Interessats en el desenvolupament?
Navegueu pel codi, baixeu-vos el repositori SVN, o subscriviu-vos al registre de desenvolupament per fisl de subscripció RSS.
Registre de canvis
1.0.0
- Initial release
- Automatic dark mode detection via CSS prefers-color-scheme
- Theme-agnostic styling with CSS custom properties
- Media preservation for images, videos, and embeds
- Developer filter hooks for customization
