4 ms·
My lazy dark mode solution: html.dark-mode { filter: grayscale(100%) invert(100%); }
by hanniabu 4y ago
My lazy dark mode solution:
html.dark-mode {
filter: grayscale(100%) invert(100%);
}
- rawling 4y agoI had some fun inverting and then rotating the hue back around.
- cubefox 4y agoThis would also create negatives of pictures, right?
- hanniabu 4y agoCorrect. It's great for mostly text content or as a nice quick and dirty fix until you get around to creating a proper dark theme. Alternatively you can target elements individually, omitting images.
- cubefox 4y agoPerhaps there is some fancy selector which excludes images?
- extra88 4y agoIf you use just invert(100%), no grayscale, on the body, you can add img { filter: invert(100%) } to reverse images back to their original color. However, if an image has any transparency or translucency, it may be harder to see with what the background color has become.
- tomxor 4y agoI've used something to this effect before, and you can use child selectors on e.g images to effectively exclude elements. Note that the cost of this lazy method is very poor performance (css filter over the entire document), and lack of control over dark colours (inverted colours don't necessarily work best, shifting hue can help but you probably don't want the same as uninverted colours because they tend to be too dark and lack sufficient contrast).