filter

Applies visual effects such as brightness, grayscale, and color adjustments to elements. Affects the entire rendered result including child elements, while backdrop-filter applies effects only to the background behind the element.

Class List

ClassCSSDescription
filterb5pxfilter: blur(5px)Background blur 5px
filterbr150pfilter: brightness(150%)Brightness 150% (brighter)
filterbr80pfilter: brightness(80%)Brightness 80% (darker)
filterc120pfilter: contrast(120%)Contrast 120% (sharp)
filterc80pfilter: contrast(80%)Contrast 80% (soft)
filterg100pfilter: grayscale(100%)Full grayscale
filterg50pfilter: grayscale(50%)50% grayscale
filterhr90degfilter: hue-rotate(90deg)Hue rotation 90deg
filterhr180degfilter: hue-rotate(180deg)Hue rotation 180deg
filteri100pfilter: invert(100%)Color inversion (negative)
filtero50pfilter: opacity(50%)Opacity 50%
filtersa200pfilter: saturate(200%)Saturation 200% (vivid colors)
filters50pfilter: sepia(50%)Sepia effect. 100% is full sepia
filterds2px4px8px000000filter: drop-shadow(2px 4px 8px #000000)Drop shadow
filterinhfilter: inheritInherit parent filter
filterufilter: unsetReset filter
filternfilter: noneInherit parent filter
filterinitfilter: initialReset filter
bfb5pxbackdrop-filter: blur(5px)Background blur 5px
bfb12pxbackdrop-filter: blur(12px)Background blur 12px

Pattern Structure

Filter classes consist of filter function abbreviation + value + unit.

PrefixFunctionUnitExample
filterbblur()px, rem, emfilterb5px, filterb2rem, filterb0-5em
filterbrbrightness()p (%)filterbr120p, filterbr150p, filterbr80p
filterccontrast()p (%)filterc80p, filterc120p, filterc200p
filterggrayscale()p (%)filterg100p, filterg50p, filterg0p
filterhrhue-rotate()deg, rad, turnfilterhr90deg, filterhr180deg, filterhr270deg
filteriinvert()p (%)filteri100p, filteri50p
filteroopacity()p (%)filtero50p, filtero80p
filtersasaturate()p (%)filtersa200p, filtersa50p
filterssepia()p (%)filters50p, filters100p
filterdsdrop-shadow()px + HEXfilterds2px4px8px000000
filterinhfilter: inheritNonefilterinh
filterufilter: unsetNonefilteru
filternfilter: noneNonefiltern
filterinitfilter: initialNonefilterinit
bfbbackdrop-filter: blur()pxbfb5px, bfb12px
bfbrbackdrop-filter: brightness()p (%)bfbr80p, bfbr120p

Visual Comparison

Compares the effect of each filter on elements.

Original —

No filter. Reference for comparison.

Brightness 150% — filterbr150p

filterbr150p: Increased brightness. Overall brighter.

Brightness 50% — filterbr50p

filterbr50p: Decreased brightness. Overall darker.

Grayscale — filterg100p

filterg100p: Full grayscale. Color information is removed.

Contrast — filterc200p

filterc200p: Enhanced contrast. Bright areas are brighter and dark areas are darker.

Hue Rotate — filterhr90deg

filterhr90deg: 90deg hue rotation. All colors are shifted.

Invert — filteri100p

filteri100p: Color inversion. Negative effect.

Saturate — filtersa200p

filtersa200p: 200% saturation. Colors become more vivid.

Opacity — filtero50p

filtero50p: 50% opacity. Semi-transparent effect.

Filter Details

filterbfilter: blur()

Use the filterb prefix to apply blur effects. Units are flexible: px, rem, em, etc. Example: filterb5px, filterb0-5rem

<!-- Blur effect -->
<div class="filterb5px">Blurred content (5px)</div>

<!-- Various blur strengths -->
<div class="filterb2px">Subtle blur (2px)</div>
<div class="filterb10px">Strong blur (10px)</div>
<div class="filterb0-5rem">Blur with rem (0.5rem)</div>

Key Classes

filterb2pxfilter: blur(2px)
filterb5pxfilter: blur(5px)
filterb10pxfilter: blur(10px)
filterb0-5remfilter: blur(0.5rem)
filterb2remfilter: blur(2rem)

filterbrfilter: brightness()

Adjusts element brightness. 100% is the original; above is brighter, below is darker. Useful for image hover effects and dark mode adjustments.

<!-- Dark overlay effect -->
<img class="filterbr50p" src="hero.jpg" />

<!-- Increase brightness on hover -->
<img class="filterbr80p hover-filterbr100p tall200msease cp" src="..." />

<!-- Bright highlight -->
<div class="filterbr150p">Brightened area</div>

Key Classes

filterbr50pfilter: brightness(50%)
filterbr80pfilter: brightness(80%)
filterbr100pfilter: brightness(100%)
filterbr120pfilter: brightness(120%)
filterbr150pfilter: brightness(150%)
filterbr200pfilter: brightness(200%)

filtergfilter: grayscale()

Converts elements to grayscale. 100% is full grayscale, 0% is original colors. Commonly used for inactive state display and color restoration on hover.

<!-- Grayscale image (color restored on hover) -->
<img class="filterg100p hover-filterg0p tall300msease cp" src="..." />

<!-- Disabled state indicator -->
<div class="filterg100p o50">Disabled Status</div>

<!-- Partial grayscale -->
<img class="filterg50p" src="..." />

Key Classes

filterg0pfilter: grayscale(0%)
filterg25pfilter: grayscale(25%)
filterg50pfilter: grayscale(50%)
filterg75pfilter: grayscale(75%)
filterg100pfilter: grayscale(100%)

filterdsfilter: drop-shadow()

Adds a shadow that follows the actual shape of the element. Unlike box-shadow, it ignores transparent areas and generates shadows matching the content shape. Useful for PNG icons, SVGs, etc.

Pattern

filterds{X}px{Y}px{blur}px{HEX6}
<!-- Shadow on icon -->
<svg class="filterds2px4px8px000000">...</svg>

<!-- Shadow following shape of PNG image -->
<img class="filterds4px4px10px000000" src="logo.png" />

<!-- Colored shadow -->
<div class="filterds2px4px8px6366F1">Indigo shadow</div>

Example Classes

filterds2px2px4px000000filter: drop-shadow(2px 2px 4px #000000)
filterds2px4px8px000000filter: drop-shadow(2px 4px 8px #000000)
filterds4px4px10px6366F1filter: drop-shadow(4px 4px 10px #6366F1)
filterds0px0px8px000000filter: drop-shadow(0px 0px 8px #000000)

bf*backdrop-filter

Applies filters to the background behind the element, not the element itself. Essential for glassmorphism (glass effect) implementation. Uses the same function abbreviations as filter after the bf prefix.

<!-- Glassmorphism (glass effect) -->
<div class="bfb12px bg255-255-255-10 br12px p2rem">
  Glass effect overlay with blurred background
</div>

<!-- Dark glass -->
<div class="bfb10px bg0-0-0-50 br8px p2rem cFFFFFF">
  Semi-transparent dark overlay
</div>

<!-- Glass effect on header -->
<header class="pf t0 l0 w100p bfb12px bg0-0-0-30 py12px px2rem zi100">
  <nav>Navigation</nav>
</header>

Key Classes

bfb5pxbackdrop-filter: blur(5px)
bfb10pxbackdrop-filter: blur(10px)
bfb12pxbackdrop-filter: blur(12px)
bfb2rembackdrop-filter: blur(2rem)
bfbr80pbackdrop-filter: brightness(80%)
bfbr120pbackdrop-filter: brightness(120%)

Hover Combinations

Combined with transition, you can create smooth filter transition effects.

<!-- Grayscale → color (portfolio) -->
<img class="filterg100p hover-filterg0p tall300msease cp" src="..." />

<!-- Brightness adjustment (gallery) -->
<img class="filterbr80p hover-filterbr110p tall200msease cp" src="..." />

<!-- Saturation adjustment -->
<img class="filtersa50p hover-filtersa200p tall300msease cp" src="..." />

<!-- Invert → original -->
<img class="filteri100p hover-filteri0p tall300msease cp" src="..." />
Class CombinationEffect
filterg100p hover-filterg0p tall300mseaseGrayscale to color transition (portfolio, team intro)
filterbr80p hover-filterbr110p tall200mseaseDark to bright (image gallery)
filtersa50p hover-filtersa200p tall300mseaseLow to high saturation (image emphasis)
filteri100p hover-filteri0p tall300mseaseInverted to original (interactive effect)
o50 hover-o100 filterg100p hover-filterg0p tall300mseaseFade + grayscale removal combination

drop-shadow vs box-shadow

filterds(drop-shadow) and box-shadow both add shadows, but apply them differently.

drop-shadow (filterds)box-shadow
Applied toActual shape of content (ignores transparent areas)Element box (based on border-box)
Transparent PNG/SVGGenerates shadow following the shapeShadow based on rectangular box
Inset supportNot possiblePossible (inner shadow)
Spread supportNot possiblePossible (shadow spread)
Multiple applicationOnly possible in CSSMultiple via comma separation
Common Use CasesShadows for icons, irregular elementsShadows for cards, buttons, boxes

Tips & Notes

Includes child elements

Filters apply to the element and all its children. Applying filterg100p to a parent makes children grayscale too. To blur only the background, use bfb5px(backdrop-filter).

drop-shadow follows the shape

filterds ignores transparent areas and generates shadows matching the actual content shape. More natural than box-shadow when adding shadows to PNG icons or SVGs.

Filters cannot be combined

In Atomic CSS, applying multiple filter classes to one element only applies the last value. To use multiple filters simultaneously, apply them to nested elements individually.

Performance considerations

filter and backdrop-filter use the GPU, but applying them to large or many elements can impact performance. Especially on mobile, limit backdrop-filter blur values appropriately.