-
-
404 - Page Not Found
-
- Sorry! We can't find the page you're looking for!
-
-
-
-
Oops! This page must have been garbage collected.
+ <>
+
+ 404
+
+
+
-
-
+
+
+ >
+
);
}
diff --git a/frontend/src/pages/_document.tsx b/frontend/src/pages/_document.tsx
index e2f2010..5a64930 100644
--- a/frontend/src/pages/_document.tsx
+++ b/frontend/src/pages/_document.tsx
@@ -4,6 +4,7 @@ export default function Document() {
return (
+
+
+
+ About Us | CseSoc UNSW
+
+
diff --git a/frontend/src/pages/contact-us.tsx b/frontend/src/pages/contact-us.tsx
index d41ef35..d2a4426 100644
--- a/frontend/src/pages/contact-us.tsx
+++ b/frontend/src/pages/contact-us.tsx
@@ -2,10 +2,15 @@ import Contacts from '@/components/Contacts';
import Layout from '@/components/Layout';
import PageBody from '@/components/PageBody';
import PageTitle from '@/components/PageTitle';
+import TabTitle from 'next/head';
export default function ContactUsPage() {
return (
+
+ Contact Us | CseSoc UNSW
+
+
diff --git a/frontend/src/pages/events.tsx b/frontend/src/pages/events.tsx
index cf248c8..e43397c 100644
--- a/frontend/src/pages/events.tsx
+++ b/frontend/src/pages/events.tsx
@@ -2,17 +2,24 @@ import Navbar from '@/components/Navbar';
import Footer from '@/components/Footer';
// import axios from 'axios';
import Events from '@/components/Event';
+import TabTitle from 'next/head'
export default function EventsPage() {
return (
-
+ <>
+
+ Events | CseSoc UNSW
+
+
+
+ >
);
}
\ No newline at end of file
diff --git a/frontend/src/pages/index.tsx b/frontend/src/pages/index.tsx
index 445bc19..25fb5cd 100644
--- a/frontend/src/pages/index.tsx
+++ b/frontend/src/pages/index.tsx
@@ -3,10 +3,16 @@ import Landing from '@/components/Landing';
import Sponsors from '@/components/Sponsors/index';
import AboutHomePage from '@/components/About/AboutHomepage';
import EventsBrief from '@/components/Event/EventsBrief';
+import TabTitle from 'next/head';
export default function HomePage() {
return (
-
+ <>
+
+ CseSoc UNSW
+
+
+
@@ -18,6 +24,8 @@ export default function HomePage() {
-
+
+ >
+
);
}
diff --git a/frontend/src/pages/resources.tsx b/frontend/src/pages/resources.tsx
index f656165..30ed708 100644
--- a/frontend/src/pages/resources.tsx
+++ b/frontend/src/pages/resources.tsx
@@ -2,6 +2,7 @@ import Layout from '@/components/Layout';
import Image from 'next/image';
import { resourceCards, stage1, stage2, stage3 } from '@/../public/data/resourceCards';
import PageTitle from '@/components/PageTitle';
+import TabTitle from 'next/head';
export default function ResourcesPage() {
const boxStyling =
@@ -9,6 +10,11 @@ export default function ResourcesPage() {
return (
+
+
+ Resources | CseSoc UNSW
+
+
diff --git a/frontend/src/pages/sponsors.tsx b/frontend/src/pages/sponsors.tsx
index f42c7dd..15641a2 100644
--- a/frontend/src/pages/sponsors.tsx
+++ b/frontend/src/pages/sponsors.tsx
@@ -3,6 +3,7 @@ import { useState } from 'react';
import { diamondLinks, goldLinks, silverLinks, sponsorInfo } from '@/../public/data/sponsorInfos';
import SponsorModal from '@/components/Sponsors/SponsorModal';
import { EmojiRain } from 'next-emoji-rain';
+import TabTitle from 'next/head';
export default function SponsorsPage() {
const logostyle =
@@ -29,6 +30,10 @@ export default function SponsorsPage() {
return (
+
+ Sponsers | CseSoc UNSW
+
+
diff --git a/frontend/src/styles/globals.css b/frontend/src/styles/globals.css
index b94c5b5..3f7691b 100644
--- a/frontend/src/styles/globals.css
+++ b/frontend/src/styles/globals.css
@@ -29,3 +29,58 @@ body {
.hover-animate:hover {
transform: scale(1.03);
}
+
+@keyframes expandDown {
+ from {
+ max-height: 0;
+ opacity: 0;
+ }
+ to {
+ max-height: auto;
+ opacity: 1;
+ }
+}
+
+@keyframes smoothClose {
+ from {
+ max-height: auto;
+ opacity: 1;
+ }
+ to {
+ max-height: 0;
+ opacity: 0;
+ }
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(-8px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.dropdown-content {
+ animation: expandDown 1.2s ease-out;
+ transform-origin: top;
+}
+
+.dropdown-content[data-state="closed"] {
+ animation: smoothClose 0.3s ease-in-out;
+ transform-origin: top;
+}
+
+.dropdown-item {
+ opacity: 0;
+ animation: fadeInUp 0.5s ease-out forwards;
+}
+
+.dropdown-item:nth-child(1) { animation-delay: 0.1s; }
+.dropdown-item:nth-child(2) { animation-delay: 0.2s; }
+.dropdown-item:nth-child(3) { animation-delay: 0.3s; }
+.dropdown-item:nth-child(4) { animation-delay: 0.4s; }
+.dropdown-item:nth-child(5) { animation-delay: 0.5s; }
+.dropdown-item:nth-child(6) { animation-delay: 0.6s; }
\ No newline at end of file