Comments (4)
The latest release has added CSS ::part() styling, this should allow you to fully match the look of Material.
Regarding the flashing of the wrong theme, do you use a dark
class or the two CSS files approach (see README)? The two CSS files approach usually has less of this undesirable effect, but in the end you have to accept that you are βfightingβ the browser default by overriding the theme.
Hope this helps, closing the Issue since itβs not really about a defect or feature request, but feel free to comment again with further questions.
from dark-mode-toggle.
@tomayac I am using the recommended approach - the two different CSS files
and there is still some unwanted style flashing on refresh when remembering the non-preffered theme but as you said might be just a side effect we have to accept.
On a side note, it might be worth expanding your post on how to support more than 2 themes using this approach that could help a lot of people - including myself π .
Regarding the ::parts and MWC support I am not going to lie I am a newbie in web dev and web component in general so if you could provide - maybe in the README - the code on how to achieve MWC style - since Material design is one of the most used UI lib - I think it might help a lot of people out there.
Anyway thanks again for the quality tutorial and this component it really helps quickly getting started with dark theme support.
from dark-mode-toggle.
@tomayac I am using the recommended approach - the two different
CSS files
and there is still some unwanted style flashing on refresh when remembering the non-preffered theme but as you said might be just a side effect we have to accept.
I fear so, yes. Technically, you could not display anything until the toggle's script has run and figured out the mode, but this would be even more suboptimal. As a general hint, make sure the toggle script runs as soon as possible. For example, I preload the script early on during the loading of my blog.
On a side note, it might be worth expanding your post on how to support more than 2 themes using this approach that could help a lot of people - including myself π .
Right now the toggle only supports two themes. Adding support for more is currently not a planned feature, since prefers-color-scheme
itself only supports light
or dark
.
Regarding the ::parts and MWC support I am not going to lie I am a newbie in web dev and web component in general so if you could provide - maybe in the README - the code on how to achieve MWC style - since Material design is one of the most used UI lib - I think it might help a lot of people out there.
There's a neat intro on this new kind of styling over on CSS Tricks.
The exposed parts are in the code.
Anyway thanks again for the quality tutorial and this component it really helps quickly getting started with dark theme support.
You're welcome! If you want, I'd be curious to have a look at your page now :-)
from dark-mode-toggle.
Thanks for the answer, I don't think that I can preload the script since I am importing it directly in my project with NPM and using it in my custom component. π€
A shame for the multi theme support...
Would gladly show you but it's still running locally only. π
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
- Any way to toggle light/dark native widgets when using <meta name='color-scheme' content='light dark'> ? HOT 3
- 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.