How to invert colors using CSS
How to invert colors of elements and images using CSS
I had this problem. I added a “black on white” image on a page, only to realize that with dark mode, my page correctly changes the background to black, but the image remains white on black.
Kind of bad.
So I added this rule to my CSS to detect dark mode and automatically invert the color of the image:
@media (prefers-color-scheme: dark) {
.my-image {
filter: invert(100%);
}
}
It’s not 100% accurate in my case, because my dark background color is not perfectly black, but it’s better than nothing.
To make things perfect you could also add the image using a CSS background image instead of an img
tag in HTML, and I could easily swap that in dark mode.
I wrote 21 books to help you become a better developer:
- HTML Handbook
- Next.js Pages Router Handbook
- Alpine.js Handbook
- HTMX Handbook
- TypeScript Handbook
- React Handbook
- SQL Handbook
- Git Cheat Sheet
- Laravel Handbook
- Express Handbook
- Swift Handbook
- Go Handbook
- PHP Handbook
- Python Handbook
- Linux Commands Handbook
- C Handbook
- JavaScript Handbook
- Svelte Handbook
- CSS Handbook
- Node.js Handbook
- Vue Handbook
Also, JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025