CSS Portal

CSS backdrop-filter Property

If this site has been useful, we’d love your support! Consider buying us a coffee to keep things going strong!

Description

The backdrop-filter property in CSS provides a powerful way to apply graphical effects to the area behind an element, effectively altering the appearance of whatever is visible through that element. Unlike typical filters that affect the element itself, backdrop-filter manipulates the background content as it appears through the element's transparent or semi-transparent regions. This allows designers to create visually rich interfaces where elements can blur, darken, or otherwise stylize the content beneath them, producing depth and layering effects that were previously difficult to achieve without images or extra markup. A classic example of its use is in creating frosted glass panels, where the content behind a translucent overlay is softly blurred while remaining partially visible.

One of the strengths of backdrop-filter is its ability to combine multiple visual effects in a single declaration. Developers can layer operations like blur, brightness adjustment, contrast modification, and hue rotation to create nuanced effects that interact dynamically with background content. These transformations respond to changes in the underlying elements, so if content behind the filtered area moves, the effect updates in real time, producing a natural and immersive visual experience. This dynamic behavior contrasts with static image overlays or backgrounds, making backdrop-filter particularly appealing for interactive interfaces, modal dialogs, and navigational panels that need to feel integrated into a live page layout.

It’s important to consider the relationship between backdrop-filter and other CSS properties, such as opacity or background. The effects are visible only through elements that allow some degree of transparency, so fully opaque elements will prevent any backdrop manipulation from showing. Designers often pair backdrop-filter with semi-transparent backgrounds or gradients to achieve subtle visual layering. Furthermore, while it enhances visual appeal, excessive use of complex filters can impact rendering performance, especially on large areas or when applied to elements in motion, so careful consideration is necessary when designing interfaces that rely heavily on this property.

Definition

Initial value
none
Applies to
all elements; In SVG, it applies to container elements excluding the <defs> element and all graphics elements
Inherited
no
Computed value
as specified
Animatable
a filter function list
JavaScript syntax
object.style.backdropFilter

Interactive Demo

Backdrop Filter Demo

Syntax

backdrop-filter: none | filter

Values

  • noneNo filter is applied to the backdrop.
  • filterCSS filters include blur(), brightness(), contrast(), drop-shadow(), grayscale(), hue-rotate(), invert(), opacity(), saturate(), and sepia().

Example

<div class="hero">
<div class="glass-card">
<h1>Frosted Glass Card</h1>
<p>Backdrop-filter blurs what's behind this element.</p>
<a class="btn" href="#">Learn more</a>
</div>
</div>
/* Base reset and typography */
* {
    box-sizing: border-box;
}

html, body {
    height: 100%;
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Fullscreen hero with a photo background */
.hero {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    background-image: url('https://images.unsplash.com/photo-1501785888041-af3ef285b470?auto=format&fit=crop&w=1950&q=80');
    background-size: cover;
    background-position: center;
}

/* Frosted glass card that uses backdrop-filter */
.glass-card {
    width: 340px;
    padding: 28px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.18); /* semi-transparent to let backdrop-filter show through */
    border: 1px solid rgba(255, 255, 255, 0.25);
    -webkit-backdrop-filter: blur(10px) saturate(120%); /* Safari */
    backdrop-filter: blur(10px) saturate(120%);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
    color: white;
    text-align: center;
}

/* Fallback for browsers that do not support backdrop-filter */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .glass-card {
        background: rgba(255, 255, 255, 0.94);
        color: #111;
    }
}

.glass-card h1 {
    margin: 0 0 8px;
    font-size: 20px;
}

.glass-card p {
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 1.4;
    opacity: 0.95;
}

.btn {
    display: inline-block;
    padding: 10px 18px;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(255,255,255,0.15), rgba(255,255,255,0.05));
    color: inherit;
    text-decoration: none;
    border: 1px solid rgba(255,255,255,0.3);
    font-weight: 600;
}

Browser Support

The following information will show you the current browser support for the CSS backdrop-filter property. Hover over a browser icon to see the version that first introduced support for this CSS property.

This property is supported by all modern browsers.
Desktop
Chrome
Edge
Firefox
Opera
Safari
Tablets & Mobile
Chrome Android
Firefox Android
Opera Android
Safari iOS
Samsung Internet
Android WebView
-

Last updated by CSSPortal on: 1st January 2026

If this site has been useful, we’d love your support! Consider buying us a coffee to keep things going strong!