diff --git a/src/App.css b/src/App.css index 7fc387d..243cbf6 100644 --- a/src/App.css +++ b/src/App.css @@ -1,9 +1,6 @@ -/* #root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} */ +#root { + flex-direction: column; +} .logo { height: 6em; diff --git a/src/App.jsx b/src/App.jsx index 86793a2..d1187ae 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,6 +1,7 @@ import { Routes, Route } from 'react-router-dom'; import { Home } from './pages'; import NavigationBar from './layout/NavigationBar'; +import Footer from './layout/Footer'; import './App.css'; function App() { @@ -15,8 +16,7 @@ function App() { - {/* Footer */} - + > ); } diff --git a/src/index.css b/src/index.css index 4f05264..375049c 100644 --- a/src/index.css +++ b/src/index.css @@ -8,8 +8,7 @@ html, body { font-family: 'Montserrat', sans-serif; - /* background-color: #4a69bd; */ - /* color: #ffffff; */ + overscroll-behavior: none; } a { diff --git a/src/layout/Footer.css b/src/layout/Footer.css new file mode 100644 index 0000000..4582502 --- /dev/null +++ b/src/layout/Footer.css @@ -0,0 +1,17 @@ +.footer-banner { + @apply + sticky + flex + flex-col + w-full + px-8 + md:px-20 + pt-8 + md:pt-10 + pb-16 + md:pb-20 + gap-y-1 + bg-primary + text-white + ; +} diff --git a/src/layout/Footer.tsx b/src/layout/Footer.tsx new file mode 100644 index 0000000..a43b000 --- /dev/null +++ b/src/layout/Footer.tsx @@ -0,0 +1,85 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; +import { + FaFacebookF, + FaInstagram, + FaTelegramPlane, + FaYoutube, + FaLinkedinIn, +} from 'react-icons/fa'; +import { IoMdMail } from 'react-icons/io'; +import './Footer.css'; + +function Footer() { + const socialMediaLinks = [ + { + platform: 'Facebook', + url: 'https://www.facebook.com/nuscomputing', + icon: FaFacebookF, + }, + { + platform: 'Instagram', + url: 'https://www.instagram.com/NUSComputingClub/', + icon: FaInstagram, + }, + { + platform: 'Telegram', + url: 'https://t.me/nuscomputingclub', + icon: FaTelegramPlane, + }, + { + platform: 'YouTube', + url: 'https://www.youtube.com/channel/UCIXFOIE140R6x0z05hgim0Q', + icon: FaYoutube, + }, + { + platform: 'LinkedIn', + url: 'https://www.linkedin.com/company/nus-students-computing-club/', + icon: FaLinkedinIn, + }, + { + platform: 'Email', + url: 'connect@nuscomputing.com', + icon: IoMdMail, + }, + ]; + + return ( + + ); +} + +export default Footer; diff --git a/src/layout/NavigationBar.jsx b/src/layout/NavigationBar.tsx similarity index 94% rename from src/layout/NavigationBar.jsx rename to src/layout/NavigationBar.tsx index 52d1c31..38a3843 100644 --- a/src/layout/NavigationBar.jsx +++ b/src/layout/NavigationBar.tsx @@ -1,3 +1,4 @@ +import React from 'react'; import { Link } from 'react-router-dom'; import NavigationMenu from './NavigationMenu'; import './NavigationBar.css'; diff --git a/src/layout/NavigationMenu.jsx b/src/layout/NavigationMenu.tsx similarity index 97% rename from src/layout/NavigationMenu.jsx rename to src/layout/NavigationMenu.tsx index 8c26a1b..d5ced90 100644 --- a/src/layout/NavigationMenu.jsx +++ b/src/layout/NavigationMenu.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import React, { useState } from 'react'; import { IoMenu, IoClose } from 'react-icons/io5'; import NavigationMenuItem from './NavigationMenuItem'; import './NavigationMenu.css'; diff --git a/src/layout/NavigationMenuItem.css b/src/layout/NavigationMenuItem.css index 34c08ef..92341ef 100644 --- a/src/layout/NavigationMenuItem.css +++ b/src/layout/NavigationMenuItem.css @@ -3,11 +3,31 @@ relative font-heading p-4 - md:px-0 + md:p-0 text-black hover:scale-[1.1] hover:rounded-md - hover:bg-gray-100 + hover:bg-slate-100 md:hover:bg-transparent ; } + +.navigation-menu-item::before { + content: ''; + + @apply + absolute + block + w-full + h-0.5 + bottom-0 + left-0 + bg-outline + transition-transform + duration-300 + ease-out + scale-x-0 + origin-top-left + hover:md:scale-x-100 + ; +} diff --git a/src/layout/NavigationMenuItem.tsx b/src/layout/NavigationMenuItem.tsx index 74a3054..545059e 100644 --- a/src/layout/NavigationMenuItem.tsx +++ b/src/layout/NavigationMenuItem.tsx @@ -5,7 +5,7 @@ import './NavigationMenuItem.css'; interface NavigationMenuItemProps { link: string; label: string; - dropdown: boolean; + dropdown?: boolean; } function NavigationMenuItem(props: NavigationMenuItemProps) { diff --git a/tailwind.config.js b/tailwind.config.js index 1135580..6ef65b9 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,7 +1,7 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: ['./src/**/*.{js,jsx}'], + content: ['./src/**/*.{js,jsx,ts,tsx}'], theme: { extend: { colors: {