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"],
+ },
};