CSS box-shadow๋?
CSS์ box-shadow ์์ฑ์ HTML ์์์ ํ๋ ์ด์์ ๊ทธ๋ฆผ์ ํจ๊ณผ๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฆผ์์ ์์น(XยทY ์คํ์ ), ํ๋ฆผ ์ ๋(๋ธ๋ฌ), ํฌ๊ธฐ(์คํ๋ ๋), ์์๊ณผ ํฌ๋ช ๋๋ฅผ ์์ ๋กญ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค. ์นด๋ ์ปดํฌ๋ํธ, ๋ฒํผ, ๋ชจ๋ฌ ์ฐฝ, ์ ๋ ฅ ํ๋ ๋ฑ ๋ค์ํ UI ์์์ ์ ์ฒด๊ฐ๊ณผ ๊น์ด๊ฐ์ ๋ถ์ฌํ๋ ๋ฐ ๊ด๋ฒ์ํ๊ฒ ํ์ฉ๋ฉ๋๋ค.
box-shadow ์์ฑ๊ฐ ์ค๋ช
box-shadow๋ ๋ค์ ์์๋ก ๊ฐ์ ๋ฐ์ต๋๋ค: [inset] offset-x offset-y [blur-radius] [spread-radius] color. offset-x์ offset-y๋ ํ์๊ฐ์ผ๋ก, ๊ทธ๋ฆผ์๊ฐ ์๋ณธ ์์์์ ์ผ๋ง๋ ์ด๋ํ๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. blur-radius๋ ๊ทธ๋ฆผ์ ๊ฐ์ฅ์๋ฆฌ์ ํ๋ฆผ ์ ๋์ด๊ณ , spread-radius๋ ๊ทธ๋ฆผ์ ํฌ๊ธฐ ์์ฒด๋ฅผ ํ์ฅํ๊ฑฐ๋ ์ถ์ํฉ๋๋ค. inset ํค์๋๋ฅผ ์์ ์ถ๊ฐํ๋ฉด ์์ ์ธ๋ถ๊ฐ ์๋ ๋ด๋ถ์ ๊ทธ๋ฆผ์๊ฐ ์ ์ฉ๋ฉ๋๋ค.
์ข์ ๊ทธ๋ฆผ์ ๋์์ธ ํ
์์ฐ์ค๋ฌ์ด ๊ทธ๋ฆผ์๋ ์ค์ ๊ด์์ด ์์ ์์ ๋๋ฅผ ๊ฐ์ ํด Y ์คํ์ ์ ์์๋ก, ๋ธ๋ฌ๋ฅผ ์ ๋นํ ํฌ๊ฒ ์ค์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ๋๋ฌด ๊ฐํ ๊ทธ๋ฆผ์๋ณด๋ค ๋ฐํฌ๋ช ํ(rgba) ์์์ ํ์ฉํด ๋ถ๋๋ฝ๊ฒ ํํํ๋ฉด ์ธ๋ จ๋ ๋๋์ ์ค๋๋ค. ๋ด๋ชจํผ์ฆ(Neumorphism) ์คํ์ผ์ ๋ฐ์ ๊ทธ๋ฆผ์์ ์ด๋์ด ๊ทธ๋ฆผ์๋ฅผ ๋์์ ์ ์ฉํด ์ ์ฒด์ ์ธ ํจ๊ณผ๋ฅผ ๋ง๋ค์ด๋ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ (FAQ)
A. box-shadow๋ ์์์ ๋ฐ์ค ๋ชจ๋ธ ํํ์๋ง ๊ทธ๋ฆผ์๋ฅผ ์ ์ฉํฉ๋๋ค. filter: drop-shadow()๋ PNG์ ํฌ๋ช ์์ญ์ ์ธ์ํด ์ค์ ์ด๋ฏธ์ง ํํ์ ๋ง๋ ๊ทธ๋ฆผ์๋ฅผ ์์ฑํฉ๋๋ค. ๋ถ๊ท์นํ ๋ชจ์์ ์์ด์ฝ์ด๋ ์ด๋ฏธ์ง์๋ drop-shadow๊ฐ ๋ ์์ฐ์ค๋ฝ์ต๋๋ค.
A. ๋ค, ์ผํ๋ก ๊ตฌ๋ถํด ์ฌ๋ฌ ๊ฐ์ box-shadow๋ฅผ ๋์์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ฒ์์ ์์ฑํ ๊ทธ๋ฆผ์๊ฐ ์์ ๋ ๋๋ง๋ฉ๋๋ค. ์: box-shadow: 0 2px 4px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
A. box-shadow๋ GPU ๊ฐ์์ ๋ฐ์ง ๋ชปํด ๋ณต์กํ ๊ทธ๋ฆผ์๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ฉด ๋ ๋๋ง ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ์ ๋๋ฉ์ด์ ์์ ์ฌ์ฉํ ๋๋ filter: drop-shadow๋ after ๊ฐ์ ์์๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ฑ๋ฅ์ ์ ๋ฆฌํฉ๋๋ค.