The update media feature tests how frequently (if at all) the output device can change content after it is rendered.
Use it to allow smooth animations on fast screens, drop motion on slow devices (such as e-readers), and keep static styles when the output is none (such as printed paper).
Note Not the same as reduced motion
update describes device speed. Also check prefers-reduced-motion for the user’s preference before animating.
Syntax
CSS Syntax
syntax.css
@media (update:none | slow | fast) { … }
Always wrap the feature in parentheses. Invalid forms like @media update(fast) do not work.
Values
Feature Values
Value
Description
Try it
fast
Can update quickly—CSS animations are fine (most screens)
Keep a calm default, then enhance only when the device can keep up.
Style the page without relying on animation.
Add motion only inside @media (update: fast).
Disable transitions inside @media (update: slow).
Use static cues for update: none (and often print).
Piece
Required?
Role
@media
Yes
Wraps the media feature
update value
Yes
fast, slow, or none
Static defaults
Yes
Look correct when animation is skipped
Reduced-motion check
Recommended
Respect user preference as well as device speed
Try it
Live Preview
Real @media (update: …) rules style this sample. On most desktops and phones you should see fast and a gentle bounce. Recheck reports matchMedia results.
Detected update values
Open print preview to experiment with non-updating output. Slow devices are harder to simulate in DevTools.
Update detection
Update sample
fastslownone
Checking…
Code
CSS Examples
Each snippet focuses on update. Use Try It Yourself for a live editor.
Example 1 — Animate on Fast Devices
Run a simple animation only when the device can update quickly (MDN pattern).
CSS
@keyframes jiggle {
from { transform: translateY(0); }
to { transform: translateY(8px); }
}
@media (update: fast) {
p {
animation: 1s jiggle linear alternate infinite;
}
}
Useful for print-like output with no hover or animation.
How It Works
Hide underline by default. Hover reveals it on interactive screens.
Detect none. Output that never updates cannot rely on hover.
Force the underline. Links stay visibly marked.
Pair with print. Often combine with @media print for paper.
Edge Cases & Pitfalls
Capability queries are not preference queries.
a11y
Still honor reduced motion
A fast device can still have a user who prefers less motion. Combine with prefers-reduced-motion.
default
Animate only as enhancement
Put animations inside (update: fast). Do not require animation for meaning.
print
none often pairs with print
Paper cannot refresh. Use update: none and/or @media print for static layout.
syntax
Parentheses required
Write @media (update: fast). Forms like @media update(fast) are invalid.
test
Slow is hard to fake
DevTools rarely emulates e-ink. Keep defaults sensible and test on real slow hardware when you can.
Compatibility
Browser Support
update is a browser media feature. Node.js, Deno, and Bun do not evaluate it.
✓ Baseline · Widely available
update
Interoperable across modern browsers since about September 2023 (Chrome/Edge 113+, Firefox 102+, Safari 17+). Internet Explorer does not support it.
93%Modern browsers
Google Chrome113+
Full
Mozilla Firefox102+
Full
Apple Safari17+
Full
Microsoft Edge113+
Full
Opera99+
Full
Samsung Internet23+
Full
Internet ExplorerNo
None
@media (update)Widely supported
Bottom line: Safe as progressive enhancement. Most desktops/phones match fast; keep non-animated defaults for slow and none.
Remember
Key Takeaways
Role: detect how fast the device can change rendered content.
Values:fast, slow, and none.
Pattern: animate only on fast; calm styles on slow/none.
Tip: also respect prefers-reduced-motion for user preference.
One line:update tells you if the device can keep up with change—gate motion behind fast.
Frequently Asked Questions
It tests how frequently an output device can change content after rendering: fast (smooth animation OK), slow (layout can change but animation is choppy), or none (no updates, like print).
Three keywords: none, slow, and fast. Write them inside @media, for example @media (update: fast) { … }.
Usually update: fast. E-readers and some low-power devices may report slow. Printed output matches none.
Yes. update is about device capability. prefers-reduced-motion is a user preference. Check both when you animate.
Gate animations behind update: fast. Turn off transitions on update: slow. Use static styles for update: none or print.
No. It is a CSS media feature evaluated by the browser, not a Node.js or server runtime feature.