CSS update Media Feature

Beginner
5 min read
Updated: Oct 2026
3 examples
Live preview

Definition and Usage

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.

CSS Syntax

syntax.css
@media (update: none | slow | fast) { … }

Always wrap the feature in parentheses. Invalid forms like @media update(fast) do not work.

Feature Values

ValueDescriptionTry it
fastCan update quickly—CSS animations are fine (most screens)Try it
slowCan change layout, but not smoothly enough for animation (e-readers)Try it
noneCannot update after render (printed paper)Try it

How to Use update

Keep a calm default, then enhance only when the device can keep up.

  1. Style the page without relying on animation.
  2. Add motion only inside @media (update: fast).
  3. Disable transitions inside @media (update: slow).
  4. Use static cues for update: none (and often print).
PieceRequired?Role
@mediaYesWraps the media feature
update valueYesfast, slow, or none
Static defaultsYesLook correct when animation is skipped
Reduced-motion checkRecommendedRespect user preference as well as device speed

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

fast slow none

Checking…

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;
  }
}
Try It Yourself

How It Works

  1. Define the motion. @keyframes jiggle moves the text a little.
  2. Gate with fast. The animation lives only inside @media (update: fast).
  3. Skip on slow/none. Those devices never get the animation rule.
  4. Still readable. Without a match, the paragraph is static text.

Example 2 — Disable Transitions on Slow

Turn off hover transitions on e-readers and similar devices.

CSS
.card {
  transition: background 0.3s ease;
}

@media (update: slow) {
  .card {
    transition: none;
    background: #fef3c7;
  }
}
Try It Yourself

How It Works

  1. Allow a soft transition. Fast screens can animate background changes.
  2. Detect slow. @media (update: slow) targets constrained displays.
  3. Remove the transition. Instant changes avoid choppy redraws.
  4. Use a clear state. Amber background signals the slow path in demos.

Example 3 — Static Styles When None

When content cannot update, keep interactive cues always visible.

CSS
a {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

@media (update: none) {
  a {
    text-decoration: underline;
  }
}
Try It Yourself

How It Works

  1. Hide underline by default. Hover reveals it on interactive screens.
  2. Detect none. Output that never updates cannot rely on hover.
  3. Force the underline. Links stay visibly marked.
  4. 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.

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 Chrome 113+
Full
Mozilla Firefox 102+
Full
Apple Safari 17+
Full
Microsoft Edge 113+
Full
Opera 99+
Full
Samsung Internet 23+
Full
Internet Explorer No
None
@media (update) Widely supported

Bottom line: Safe as progressive enhancement. Most desktops/phones match fast; keep non-animated defaults for slow and none.

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.

Next: width

Learn how to query viewport width for responsive layouts.

width tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

8 people found this page helpful