(๋ฒˆ์—ญ) ๋” ๋‚˜์€ CSS ํŠธ๋žœ์ง€์…˜ ๋ฐ ์• ๋‹ˆ๋งค์ด์…˜์„ ์œ„ํ•œ 10๊ฐ€์ง€ ํŒ

์›๋ฌธ: Ten tips for better CSS transitions and animations

์ด ๊ธ€์€ CSS์˜ ์ด์ง•(easing) ๋ฐ ํ๋น… ๋ฒ ์ง€์–ด(cubic-bezier) ์ปค๋ธŒ ์ดํ•ดํ•˜๊ธฐ ๊ฒŒ์‹œ๋ฌผ์— ๋Œ€ํ•œ ํ›„์† ๊ธ€์ž…๋‹ˆ๋‹ค.

์ด ๊ธ€์„ ๋ณด๋Ÿฌ ์˜ค์…จ๊ฑฐ๋‚˜ CSS cubic-bezier ์ปค๋ธŒ์— ๋Œ€ํ•ด ์•„์ง ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด ์ง€๊ธˆ ๋ฐ”๋กœ ํ•ด๋‹น ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ง๊ฐ์ด ์–ด๋””์„œ ์™”๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๊ทธ ์ง๊ฐ์ด ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ๋ง๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋”๋ผ๋„ ๊ฒฝํ—˜ํ•ด ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ…Œ๋ฆฌ์–ด์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฅด์ง€๋งŒ ์ž˜ ๋””์ž์ธ๋œ ๊ณต๊ฐ„์— ์žˆ์œผ๋ฉด ๊ทธ๊ณณ์˜ ๋Š๋‚Œ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์–ด๋–ค ์•ฑ์ด ๋‹ค๋ฅธ ์•ฑ๋ณด๋‹ค ๋” ๋‚˜์€ ๋Š๋‚Œ์„ ์ฃผ๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋”๋ผ๋„ ์ข‹์€ ์•ฑ๊ณผ ๋‚˜์œ ์•ฑ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์‚ฌ์šฉ์ž๋Š” ์›น์‚ฌ์ดํŠธ์™€ ์•ฑ์˜ ํŠธ๋žœ์ง€์…˜์ด๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ข‹์€ ๊ฒƒ๊ณผ ๋‚˜์œ ๊ฒƒ์˜ ์ฐจ์ด๋ฅผ ์˜ˆ๋ฆฌํ•˜๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฑ์˜ ์›€์ง์ž„์ด ์ข‹์„ ๋•Œ์™€ ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ๋ฐฉ๋ฒ•์ด๋‚˜ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋”๋ผ๋„ ์ผ๋ฐ˜์ ์ด๊ฑฐ๋‚˜ ์„ธ๋ จ๋˜์ง€ ์•Š๋‹ค๋Š” ์ธ์ƒ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๋Š๋‚Œ์„ ์ฃผ๋Š” ์š”์†Œ์— ๋Œ€ํ•ด ๋” ์ž˜ ์ดํ•ดํ•˜๊ณ , ์ž์ฒด UI๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ๋‚˜์œ ๋Š๋‚Œ์„ ํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ง€๋‚œ 10์—ฌ ๋…„ ๋™์•ˆ ์›น์—์„œ ํŠธ๋žœ์ง€์…˜๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ œ์ž‘ํ•˜๋ฉด์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  :

โ€œํŠธ๋žœ์ง€์…˜โ€๊ณผ โ€œ์• ๋‹ˆ๋ฉ”์ด์…˜โ€์€ CSS์—์„œ ๋ณ„๊ฐœ์˜ ๊ฐœ๋…์ด์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” โ€œ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์›€์ง์ž„ ๋˜๋Š” ๋ณ€ํ™”โ€๋ผ๋Š” ์˜๋ฏธ๋กœ ์ด ๋‘ ๋‹จ์–ด๋ฅผ ๋Œ€๋ถ€๋ถ„ ๊ฐ™์€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ์ƒ๊ฐ๋ณด๋‹ค ์งง๊ฒŒ ์ž‘์„ฑํ•˜์„ธ์š”

์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ์Ÿ์•„๋ถ€์–ด ๋ฉ‹์ง„ ํŠธ๋žœ์ง€์…˜์„ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด ์ด๋ฅผ ์ฆ๊ธฐ๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋ฅผ ๋น„๋กฏํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋Š” ๋ฉ‹์ง„ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ฐ์ƒํ•˜๋ฉฐ ํŠธ๋žœ์ง€์…˜์ด ์™”๋‹ค ๊ฐ”๋‹ค ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉฐ ์ฆ๊ฑฐ์›Œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž˜๋ชป ๊ฐœ๋ฐœ๋œ ์›€์ง์ž„์˜ ์ ˆ๋Œ€์ ์ธ ๋‹จ์  1์ˆœ์œ„๋Š” ๋„ˆ๋ฌด ์˜ค๋ž˜ ์ง€์†๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋“ค์€ ์—ฌ๋Ÿฌ๋ถ„๋งŒํผ ํฅ๋ฏธ๋ฅผ ๋Š๋ผ์ง€ ๋ชปํ•˜๋ฉฐ, ๋”ฐ๋ผ์„œ ์ธ๋‚ด์‹ฌ๋„ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ฌด์–ธ๊ฐ€๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์›น์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ–ˆ์œผ๋ฉฐ, ์•„๋ฌด๋ฆฌ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์ด๋ผ๋„ ํ•„์š” ์ด์ƒ์œผ๋กœ ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์กฐ์–ธ์„ ๋“œ๋ฆฌ์ž๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ํŠธ๋žœ์ง€์…˜์„ ๋†“์น˜์ง€ ์•Š๋Š” ๋ฒ”์œ„ ๋‚ด์— ๊ฐ€๋Šฅํ•œ ์งง๊ฒŒ ์ง€์†ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฒฝํ—˜์ƒ ๋Œ€๋ถ€๋ถ„์˜ ๋‹จ์ผ ํŠธ๋žœ์ง€์…˜์˜ ๊ฒฝ์šฐ 150~400๋ฐ€๋ฆฌ ์ดˆ ๋ฒ”์œ„(0.15~0.4์ดˆ)์—์„œ ๊ฐ€์žฅ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ์š”์†Œ๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค๊ฐ€ ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๋“ฑ ์—ฐ์†์ ์ธ ํŠธ๋žœ์ง€์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ์†๋„๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฌ๊ณ  ๊ทธ ์‚ฌ์ด์— ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋™์‹œ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์€ ์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

๋„ˆ๋ฌด ๋น ๋ฅด๋‹ค๊ณ  ๋Š๊ปด์งˆ ๋•Œ๊นŒ์ง€ ๊ณ„์† ์†๋„๋ฅผ ๋†’์ธ ๋‹ค์Œ ์กฐ๊ธˆ๋งŒ ์†๋„๋ฅผ ์ค„์ด์„ธ์š”.

ํ•˜์ง€๋งŒ ํ•ญ์ƒ ์˜ˆ์™ธ๋Š” ์กด์žฌํ•˜๋ฉฐ ํŽ˜์ด์ง€์˜ ๋ณ€ํ™”๊ฐ€ ํด์ˆ˜๋ก ํŠธ๋žœ์ง€์…˜์„ ๋” ๋ˆˆ์— ๋„๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์นดํŠธ์— ์žˆ๋Š” ํ’ˆ๋ชฉ ์ˆ˜๊ฐ€ ์—…๋ฐ์ดํŠธ๋  ๋•Œ ์ž‘์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ๊ฐ•์กฐํ•˜๋Š” ๊ฒƒ๊ณผ ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ํŠธ๋žœ์ง€์…˜์„ ํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์—๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜์„ธ์š”.

๋งˆ์ง€๋ง‰์œผ๋กœ ํ•œ ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์ง€์† ์‹œ๊ฐ„์ด ์‹ค์ œ ์ง€์† ์‹œ๊ฐ„๋ณด๋‹ค ์งง๊ฒŒ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ๋Š๋ฆฐ ease-in์œผ๋กœ ํŠธ๋žœ์ง€์…˜์„ ์‹œ์ž‘ํ•˜๋ฉด ๋ฐ”๋กœ ์‹œ์ž‘๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๊ณ , ๋ฐ˜๋Œ€๋กœ ๊ธด ๊ผฌ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ํŠธ๋žœ์ง€์…˜์€ ์‹ค์ œ๋กœ๋Š” ๋๋‚˜๊ธฐ ์ „์— ์ด๋ฏธ ๋๋‚œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ์„ ์—ผ๋‘์— ๋‘์„ธ์š”. ์‚ฌ์šฉ์ž๊ฐ€ ํŠธ๋žœ์ง€์…˜์„ ์ง€๊ฐํ•˜๋Š” ๊ฑด ํ˜„์‹ค์ด๋ฏ€๋กœ ์ฝ”๋“œ์˜ ๊ธฐ์ˆ ์ ์ธ ์ง€์† ์‹œ๊ฐ„๋ณด๋‹ค ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๋Š๊ปด์ง€๋Š”์ง€๊ฐ€ ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

2. ์ปค๋ธŒ๋ฅผ ๋™์ž‘์— ๋งž์ถ”์„ธ์š”

๋ฌผ๋ก  ์ด๊ฒƒ์€ ๋ง์ฒ˜๋Ÿผ ์‰ฌ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. โ€œ์ข‹์•„์š”, ํ•˜์ง€๋งŒ ์ฃผ์–ด์ง„ ์ƒํ™ฉ์—์„œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ํ๋น… ๋ฒ ์ง€์–ด(cubic bรฉzier) ์ปค๋ธŒ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‚˜์š”?โ€œ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ๋ชปํ•˜๊ฒ ์ง€๋งŒ ์ด์— ๋Œ€ํ•œ ๋Œ€๋‹ต์€ ์‹œํ–‰์ฐฉ์˜ค(๊ฒฝํ—˜์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค)๊ฐ€ ์ตœ๊ณ ์˜ ์„ ์ƒ๋‹˜์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›€์ง์ž„์€ ์ƒ‰์ƒ๋งŒํผ์ด๋‚˜ ์ฃผ๊ด€์ ์ด์ง€๋งŒ ๊ทธ๋งŒํผ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ๋‚˜ ์›น ์•ฑ์˜ ๋Š๋‚Œ๊ณผ ๋ธŒ๋žœ๋”ฉ์˜ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ๋ช…์‹ฌํ•ด์•ผ ํ•  ์š”๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ—˜ํ•  ๋•Œ ์‹ค์ œ ์„ธ๊ณ„์˜ ์›€์ง์ž„์„ ๋– ์˜ฌ๋ฆฌ๊ณ  ์ด๋ฅผ ์•ฑ์—์„œ ์ž‘์—… ์ค‘์ธ ์›€์ง์ž„๊ณผ ๋น„๊ตํ•ด ๋ณด์„ธ์š”. ์ด๋Ÿฌํ•œ ํŠธ๋žœ์ง€์…˜์ด ๋‚˜ํƒ€๋‚˜๊ณ  ์ œ์ž๋ฆฌ๋กœ ์Šฌ๋ผ์ด๋”ฉ๋˜๋Š” ๊ฒƒ์ด ์ œ๋Œ€๋กœ ํ™•์ธ๋˜๋‚˜์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์—ด์‹ฌํžˆ ์ผ์„ ๋งˆ์นœ ๋ณด๊ณ ์ž๊ฐ€ ๋‹ฌ๋ ค์™€ ์ผ์„ ๋๋ƒˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฆฌ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๋น ๋ฅธ ์†๋„์˜ ์ธํŠธ๋กœ์™€ ๋ถ€๋“œ๋Ÿฝ๊ณ  ๋น ๋ฅธ ease-out์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋น ๋ฅธ ์†๋„์˜ ํŠธ๋žœ์ง€์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”๋ฉด์— ์‹คํŒจ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ์ด ๊ฒฝ์šฐ ์•ฝ๊ฐ„์˜ ์ฃผ์˜๋ฅผ ๋Œ๊ธฐ ์œ„ํ•ด ์•ฝ๊ฐ„ ๋Š๋ฆฐ ์ด์ง• ์ปค๋ธŒ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰์‹œ ์•Œ๋ ค์•ผ ํ•˜๋Š” ์ค‘์š”ํ•œ ์‚ฌํ•ญ์ด๋ผ๋ฉด ์†๋„์™€ ๋ช…ํ™•์„ฑ์„ ์ตœ์šฐ์„ ์œผ๋กœ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ผ๋ฉด ํ”๋“ค๊ธฐ์™€ ๊ฐ™์€ ๋ณด๋‹ค ์ ๊ทน์ ์ธ ์›€์ง์ž„์„ ํ†ตํ•ด ์‹ฌ๊ฐ์„ฑ์„ ์ „๋‹ฌํ•˜๊ณ  ํ•„์š”ํ•œ ๊ณณ์— ์ฃผ์˜๋ฅผ ์ง‘์ค‘์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ œ๊ฐ€ ๊ฐ€์žฅ ์ถ”์ฒœํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜์—ฌ ํ•ด๋‹น ๋™์ž‘์ด ์ ์ ˆํ•œ ๋Š๋‚Œ์„ ์ „๋‹ฌํ•˜๋Š”์ง€ ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์›€์ง์ž„์ด ์ œํ’ˆ ๋˜๋Š” ํŽ˜์ด์ง€์˜ ๋ธŒ๋žœ๋“œ์™€ ์ผ๊ด€์„ฑ์ด ์žˆ๋‚˜์š”?

๋งŒ์•ฝ Pixar์—์„œ ์—ฌ๋Ÿฌ๋ถ„์˜ UI์™€ ๊ฐ™์€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋กœ๋ด‡์„ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์ œ์ž‘ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์›€์ง์ผ๊นŒ์š”?

3. ๊ฐ€์†๊ณผ ๊ฐ์†์„ ์‚ฌ์šฉํ•˜์„ธ์š”

์‹ค์ œ ์„ธ๊ณ„์—์„œ๋Š” ์–ด๋–ค ์œ ํ˜•์˜ ์›€์ง์ž„๋„ ์ฆ‰์‹œ ์ตœ๋Œ€ ์†๋„๋กœ ์ ํ”„ํ•˜๊ฑฐ๋‚˜ ์ˆœ์‹๊ฐ„์— ์™„์ „ํžˆ ์™„์ „ํžˆ ๋ฉˆ์ถ”๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์›€์ง์ž„์„ ๋งŒ๋“œ๋Š” ์ปค๋ธŒ๋ฅผ ํ”ผํ•˜๋ฉด UI๊ฐ€ ์ข€ ๋” โ€˜์ง„์งœโ€™ ๊ฐ™๊ณ  ์ง๊ด€์ ์œผ๋กœ ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋ญ”๊ฐ€ ์ด์ƒํ•ด ๋ณด์ธ๋‹ค๋ฉด, ์‹œ์ž‘์ด๋‚˜ ๋์ด ๋ถ€์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ‘์ž‘์Šค๋Ÿฝ๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

์กฐ๊ธˆ์ด๋ผ๋„, cubic-bezier ์ปค๋ธŒ์— ์•ฝ๊ฐ„์˜ ease in๊ณผ out์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ž‘์ง€๋งŒ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์•ฝ๊ฐ„์˜ ๊ฐ€์† ๋ฐ/๋˜๋Š” ๊ฐ์†์ด ๋ถ€๋“œ๋Ÿฌ์šด ๋Š๋‚Œ์˜ ํŠธ๋žœ์ง€์…˜๊ณผ ์•ฝ๊ฐ„ ์–ด์ƒ‰ํ•œ ๋Š๋‚Œ์˜ ํŠธ๋žœ์ง€์…˜์˜ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋„ค ๊ฐœ์˜ ์‚ฌ๊ฐํ˜•์ด ๋ชจ๋‘ ํ•œ ๋ฐ”ํ€ด ํšŒ์ „ํ•˜์ง€๋งŒ ์„œ๋กœ ๋‹ค๋ฅธ ์ด์ง•(easing)์ด ์ ์šฉ๋œ ๋ฐ๋ชจ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ ์‚ฌ๊ฐํ˜•์€ ๋„ˆ๋ฌด ๊ฐ‘์ž‘์Šค๋Ÿฝ๊ฒŒ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ โ€œ๋ถ€๋“œ๋Ÿฌ์šด(smooth)โ€ ์˜ต์…˜์€ ์ปค์Šคํ…€ ์ปค๋ธŒ๊ฐ€ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋ฉด์„œ ๊ฐ€์† ๋ฐ ๊ฐ์†์ด ๋”์šฑ ์šฐ์•„ํ•˜๊ฒŒ ์›€์ง์ด๊ธฐ ๋•Œ๋ฌธ์— ํ›จ์”ฌ ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ๋ฌผ๋ฆฌํ•™์ด ์ ์šฉ๋œ ๋“ฏํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋” ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋„ค ๋ฒˆ์งธ โ€˜๊ด€์„ฑ(inertia)โ€™ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งˆ์น˜ ์Šคํ”„๋ง์— ์˜ํ•ด ๊ตฌ๋™๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ โ€˜์™€์ธ๋“œ์—…(winds up)โ€™ ๋ฐ ์˜ค๋ฒ„์ŠˆํŒ…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (์ด๋Ÿฐ ์œ ํ˜•์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์—์„œ๋Š” ์กฐ๊ธˆ๋งŒ ์ถ”๊ฐ€ํ•ด๋„ ํฐ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”.)

ํ•˜์ง€๋งŒ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์‹œ์ž‘๊ณผ ๋ฉˆ์ถค์— ๋Œ€ํ•ด ํ•œ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ดœ์ฐฎ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํŽ˜์ด๋“œ ์ธํ•˜๋Š” ๊ฒฝ์šฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์‹œ์ž‘์„ ์• ์ดˆ์— ์ธ์ง€ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ฐ‘์ž๊ธฐ ์‹œ์ž‘ํ•ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๋ฐ˜๋Œ€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์š”์†Œ๊ฐ€ opacity: 0์œผ๋กœ ํฌ๋ฏธํ•ด์ง€๋Š” ๊ฒฝ์šฐ, ์–ด์ฐจํ”ผ ๋งˆ์ง€๋ง‰์—๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋žœ์ง€์…˜ ์ปค๋ธŒ๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ๋๋‚˜๋Š”์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

4. ์ ์€ ๊ฒƒ์ด ๋” ๋งŽ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค

์ด ํŒ์˜ ๋Œ€๋ถ€๋ถ„์„ โ€œ์ ์€ ๊ฒƒ์ด ๋” ๋งŽ์Šต๋‹ˆ๋‹คโ€๋กœ ์š”์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ „๋ถ€ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ๋งŒ๋“ค์–ด ๋„ฃ๊ณ  ์‹ถ์€ ์œ ํ˜น์— ๋น ์ง€๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. (์ €๋„ ๋ถ„๋ช…ํžˆ ๊ทธ๋Ÿฐ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.) ํ•˜์ง€๋งŒ ๊ฐœ์ธ ์›น์‚ฌ์ดํŠธ๋ผ์„œ ์•ฝ๊ฐ„ ๊ณผ๊ฒฉํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š”, ๋„ˆ๋ฌด ๋งŽ์€ ์›€์ง์ž„์€ ๋“ ๋ณด๋‹ค ์‹ค์ด ๋งŽ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CSS๋กœ ํŠธ๋žœ์ง€์…˜ ํ•  ๋•Œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณผ์žฅํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์ ˆ์ œํ•˜๋Š” ํŽธ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์• ๋‹ˆ๋ฉ”์ด์…˜ ์ค‘์— ์š”์†Œ๊ฐ€ ๋งŽ์ด ๋ฐ”๋€”์ˆ˜๋ก ํŠธ๋žœ์ง€์…˜์ด ๊ณผ๋„ํ•˜๊ฒŒ ๋ณด์ผ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

opacity๋ฅผ 0์—์„œ 1๋กœ(๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ) ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ•˜๋Š” ๊ฒฝ์šฐ, 0.4์—์„œ 1๊ณผ ๊ฐ™์ด ๋” ์ž‘์€ ๋ฒ”์œ„๋กœ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”. ์š”์†Œ๊ฐ€ ์ „์ฒด ํฌ๊ธฐ๋กœ ํ™•์žฅ๋˜๋Š” ๊ฒฝ์šฐ, ๋ณด์ด์ง€ ์•Š์„ ์ •๋„๋กœ ์ž‘๊ฒŒ ๋งŒ๋“ค์ง€ ๋ง๊ณ , ์‹œ์ž‘ํ•  ๋•Œ ๋„ˆ๋ฌด ๊ทน์ ์ด์ง€ ์•Š์€ ์ž‘์€ ๋ณ€ํ™”๋ฅผ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.

์–ด๋–ค ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ์ž๋ฆฌ๋กœ ์ด๋™ํ•˜๋‚˜์š”? ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, ์ด๋Ÿฌํ•œ ์›€์ง์ž„์€ ์•ฝ 5~40ํ”ฝ์…€ ๋ฒ”์œ„์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ณด๋‹ค ์งง์œผ๋ฉด ์›€์ง์ž„์ด ๋„ˆ๋ฌด ๋ฏธ๋ฌ˜ํ•ด์„œ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๊ณ , ๋„ˆ๋ฌด ๊ธธ๋ฉด ๋ถ€๋“œ๋Ÿฌ์šด ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์–ด์ƒ‰ํ•˜๊ฒŒ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ opacity, translateY ๋ฐ scale์„ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ•˜๋Š” ํŠธ๋žœ์ง€์…˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ๋จผ์ € ๋“ฑ์žฅํ•˜์ง€๋งŒ ๋น„๊ต์  ๊ธด ์• ๋‹ˆ๋ฉ”์ด์…˜(์ฃผํ™ฉ์ƒ‰)๊ณผ ์กฐ๊ธˆ ๋” ๊ฐ„์†Œํ™”ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ํ‘œํ˜„ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜(ํŒŒ๋ž€์ƒ‰)์„ ๋น„๊ตํ•ด ๋ณด์„ธ์š”.

๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚˜์  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠธ๋žœ์ง€์…˜์ด ์ถฉ๋ถ„ํžˆ ํšจ๊ณผ์ ์ผ ์ˆ˜ ์žˆ๋Š” ์ง€์ ์„ ์ฐพ๊ณ , ๊ทธ ์ด์ƒ ๋‚˜์•„๊ฐ€์•ผ ํ•œ๋‹ค๋ฉด ์‹ ์ค‘ํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜์„ธ์š”.

5. ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜์ง€ ๋งˆ์„ธ์š”

๋ธŒ๋ผ์šฐ์ €์— linear, ease, ease-in, ease-out, ๊ทธ๋ฆฌ๊ณ  ease-in-out๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์ด์ง• ์ปค๋ธŒ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์•Œ๊ณ  ๊ณ„์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ๋‹ค์„ฏ ๊ฐ€์ง€ ํƒ€์ด๋ฐ ๊ธฐ๋Šฅ์€ ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ ํŽธ๋ฆฌํ•˜๊ณ  ์œ ์šฉํ•˜์ง€๋งŒ ๋งค์šฐ ๋ณดํŽธ์ ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. (์˜จ๋ผ์ธ ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋‚ด์žฅ๋œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ค‘ ์ƒ๋‹น์ˆ˜๋„ ์„ ํƒ์˜ ํญ์ด ๋„“๊ธด ํ•˜์ง€๋งŒ ๋™์ผํ•œ ํ‘œํ˜„๋ฐฉ์‹์— ๋น ์ง€๊ฒŒ ๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค).

์›€์ง์ž„์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ช…๋ช…๋œ ์˜ต์…˜์„ ๋ฒ—์–ด๋‚˜๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Bootstrap์ด๋‚˜ Tailwind๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•ํ•œ ์‚ฌ์ดํŠธ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณด์ผ ์œ„ํ—˜์ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ์ผ๋ฐ˜์ ์ธ ์ด์ง• ์ปค๋ธŒ๋Š” UI๋ฅผ ๋‹จ์กฐ๋กญ๊ณ  ํš์ผ์ ์œผ๋กœ ๋ณด์ด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋Œ€์•ˆ์œผ๋กœ VS Code์—๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ๋Š” cubic-bezier ์ปค๋ธŒ์— ๋Œ€ํ•œ ๋†€๋ผ์šด ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. CSS ์ปจํ…์ŠคํŠธ์—์„œ cubic-bezier๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋“œ๋กญ๋‹ค์šด์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ํ”„๋ฆฌ์…‹์„ ์‚ดํŽด๋ณด๊ณ  ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์ œ ์ด์ง• ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ์—์„œ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ํ›Œ๋ฅญํ•œ ์˜ต์…˜์€ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์—ด๊ณ  ๊ทธ ์•ˆ์— ์žˆ๋Š” ์ด์ง• ์ปค๋ธŒ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ €์—๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์‹œ๋„ํ•˜๊ณ  ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒŒ๋“œ๋ฐ•์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ง• ํŒจ๋„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจ๋„์— ์•ก์„ธ์Šค ํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์—ด๊ณ  CSS ์Šคํƒ€์ผ ํŒจ๋„์—์„œ cubic-bezier ๊ฐ’ ์˜†์— ์žˆ๋Š” ์ปค๋ธŒ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. (์•„์ด์ฝ˜์€ ๋‹ค๋ฅด์ง€๋งŒ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.)

ํ•˜์ง€๋งŒ ์ด์ง• ์ปค๋ธŒ๋ฅผ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•˜๋“ , ์‹œ๊ฐ„์„ ๋“ค์—ฌ ๋ฏธ์„ธํ•˜๊ฒŒ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. cubic-bezier๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ๋‘๋ ค์›Œํ•˜์ง€ ๋งˆ์„ธ์š”.

๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” VS Code์˜ ํ”„๋ฆฌ์…‹์„ ํ™œ์šฉํ•˜๋ฉด ์ถฉ๋ถ„ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ‚ค์›Œ๋“œ ๊ฐ’ ๋Œ€์‹ ์— cubic-bezier๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ด๋ฏธ ๊ฒŒ์ž„์—์„œ ์•ž์„œ๊ฐ€๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์ด ์ปฌ๋Ÿฌ ํŒ”๋ ˆํŠธ๋กœ ๋ฏธ๋ฆฌ ์ •์˜๋œ CSS ๋„ค์ž„๋“œ ์ปฌ๋Ÿฌ๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ์ œํ•œํ•˜๊ธธ ์›์น˜ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋‹น์‹ ์˜ ํŠธ๋žœ์ง€์…˜ ๋˜ํ•œ ์†Œ์ˆ˜์˜ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ปค๋ธŒ์—๋งŒ ์ œํ•œ๋˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

6. ์—ฌ๋Ÿฌ ํ”„๋กœํผํ‹ฐ์— ์—ฌ๋Ÿฌ ์ด์ง•์„ ํ™œ์šฉํ•˜์„ธ์š”.

์ด ๊ธฐ๋Šฅ์ด ํ•ญ์ƒ ์œ ์šฉํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, transform์œผ๋กœ ํ•ญ๋ชฉ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ๋•Œ opacity๋„ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์ฒ˜๋Ÿผ, ๋‹จ์ผ ์š”์†Œ์— ํ•œ ๋ฒˆ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘ ํ”„๋กœํผํ‹ฐ์— ๋™์ผํ•œ cubic-bezier ์ปค๋ธŒ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

/* โ›” ์ข‹์ง€๋งŒ ๋” ๋‚˜์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. */
.my-element {
  transition: all cubic-bezier(0.5, 0, 0.5, 1) 0.5s;
}

/* โ›” ์ด ๋˜ํ•œ ์ด์ƒ์ ์ด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. */
@keyframes scale_and_appear {
  from {
    opacity: 0;
    transform: scale(0);
  }
}

.my-element {
  animation: scale_and_appear 0.5s cubic-bezier(0.5, 0, 0.5, 1) forwards;
}

๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๊ดœ์ฐฎ์•„ ๋ณด์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŠธ๋žœ์ง€์…˜ ๋˜๋Š” ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ปค๋ธŒ๊ฐ€ ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

transform์— ์ž˜ ์ž‘๋™ํ•˜๋Š” ์ด์ง• ์ปค๋ธŒ๊ฐ€ ํŽ˜์ด๋“œ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ๋Š” CSS ํ”„๋กœํผํ‹ฐ๋ณ„๋กœ ๊ณ ์œ ํ•œ ์ด์ง•์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ @keyframes ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ”„๋กœํผํ‹ฐ๋ณ„๋กœ ๋ถ„ํ• ํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ transition์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ transition๊ณผ animation ๋ชจ๋‘ ์—ฌ๋Ÿฌ ๊ฐ’์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ ํ”„๋กœํผํ‹ฐ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ปค๋ธŒ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

/* ๐Ÿ‘ ๊ฐ ํ”„๋กœํผํ‹ฐ์— ๊ณ ์œ ํ•œ ์ปค๋ธŒ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ข‹์Šต๋‹ˆ๋‹ค. */
.my-element {
  transition: opacity linear 0.5s, transform cubic-bezier(0.5, 0, 0.5, 1) 0.5s;
}

/* ๐Ÿ‘ ๋‘ ๊ฐœ์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘˜ ๋‹ค ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. */
@keyframes scale {
  from {
    transform: scale(0);
  }
}

@keyframes appear {
  from {
    opacity: 0;
  }
}

.my-element {
  animation: scale 0.5s cubic-bezier(0.5, 0, 0.5, 1) forwards, appear 0.5s
      linear forwards;
}

๋‹ค์Œ์€ ๋ฐ๋ชจ์ž…๋‹ˆ๋‹ค. ์ƒ์ž๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐˆ ๋•Œ ์™ผ์ชฝ ์‚ฌ๊ฐํ˜•์˜ opacity์™€ scale์ด ๋™์ผํ•œ ๊ฐ€์†๋„๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋ฅธ์ชฝ์—์„œ๋Š” opacity๊ฐ€ ๊ณ ์œ ํ•œ ์„ ํ˜• ์ปค๋ธŒ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์–ด๋Š ๊ฒƒ์ด ๋” ๋‚ซ๋‚˜์š”? ๊ธ€์Ž„์š”, ๊ทธ๊ฒƒ์€ ์—ฌ๋Ÿฌ๋ถ„์ด ์›ํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด ๊ธฐ๋Šฅ์€ ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š์ง€๋งŒ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ์žŠ์–ด๋ฒ„๋ฆฌ๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒˆ ๋ชฉ๋ก์—์„œ ํ•œ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ํ”„๋กœํผํ‹ฐ์˜ ์ง€์†์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋„ˆ๋ฌด ์—‰๋šฑํ•˜๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๋™๊ธฐํ™”๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์กฐ์‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

7. ๋‹จ๊ณ„์  ์ง€์—ฐ(staggered delay)์„ ์‚ฌ์šฉํ•˜์„ธ์š”

์—ฌ๋Ÿฌ ์š”์†Œ(๋˜๋Š” ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ•˜๋‚˜์˜ ์š”์†Œ)๋ฅผ ํŠธ๋žœ์ง€์…˜ ํ•  ๋•Œ animation-delay ๋˜๋Š” transition-delay์ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ํšจ๊ณผ๋ฅผ ๊ณผ์†Œํ‰๊ฐ€ํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ํŠนํžˆ ๋‹จ๊ณ„์ ์ธ ์ง€์—ฐ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๊ฐ ์ค„๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ข…๋ฅ˜์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ง€์—ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์ด CodePen ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”.

์œ„์˜ ์˜ˆ์‹œ์—์„œ ์ฒซ ๋ฒˆ์งธ ์ค„์€ ํ•œ๊บผ๋ฒˆ์— ํŠธ๋žœ์ง€์…˜ ๋ฉ๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์ง€๋งŒ ํŠน๋ณ„ํžˆ ๋ˆˆ์— ๋„๊ฒŒ ์„ ๋ช…ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋‹ค์Œ์— ์ด์–ด์ง€๋Š” ๊ฐ ์ค„์—๋Š” ๊ฐ ๊ธ€์ž์— ๋‹ค์–‘ํ•œ ์ •๋„์˜ ์ง€์—ฐ์ด ์ ์šฉ๋˜์–ด ์žฌ๋ฏธ์žˆ๋Š” โ€œ๋ฐ”์šด์Šค ์ธโ€ ํšจ๊ณผ๋ฅผ ์—ฐ์ถœํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด๋Š” ๊ฑฐ๊พธ๋กœ ํ‘œ์‹œ๋˜๋Š” ์ค„๋„ ์žˆ๊ณ , ์ค‘๊ฐ„์—์„œ ๋ฐ”๊นฅ์ชฝ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ์ค„๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ ์€ ๊ฒƒ์ด ๋” ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์„ธ์š”. ํŠนํžˆ ํŠธ๋žœ์ง€์…˜ ๋˜๋Š” ์š”์†Œ๊ฐ€ ๋งŽ์„ ๋•Œ๋Š” ์ด๋Ÿฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ๋Š” ๋ฐ๋ชจ ๋ชฉ์ ์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๊ณผ์žฅ๋˜๊ฒŒ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์ธ UI ์ž‘์—…์—์„œ๋Š” ๋„ˆ๋ฌด ๋ฒˆ์žกํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ํšจ๊ณผ๋ฅผ ์ข€ ๋” ์„ฌ์„ธํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๋”ฉ ํ™”๋ฉด์— ์ ์„ ๋„ฃ๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ๋“œ๋กœ์–ด๋‚˜ ํ–„๋ฒ„๊ฑฐ ๋ฉ”๋‰ด๊ฐ€ ์—ด๋ฆด ๋•Œ ๊ฐ ํ•ญ๋ชฉ์ด ์•ฝ๊ฐ„ ์ง€์—ฐ๋œ ์ƒํƒœ๋กœ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”?

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์งง๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”. ํ•˜์ง€๋งŒ ๋‹จ๊ณ„์  ์ง€์—ฐ์„ ์ž˜ ์ ์šฉํ•˜๋ฉด ์›น ํŠธ๋žœ์ง€์…˜์„ ํ•œ ๋‹จ๊ณ„ ๋” ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

8. ์•ˆ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์†Œ์—๋Š” out์„, ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ์š”์†Œ๋Š” in์„ ํ™œ์šฉํ•˜์„ธ์š”.

๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ด์ง• ์ปค๋ธŒ๋ฅผ ์‚ดํŽด๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด ease in(์ฒœ์ฒœํžˆ ์‹œ์ž‘), ease out(์ฒœ์ฒœํžˆ ๋), in-out(๋ณธ์งˆ์ ์œผ๋กœ ๋‘˜ ๋‹ค, ์ค‘๊ฐ„์€ ๋น ๋ฅด๊ณ  ์‹œ์ž‘๊ณผ ๋์€ ๋Š๋ฆผ)์˜ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠธ๋žœ์ง€์…˜์˜ ๊นŒ๋‹ค๋กœ์šด ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ๋“ค์–ด์˜ค๋Š” ์š”์†Œ์— ๋Œ€ํ•œ ํŠธ๋žœ์ง€์…˜์€ ease-out์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋‚˜๊ฐ€๋Š” ์š”์†Œ์— ๋Œ€ํ•œ ํŠธ๋žœ์ง€์…˜์€ ease-in์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์–ด ํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๊ธ€์„ ์“ฐ๋Š” ๊ฒƒ๋งŒํผ์ด๋‚˜ ์—ฌ๋Ÿฌ๋ถ„๋„ ์ฝ๊ธฐ ํ˜ผ๋ž€์Šค๋Ÿฌ์› ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋Œ์•„๊ฐ€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ ์ „ํ™˜์ด๋‚˜ ๋ผ์ดํŠธ๋ฐ•์Šค์—์„œ ๋‘ ์ด๋ฏธ์ง€ ์‚ฌ์ด๋ฅผ ์Šฌ๋ผ์ด๋”ฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•œ ์š”์†Œ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋– ๋‚˜๋ฉด ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ๊ทธ ์ž๋ฆฌ๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” ์ด๋ฅผ ํ•˜๋‚˜์˜ UI ํŠธ๋žœ์ง€์…˜์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ด์ „ ์š”์†Œ๊ฐ€ ๋‚˜๊ฐ„ ํ›„ ์ƒˆ ์š”์†Œ๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๋‘ ๊ฐ€์ง€ ํŠธ๋žœ์ง€์…˜์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์š”์†Œ๋ฅผ ํŠธ๋žœ์ง€์…˜ ํ•  ๋•Œ ์ฒœ์ฒœํžˆ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ease-in์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ ์š”์†Œ๊ฐ€ ๋“ค์–ด์˜ค๋„๋ก ํŠธ๋žœ์ง€์…˜ ํ•  ๋•Œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ์„œํžˆ ๋ฉˆ์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ease-out์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‘ ๊ฐ€์ง€๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ๋งค๋„๋Ÿฌ์šด ์›€์ง์ž„ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

9. ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ํ™œ์šฉํ•˜์„ธ์š”.

๋ชจ๋“  CSS ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ชจ๋“  ๋””๋ฐ”์ด์Šค์™€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋˜๊ฑฐ๋‚˜ ํŠธ๋žœ์ง€์…˜ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋””๋ฐ”์ด์Šค์˜ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐ€์žฅ ๋ถ€๋“œ๋Ÿฝ๊ณ  ๋†’์€ ํ”„๋ ˆ์ž„๋ฅ ๋กœ ํŠธ๋žœ์ง€์…˜ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ทน์†Œ์ˆ˜์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  :

ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ธฐ๊ธฐ์˜ ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ์žฅ์น˜(GPU)์˜ ๋„์›€์„ ๋ฐ›์•„ ๋ Œ๋”๋ง์„ ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(๋‹จ, ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค).

ํ•ญ์ƒ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์ด ๊ฐ€๋Šฅํ•œ ํ”„๋กœํผํ‹ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • transform (translate, scale, rotate ๋ฐ ๋ชจ๋“  3D ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.)
  • opacity

๋•Œ๋•Œ๋กœ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์ด ๊ฐ€๋Šฅํ•œ ํ”„๋กœํผํ‹ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํŠน์ • SVG ํ”„๋กœํผํ‹ฐ
  • filter, ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์–ด๋–ค ํ•„ํ„ฐ์ธ์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์บ”๋ฒ„์Šค๋‚˜ WebGL๊ณผ ๊ฐ™์ด CSS๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ๋“ค๋„ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์š”์†Œ๋ฅผ ์ด๋™, ํฌ๊ธฐ ์กฐ์ • ๋˜๋Š” ํšŒ์ „ํ•˜๋ ค๋ฉด ํ•ญ์ƒ CSS transform ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

transform์„ ์ ์šฉํ•˜๋ฉด ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์žฌ๊ณ„์‚ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ํŠธ๋žœ์ง€์…˜์€ ๋Œ€๋ถ€๋ถ„ transform๊ณผ opacity๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์–ด๋–ค ์ž‘์—…์„ ํ•˜๋“  ์š”์†Œ์˜ ํฌ๊ธฐ๋‚˜ ๋ฐฐ์น˜๋ฅผ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜์ง€ ๋งˆ์„ธ์š”. height, width, border, margin, padding ๋“ฑ ํŽ˜์ด์ง€์—์„œ ์š”์†Œ์˜ ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ณ€๊ฒฝ์— ํ•„์š”ํ•œ ๊ณ„์‚ฐ์œผ๋กœ ์ธํ•ด ํŽ˜์ด์ง€ ์†๋„๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœํผํ‹ฐ์— ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์žฅ์น˜์™€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฒฝํ—˜์ƒ Safari๋Š” ํŠนํžˆ iOS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค. Firefox๋„ ๊ทธ๋‹ค์ง€ ๋’ค์ฒ˜์ง€์ง€๋Š” ์•Š์ง€๋งŒ ๊ณ ์„ฑ๋Šฅ ๋””๋ฐ”์ด์Šค์—์„œ๋งŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ๊นจ๋‹ซ์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ ์„ธ๊ณ„์˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ €์‚ฌ์–‘ Android๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ…Œ์ŠคํŠธ์—์„œ ์ œ์™ธํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  :

ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ๊ฐ€์†์ด ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ตœ์ข… ๊ฒฐ์ •์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค.

GPU๋Š” ๋” ๋น ๋ฅด์ง€๋งŒ ๋” ๋งŽ์€ ์—๋„ˆ์ง€๋ฅผ ์†Œ๋น„ํ•œ๋‹ค๋Š” ์ž ์žฌ์ ์ธ ์ด์œ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๊ธฐ์˜ ์ „์›์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ๋ฐฐํ„ฐ๋ฆฌ ์ ˆ์•ฝ ๋ชจ๋“œ์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ทธ๋ž˜ํ”ฝ ์„ฑ๋Šฅ๋ณด๋‹ค ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

10. ํ•„์š”์— ๋”ฐ๋ผ will-change๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ด๋ก ์ƒ์œผ๋กœ๋Š” ๋ถ€๋“œ๋Ÿฝ๊ณ  ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋Š๊ธฐ๊ฑฐ๋‚˜ ์‚๊ฑฑ๊ฑฐ๋ฆฌ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด(๋‹ค์‹œ ํ•œ ๋ฒˆ ๋งํ•˜์ง€๋งŒ, ์ €๋Š” Safari์—์„œ ์ฃผ๋กœ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค) will-change ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™œ์šฉํ•˜์„ธ์š”.

๊ธฐ์ˆ ์ ์ธ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ will-change๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์•Œ๋ ค์ฃผ์–ด(๊ธฐ์–ตํ•˜๊ธฐ ์‰ฝ๋„๋ก) ๋‹ค๋ฅธ ๊ณ„์‚ฐ์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค. ์ด๋Š” ๋งˆ์น˜ ๋ ˆ์Šคํ† ๋ž‘์— ์ผํ–‰ ์ „์ฒด๊ฐ€ ํ•œ์ •๋œ ๋ฉ”๋‰ด๋งŒ ์ฃผ๋ฌธํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏธ๋ฆฌ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋ฉฐ, ์ฃผ๋ฐฉ/๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง‘์ค‘ํ•ด์•ผ ํ•  ์‚ฌํ•ญ๊ณผ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋Š” ์‚ฌํ•ญ์„ ์•Œ๋ ค์คŒ์œผ๋กœ์จ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์–ด๋–ค ์š”์†Œ์˜ transform ํ”„๋กœํผํ‹ฐ๋งŒ ๋ณ€๊ฒฝ๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ํ™•์‹คํžˆ ์•Œ๊ณ  ์žˆ๊ณ , ๋ธŒ๋ผ์šฐ์ €์— will-change: transform์„ ํ†ตํ•ด ์ด๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ํŽ˜์ด์ง€์—์„œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ํ•ด๋‹น ์š”์†Œ๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋ง ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ƒ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ณ„์‚ฐ์„ ์ „์ ์œผ๋กœ GPU๋กœ ๋„˜๊ฒจ ๊ฐ€์žฅ ๋†’์€ ํ”„๋ ˆ์ž„ ์†๋„์™€ ๋ถ€๋“œ๋Ÿฌ์šด ์„ฑ๋Šฅ์„ ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ will-change๋Š” ๋งŒ๋ณ‘ํ†ต์น˜์•ฝ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์— ์•…์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๋Š” will-change๊ฐ€ ์ ์šฉ๋œ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ๋ ˆ์ด์–ด(์ผ์ข…์˜ ์ƒˆ๋กœ์šด z-index ๋ ˆ๋ฒจ)๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐํ•ฉ์ด ์กฐ๊ธˆ ๋” ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๊ฑฐ๋ž˜๋Š” ๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ถ€์ฃผ์˜ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์— ๋” ๋งŽ์€ ์ž‘์—…์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ MDN์—์„œ ์ธ์šฉํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : will-change๋Š” ๊ธฐ์กด์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๊ณ ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ์ž๋ฃŒ์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด๋‚˜ ํŠธ๋žœ์ง€์…˜ ์ „์— will-change ๊ธฐ๋Šฅ์„ ์ ์šฉํ•œ ๋‹ค์Œ, ๋‚˜์ค‘์— ์ œ๊ฑฐํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ•์กฐํ•˜์ง€๋งŒ, ๊ฐ€์žฅ ์ข‹์€ ์กฐ์–ธ์€ ์ฒ ์ €ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ณด๋„ˆ์Šค: ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ๋„๋ฅผ ์กด์ค‘ํ•˜์„ธ์š”

์‚ฌ์šฉ์ž๋Š” ๊ธฐ๊ธฐ ์„ค์ •์„ ํ†ตํ•ด ์ถ•์†Œ๋œ ๋ชจ์…˜์„ ์„ ํ˜ธํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ ‡๊ฒŒ ์„ ํƒํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์˜๋ฃŒ์ ์ธ ์ด์œ ๋กœ๋Š” ํ˜„๊ธฐ์ฆ, ๋ฉ”์Šค๊บผ์›€ ๋˜๋Š” ๊ณผ๋„ํ•œ ์›€์ง์ž„์— ๋…ธ์ถœ๋  ๋•Œ ๋ฐœ์ž‘์„ ์ผ์œผํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋‹จ์ง€ ์›€์ง์ž„์ด ์ง€๋‚˜์น˜๊ฒŒ ๋ˆˆ์— ๋„์–ด์„œ ๊ฑฐ์Šฌ๋ฆฌ๊ฒŒ ๋Š๋‚„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์™œ ์ด๋Ÿฌํ•œ ์„ ํƒ์„ ํ•˜๋Š”์ง€๋Š” ๋ณ„๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž์˜ ์ผ์€ ์–ด๋–ค ๊ฒฝ์šฐ๋“  ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ๋ฅผ ์ˆ˜์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ CSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” MDN์—์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.)

@media (prefers-reduced-motion) {
  /* ์‚ฌ์šฉ์ž ์„ค์ •์ด ์ถ•์†Œ๋œ ๋ชจ์…˜์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ์ ์šฉํ•  ์Šคํƒ€์ผ */
}

๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” ์ถ•์†Œ๋œ ๋ชจ์…˜ ๊ธฐ๋ณธ ์„ค์ •์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ <html> ํƒœ๊ทธ์— ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

const prefersReducedMotion = window.matchMedia(
  '(prefers-reduced-motion: reduce)'
).matches;

if (prefersReducedMotion) {
  document.documentElement.classList.add('reduce-motion');
}

์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜ˆ์ œ์— ๋”ฐ๋ผ ํŽ˜์ด์ง€์˜ ๋Œ€์ƒ ์š”์†Œ์— CSS๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์˜ค๋ฒ„๋ผ์ด๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.reduce-motion {
  /*  ์—ฌ๊ธฐ์— ์ถ•์†Œ๋œ ๋ชจ์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. */
}

๋‹จ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์— ๋™์ž‘์ด ๊นœ๋ฐ•์ด์ง€ ์•Š๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ๋ฐฐ์ œํ•˜์ง€ ์•Š๋„๋ก ํŽ˜์ด์ง€๊ฐ€ ์ ์ง„์ ์œผ๋กœ ํ–ฅ์ƒ๋˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๊ฐ€์ง€ ๊ธฐ์ˆ ์„ ํ˜ผํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ CSS๋ฅผ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๊ด€ํ•ด์„œ๋Š” ๋ชจ์…˜์„ ์ค„์ธ๋‹ค๊ณ  ํ•ด์„œ ๋ชจ์…˜์ด ์—†๊ฑฐ๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ „ํ˜€ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์„ธ์š”.

์ œ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ํ‚คํ”„๋ ˆ์ž„ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ถ•์†Œ๋œ ๋ชจ์…˜ ๊ธฐ๋ณธ ์„ค์ •์ด ๊ฐ์ง€๋œ ๊ฒฝ์šฐ์—๋งŒ ํˆฌ๋ช…๋„๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@keyframes slide_in {
  from {
    opacity: 0;
    transform: translateY(2rem);
  }
}

@keyframes slide_in_reduced {
  from {
    opacity: 0;
  }
}

.animated-thing {
  animation-name: slide_in;
}

@media (prefers-reduced-motion) {
  .animated-thing {
    animation-name: slide_in_reduced;
  }
}

์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์†Œํ•œ์˜ ์›€์ง์ž„์„ ์„ ํ˜ธํ•œ๋‹ค๊ณ  ํ•ด์„œ ํŠธ๋žœ์ง€์…˜์„ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ชจ์…˜์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์ƒํ™ฉ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์˜ค๋””์˜ค ๋˜๋Š” ๋น„๋””์˜ค ํŒŒ์ผ์— ์žฌ์ƒ ํ‘œ์‹œ๊ธฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๋Š” UI์˜ ํ•ต์‹ฌ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œ์‹œ๊ธฐ๋ฅผ ์™„์ „ํžˆ ์—†์• ๊ธฐ๋ณด๋‹ค๋Š” ์„ฌ์„ธํ•˜๊ณ  ๋ˆˆ์— ๊ฑฐ์Šฌ๋ฆฌ์ง€ ์•Š๊ฒŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์„ธ์š”. ์‚ฌ์šฉ์ž๊ฐ€ ์›€์ง์ž„์„ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์ •๋ณด๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ง‰๋Œ€ ๋Œ€์‹  ์ˆซ์ž ํผ์„ผํŠธ ์นด์šดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค).

์ตœ์†Œํ•œ ์‚ฌ์šฉ์ž๋Š” ๋™์˜์ƒ๊ณผ GIF๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์—ฐ์† ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ผ์‹œ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ƒ์ ์œผ๋กœ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ๋ณด๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๊ณ  ํ‘œ์‹œํ•œ ๊ฒƒ์„ ๊ฐ•์ œ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹  ๋””๋ฐ”์ด์Šค ์„ ํ˜ธ๋„์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ์˜ˆ์ธกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถ•์†Œ ๋ชจ์…˜๊ณผ ๊ด€๋ จ๋œ ๋””์ž์ธ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์Šค๋งค์‹ฑ ๋งค๊ฑฐ์ง„์˜ Val Head๊ฐ€ ์“ด ์ด ๊ธ€์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๊ทธ ์ž์ฒด๋กœ ํฐ ์ฃผ์ œ์ด์ง€๋งŒ, ์ด ํŒ์ด ์ผ๋ฐ˜์ ์ธ ์ง€์นจ์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์„ ์ข…ํ•ฉํ•ด ๋ณด์„ธ์š”

์ด CodePen ๋ฐ๋ชจ๋Š” ์ด ๊ธ€์˜ ํŒ์„ ๋ชจ๋‘ ์ ์šฉํ•˜๋ฉด UI ํŠธ๋žœ์ง€์…˜์˜ ๋Š๋‚Œ์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์–‘์ชฝ์˜ โ€˜run animationโ€™ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์—ด์˜ ํ•ญ๋ชฉ์ด ํŠธ๋žœ์ง€์…˜ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘˜ ๋ชจ๋‘ ์ƒ์ž์˜ ํฌ๊ธฐ ์กฐ์ •, ์ด๋™, ํŽ˜์ด๋“œ์ธ ๋“ฑ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ ์šฉ๋œ๋‹ค๋Š” ์ ์„ ์ฃผ๋ชฉํ•˜์„ธ์š”. ํ•˜์ง€๋งŒ ๊ทธ ํŠธ๋žœ์ง€์…˜(transition)์˜ ๋””ํ…Œ์ผ์ด ํšจ๊ณผ๋ฅผ ์™„์ „ํžˆ ๋ฐ”๊ฟ”(transform) ๋†“์•˜์Šต๋‹ˆ๋‹ค(๋ง์žฅ๋‚œ ์˜๋„๋Š” ์—†์Šต๋‹ˆ๋‹ค).

์™ผ์ชฝ(๋นจ๊ฐ„์ƒ‰-์ฃผํ™ฉ์ƒ‰) ์—ด์˜ ํ•ญ๋ชฉ์€ ๋‹จ๊ณ„์  ์ง€์—ฐ์ด ์—†์œผ๋ฉฐ ํˆฌ๋ช…๋„, ์œ„์น˜ ๋ฐ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ™”ํ•˜๋ฉด์„œ ํ•œ ๋ฒˆ์— ๋ชจ๋‘ ํŽ˜์ด๋“œ ์ธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠธ๋žœ์ง€์…˜์ด ๊ฝค ์˜ค๋ž˜ ์ง€์†๋˜๋ฉฐ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ease-out ์ปค๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ ๋‚˜์˜์ง€๋Š” ์•Š์ง€๋งŒ ์ตœ์ ์ด๋ผ๊ณ  ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด ์˜ค๋ฅธ์ชฝ(ํŒŒ๋ž€์ƒ‰) ์—ด์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋‹จ๊ณ„์ ์œผ๋กœ ์ง€์—ฐ๋˜์–ด ํ•ญ๋ชฉ์ด ์ฐจ๋ก€๋กœ ๋“ค์–ด์˜ต๋‹ˆ๋‹ค. ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ์ด ํŠธ๋žœ์ง€์…˜ ์‹œ๊ฐ„์€ ๋ชจ๋‘ ์ƒ๋‹นํžˆ ์ ์œผ๋ฉฐ ํšจ๊ณผ๋Š” ๋ชจ๋‘ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜์ง€๋งŒ ํ›จ์”ฌ ๋” ์„ฌ์„ธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ปค์Šคํ…€ cubic-bezier ์ปค๋ธŒ๊ฐ€ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฐ๋ชจ๋ฅผ ํ†ตํ•ด ์•ฝ๊ฐ„์˜ ์กฐ์ •์ด ์–ผ๋งˆ๋‚˜ ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

์›น์—์„œ ๋‚˜๋งŒ์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ œ์ž‘ํ•ด ๋ณด์„ธ์š”! ์ด๋ฒˆ ํฌ์ŠคํŒ…์ด ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ํฅ๋ฏธ๋กญ๊ณ  ์œ ์šฉํ•œ ์ •๋ณด๊ฐ€ ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ, ๋”์šฑ ๊ฐ•๋ ฅํ•œ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๊ฒฝํ—˜์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.


๐Ÿš€ ํ•œ๊ตญ์–ด๋กœ ๋œ ํ”„๋ŸฐํŠธ์—”๋“œ ์•„ํ‹ฐํด์„ ๋น ๋ฅด๊ฒŒ ๋ฐ›์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด Korean FE Article(https://kofearticle.substack.com/)์„ ๊ตฌ๋…ํ•ด์ฃผ์„ธ์š”!



Written by@[Ykss]
๊ณ ์ด๊ฒŒ ๋‘์ง€ ์•Š๊ณ  ํ˜๋ ค๋ณด๋‚ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์ž.

GitHubInstagramLinkedIn