Comments (3)
You can perfectly do this:
const toggle = document.querySelector('dark-mode-toggle');
const meta = document.querySelector('meta[name="color-scheme"]');
// Set the first time.
toggle.mode === 'dark' ? meta.content = 'dark light' : meta.content = 'light dark';
// Listen for toggle changes (which includes `prefers-color-scheme` changes).
toggle.addEventListener('colorschemechange', () => {
toggle.mode === 'dark' ? meta.content = 'dark light' : meta.content = 'light dark';
});
from dark-mode-toggle.
Thanks, this worked with some modifications. Changing the order from 'dark light' to 'light dark' didn't work, but setting it to 'dark' for dark mode and 'light' for light mode worked. I also had to start with an empty string for the meta tag.
const toggle = document.querySelector('dark-mode-toggle');
const meta = document.querySelector('meta[name="color-scheme"]');
// Set the first time.
toggle.mode === 'dark' ? meta.content = 'dark' : meta.content = 'light';
// Listen for toggle changes (which includes `prefers-color-scheme` changes).
toggle.addEventListener('colorschemechange', () => {
toggle.mode === 'dark' ? meta.content = 'dark' : meta.content = 'light';
});
Edit: Apparently using 'light dark' or 'dark light' in the meta tag simply tells the browser that your site supports both light and dark themes, and the browser will pick whatever matches the browser's theme. If you set the meta tag to an empty string, it will only use light widgets. So if you want to force light or dark widgets, you have to set the meta tag to only 'light' or only 'dark'. The code above now works in all cases regardless of browser theme.
from dark-mode-toggle.
Perfect, happy it worked for you and thanks for sharing your solution (my code was written off the top of my head).
from dark-mode-toggle.
Related Issues (20)
- [Feature Request] Set SVG icons HOT 1
- Unable to Load png files when running on Github Pages HOT 2
- Apart from `light` and `dark`, add a `system` option HOT 9
- Add aria-label for lighthouse HOT 5
- Dead GitHub Pages HOT 1
- dark-mode-toggle with React HOT 10
- Dark mode website HOT 5
- "Permanent" property seems to have stopped working HOT 5
- Implement saving light/dark mode HOT 8
- Dark mode doesn't work HOT 5
- Keep light mode after changing page for Wordpress Theme HOT 3
- Accessibility error HOT 2
- Consider aria-label="auto" aria-live="polite" HOT 1
- Reloading in the demo in dark mode still causes an initial flash of the light theme. HOT 8
- Problems styling ::parts and pseudo elements such as ::before HOT 15
- [feature request] support SRI (sub resources integrity) HOT 6
- [feature request] support Bootstrap 5.3 color modes HOT 3
- Support for using as a React component HOT 2
- Add support for declarative shadow DOM
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dark-mode-toggle.