Here is a quick recap of all CSS prefers-* queries that you can use to adjust to user settings. Prefers Reduced Motion (95.57% global support)Indicates whether the user prefers less motion to avoid VIMS - Visually-Induced Motion Sickness. Here we disable any animations or transitions, but we can be flexible here (e.g., REDUCE motion but do not disable it completely)
Prefers Color Scheme (95.16% global support)Detects whether the user prefers a light or dark color theme. In this example we change the styling if the user prefers the dark theme.
Prefers Contrast (92.68% global support)Indicates the user prefers higher (or lower) contrast between elements.
Prefers Reduced Transparency (73.15% global support)Tells us if the user prefers less transparency (e.g. no glassmorphism, hello new iOS design 👋)
Forced Colors (92.86% global support)Used to detect if the user agent has enabled a forced colors mode where it enforces a user-chosen limited color palette on the page.
An example of a forced colors mode is Windows High Contrast mode. Bonus TipYou can conditionally load external files like This way you:
Another cool example — you can load different images (animated or static) based on the user's preference: You can use
If your page uses a lot of animations — using this technique can be a big win for accessibility and performance. Thank you, |
I'm a full-stack developer that is passionate about good user interfaces. In my newsletter, I talk mainly about UI/UX stuff. You could expect an email or two in a month, I'm not aiming to spam you with non-useful info.
Today we'll cover another CSS media query: prefers-reduced-motion, and how to load (or avoid loading) styles based on user preferences — this is genuinely cool stuff! I've just posted the same article on LinkedIn, for my first time. Accessibility concern There’s a condition called VIMS: Visually induced motion sickness (VIMS)—a subcategory of motion sickness that specifically relates to nausea, oculomotor strain, and disorientation from the perception of motion while remaining still. To...
After a rough patch, I’m getting back to writing. More practical stuff that you can apply directly in your projects. One topic that looks really good is how to use modern CSS to support UI/UX and accessibility. Preference Media Queries Preference Media Queries allow you to adapt your UI based on the user's system-level settings and personal preferences — like reduced motion, high contrast, or dark mode. They're mostly used to improve accessibility and user experience. Let's cover one of them....
I've been skimming through my list of topics to cover and found an interesting CSS property that’s especially useful when you need to highlight a specific phrase inside a block of text. Normally, when a text block breaks into multiple lines, the browser treats the whole element as a single box — which often results in broken or inconsistent styling. So this code: Results in the following styling: To fix that, all you need is: box-decoration-break: clone; It tells the browser to treat each...