CSS backdrop-filter Property

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

Definition and Usage

The backdrop-filter property applies graphical effects such as blur or color shift to the area behind an element. The panel’s own text stays sharp while the backdrop softens or changes color.

To see the effect, the element needs a transparent or semi-transparent background, and something must sit behind it. Use it for frosted overlays, sticky bars, and glass cards. To filter the element itself, use filter instead.

Baseline 2024 · Newly available.

Not deprecated and not experimental. Unprefixed support across major browsers is Baseline Newly available since September 2024. Older Safari often still needs -webkit-backdrop-filter.

CSS Syntax

syntax.css
backdrop-filter: none | <filter-function>+ | url(...) | initial | inherit;

The initial value is none. Filter functions match filter: blur(), brightness(), contrast(), grayscale(), hue-rotate(), invert(), opacity(), saturate(), sepia(), and drop-shadow(). Chain several with spaces.

Property Values

ValueDescriptionTry it
noneNo backdrop effect. Initial valueTry it
blur()Softens the backdrop. Classic frosted-glass lookTry it
brightness()Makes the backdrop lighter or darkerTry it
grayscale()Removes color from the backdropTry it
invert()Inverts backdrop colorsTry it
CombinedSpace-separated list, e.g. blur(10px) saturate(150%)Try it
initialSets this property to its default value, noneTry it
inheritInherits this property from the parent elementTry it

How to Use backdrop-filter

Put content behind a translucent panel, then filter only what shows through.

  1. Place a photo, gradient, or page content behind the overlay.
  2. Give the overlay a semi-transparent background, such as background-color: rgb(255 255 255 / 0.3).
  3. Set backdrop-filter on that overlay. It is not inherited.
  4. Keep text contrast strong so the UI stays readable if blur is missing.
PieceRequired?Role
Content behind the panelYesGives the filter something visible to affect
Transparent or translucent backgroundYesOpaque backgrounds hide the filtered backdrop
Filter function or noneYesblur(), grayscale(), combined lists, and the others above
Readable fallbackRecommendedSolid or rgba color so text stays clear without blur

Live Preview

A translucent card sits on a colorful scene. Change backdrop-filter and watch only the area behind the card update.

The card text stays sharp. Only the backdrop behind the translucent panel is filtered.

Stage

backdrop-filter: blur(10px)

CSS Examples

Each snippet adds only what backdrop-filter needs: a backdrop, a translucent panel, and a filter. Use Try It Yourself for a live editor.

Example 1 — Blur the Backdrop

Softens the colorful area behind a translucent panel.

CSS
<style>
  .scene {
    background: linear-gradient(135deg, #2563eb, #db2777);
    padding: 24px;
  }
  .panel {
    background: rgb(255 255 255 / 0.35);
    backdrop-filter: blur(8px);
    padding: 16px;
  }
</style>

<div class="scene">
  <div class="panel">Blurred backdrop</div>
</div>
Try It Yourself

How It Works

  1. Paint a backdrop. The gradient on .scene is the content behind the panel.
  2. Leave the panel translucent. rgb(255 255 255 / 0.35) lets that backdrop show through.
  3. Blur only that view. backdrop-filter: blur(8px) softens the pixels behind the panel.
  4. Keep the label sharp. The text is not filtered. Only the area behind the panel changes.

Example 2 — Glass Card

Combine blur and saturation for a simple glass look.

CSS
<style>
  .scene {
    background: linear-gradient(135deg, #0f766e, #1d4ed8);
    padding: 24px;
  }
  .card {
    background: rgb(255 255 255 / 0.15);
    border: 1px solid rgb(255 255 255 / 0.35);
    backdrop-filter: blur(12px) saturate(160%);
    padding: 16px;
    color: #fff;
  }
</style>

<div class="scene">
  <div class="card">Glass card</div>
</div>
Try It Yourself

How It Works

  1. Keep a busy backdrop. A teal-to-blue gradient makes blur and saturation easy to see.
  2. Lower the fill. A light rgba background still reveals the scene.
  3. Stack two filters. blur(12px) softens detail; saturate(160%) boosts the colors that remain.
  4. Optional edge. A light border helps the card read as a surface without changing the filter.

Example 3 — Grayscale Backdrop

Desaturate only the area behind the panel.

CSS
<style>
  .scene {
    background: linear-gradient(90deg, #ef4444, #22c55e, #3b82f6);
    padding: 24px;
  }
  .panel {
    background: rgb(255 255 255 / 0.45);
    backdrop-filter: grayscale(100%);
    padding: 16px;
  }
</style>

<div class="scene">
  <div class="panel">Grayscale behind me</div>
</div>
Try It Yourself

How It Works

  1. Start with color. The rainbow gradient is fully saturated outside the panel.
  2. Show it through the panel. The rgba fill keeps that gradient visible under the text.
  3. Strip color in that window. grayscale(100%) removes hue only from the backdrop sample.
  4. Compare the edges. Outside the panel the gradient stays colorful, which proves the filter is not on the whole page.

Edge Cases & Pitfalls

If the effect disappears, one of these is usually why.

opaque

Opaque backgrounds hide it

A solid background-color covers the filtered pixels. Use rgba, hsla, or a lower alpha so the backdrop can show through.

empty

Nothing behind means nothing to filter

A plain page with no pattern, photo, or color under the panel looks unchanged. Put visible content behind the overlay.

root

Backdrop roots clip the sample

An ancestor with opacity under 1, a non-none filter, mix-blend-mode, mask-image, clip-path, or will-change on those becomes a backdrop root. The child then only filters content inside that ancestor.

filter

filter is a different job

filter blurs the element and its children. backdrop-filter blurs what is behind. Do not swap them when you want glass UI.

prefix

Older Safari may need a prefix

Unprefixed support is Baseline Newly available from Safari 18. For older Safari, also set -webkit-backdrop-filter to the same value.

Browser Support

backdrop-filter is a browser CSS property for visual effects. Node.js, Deno, and Bun do not apply it.

✓ Baseline 2024 · Newly available

backdrop-filter

Chrome 76+, Edge 79+, Firefox 103+, Safari 18+ (unprefixed). Older Safari: use -webkit-backdrop-filter. Internet Explorer: none.

97% Modern browser support
Google Chrome 76+
Full support
Mozilla Firefox 103+
Full support
Apple Safari 18+ unprefixed · 9+ with -webkit-
Full support
Microsoft Edge 79+
Full support
Opera 64+
Full support
Samsung Internet 12+
Full support
Internet Explorer No support
Not supported
backdrop-filter Widely supported

Bottom line: Safe for modern browsers as progressive enhancement. Keep a readable rgba or solid background so content works when blur is missing. It is not a runtime API.

Key Takeaways

  • Role: filter the pixels behind an element, not the element itself.
  • Needs transparency: a semi-transparent background and visible content behind the panel.
  • Not filter: filter changes the element; backdrop-filter changes the view through it.
  • Initial value: none. It is not inherited. Watch for backdrop roots on parents.

One line: translucent panel + content behind it + backdrop-filter = frosted glass without blurring the text.

Frequently Asked Questions

It applies filter effects such as blur, brightness, or grayscale to the pixels painted behind an element. The element’s own text and children stay sharp.
The element needs a transparent or semi-transparent background so the backdrop can show through, and there must be visible content behind it. A fully opaque background hides the effect.
filter changes the element and everything inside it. backdrop-filter changes only the area visible through the element, which is why it is used for frosted glass overlays.
Yes. List them in one declaration, separated by spaces, for example backdrop-filter: blur(10px) saturate(150%);.
An ancestor with opacity less than 1 becomes a backdrop root. The filter then only sees content inside that ancestor, not the page behind it. The same happens with filter, mask, mix-blend-mode, and will-change on those properties.
It is Baseline Newly available since September 2024. Chrome 76+, Edge 79+, Firefox 103+, and Safari 18+ support the unprefixed property. Older Safari often needs -webkit-backdrop-filter. Internet Explorer has no support. It is a browser CSS property, not a Node.js feature.

Next: backface-visibility

Control whether the back face of a flipped element is visible.

backface-visibility 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