diff --git a/src/App.jsx b/src/App.jsx index a83dc923..bd030250 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,12 +1,16 @@ +import { useEffect } from "react"; +import IntroSection from "./introSection"; + function App() { + useEffect(() => { + window.scrollTo(0, 0); + history.scrollRestoration = "manual"; + }, []); + return ( -
-
- 다람쥐 헌 쳇바퀴에 타고파 - Hyundai Sans Text Office - 0123456789 -
-
+ <> + + ); } diff --git a/src/introSection/car-spin.mp4 b/src/introSection/car-spin.mp4 new file mode 100644 index 00000000..eb5a4c41 Binary files /dev/null and b/src/introSection/car-spin.mp4 differ diff --git a/src/introSection/index.jsx b/src/introSection/index.jsx index c01262ec..75cb1f54 100644 --- a/src/introSection/index.jsx +++ b/src/introSection/index.jsx @@ -1,6 +1,11 @@ import useScrollTransition from "@/common/useScrollTransition.js"; +import vector from "./vector.svg"; +import style from "./index.module.css"; +import SpinningCarVideo from "./car-spin.mp4"; +import { useEffect, useRef } from "react"; function IntroSection() { + const videoRef = useRef(null); const titleOpacity = useScrollTransition({ scrollStart: 0, scrollEnd: 500, @@ -12,14 +17,42 @@ function IntroSection() { opacity: titleOpacity, }; + const videoTimeline = useScrollTransition({ + scrollStart: 500, + scrollEnd: 1300, + valueStart: 0, + valueEnd: 2, + }); + + useEffect(() => { + videoRef.current.currentTime = videoTimeline; + }, [videoTimeline]); + return (
-

- The new IONIQ 5 -

+
+

+ The new IONIQ 5 +

+ +
+ + +
+
+
+ +
+
); } diff --git a/src/introSection/index.module.css b/src/introSection/index.module.css new file mode 100644 index 00000000..57d30697 --- /dev/null +++ b/src/introSection/index.module.css @@ -0,0 +1,27 @@ +.openTitle { + animation: open-title 0.5s ease-in-out; +} + +@keyframes open-title { + from { + transform: translateY(80px); + opacity: 0; + } + to { + transform: translateY(0px); + opacity: 1; + } +} + +.openVector { + animation: open-vector 0.3s ease-in-out 0.3s forwards; +} + +@keyframes open-vector { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} \ No newline at end of file diff --git a/src/introSection/vector.svg b/src/introSection/vector.svg new file mode 100644 index 00000000..17133f94 --- /dev/null +++ b/src/introSection/vector.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/tailwind.redefine.js b/tailwind.redefine.js index b86db9b6..753b1b59 100644 --- a/tailwind.redefine.js +++ b/tailwind.redefine.js @@ -69,6 +69,6 @@ export default { "title-l": ["32px", "44px"], "head-s": ["36px", "52px"], "head-m": ["45px", "64px"], - "head-l": ["57px", "80px"] - } + "head-l": ["57px", "80px"], + }, };