Class vs media dark mode is one of the most common decision points we see. Here is the honest breakdown.

The short version#

User-controlled vs OS-controlled schemes.

Point by point#

AspectAnalysis
Controlclass: in-app toggle persisted; media: follows OS
JSclass needs a few lines; media needs none
HybridDefault to OS, allow override (recommended SaaS pattern)
3.1Also selector strategy for scoped schemes

Bottom line#

Pick based on your constraint, not ideology — and remember the comparison pages link to hands-on recipes so you can verify the claim in your own project within minutes.

comparisons/index|All comparisons