filter

요소에 밝기, 그레이스케일, 색상 조절 등 시각적 효과를 적용합니다. 자식 요소를 포함한 전체 렌더링 결과에 영향을 주며, backdrop-filter는 요소 뒤의 배경에만 효과를 적용합니다.

클래스 목록

<tr> <th class="tal py12px px16px bg18181B bb2pxsolid27272A cA1A1AA fw600 ttu fs12px ls0-05em">클래스CSS설명
filterb5pxfilter: blur(5px)배경 블러 5px
filterbr150pfilter: brightness(150%)밝기 150% (밝게)
filterbr80pfilter: brightness(80%)밝기 80% (어둡게)
filterc120pfilter: contrast(120%)대비 120% (선명)
filterc80pfilter: contrast(80%)대비 80% (부드럽게)
filterg100pfilter: grayscale(100%)완전한 흑백
filterg50pfilter: grayscale(50%)50% 흑백
filterhr90degfilter: hue-rotate(90deg)색상 90도 회전
filterhr180degfilter: hue-rotate(180deg)색상 180도 회전
filteri100pfilter: invert(100%)색상 반전 (네거티브)
filtero50pfilter: opacity(50%)불투명도 50%
filtersa200pfilter: saturate(200%)채도 200% (선명한 색상)
filterds2px4px8px000000filter: drop-shadow(2px 4px 8px #000000)드롭 섀도우
filterinhfilter: inherit부모 필터 상속
filterufilter: unset필터 초기화
filternfilter: none부모 필터 상속
filterinitfilter: initial필터 초기화
bfb5pxbackdrop-filter: blur(5px)배경 블러 5px
bfb12pxbackdrop-filter: blur(12px)배경 블러 12px

패턴 구조

filter 클래스는 필터 함수의 약어 + 값 + 단위로 구성됩니다.

<tr> <th class="tal py12px px16px bg18181B bb2pxsolid27272A cA1A1AA fw600 ttu fs12px ls0-05em">접두사함수단위예시
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: inherit없음filterinh
filterufilter: unset없음filteru
filternfilter: none없음filtern
filterinitfilter: initial없음filterinit
bfbbackdrop-filter: blur()pxbfb5px, bfb12px
bfbrbackdrop-filter: brightness()p (%)bfbr80p, bfbr120p

시각적 비교

각 filter가 요소에 미치는 효과를 비교합니다.

원본 —

필터 없음. 비교 기준입니다.

Brightness 150% — filterbr150p

filterbr150p: 밝기 증가. 전체적으로 밝아집니다.

Brightness 50% — filterbr50p

filterbr50p: 밝기 감소. 전체적으로 어두워집니다.

Grayscale — filterg100p

filterg100p: 완전한 흑백. 색상 정보가 제거됩니다.

Contrast — filterc200p

filterc200p: 대비 강화. 밝은 부분은 더 밝고 어두운 부분은 더 어둡습니다.

Hue Rotate — filterhr90deg

filterhr90deg: 색상 90도 회전. 모든 색상이 변경됩니다.

Invert — filteri100p

filteri100p: 색상 반전. 네거티브 효과입니다.

Saturate — filtersa200p

filtersa200p: 채도 200%. 색상이 더 선명해집니다.

Opacity — filtero50p

filtero50p: 불투명도 50%. 반투명 효과입니다.

필터별 상세

filterbfilter: blur()

filterb 접두사로 blur 효과를 적용합니다. 단위는 px, rem, em 등 자유롭게 사용 가능합니다. 예: 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>

주요 클래스

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

filterbrfilter: brightness()

요소의 밝기를 조절합니다. 100%가 원본이며, 그 이상은 밝아지고 이하는 어두워집니다. 이미지 호버 효과나 다크모드 조정에 유용합니다.

<!-- 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>

주요 클래스

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

filtergfilter: grayscale()

요소를 흑백으로 변환합니다. 100%면 완전한 흑백, 0%면 원본 색상입니다. 비활성 상태 표시, 호버 시 컬러 복원 효과에 자주 사용합니다.

<!-- 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="..." />

주요 클래스

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

filterdsfilter: drop-shadow()

요소의 실제 형태를 따르는 그림자를 추가합니다. box-shadow와 달리 투명 영역을 무시하고 콘텐츠 형태에 맞는 그림자를 생성합니다. PNG 아이콘, SVG 등에 유용합니다.

패턴

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>

예시 클래스

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

요소 자체가 아닌 요소 뒤의 배경에 필터를 적용합니다. 글래스모피즘(유리 효과) 구현에 핵심이며, bf 접두사 뒤에 filter와 동일한 함수 약어를 사용합니다.

<!-- 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>

주요 클래스

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

호버 조합

transition과 함께 사용하면 부드러운 필터 전환 효과를 만들 수 있습니다.

<!-- 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="..." />
<tr> <th class="tal py12px px16px bg18181B bb2pxsolid27272A cA1A1AA fw600 ttu fs12px ls0-05em">클래스 조합효과
filterg100p hover-filterg0p tall300msease흑백에서 컬러로 전환 (포트폴리오, 팀 소개)
filterbr80p hover-filterbr110p tall200msease어두운 상태에서 밝게 (이미지 갤러리)
filtersa50p hover-filtersa200p tall300msease저채도에서 고채도로 (이미지 강조)
filteri100p hover-filteri0p tall300msease반전에서 원본으로 (인터랙티브 효과)
o50 hover-o100 filterg100p hover-filterg0p tall300msease페이드 + 흑백 해제 조합

drop-shadow vs box-shadow

filterds(drop-shadow)와 box-shadow는 모두 그림자를 추가하지만, 적용 방식이 다릅니다.

drop-shadow (filterds)box-shadow
적용 대상콘텐츠의 실제 형태 (투명 영역 무시)요소의 박스 (border-box 기준)
투명 PNG/SVG형태를 따라 그림자 생성사각 박스 기준 그림자
inset 지원불가가능 (내부 그림자)
spread 지원불가가능 (그림자 확장)
다중 적용CSS에서만 가능쉼표로 다중 적용 가능
주요 용도아이콘, 비정형 요소 그림자카드, 버튼, 박스 그림자

팁 & 주의사항

자식 요소 포함

filter는 요소와 모든 자식에 적용됩니다. 부모에 filterg100p를 주면 자식도 흑백이 됩니다. 배경만 블러하려면 bfb5px(backdrop-filter)를 사용하세요.

drop-shadow는 형태를 따름

filterds는 투명 영역을 무시하고 실제 콘텐츠 형태에 맞는 그림자를 생성합니다. PNG 아이콘이나 SVG에 그림자를 줄 때 box-shadow보다 자연스럽습니다.

필터 조합 불가

Atomic CSS에서 한 요소에 여러 filter 클래스를 적용하면 마지막 값만 적용됩니다. 여러 필터를 동시에 사용하려면 중첩 요소에 각각 적용하세요.

성능 고려

filter와 backdrop-filter는 GPU를 사용하지만, 큰 요소나 많은 요소에 적용하면 성능에 영향을 줄 수 있습니다. 특히 모바일에서 backdrop-filter의 블러 값은 적절히 제한하세요.