이 CSS filter 생성기는 가장 많이 쓰는 필터 함수 아홉 가지(blur, brightness, contrast, grayscale, hue-rotate, invert, saturate, sepia, opacity)를 하나의 filter 값으로 합쳐 줍니다. 각각 슬라이더를 움직이면 샘플 풍경이 바로 바뀌고(전후 비교 구분선을 끌어 보거나 내 이미지를 로컬로 불러올 수도 있습니다), 복사 버튼은 완성된 선언을 줍니다.
흰 글자가 읽히도록 히어로 사진을 어둡게 하거나, 로고 모음을 호버 전까지 흑백으로 두거나, 썸네일에 빈티지한 세피아 톤을 주거나, 흐릿한 뒷배경을 만들 때 흔히 씁니다. 필터는 누적되기 때문에 아홉 값을 함께 보는 것이 중요합니다. brightness(60%) 뒤에 contrast(110%)를 적용한 결과는 둘 중 어느 하나만 쓴 결과와 다르게 보입니다.
출력에는 바꾼 함수만 고정된 순서로 나오고, blur(0px)나 brightness(100%)처럼 아무것도 바꾸지 않는 중립 값은 빠집니다. 아홉 개를 모두 보고 싶으면 스위치를 켜세요. drop-shadow(), url() SVG 필터, backdrop-filter는 들어 있지 않습니다. 입력한 값과 고른 이미지는 브라우저 안에서 처리되며 업로드되지 않습니다.
사용 방법
기본값 또는 중립 값에서 시작
페이지는 빈티지 예제로 열리고, 슬라이더 위 칩으로 다섯 가지 분위기를 더 불러올 수 있습니다. 깨끗하게 시작하려면 모든 슬라이더를 중립 값(blur 0, brightness 100, contrast 100, grayscale 0, hue 0, invert 0, saturate 100, sepia 0, opacity 100)으로 돌리세요. 결과는
filter: none;이 됩니다.한 번에 한 값씩 조절
슬라이더 하나만 움직이며 구분선으로 원본과 비교해 보세요. 범위는 blur 0~30px, brightness 0~200%, contrast 0~200%, grayscale 0~100%, hue -180~180도, invert 0~100%, saturate 0~300%, sepia 0~100%, opacity 0~100%입니다.
효과 조합
밝기를 낮추고 대비를 올리는 식으로 두세 가지를 더해 보고, 각각이 아니라 조합의 결과를 판단하세요.
filter 줄 복사
filter: ...;를 복사해 이미지나 요소의 규칙에 붙여 넣습니다. 중립 함수를 포함한 아홉 개를 모두 적고 싶을 때만 '모든 함수 출력'을 켜세요.
작동 원리
각 함수가 하는 일
필터 함수는 W3C의 Filter Effects Module Level 1에 정의되어 있습니다. 퍼센트 기반 함수 대부분은 각 픽셀에 적용되는 색 행렬로 정의됩니다. brightness(100%)와 contrast(100%)는 이미지를 바꾸지 않고, saturate(0%)는 완전한 회색, saturate(300%)는 매우 강렬한 색입니다. grayscale(100%), sepia(100%), invert(100%)는 각 효과의 최대치입니다.
hue-rotate(각도)는 색상환을 각도만큼 돌립니다. 180deg는 빨강을 청록으로 바꾸고 360deg는 원래 색으로 돌아옵니다. blur(반지름)은 반지름을 픽셀 단위 표준편차로 하는 가우시안 블러이고, opacity()는 opacity 속성과 같게 동작하지만 필터 체인의 해당 단계에서 적용됩니다.
| 함수 | 중립 값 | 이 도구의 범위 |
|---|---|---|
| blur | 0px | 0 ~ 30 |
| brightness | 100% | 0 ~ 200 |
| contrast | 100% | 0 ~ 200 |
| grayscale | 0% | 0 ~ 100 |
| hue-rotate | 0deg | -180 ~ 180 |
| invert | 0% | 0 ~ 100 |
| saturate | 100% | 0 ~ 300 |
| sepia | 0% | 0 ~ 100 |
| opacity | 100% | 0 ~ 100 |
순서가 결과를 바꾼다
목록의 필터는 왼쪽에서 오른쪽으로, 각각 앞 단계의 결과에 적용됩니다. grayscale(100%) sepia(100%)는 따뜻한 갈색이 되지만, sepia(100%) grayscale(100%)는 마지막 단계가 색을 모두 지우므로 평범한 회색이 됩니다. 생성기는 blur, brightness, contrast, grayscale, hue-rotate, invert, saturate, sepia, opacity의 고정된 순서를 쓰고 바꾼 것만 출력합니다.
순서가 고정이므로 grayscale이 강하게 걸리면 뒤에 오는 hue-rotate와 saturate는 건드릴 색이 거의 없습니다. sepia 이후에 색을 옮기고 싶다면 순서를 직접 써야 합니다.
filter를 쓸 때의 부작용
none이 아닌 값은 transform처럼 새로운 쌓임 맥락과 fixed·absolute 자손의 기준 상자를 만듭니다. 큰 블러 반지름은 그리는 비용이 크며, blur()는 요소 자체의 가장자리도 흐리게 하므로 부모가 잘라 주지 않으면 가로로 꽉 찬 블러 이미지의 테두리에 옅은 번짐이 보일 수 있습니다.
실제 예시
blur 4, brightness 110, contrast 120, grayscale 20, hue 12, invert 0, saturate 140, sepia 8, opacity 95filter: blur(4px) brightness(110%) contrast(120%) grayscale(20%) hue-rotate(12deg) saturate(140%) sepia(8%) opacity(95%);invert(0%)는 중립 값이라 빠집니다.
blur 0, brightness 100, contrast 100, grayscale 0, hue 0, invert 0, saturate 100, sepia 0, opacity 100filter: none;모든 함수가 중립이라 출력할 것이 없습니다. '모든 함수 출력'을 켜면 blur(0px)부터 opacity(100%)까지 아홉 개가 나옵니다.
grayscale 100, 나머지는 중립filter: grayscale(100%);호버 시 filter: none을 주면 원래 색이 드러납니다.
brightness 60, contrast 110, saturate 80, 나머지는 중립filter: brightness(60%) contrast(110%) saturate(80%);60%로 어둡게 하면 이미지 위에 놓은 흰 글자의 대비가 높아집니다.
blur 31Use values within the supported ranges블러는 30px이 상한입니다. 음수이거나 다른 항목의 범위를 넘는 값도 같은 메시지가 나옵니다.
자주 하는 실수
배경 레이어가 아닌 컨테이너에 blur 적용
카드에
filter: blur()를 주면 글자도 흐려집니다. 유리 효과 패널은 별도의 배경 요소를 흐리게 하거나, 직접 쓰는 CSS에서 패널에backdrop-filter를 쓰세요.운영 코드에 모든 함수 출력
'모든 함수 출력'을 켜면 실제로 쓰는 함수 옆에
blur(0px),invert(0%)도 나옵니다. 아무것도 바꾸지 않으면서 군더더기와 약간의 처리 비용만 더하므로, 전체 틀이 필요한 경우가 아니라면 꺼 두세요.투명 이미지에 invert
invert()는 색 채널만 뒤집으므로 투명 배경의 검정 로고는 흰색이 되고 투명한 픽셀은 그대로 투명입니다. 다크 모드에는 유용하지만 사진에는 뜻밖의 결과가 나옵니다.큰 영역에서 애니메이션되는 필터
전체 화면 요소에서 큰 블러나 hue-rotate를 애니메이션하면 휴대폰에서 프레임이 떨어질 수 있습니다. 작은 영역에 짧은 전환을 쓰거나 이미지를 미리 가공하세요.
filter 안의 opacity와 opacity 속성
단독으로는 똑같이 보이지만
filter안에서는 순서에 따라 단계로 실행됩니다. 단순한 페이드는 일반opacity속성이 더 명확하고 애니메이션 비용도 낮습니다.
자주 묻는 질문
CSS로 이미지를 흑백으로 만들려면?
filter: grayscale(100%)를 쓰세요. 0~100% 사이 값은 부분적으로 채도를 낮추고, filter: none은 원래 색으로 되돌립니다.
saturate와 grayscale은 어떻게 다른가요?
grayscale(100%)는 색을 완전히 없애며 범위가 100%에서 끝납니다. saturate()는 양방향이어서 0%는 회색, 100%는 변화 없음, 300%는 색을 과장합니다.
CSS filter 함수의 순서가 중요한가요?
네. 왼쪽에서 오른쪽으로 각각 앞 결과에 적용됩니다. grayscale 뒤에 sepia를 쓰면 갈색 톤이 남지만 sepia 뒤에 grayscale을 쓰면 회색으로 끝납니다.
hue-rotate는 무엇을 하나요?
모든 색을 색상환에서 주어진 각도만큼 돌립니다. 180deg는 대략 보색으로 바꾸고 360deg는 아무 변화도 없습니다. 회색은 그대로 회색입니다.
블러가 30px로 제한된 이유는?
큰 블러 반지름은 그리는 비용이 크고 쓸 일이 드뭅니다. 이 도구는 미리보기가 부드럽게 동작하도록 30px로 제한합니다. 하나의 요소에 더 강한 블러가 필요하면 값을 직접 고치세요.
filter는 이미지에만 쓰나요, 글자에도 되나요?
어떤 요소에든 적용됩니다. 글자, 테두리, 배경을 포함한 요소와 자식이 그려진 결과에 필터가 적용됩니다.
filter와 backdrop-filter는 어떻게 다른가요?
filter는 요소 자체를 바꾸고, backdrop-filter는 반투명한 요소 뒤에 보이는 내용을 바꿉니다. 유리 효과는 후자로 만듭니다.
마지막 업데이트:
