We dug into this further on your staging site and was able to isolate the exact cause.
We can confirm this is not coming from WP Dark Mode. When the issue appears, WP Dark Mode isn’t injecting any CSS (no <style class="wp-dark-mode"> tags are present, and the dark mode toggle remains in the Off state).
Using the browser’s DevTools, I disabled each declaration in the matching CSS rule one by one to identify which one was responsible:
:is(.wp-block-designsetgo-section, .wp-block-group, .wp-block-column).has-background :not(:is(.has-white-background-color, .has-black-background-color)) :not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section), .wp-block-cover:not(.has-text-color) { color: var(--wp--preset--color--white) !important; /* ← This is the cause */ --dsgo-text-color: var(--wp--preset--color--white); /* Not the cause */ }
The results were conclusive:
- Disabling only
--dsgo-text-color had no effect—the text remained white.
- Disabling only
color: var(--wp--preset--color--white) !important; immediately restored the correct text color.
So the issue is specifically caused by that single color declaration.
The var(--wp--preset--color--white) value itself comes from WordPress’s Global Styles color palette (theme.json / Appearance → Editor → Styles → Colors).
However, the CSS rule applying it with !important originates from your theme or the DesignSetGo plugin (the adjacent --dsgo-* variable strongly suggests DesignSetGo).
Because the color is sourced from WordPress core’s Global Styles system, it may also be worth checking with the DesignSetGo/theme developer whether their CSS has been tested against your current WordPress version, or whether any recent changes to your theme, theme.json, or Global Styles palette introduced this behavior.
How to fix:
Recommended (per block):
Edit each affected Group block, open the Color settings, and assign an explicit Text Color. Once the block has the .has-text-color class, this CSS rule no longer applies.
Site-wide workaround: Add the following under Appearance → Customize → Additional CSS
:is(.wp-block-designsetgo-section, .wp-block-group, .wp-block-column).has-background:not(:is(.has-white-background-color, .has-black-background-color)):not(.has-text-color) { color: var(--wp--preset--color--dark, #222) !important; }
Permanent fix:
The theme/DesignSetGo should update this rule so that it only forces white text when the background is actually dark, rather than on every block with a custom background color. They may also want to verify compatibility with the current WordPress Global Styles implementation.
Based on our testing, there are no changes needed in WP Dark Mode. The page renders the same whether the plugin is enabled, disabled, or completely inactive, confirming that the issue originates from the theme/DesignSetGo CSS rather than WP Dark Mode.
Thanks for your understanding.