[Library] motion-one ๐Ÿ†š framer-motion ๐Ÿ†š GSAP

ttiningยท2025๋…„ 5์›” 2์ผ
ํ•ญ๋ชฉmotion-oneframer-motionGSAP
๋ชฉ์ Web Animations API ๊ธฐ๋ฐ˜ ๊ฒฝ๋Ÿ‰ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌReact์šฉ์œผ๋กœ ์ตœ์ ํ™”๋œ ์„ ์–ธ์  ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฒ”์šฉ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (ScrollTrigger, Timeline ๋“ฑ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ํฌํ•จ)
ํฌ๊ธฐ๋งค์šฐ ์ž‘์Œ (~3KB)์ค‘๊ฐ„ (~30KB)๋น„๊ต์  ํผ (~60KB ์ด์ƒ)
React ์นœํ™”์„ฑ๊ธฐ๋ณธ์€ ๋‚ฎ์Œ (DOM ๊ธฐ๋ฐ˜), @motionone/react๋กœ React ์‚ฌ์šฉ ๊ฐ€๋Šฅ๋งค์šฐ ์ข‹์Œ (<motion.div>, variants ๋“ฑ)๋‚ฎ์Œ (React ๋น„์ง€์›, DOM ์ง์ ‘ ์ œ์–ด ์œ„์ฃผ)
์Šคํฌ๋กค ์• ๋‹ˆ๋ฉ”์ด์…˜์ˆ˜๋™ ๊ตฌํ˜„ ํ•„์š” (inView, animate ์ง์ ‘ ์„ค์ •)๊ธฐ๋ณธ ์ œ๊ณต (whileInView, ๊ฐ„๋‹จํ•œ ํŠธ๋ฆฌ๊ฑฐ๋งŒ ๊ฐ€๋Šฅ)๋งค์šฐ ๊ฐ•๋ ฅ (ScrollTrigger, scrub, pin, timeline ๋“ฑ ์ง€์›)
ํƒ€์ž… ์•ˆ์ •์„ฑ (TS)๋‚ฎ์Œ (์ง์ ‘ ๋‹จ์–ธ ํ•„์š”, ํƒ€์ž… ์ž๋™ ์ถ”๋ก  ์•ฝํ•จ)๋†’์Œ (์ •์  ํƒ€์ž… ์ถ”๋ก  ์šฐ์ˆ˜, ์ œ๋„ค๋ฆญ ๊ธฐ๋ฐ˜ API)๋ณดํ†ต (TS ์ง€์›์€ ์žˆ์ง€๋งŒ DOM ์ ‘๊ทผ ์‹œ ๋‹จ์–ธ ํ•„์š”)
๋ณต์žกํ•œ ํƒ€์ด๋ฐ/ํŠธ๋ฆฌ๊ฑฐ์ œํ•œ์  (keyframes + delay ๋“ฑ ์ˆ˜๋™ ์กฐํ•ฉ ํ•„์š”)์ค‘๊ฐ„ (variants, custom controls๋กœ ์ œํ•œ์  ๊ตฌํ˜„ ๊ฐ€๋Šฅ)๋งค์šฐ ๊ฐ•๋ ฅ (timeline, label, ScrollTrigger ๋“ฑ ์„ธ๋ถ€ ์ œ์–ด ๊ฐ€๋Šฅ)
๋Ÿฌ๋‹ ์ปค๋ธŒ๋‚ฎ์Œ (๋‹จ์ˆœํ•œ ๋ฌธ๋ฒ•, ๊ธฐ๋ณธ์ ์ธ DOM ์• ๋‹ˆ๋ฉ”์ด์…˜ ์œ„์ฃผ)์ค‘๊ฐ„ (๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์€ ํ•™์Šต ํ•„์š”: variants, layout animations ๋“ฑ)๋†’์Œ (timeline, ScrollTrigger ๋“ฑ ์ˆ™๋ จ ํ•„์š”)


โœ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ ํƒ ๊ธฐ์ค€

  • ๊ฐ„๋‹จํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ + React ์นœํ™”์„ฑ โžก๏ธ framer-motion
    e.g. ์ปดํฌ๋„ŒํŠธ ๋งˆ์šดํŠธ/์–ธ๋งˆ์šดํŠธ, ์Šฌ๋ผ์ด๋“œ, ํŽ˜์ด๋“œ ํšจ๊ณผ ๋“ฑ

  • ๊ณ ์„ฑ๋Šฅ + Scroll ๊ธฐ๋ฐ˜ ํŠธ๋ฆฌ๊ฑฐ ์„ธ๋ถ€ ์ œ์–ด + ์ •๊ตํ•œ ํƒ€์ด๋ฐ ์ œ์–ด ํ•„์š” โžก๏ธ GSAP
    e.g. ์Šคํฌ๋กค ์—ฐ๋™ ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ณต์žกํ•œ ์‹œํ€€์Šค ์• ๋‹ˆ๋ฉ”์ด์…˜

  • ๊ฐ€๋ณ๊ณ  ๋‹จ์ˆœํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜๋งŒ ํ•„์š” + ๋ฒˆ๋“ค ํฌ๊ธฐ ์ค‘์š” โžก๏ธ motion-one
    e.g. ๊ฐ„๋‹จํ•œ hover/fade in, ํ”„๋ ˆ์ž„์›Œํฌ ๋…๋ฆฝํ˜• ์• ๋‹ˆ๋ฉ”์ด์…˜


๐Ÿ“œ ๊ณต์‹ ๋ฌธ์„œ

profile
๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“  ๋ฒจ๋กœ๊ทธ *'-'*

0๊ฐœ์˜ ๋Œ“๊ธ€