๋ธ๋ผ์ฐ์ ๋ด์์ ์ง์ ์ด๋ฏธ์ง ์กฐ์, ์๊ฐ์ ํฅ์, ์ฐฝ์์ ์ธ ๋์์ธ์ ์ํด CSS ํํฐ ํจ๊ณผ์ ๊ฐ๋ ฅํจ์ ํ๊ตฌํ์ธ์. ๋ธ๋ฌ, ๋ฐ๊ธฐ, ๋๋น, ํ๋ฐฑ, ์์กฐ ํ์ , ๋ฐ์ , ๋ถํฌ๋ช ๋, ์ฑ๋, ์ธํผ์, ์ฌ์ฉ์ ์ง์ ํํฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋๋ผ์ด ์๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
CSS ํํฐ ํจ๊ณผ: ๋ธ๋ผ์ฐ์ ๋ด ์ด๋ฏธ์ง ์ฒ๋ฆฌ
์น ๊ฐ๋ฐ์ ์ญ๋์ ์ธ ์ธ๊ณ์์ ์๊ฐ์ ๋งค๋ ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. CSS ํํฐ ํจ๊ณผ๋ ๋ธ๋ผ์ฐ์ ๋ด์์ ์ง์ ์ด๋ฏธ์ง์ ์์๋ฅผ ์กฐ์ํ๋ ๊ฐ๋ ฅํ๊ณ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๋ง์ ๊ฒฝ์ฐ ์ธ๋ถ ์ด๋ฏธ์ง ํธ์ง ์ํํธ์จ์ด๊ฐ ํ์ํ์ง ์๊ฒ ํฉ๋๋ค. ์ด ๊ธฐ์ฌ์์๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ถํฐ ๊ณ ๊ธ ๊ธฐ์ ๋ฐ ์ฌ์ฉ์ ์ง์ ํํฐ ๊ธฐ๋ฅ์ ์ด๋ฅด๊ธฐ๊น์ง CSS ํํฐ์ ๋ค์ฌ๋ค๋ฅํจ์ ์ดํด๋ด ๋๋ค.
CSS ํํฐ ํจ๊ณผ๋ ๋ฌด์์ ๋๊น?
CSS ํํฐ ํจ๊ณผ๋ ๋ธ๋ผ์ฐ์ ์ ํ์๋๊ธฐ ์ ์ ์์์ ์๊ฐ ํจ๊ณผ๋ฅผ ์ ์ฉํ ์ ์๋ CSS ์์ฑ ์งํฉ์ ๋๋ค. ์ด๋ฌํ ํจ๊ณผ๋ Adobe Photoshop ๋๋ GIMP์ ๊ฐ์ ์ด๋ฏธ์ง ํธ์ง ์ํํธ์จ์ด์์ ๋ฐ๊ฒฌ๋๋ ํจ๊ณผ์ ์ ์ฌํฉ๋๋ค. ์น ํ์ด์ง์์ ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์๊ฐ์ ์ฝํ ์ธ ๋ฅผ ํฅ์, ๋ณํ ๋ฐ ์คํ์ผ ์ง์ ํ๊ธฐ ์ํ ๊ด๋ฒ์ํ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
๋ฏธ๋ฆฌ ํธ์ง๋ ์ด๋ฏธ์ง์๋ง ์์กดํ๋ ๋์ CSS ํํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์๊ฐ ์ด๋ฏธ์ง ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ์ฌ ์น ์ฌ์ดํธ์ ๋ฏธ์ ๊ฐ๊ฐ์ ๋์ฑ ์ ์ฐํ๊ณ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ ์ด๋ฏธ์ง๊ฐ ์๋ก ๋ค๋ฅธ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ์ ์ํด์ผ ํ๋ ๋ฐ์ํ ๋์์ธ์ ํนํ ์ ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ CSS ํํฐ ์์ฑ
CSS ํํฐ๋ filter ์์ฑ์ ์ฌ์ฉํ์ฌ ์ ์ฉ๋ฉ๋๋ค. ์ด ์์ฑ์ ๊ฐ์ ์ํ๋ ํจ๊ณผ๋ฅผ ์ง์ ํ๋ ํจ์์
๋๋ค. ๋ค์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ CSS ํํฐ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ์์
๋๋ค.
blur(): ์์์ ๊ฐ์ฐ์์ ๋ธ๋ฌ๋ฅผ ์ ์ฉํฉ๋๋ค. ๊ฐ์ด ํด์๋ก ์์๊ฐ ๋ ํ๋ ค์ง๋๋ค.brightness(): ์์์ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค. 1๋ณด๋ค ํฐ ๊ฐ์ ๋ฐ๊ธฐ๋ฅผ ๋์ด๊ณ 1๋ณด๋ค ์์ ๊ฐ์ ๋ฐ๊ธฐ๋ฅผ ๋ฎ์ถฅ๋๋ค.contrast(): ์์์ ๋๋น๋ฅผ ์กฐ์ ํฉ๋๋ค. 1๋ณด๋ค ํฐ ๊ฐ์ ๋๋น๋ฅผ ๋์ด๊ณ 1๋ณด๋ค ์์ ๊ฐ์ ๋๋น๋ฅผ ๋ฎ์ถฅ๋๋ค.grayscale(): ์์๋ฅผ ํ๋ฐฑ์ผ๋ก ๋ณํํฉ๋๋ค. ๊ฐ 1(๋๋ 100%)์ ์์์ ์์ ํ ์ ๊ฑฐํ๊ณ ๊ฐ 0์ ์์๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.hue-rotate(): ์์ํ ์ฃผ์์์ ์์์ ์์กฐ๋ฅผ ํ์ ํฉ๋๋ค. ๊ฐ์ ๋ ๋จ์๋ก ์ง์ ๋ฉ๋๋ค.invert(): ์์์ ์์์ ๋ฐ์ ํฉ๋๋ค. ๊ฐ 1(๋๋ 100%)์ ์์์ ์์ ํ ๋ฐ์ ํ๊ณ ๊ฐ 0์ ์์๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.opacity(): ์์์ ํฌ๋ช ๋๋ฅผ ์กฐ์ ํฉ๋๋ค. ๊ฐ 0์ ์์๋ฅผ ์์ ํ ํฌ๋ช ํ๊ฒ ๋ง๋ค๊ณ ๊ฐ 1์ ์์๋ฅผ ์์ ํ ๋ถํฌ๋ช ํ๊ฒ ๋ง๋ญ๋๋ค.saturate(): ์์์ ์ฑ๋๋ฅผ ์กฐ์ ํฉ๋๋ค. 1๋ณด๋ค ํฐ ๊ฐ์ ์ฑ๋๋ฅผ ๋์ด๊ณ 1๋ณด๋ค ์์ ๊ฐ์ ์ฑ๋๋ฅผ ๋ฎ์ถฅ๋๋ค.sepia(): ์์์ ์ธํผ์ ํค์ ์ ์ฉํฉ๋๋ค. ๊ฐ 1(๋๋ 100%)์ ์์์ ์ ์ฒด ์ธํผ์ ํจ๊ณผ๋ฅผ ์ ๊ณตํ๊ณ ๊ฐ 0์ ์์๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.drop-shadow(): ์์์ ๊ทธ๋ฆผ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด ํจ์๋ ๊ฐ๋ก ๋ฐ ์ธ๋ก ์คํ์ , ๋ธ๋ฌ ๋ฐ๊ฒฝ ๋ฐ ๊ทธ๋ฆผ์ ์์์ ํฌํจํ ์ฌ๋ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ค์ฉ์ ์ธ ์
CSS ํํฐ ํจ๊ณผ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ค์ฉ์ ์ธ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์์ 1: ์ด๋ฏธ์ง ํ๋ฆฌ๊ฒ ํ๊ธฐ
์ด๋ฏธ์ง๋ฅผ ํ๋ฆฌ๊ฒ ํ๋ ค๋ฉด blur() ํํฐ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ CSS ์ฝ๋๋ ์ด๋ฏธ์ง์ 5ํฝ์
๋ธ๋ฌ๋ฅผ ์ ์ฉํฉ๋๋ค.
img {
filter: blur(5px);
}
์์ 2: ๋ฐ๊ธฐ ๋ฐ ๋๋น ์กฐ์
์ด๋ฏธ์ง์ ๋ฐ๊ธฐ์ ๋๋น๋ฅผ ์กฐ์ ํ๋ ค๋ฉด brightness() ๋ฐ contrast() ํํฐ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ CSS ์ฝ๋๋ ์ด๋ฏธ์ง์ ๋ฐ๊ธฐ์ ๋๋น๋ฅผ ๋์
๋๋ค.
img {
filter: brightness(1.2) contrast(1.1);
}
์์ 3: ํ๋ฐฑ ํจ๊ณผ ๋ง๋ค๊ธฐ
ํ๋ฐฑ ํจ๊ณผ๋ฅผ ๋ง๋ค๋ ค๋ฉด grayscale() ํํฐ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ CSS ์ฝ๋๋ ์ด๋ฏธ์ง๋ฅผ ํ๋ฐฑ์ผ๋ก ๋ณํํฉ๋๋ค.
img {
filter: grayscale(100%);
}
์์ 4: ์ธํผ์ ํค ์ ์ฉ
์ธํผ์ ํค์ ์ ์ฉํ๋ ค๋ฉด sepia() ํํฐ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ CSS ์ฝ๋๋ ์ด๋ฏธ์ง์ ์ธํผ์ ํค์ ์ ์ฉํฉ๋๋ค.
img {
filter: sepia(80%);
}
์์ 5: ๊ทธ๋ฆผ์ ์ถ๊ฐ
๊ทธ๋ฆผ์๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด drop-shadow() ํํฐ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ CSS ์ฝ๋๋ ์ด๋ฏธ์ง์ ๊ทธ๋ฆผ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
img {
filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.5));
}
์ฌ๋ฌ ํํฐ ๊ฒฐํฉ
CSS ํํฐ์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ์ธก๋ฉด ์ค ํ๋๋ ์ฌ๋ฌ ํํฐ๋ฅผ ๊ฒฐํฉํ์ฌ ๋ณต์กํ ์๊ฐ ํจ๊ณผ๋ฅผ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋จ์ผ filter ์์ฑ์์ ์ฌ๋ฌ ํํฐ ํจ์๋ฅผ ํจ๊ป ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋์ด๋ ์์๋๋ก ํํฐ๋ฅผ ์ ์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋นํฐ์ง ์ฌ์ง ํจ๊ณผ๋ฅผ ๋ง๋ค๋ ค๋ฉด sepia(), contrast() ๋ฐ blur() ํํฐ๋ฅผ ๊ฒฐํฉํ ์ ์์ต๋๋ค.
img {
filter: sepia(0.6) contrast(1.2) blur(2px);
}
์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ
CSS ํํฐ๋ ์ด๋ฏธ์ง๋ฅผ ์กฐ์ํ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง๋ง ์ฑ๋ฅ์ ์ผ๋์ ๋๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํ์ด์ง์ ๋ง์ ์์์ ๋ณต์กํ ํํฐ๋ฅผ ์ ์ฉํ๋ฉด ํนํ ๊ตฌํ ์ฅ์น ๋๋ ๋ธ๋ผ์ฐ์ ์์ ๋ ๋๋ง ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋ค์์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๋ช ๊ฐ์ง ํ์ ๋๋ค.
- ํํฐ ์ ์คํ๊ฒ ์ฌ์ฉ: ํ์ํ ๋๋ง ํํฐ๋ฅผ ์ ์ฉํ๊ณ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ์ง ๋ง์ธ์.
- ์ด๋ฏธ์ง ํฌ๊ธฐ ์ต์ ํ: ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ๋ก๋ฉ ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ด๋ฏธ์ง๊ฐ ์น์ ๋ง๊ฒ ์ ์ ํ๊ฒ ์ต์ ํ๋์๋์ง ํ์ธํ์ธ์.
- ํ๋์จ์ด ๊ฐ์ ์ฌ์ฉ: ์ต์ ๋ธ๋ผ์ฐ์ ๋ ๋๋ถ๋ถ CSS ํํฐ์ ๋ํ ํ๋์จ์ด ๊ฐ์์ ํ์ฉํ์ง๋ง
transform: translateZ(0);์์ฑ์ ์์์ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ๋์ฑ ์ฅ๋ คํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํด๋น ์์๋ฅผ ์์ฒด ๋ ์ด์ด๋ก ๋ ๋๋งํ๋๋ก ๊ฐ์ ํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. - ๋ค์ํ ์ฅ์น์์ ํ ์คํธ: ํํฐ๊ฐ ์ ๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ค๋ฉด ํญ์ ๋ค์ํ ์ฅ์น์ ๋ธ๋ผ์ฐ์ ์์ ์น ์ฌ์ดํธ๋ฅผ ํ ์คํธํ์ธ์.
๋ธ๋ผ์ฐ์ ํธํ์ฑ
CSS ํํฐ ํจ๊ณผ๋ Chrome, Firefox, Safari ๋ฐ Edge๋ฅผ ํฌํจํ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ๋๋ฆฌ ์ง์๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ฒ์ ์ Internet Explorer๋ ๋ชจ๋ ํํฐ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ ์ ์์ต๋๋ค. ํ๋ก๋์ ์น ์ฌ์ดํธ์์ CSS ํํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ํ์ธํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
Can I Use(caniuse.com)์ ๊ฐ์ ์น์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ฐ ๋ฒ์ ์ ๊ฑธ์ณ CSS ํํฐ ํจ๊ณผ์ ํธํ์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์ฌ๋ก ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ
CSS ํํฐ ํจ๊ณผ๋ ๋ค์์ ํฌํจํ ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ: ํํฐ๋ฅผ ์ ์ฉํ์ฌ ๋ ํนํ๊ณ ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ธ ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค.
- ์ ํ ์ผ์ผ์ด์ค: ์ ํ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ํ์ฌ ์ธ๋ถ ์ฌํญ์ ๊ฐ์กฐํ๊ณ ๋์ฑ ๋งค๋ ฅ์ ์ธ ์ผํ ๊ฒฝํ์ ๋ง๋ญ๋๋ค.
- ํ์ด๋ก ์น์ : ๋ฏธ๋ฌํ ๋ธ๋ฌ, ๋ฐ๊ธฐ ๋๋ ๋๋น ์กฐ์ ์ ์ฌ์ฉํ์ฌ ํ์ด๋ก ์น์ ์ ์๊ฐ์ ํฅ๋ฏธ๋ฅผ ๋ํฉ๋๋ค.
- ์ํธ ์์ฉ ํจ๊ณผ: ๋ง์ฐ์ค ์ค๋ฒ ๋๋ ํด๋ฆญ ์ ํํฐ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ์ํธ ์์ฉ ํจ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค.
- ์ ๊ทผ์ฑ: ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์์ ๊ฐ๋ ์ฑ์ ๋์ด๊ธฐ ์ํด ๋๋น๋ฅผ ๋์ด๋ ๋ฑ ์น ์ฌ์ดํธ์ ์ ๊ทผ์ฑ์ ๊ฐ์ ํ๋ ๋ฐ ํํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํ ๋ง ๋ฐ ๋ธ๋๋ฉ: ์ฌ์ดํธ ํ ๋ง ๋๋ ๋ธ๋๋ ์์์ ๋ง๊ฒ ์ด๋ฏธ์ง ์์์ ์กฐ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋คํฌ ๋ชจ๋์ ๋ผ์ดํธ ๋ชจ๋ ์ฌ์ดํธ ๋์์ธ์ ๋ง๊ฒ ๋ก๊ณ ์ ์์ ๊ตฌ์ฑ์ ๋ฏธ๋ฌํ๊ฒ ๋ณ๊ฒฝํฉ๋๋ค.
๊ธฐ๋ณธ ํํฐ ์ด์: ์ฌ์ฉ์ ์ง์ ํํฐ ๊ธฐ๋ฅ(filter: url())
๋ด์ฅ๋ CSS ํํฐ ๊ธฐ๋ฅ์ ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํ์ง๋ง SVG(Scalable Vector Graphics) ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ง์ ํํฐ ๊ธฐ๋ฅ์ ๋ง๋ค ์๋ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํจ์ฌ ๋ ๊ณ ๊ธ์ค๋ฝ๊ณ ์ฐฝ์์ ์ธ ์ด๋ฏธ์ง ์กฐ์์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฌ์ฉ์ ์ง์ ํํฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด SVG ํ์ผ์์ ํํฐ๋ฅผ ์ ์ํ ๋ค์ filter: url() ์์ฑ์ ์ฌ์ฉํ์ฌ CSS์์ ์ฐธ์กฐํด์ผ ํฉ๋๋ค.
์: ์ฌ์ฉ์ ์ง์ ์์ ํ๋ ฌ ํํฐ ๋ง๋ค๊ธฐ
์์ ํ๋ ฌ ํํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณ์ ํ๋ ฌ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง์ ์์์ ๋ณํํ ์ ์์ต๋๋ค. ์ด๋ ์์ ๋ณด์ , ์์ ๊ต์ฒด ๋ฐ ์์ ์กฐ์๊ณผ ๊ฐ์ ๊ด๋ฒ์ํ ํจ๊ณผ๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋จผ์ ๋ค์ ๋ด์ฉ์ผ๋ก SVG ํ์ผ(์: custom-filter.svg)์ ๋ง๋ญ๋๋ค.
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="color-matrix">
<feColorMatrix type="matrix"
values="1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0" />
</filter>
</defs>
</svg>
์ด ์์ ์์ feColorMatrix ์์๋ ID๊ฐ color-matrix์ธ ์์ ํ๋ ฌ ํํฐ๋ฅผ ์ ์ํฉ๋๋ค. values ์์ฑ์ ํ๋ ฌ ๊ณ์๋ฅผ ์ง์ ํฉ๋๋ค. ๊ธฐ๋ณธ ํ๋ ฌ(ํญ๋ฑ ํ๋ ฌ)์ ์์์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์์์ ์กฐ์ํ๋ ค๋ฉด ๊ฐ ์์ฑ์ ์์ ํฉ๋๋ค.
๋ค์์ผ๋ก CSS์์ SVG ํํฐ๋ฅผ ์ฐธ์กฐํฉ๋๋ค.
img {
filter: url("custom-filter.svg#color-matrix");
}
์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์ ์ง์ ์์ ํ๋ ฌ ํํฐ๊ฐ ์ด๋ฏธ์ง์ ์ ์ฉ๋ฉ๋๋ค. ๋ค๋ฅธ ์์ ํจ๊ณผ๋ฅผ ๋ง๋ค๋ ค๋ฉด SVG ํ์ผ์์ values ์์ฑ์ ์์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฑ๋๋ฅผ ๋์ด๊ฑฐ๋, ์์์ ๋ฐ์ ์ํค๊ฑฐ๋, ๋์คํค ํจ๊ณผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ ๊ทผ์ฑ ๊ณ ๋ ค ์ฌํญ
CSS ํํฐ๋ฅผ ์ฌ์ฉํ ๋๋ ์ ๊ทผ์ฑ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํํฐ๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๊ฑฐ๋ ์๋ชป ์ฌ์ฉํ๋ฉด ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ๋ฅผ ์ธ์ํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- ์ถฉ๋ถํ ๋๋น ๋ณด์ฅ: ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ์ ๋ฐฐ๊ฒฝ ๊ฐ์ ๋๋น๋ฅผ ๋์ฌ ๊ฐ๋ ์ฑ์ ํฅ์์ํต๋๋ค.
- ๋์ฒด ํ ์คํธ ์ ๊ณต: ์ด๋ฏธ์ง๋ฅผ ๋ณผ ์ ์๋ ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ๋ฅผ ์ดํดํ ์ ์๋๋ก ํญ์ ์ด๋ฏธ์ง์ ๋ํ ์ค๋ช ๋์ฒด ํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๊น๋ฐ์ ๋๋ ์คํธ๋ก๋น ํจ๊ณผ ๋ฐฉ์ง: ๊ด๊ณผ๋ฏผ์ฑ ๊ฐ์ง์ด ์๋ ์ฌ์ฉ์์๊ฒ ๋ฐ์์ ์ ๋ฐํ ์ ์์ผ๋ฏ๋ก ๊น๋ฐ์ ๋๋ ์คํธ๋ก๋น ํจ๊ณผ๋ฅผ ๋ง๋๋ ํํฐ๋ฅผ ์ฌ์ฉํ ๋๋ ์ฃผ์ํ์ธ์.
- ๋ณด์กฐ ๊ธฐ์ ๋ก ํ ์คํธ: ์คํฌ๋ฆฐ ๋ฆฌ๋์ ๊ฐ์ ๋ณด์กฐ ๊ธฐ์ ๋ก ์น ์ฌ์ดํธ๋ฅผ ํ ์คํธํ์ฌ ํํฐ๊ฐ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ฐฉํดํ์ง ์๋์ง ํ์ธํฉ๋๋ค.
ํฅํ ํธ๋ ๋ ๋ฐ ๊ฐ๋ฐ
CSS ํํฐ ํจ๊ณผ๋ ์ง์์ ์ผ๋ก ๋ฐ์ ํ๊ณ ์์ผ๋ฉฐ CSS ์ฌ์์ ์๋ก์ด ํํฐ ๊ธฐ๋ฅ๊ณผ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๊ณ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ CSS ํํฐ์ ๋ํ ์ง์์ ๊ณ์ ๊ฐ์ ํจ์ ๋ฐ๋ผ ์น ๋์์ธ์์ ์ด๋ฌํ ํจ๊ณผ๋ฅผ ๋์ฑ ํ์ ์ ์ด๊ณ ์ฐฝ์์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
์ ๋งํ ์ถ์ธ ์ค ํ๋๋ ๊ฐ๋ฐ์๊ฐ ๋์ฑ ๋ณต์กํ๊ณ ์ ๊ตํ ์๊ฐ ํจ๊ณผ๋ฅผ ๋ง๋ค ์ ์๋๋ก ํด์ฃผ๋ ๋ ๋ฐ์ ๋ ์ฌ์ฉ์ ์ง์ ํํฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์ ๋๋ค.
๊ฒฐ๋ก
CSS ํํฐ ํจ๊ณผ๋ ๋ธ๋ผ์ฐ์ ๋ด์์ ์ง์ ์ด๋ฏธ์ง์ ์์๋ฅผ ํฅ์์ํค๊ณ ๋ณํํ๋ ๊ฐ๋ ฅํ๊ณ ๋ค์ฌ๋ค๋ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๊ธฐ ๋ฐ ๋๋น์ ๊ฐ์ ๊ธฐ๋ณธ ์กฐ์ ๋ถํฐ ๋ธ๋ฌ ๋ฐ ์์ ์กฐ์๊ณผ ๊ฐ์ ๋ณต์กํ ํจ๊ณผ๊น์ง CSS ํํฐ๋ ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ด๊ณ ๋งค๋ ฅ์ ์ธ ์น ๊ฒฝํ์ ๋ง๋๋ ๋ฐ ๊ด๋ฒ์ํ ์ต์ ์ ์ ๊ณตํฉ๋๋ค. CSS ํํฐ์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ฑ๋ฅ ๋ฐ ์ ๊ทผ์ฑ์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด ์ด๋ฌํ ํจ๊ณผ๋ฅผ ํ์ฉํ์ฌ ๋ฉ์ง๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ์น ์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
CSS ํํฐ์ ์ฐฝ์์ ์ธ ๊ฐ๋ฅ์ฑ์ ๋ฐ์๋ค์ด๊ณ ์น ๋์์ธ์ ๋ค์ ๋จ๊ณ๋ก ๋์ด์ฌ๋ฆฌ์ธ์!
์ถ๊ฐ ํ์ต ์๋ฃ
- MDN Web Docs: CSS filter property
- CSS-Tricks: CSS filter property
- Can I Use: CSS ํํฐ์ ๋ํ ๋ธ๋ผ์ฐ์ ํธํ์ฑ