
About this episode
Light mode? Dark mode? Scott and Wes break down the best ways to implement theme switching in CSS, from prefers-color-scheme to manual overrides. Plus, tips on handling shadows, icons, and the dreaded flash of dark mode!
Show Notes 00:00 Welcome to Syntax!
01:05 Brought to you by Sentry.io.
02:06 Light and dark mode, things to consider.
02:31 Light and dark mode from scratch. drop-in.css.
04:41 Calculations vs assigned color.
05:32 color-mix and relative color.
08:15 Foreground and background variables. –tint-or-shade: color-mix(in oklab, var(–fg), transparent 95%);
–tint-or-shade-harder: color-mix(in oklab, var(–fg), transparent 90%);
09:13 Setting color scheme.
12:38 light-dark function in CSS.
15:48 Manually setting dark mode. 18:43 The challenges with shared caching.
19:33 Tailwind CSS implementation. Tailwind dark-mode.
19:52 Shoehorning in dark mode.
22:25 Other things to consider. 22:28 Color contrast. Lea Verou contrast-color.
24:39 Logos.
25:22 Icons and images.
26:20 Accessibility. Polypane.
Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads
Wes: X Instagram Tiktok LinkedIn Threads
Scott: X Instagram Tiktok LinkedIn Threads
Randy: X Instagram YouTube Threads
Get every episode summarized
Each time Syntax - Tasty Web Development Treats publishes, we email you a written briefing from the transcript — the topics, who appeared, and any specific claims, with the ad reads skipped.
Email me new episodesFree for 3 shows. No card needed.
Hosts & guests
No transcript yet
This episode has not been transcribed. Request it and it moves to the front of the queue.
More episodes
More from Syntax - Tasty Web Development Treats

995: Next.js Vendor Lock-in No More
Syntax - Tasty Web Development Treats
Apr 13, 20261:04:18failed

994: AI Sucks At CSS
Syntax - Tasty Web Development Treats
Apr 8, 20261:00:16failed

993: It’s Been A Hell Of Week
Syntax - Tasty Web Development Treats
Apr 6, 202638:12failed

992: Migrating Legacy Code Just Got Easier
Syntax - Tasty Web Development Treats
Apr 1, 202629:07failed