CSS Backdrop Filter Generator
Build frosted glass and backdrop effects visually — copy the CSS with both -webkit- and standard properties
-webkit-backdrop-filter: none; backdrop-filter: none;
Move any slider or choose a preset to generate a backdrop-filter.
You’re building a modal overlay and want that frosted glass effect from macOS — the background blurs and slightly brightens behind a translucent panel. You know backdrop-filter: blur() exists, but the element needs a semi-transparent background (not transparent, not opaque), Safari still needs the -webkit- prefix, and combining blur with saturation and brightness to match the Apple aesthetic takes trial and error. Getting the values wrong gives you either an opaque box or an invisible effect.
Why This Tool (Not Hand-Tuning CSS)
backdrop-filter combines up to 9 different filter functions (blur, brightness, contrast, grayscale, hue-rotate, invert, opacity, saturate, sepia), and the interaction between them is non-obvious — adding saturate(140%) to a blur makes colors pop through the frost, while brightness(50%) creates a dark overlay instead of a light one. This tool gives you sliders for all 9 functions with a live frosted glass preview, presets for common effects (Frosted Glass, Dark Overlay, Vintage), and auto-generated CSS with both the -webkit- prefix and the standard property. Everything runs in your browser; your design choices stay on your device.
What Is CSS backdrop-filter?
The CSS backdrop-filter property applies graphical effects — such as blur, brightness, contrast, and color shifts — to the area behind an element, rather than to the element itself. This makes it the foundation for the popular frosted glass UI effect widely used in macOS, iOS, Windows, and modern web UIs.
Unlike the filter property (which affects the element and its content), backdrop-filter only processes the content visible through the element from layers below it. For the effect to be visible, the element must have some transparency — typically via background-color with an alpha value.
Supported Backdrop-Filter Functions
| Function | Range | Description |
|---|---|---|
blur(Xpx) | 0–50 px | Gaussian blur applied to content behind the element |
brightness(X%) | 0–200% | Adjusts the brightness of the backdrop (100% = no change) |
contrast(X%) | 0–200% | Adjusts the contrast of the backdrop (100% = no change) |
grayscale(X%) | 0–100% | Converts the backdrop toward grayscale |
hue-rotate(Xdeg) | 0–360 deg | Rotates the hue of all colors in the backdrop |
invert(X%) | 0–100% | Inverts the colors of the backdrop |
opacity(X%) | 0–100% | Adjusts the opacity of the backdrop (100% = no change) |
saturate(X%) | 0–300% | Adjusts the color saturation of the backdrop |
sepia(X%) | 0–100% | Applies a sepia warm-tone shift to the backdrop |
Multiple functions can be combined in a single backdrop-filter declaration and are applied in order.
How to Use This Tool
- Adjust sliders — Move any slider to change the corresponding filter function. Sliders at their default (identity) value are excluded from the output automatically.
- Apply a preset — Click a preset button (Frosted Glass, Dark Overlay, Light Overlay, Vintage, Blur Only) to load a curated set of values.
- Preview live — The frosted glass panel in the preview area shows the real-time effect applied over a sample background.
- Copy the CSS — Click Copy to copy the generated
-webkit-backdrop-filterandbackdrop-filterdeclarations ready to paste into your stylesheet. - Reset — Click Reset to restore all sliders to their defaults.
Adding backdrop-filter to Your CSS
A typical frosted glass card looks like this:
.glass-card {
background: rgba(255, 255, 255, 0.15);
-webkit-backdrop-filter: blur(12px) saturate(140%) brightness(110%);
backdrop-filter: blur(12px) saturate(140%) brightness(110%);
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 12px;
}
Key points:
- The element needs a semi-transparent background so the backdrop shows through.
- The
-webkit-backdrop-filterprefix is required for Safari (including iOS Safari). Always include both the prefixed and standard properties. - The parent or a sibling layer must have visible content — the effect is invisible on a plain white or empty page.
Preset Effects Explained
Frosted Glass
blur(12px) saturate(140%) brightness(110%)
The classic macOS-style frosted glass. A moderate blur softens the background, while increased saturation and brightness make colors punch through the frosting with a slightly luminous feel. Pair with background: rgba(255,255,255,0.15) and a subtle white border.
Dark Overlay
blur(8px) brightness(50%) contrast(120%)
Creates a semi-dark overlay suitable for modal backgrounds, hero image overlays, and navigation drawers. The reduced brightness dims the background while increased contrast keeps edges readable.
Light Overlay
blur(6px) brightness(160%) contrast(90%)
A bright, washed-out overlay useful for tooltips, popovers, and sidebar panels on dark backgrounds. Brightness above 100% brightens the backdrop behind the element.
Vintage
brightness(90%) contrast(110%) grayscale(20%) saturate(80%) sepia(40%)
Combines partial grayscale, sepia warmth, and slightly reduced saturation for a retro photographic look. No blur — effective over image backgrounds where you want the image detail preserved but color-shifted.
Blur Only
blur(20px)
The simplest possible backdrop effect — just a strong Gaussian blur with no color manipulation. Useful when you want to obscure background content completely without changing colors.
Browser Support and the -webkit- Prefix
backdrop-filter has broad modern browser support but requires the -webkit- vendor prefix for Safari and iOS Safari:
| Browser | Support |
|---|---|
| Chrome 76+ | backdrop-filter (no prefix needed) |
| Firefox 103+ | backdrop-filter (no prefix needed) |
| Safari 9+ | -webkit-backdrop-filter (prefix required) |
| iOS Safari 9+ | -webkit-backdrop-filter (prefix required) |
| Edge 79+ | backdrop-filter (no prefix needed) |
Always write both declarations for maximum compatibility:
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
Performance Considerations
backdrop-filter is GPU-accelerated in modern browsers, but heavy blur values (> 20px) on large elements can affect frame rates on lower-end devices. Recommendations:
- Limit blur radius to 16–20 px for large full-screen overlays.
- Avoid animating
backdrop-filtercontinuously (e.g., on scroll) — apply it only to static UI elements like cards, navbars, and modals. - Test on mobile — iOS and Android render
backdrop-filteron the GPU but may drop frames at very high blur values combined with complex layouts. - Use
will-change: backdrop-filtersparingly — only on elements where the filter changes dynamically (e.g., animated modal opening).
Frequently Asked Questions
Why is my backdrop-filter not showing any effect?
The element must have some transparency. If background-color is fully opaque (e.g., rgb(255,255,255) with no alpha), the backdrop filter has nothing to show through. Set background: rgba(255,255,255,0.15) or any semi-transparent color.
Does backdrop-filter work inside a transform or will-change?
Yes, but with a caveat: elements with transform, filter, or will-change: transform create a new stacking context, which can clip the backdrop to the element’s own subtree in some cases. Test in both Chrome and Safari if you’re combining backdrop-filter with CSS transforms.
Can I animate backdrop-filter?
Yes. backdrop-filter is animatable and transitions smoothly. Example:
.panel {
backdrop-filter: blur(0px);
transition: backdrop-filter 0.3s ease;
}
.panel.open {
backdrop-filter: blur(12px);
}
What is the difference between filter and backdrop-filter?
filter applies to the element and all its content (like a photo filter on a layer). backdrop-filter applies only to the area behind the element — the element’s own content is unaffected. For example, text inside a frosted glass card is rendered normally; only the background shows through the frost.
Is my design data sent to a server? No. All CSS generation happens entirely in your browser. No data is transmitted anywhere and nothing is tracked.