TXT · Text & Data tools

CSS Filter Generator

Live filter preview

Building a filter stack

Each slider controls one CSS filter function. Moving Brightness to 120% adds brightness(120%) to the output; leaving it at its neutral 100% leaves that function out of the generated rule entirely, so the CSS you copy only lists the functions actually doing something.

Neutral values

Every filter function has a starting point where it has no visual effect: 100% for brightness, contrast, and saturate, 0 for hue-rotate, grayscale, sepia, invert, and blur, and 100% for opacity. Sliders below or above that point brighten, dim, saturate, or desaturate the element.

drop-shadow vs box-shadow

filter: drop-shadow() traces the actual rendered shape of an element, including any transparency, rather than its rectangular bounding box. That makes it the correct choice for casting a shadow behind a logo, icon, or cutout image; use box-shadow when the element is a plain rectangular card or panel.

Filter vs backdrop-filter

filter changes how an element and its children render. backdrop-filter instead blurs or adjusts whatever sits behind an element, which is the effect behind frosted-glass panels. This generator builds filter rules; reach for a glassmorphism-style backdrop blur separately when the effect needs to apply to the background rather than the element itself.

Frequently Asked Questions

A single filter CSS declaration combining whichever functions you adjust away from their neutral value: brightness(), contrast(), saturate(), hue-rotate(), grayscale(), sepia(), invert(), opacity(), blur(), and drop-shadow(). Functions left at their default are omitted from the output.

box-shadow always follows an element's rectangular box, even around transparent corners or a PNG's empty pixels. filter: drop-shadow() follows the actual alpha shape of the content instead, so a shadow cast by a transparent logo or icon hugs its visible outline.

In the order they're written in the filter value. Each function processes the output of the one before it, so grayscale() before sepia() produces a different result than sepia() before grayscale().

filter works on any element, not just images, but it affects the element and everything inside it, including text and child elements. To blur or brighten only what's behind a semi-transparent panel without affecting its own content, use backdrop-filter instead.

Explore Our Tools

Browse all tools