diff --git a/src/components/footer/footer.tsx b/src/components/footer/footer.tsx index abf2e29..1ed5bf8 100644 --- a/src/components/footer/footer.tsx +++ b/src/components/footer/footer.tsx @@ -1,92 +1,294 @@ -import React from 'react'; +import React from "react"; import { - Box, Container, Grid, Typography, Link, Divider, Stack, useMediaQuery, useTheme -} from '@mui/material'; -import { - Instagram, YouTube, Facebook, LinkedIn -} from '@mui/icons-material'; -import { motion } from 'framer-motion'; + Box, + Container, + Grid, + Typography, + Link, + Divider, + Stack, + useMediaQuery, + useTheme, +} from "@mui/material"; +import { Instagram, YouTube, Facebook, LinkedIn } from "@mui/icons-material"; +import { motion, Variants } from "framer-motion"; export default function Footer() { const theme = useTheme(); - const isMobile = useMediaQuery(theme.breakpoints.down('sm')); + const isMobile = useMediaQuery(theme.breakpoints.down("sm")); + const isTablet = useMediaQuery(theme.breakpoints.between("sm", "md")); + + // Animation variants + const containerVariants: Variants = { + hidden: { opacity: 0 }, + visible: { + opacity: 1, + transition: { + staggerChildren: 0.1, + when: "beforeChildren", + }, + }, + }; + + const itemVariants: Variants = { + hidden: { y: 20, opacity: 0 }, + visible: { + y: 0, + opacity: 1, + transition: { + duration: 0.5, + ease: "easeOut", + }, + }, + hover: { + scale: 1.05, + color: "#00E0FF", + transition: { duration: 0.2 }, + }, + }; + + const socialIconVariants: Variants = { + hidden: { scale: 0 }, + visible: { + scale: 1, + transition: { + type: "spring", + stiffness: 500, + damping: 15, + }, + }, + hover: { + scale: 1.2, + transition: { duration: 0.2 }, + }, + }; return ( - + - + {/* Column 1: Explore Links */} + + Explore + - About Us - Portfolio - Blogs - Services + {["About Us", "Portfolio", "Blogs", "Services"].map((item) => ( + + {item} + + ))} {/* Column 2: Support Links */} + + Support + - FAQ’s - Terms & Conditions - Privacy Policy + {["FAQ’s", "Terms & Conditions", "Privacy Policy"].map( + (item) => ( + + {item} + + ) + )} - {/* Column 3: Logo (only visible on md+) */} - {!isMobile && ( - - - Quadra Edge - - - )} + {/* Column 3: Logo */} + + + + + {/* Column 4: Contact Info + Socials */} - {/* Mobile: show logo here instead */} - {isMobile && ( - - Quadra Edge - - )} + + Contact Us + - Contact Us - Number - Address + + +1 (123) 456-7890 + + + + 123 Business Ave, Suite 100 +
+ New York, NY 10001 +
- - - - + {[ + { icon: , name: "Instagram" }, + { icon: , name: "YouTube" }, + { icon: , name: "Facebook" }, + { icon: , name: "LinkedIn" }, + ].map((social, index) => ( + + {React.cloneElement(social.icon, { + sx: { + fontSize: isMobile ? "1.8rem" : "2rem", + transition: "transform 0.2s ease", + }, + })} + + ))}
- + - - - Copyright © 2025 QuadraEdge + + + Copyright © {new Date().getFullYear()} QuadraEdge. All rights + reserved.