"use client";
import React from "react";
import { SocialCloud } from "@/registry/blocks/footer-section/social-cloud";
import { motion, Variants } from "motion/react";
const SolaceUILogo = ({ className }: { className?: string }) => {
return (
<svg className={className} width="64" height="38" viewBox="0 0 64 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 20.1032L39.8387 20.1032C44.7808 20.1032 48.7871 24.1095 48.7871 29.0516C48.7871 33.9937 44.7808 38 39.8387 38L1.56459e-06 38L0 20.1032Z" fill="currentColor" />
<path d="M63.4968 17.8968L23.6581 17.8968C18.716 17.8968 14.7097 13.8904 14.7097 8.94839C14.7097 4.00633 18.716 0 23.6581 0L63.4968 0V17.8968Z" fill="currentColor" />
</svg>
)
}
export default function Footer1() {
const containerVariants = {
hidden: { opacity: 0 },
visible: {
opacity: 1,
transition: {
staggerChildren: 0.1,
delayChildren: 0.1,
},
},
};
const itemVariants: Variants = {
hidden: { opacity: 0, y: 20 },
visible: {
opacity: 1,
y: 0,
transition: {
type: "spring",
stiffness: 260,
damping: 20,
},
},
};
const dividerVariants: Variants = {
hidden: { opacity: 0 },
visible: { opacity: 1, transition: { duration: 0.5, delay: 0.5 } }, // Appears after a delay
};
return (
<footer className="w-full py-12 bg-(--color-background) dark:bg-(--color-background) text-black dark:text-white overflow-hidden">
<motion.div
initial="hidden"
whileInView="visible"
viewport={{ once: true, margin: "0px 0px -100px 0px" }}
variants={containerVariants}
className="container mx-auto px-4 flex flex-col items-center gap-10 mb-12"
>
{/* Logo */}
<motion.div variants={itemVariants} className="flex justify-center">
<SolaceUILogo className="h-10 w-auto" />
</motion.div>
{/* Navigation Links */}
<motion.nav
variants={itemVariants}
className="flex flex-wrap justify-center gap-x-8 gap-y-4 text-base font-medium relative z-10"
>
{["Products", "Solution", "Company", "About", "Blog", "Terms"].map(
(item) => (
<motion.a
key={item}
href="#"
className="relative px-2 py-1 group"
whileHover={{ scale: 1.05 }}
whileTap={{ scale: 0.95 }}
>
<span className="relative z-10 group-hover:text-black dark:group-hover:text-white transition-colors duration-300">
{item}
</span>
<motion.span
className="absolute inset-0 bg-(--color-background) dark:bg-(--color-background) rounded-md -z-0 origin-center"
initial={{ scale: 0, opacity: 0 }}
whileHover={{ scale: 1, opacity: 1 }}
transition={{ type: "spring", stiffness: 300, damping: 20 }}
/>
</motion.a>
),
)}
</motion.nav>
{/* Social Media Icons */}
<motion.div variants={itemVariants}>
<SocialCloud className="text-black dark:text-white" />
</motion.div>
</motion.div>
{/* Divider */}
<motion.div
className="w-full h-12 border-y border-black dark:border-white opacity-10 bg-[repeating-linear-gradient(315deg,currentColor_0,currentColor_1px,transparent_0,transparent_50%)]"
style={{ backgroundSize: "10px 10px" }}
initial={{ backgroundPositionX: "0%" }}
whileInView={{ backgroundPositionX: "100%" }}
viewport={{ once: true }}
transition={{
ease: "linear",
duration: 20,
}}
/>
{/* Copyright */}
<motion.div
className="container mx-auto px-4 mt-8 text-center text-sm text-neutral-400 dark:text-neutral-600"
initial="hidden"
whileInView="visible"
viewport={{ once: true }}
variants={itemVariants} // Re-trigger for copyright or just use simple fade
>
<p>© {new Date().getFullYear()} SolaceUI, All rights reserved</p>
</motion.div>
</footer>
);
}