diff --git a/src/app/eventcluster/eventcluster.module.css b/src/app/eventcluster/eventcluster.module.css
new file mode 100644
index 0000000..b470fc4
--- /dev/null
+++ b/src/app/eventcluster/eventcluster.module.css
@@ -0,0 +1,31 @@
+.event {
+ background: url('../../assets/images/EventBG.png');
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-color: #070b12;
+ }
+
+.Back{
+ cursor: pointer;
+ transition: 0.2s;
+}
+
+.Back:active{
+ transform: scale(0.9);
+}
+
+.slide{
+ height: 60vh;
+ margin-top: -1%;
+}
+
+@media screen and (max-width : 1024px){
+ .eventClusterName{
+ margin-top: 2%;
+ }
+ .slide{
+ margin-top: -2%;
+ height: 75vh;
+ }
+}
diff --git a/src/app/eventcluster/page.tsx b/src/app/eventcluster/page.tsx
new file mode 100644
index 0000000..462abf4
--- /dev/null
+++ b/src/app/eventcluster/page.tsx
@@ -0,0 +1,24 @@
+import { ClusterCarousel, NavBar } from '@/components';
+import Back from '@/assets/images/Back.png';
+import BackEnlarge from '@/assets/images/BackEnlarge.png';
+import ImageChanger from '@/components/BackButton/back';
+import styles from './eventcluster.module.css';
+
+const events = () => {
+ return (
+
+
+
+
+ CLUSTER NAME
+
+
+
+
+
+ );
+};
+
+export default events;
diff --git a/src/app/gallery/page.tsx b/src/app/gallery/page.tsx
index 489b44f..bbd320a 100644
--- a/src/app/gallery/page.tsx
+++ b/src/app/gallery/page.tsx
@@ -77,7 +77,8 @@ const History = () => {
styles.historyBG +
' ' +
'h-screen w-screen p-0 flex justify-center items-center overflow-y-hidden' +
- (isScrolled ? 'scrolled' : '')
+ ' ' +
+ (isScrolled ? ' scrolled' : ' transitioned')
}
onWheel={simulateScroll}
onTouchStart={handleTouchStart}
diff --git a/src/app/globals.css b/src/app/globals.css
index 1e5a7a9..593a54c 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -53,7 +53,7 @@ body {
.footer-bg {
border-radius: 10px;
- background: rgba(0, 0, 0, 0.5);
+ background: rgba(0, 0, 0, 0.45);
}
.home {
@@ -79,6 +79,11 @@ body {
background-position: center;
}
+.AboutCardContent {
+ background: rgba(255, 255, 255, 0.05);
+ backdrop-filter: blur(20px);
+}
+
.scrolled {
animation: fadeout 1.5s;
-moz-animation: fadeout 1.5s;
@@ -99,7 +104,7 @@ body {
background-color: initial;
}
to {
- background-color: #7efbfe;
+ background-color: #000;
}
}
@@ -257,4 +262,16 @@ body {
.greenbutton{
filter: hue-rotate(137deg) drop-shadow(0 0 20px #23A347) brightness(120%);
+}
+
+@media screen and (min-width: 1240px) {
+ .about {
+ min-height: max(100vh, 742px);
+ }
+}
+
+@media screen and (min-width: 1540px) {
+ .about {
+ min-height: max(100vh, 860px);
+ }
}
\ No newline at end of file
diff --git a/src/app/home/page.tsx b/src/app/home/page.tsx
index 3b7bb6f..d31c13a 100644
--- a/src/app/home/page.tsx
+++ b/src/app/home/page.tsx
@@ -57,7 +57,7 @@ export default function Home() {
}
>
{
return result;
};
-function useWindowSize() {
- const [windowSize, setWindowSize] = useState<{
- width: number | undefined;
- height: number | undefined;
- }>({
- width: undefined,
- height: undefined,
- });
-
- useEffect(() => {
- function handleResize() {
- setWindowSize({
- width: window.innerWidth,
- height: window.innerHeight,
- });
- }
- window.addEventListener('resize', handleResize);
- handleResize();
- return () => window.removeEventListener('resize', handleResize);
- }, []);
- return windowSize;
-}
-
export default function Loading() {
- const size = useWindowSize();
const currDate = new Date();
const [animationStarted, setAnimationStarted] = useState
(false);
const [year, setYear] = useState(String(currDate.getFullYear()).padStart(4, '0'));
@@ -87,8 +63,8 @@ export default function Loading() {
clearInterval(lightTimer);
setTimeout(() => {
router.push('/home');
- }, 1000);
- }, 5000);
+ }, 500);
+ }, 2000);
const lightTimer = setInterval(() => {
setIsLeftLightOn(prev => !prev);
}, 100);
@@ -100,27 +76,28 @@ export default function Loading() {
}
}, [animationStarted, router]);
- return size.width !== undefined && size.width < 700 ? (
-
- ) : (
-
+ return (
+ <>
+
+
+ >
);
}
diff --git a/src/assets/images/aboutWedge.png b/src/assets/images/aboutWedge.png
new file mode 100644
index 0000000..0766cfe
Binary files /dev/null and b/src/assets/images/aboutWedge.png differ
diff --git a/src/assets/images/leftPortal.png b/src/assets/images/leftPortal.png
new file mode 100644
index 0000000..3b2fc00
Binary files /dev/null and b/src/assets/images/leftPortal.png differ
diff --git a/src/assets/images/rightPortal.png b/src/assets/images/rightPortal.png
new file mode 100644
index 0000000..d95a15f
Binary files /dev/null and b/src/assets/images/rightPortal.png differ
diff --git a/src/assets/images/temp.png b/src/assets/images/temp.png
new file mode 100644
index 0000000..d0faf5b
Binary files /dev/null and b/src/assets/images/temp.png differ
diff --git a/src/components/AboutCard/AboutCard.module.css b/src/components/AboutCard/AboutCard.module.css
index 64cf065..de8af1a 100644
--- a/src/components/AboutCard/AboutCard.module.css
+++ b/src/components/AboutCard/AboutCard.module.css
@@ -7,7 +7,7 @@
box-sizing: border-box;
}
-.parent div {
+.edge {
position: absolute;
width: 55px;
height: 55px;
@@ -46,3 +46,26 @@
border: 1px solid #ddd;
border-radius: 2px;
}
+
+/* .topWedge {
+ width: 70px;
+ height: 6.9px;
+ left: 50%;
+ transform: translate(-40%,-10%);
+ background: url('../../assets/images/aboutWedge.png');
+ background-size: contain;
+ background-repeat: no-repeat;
+ transform: scale(1.2);
+}
+
+.bottomWedge {
+ width: 70px;
+ height: 8px;
+ left: 50%;
+ transform: translate(-40%,-50%);
+ transform: rotate(90deg);
+ background: url('../../assets/images/aboutWedge.png');
+ background-size: contain;
+ background-repeat: no-repeat;
+ transform: scale(1.2);
+} */
diff --git a/src/components/AboutCard/AboutCard.tsx b/src/components/AboutCard/AboutCard.tsx
index 64f9440..43fc2d6 100644
--- a/src/components/AboutCard/AboutCard.tsx
+++ b/src/components/AboutCard/AboutCard.tsx
@@ -4,7 +4,7 @@ const AboutCard = () => {
const content = AboutContent.content;
return (
);
};
diff --git a/src/components/AboutCard/AboutCardMob.tsx b/src/components/AboutCard/AboutCardMob.tsx
index 371ea51..b0bcd42 100644
--- a/src/components/AboutCard/AboutCardMob.tsx
+++ b/src/components/AboutCard/AboutCardMob.tsx
@@ -10,16 +10,16 @@ const AboutCardMob = () => {
className={
styles.parent +
' ' +
- 'md:hidden flex justify-center items-center p-4 py-10 text-center'
+ 'md:hidden flex justify-center items-center p-4 py-10 text-center AboutCardContent z-0'
}
>
-
-
-
-
-
+
+
+
+
+
{content} + {content2}
-
+
);
};
diff --git a/src/components/ClusterCarousel/ClusterCarousel.tsx b/src/components/ClusterCarousel/ClusterCarousel.tsx
new file mode 100644
index 0000000..086db4e
--- /dev/null
+++ b/src/components/ClusterCarousel/ClusterCarousel.tsx
@@ -0,0 +1,132 @@
+'use client';
+
+import { Swiper, SwiperSlide } from 'swiper/react';
+import { Autoplay, Pagination, Navigation } from 'swiper/modules';
+
+import 'swiper/css';
+import 'swiper/css/navigation';
+import 'swiper/css/keyboard';
+
+import Image from 'next/image';
+import leftPortal from '../../assets/images/leftPortal.png';
+import rightPortal from '../../assets/images/rightPortal.png';
+import temp from '../../assets/images/temp.png';
+
+import leftArrow from '../../assets/images/leftArrow.png';
+import rightArrow from '../../assets/images/rightArrow.png';
+import { useState } from 'react';
+
+const ClusterCarousel = () => {
+ const slides = [1, 2, 3, 4, 5, 6, 7, 8, 9];
+ const breakpoints = {
+ 100: {
+ slidesPerView: 1,
+ spaceBetween: 15,
+ },
+ 768: {
+ slidesPerView: 1,
+ spaceBetween: 20,
+ },
+ 1024: {
+ slidesPerView: 1,
+ spaceBetween: 30,
+ },
+ 1440: {
+ slidesPerView: 1,
+ spaceBetween: 10,
+ },
+ };
+
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const [swiper, setSwiper] = useState(null);
+
+ const handleSlideChange = (index: number) => {
+ const currentSlide = swiper?.slides[index];
+ if (currentSlide) {
+ currentSlide.style.transform = 'scale(1.0)';
+ currentSlide.style.opacity = '1';
+ currentSlide.style.transition = 'transform 0.5s ease-in-out';
+ }
+
+ const previousSlide = swiper?.slides[index - 1];
+ if (previousSlide) {
+ previousSlide.style.transform = 'scale(0.67)';
+ previousSlide.style.opacity = '0.4';
+ previousSlide.style.transition = 'transform 0.5s ease-in-out';
+ }
+
+ const nextSlide = swiper?.slides[index + 1];
+ if (nextSlide) {
+ nextSlide.style.transform = 'scale(0.67)';
+ nextSlide.style.opacity = '0.4';
+ nextSlide.style.transition = 'transform 0.5s ease-in-out';
+ }
+ };
+
+ const goToNextSlide = () => {
+ swiper?.slideNext();
+ };
+
+ const goToPreviousSlide = () => {
+ swiper?.slidePrev();
+ };
+
+ return (
+
+
+
handleSlideChange(swiper?.activeIndex)}
+ >
+ {slides.map(slide => (
+
+
+
+
+
+ ))}
+
+
+
+
+
+
+
+ BATMAN
+
+
+
+
+
+
+ );
+};
+
+export default ClusterCarousel;
diff --git a/src/components/ClusterCarousel/type.d.ts b/src/components/ClusterCarousel/type.d.ts
new file mode 100644
index 0000000..b0b9660
--- /dev/null
+++ b/src/components/ClusterCarousel/type.d.ts
@@ -0,0 +1,3 @@
+type ClusterType = {
+ image: string;
+};
diff --git a/src/components/Landing/LoadingMobileView.tsx b/src/components/Landing/LoadingMobileView.tsx
index 815044e..37cf0d9 100644
--- a/src/components/Landing/LoadingMobileView.tsx
+++ b/src/components/Landing/LoadingMobileView.tsx
@@ -15,7 +15,7 @@ const LoadingMobileView = ({
}: LoadingProps) => {
return (
<>
-
+
diff --git a/src/components/Landing/LoadingWebView.tsx b/src/components/Landing/LoadingWebView.tsx
index fde2f78..16f840e 100644
--- a/src/components/Landing/LoadingWebView.tsx
+++ b/src/components/Landing/LoadingWebView.tsx
@@ -15,7 +15,7 @@ const LoadingWebView = ({
}: LoadingProps) => {
return (
<>
-
+
diff --git a/src/components/index.ts b/src/components/index.ts
index fad298c..32abd2b 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -10,3 +10,4 @@ export { default as ImageChanger } from './BackButton/back';
export { default as Carousel } from './Carousel/carousel';
export { default as LoadingWebView } from './Landing/LoadingWebView';
export { default as LoadingMobileView } from './Landing/LoadingMobileView';
+export { default as ClusterCarousel } from './ClusterCarousel/ClusterCarousel';