@@ -4,17 +4,23 @@ import Nurui from "@/components/common/Nurui";
44import RocketScrollToTop from "@/components/nurui/rocket-scroll-to-top" ;
55import { navigationActive } from "@/utils/navigationActive" ;
66import { usePathname } from "next/navigation" ;
7- import { IoLocationOutline } from "react-icons/io5" ;
8- import { MdOutlineMail } from "react-icons/md" ;
7+ import { IconType } from "react-icons/lib" ;
98import "../../styles/footer.css" ;
109
10+ type FooterLink = {
11+ text : string ;
12+ url : string ;
13+ external ?: boolean ;
14+ icon ?: IconType ;
15+ } ;
16+
1117const Footer = ( ) => {
1218 const pathName = usePathname ( ) ;
1319 if ( pathName . includes ( "docs" ) || pathName . includes ( "preview" ) ) return null ;
1420
1521 return (
1622 < div className = "bg-[var(--white-color)] dark:bg-transparent border-t border-[var(--border-color)] w-full text-[var(--text-primary-color)] mt-auto rounded-tl-[50px] lg:rounded-tl-[80px] xl:rounded-tl-[110px] rocket-animation" >
17- < RocketScrollToTop className = " bg-[var(--background-color)] max-w-24 mx-auto rounded-full -mt-16 hidden md:block" />
23+ < RocketScrollToTop className = "bg-[var(--background-color)] max-w-24 mx-auto rounded-full -mt-16 hidden md:block" />
1824 < div className = "container" >
1925 < div className = " grid md:grid-cols-2 lg:grid-cols-4 xl:flex flex-col md:flex-row 2xl:justify-between gap-10 xl:gap-14 2xl:gap-24 py-7 xl:py-16 pl-1 xl:pl-0" >
2026 < div className = "space-y-3 lg:space-y-4 xl:space-y-6 max-w-80 col-span-full" >
@@ -25,65 +31,27 @@ const Footer = () => {
2531 </ p >
2632 </ div >
2733
28- < nav className = "space-y-4 max-w-80 flex flex-col" >
29- < h6 className = "font-semibold text-lg" > Products</ h6 >
30- < a
31- href = "https://nurui.vercel.app"
32- target = "_blank"
33- className = "cursor-pointer"
34- >
35- Nurui
36- </ a >
37- </ nav >
38-
39- < nav className = "space-y-4 max-w-80 flex flex-col" >
40- < h6 className = "font-semibold text-lg" > Company</ h6 >
41- < a
42- href = "https://nurui.vercel.app/about-us"
43- className = "cursor-pointer"
44- >
45- About
46- </ a >
47- < a
48- href = "https://nurui.vercel.app/playground"
49- className = "cursor-pointer"
50- >
51- Playground
52- </ a >
53- </ nav >
54-
55- < nav className = "space-y-4 max-w-80 flex flex-col" >
56- < h6 className = "font-semibold text-lg" > Explore</ h6 >
57- < a
58- href = "https://nurui.vercel.app/docs/introduction"
59- className = "cursor-pointer"
60- >
61- Introduction
62- </ a >
63- < a
64- href = "https://nurui.vercel.app/docs/installation"
65- className = "cursor-pointer"
34+ { footerSections . map ( ( section ) => (
35+ < nav
36+ key = { section . title }
37+ className = "space-y-4 max-w-80 flex flex-col"
6638 >
67- Documentation
68- </ a >
69- < a
70- href = "https://nurui.vercel.app/docs/components"
71- className = "cursor-pointer"
72- >
73- Components
74- </ a >
75- </ nav >
76-
77- < nav className = "space-y-4 max-w-80 flex flex-col" >
78- < h6 className = "font-semibold text-lg" > Contact</ h6 >
79- < a className = "flex items-start gap-2.5 max-w-48" >
80- < IoLocationOutline className = "flex-shrink-0" />
81- Sylhet, Bangladesh
82- </ a >
83- < a className = "flex gap-2.5 items-center cursor-pointer" >
84- < MdOutlineMail className = "flex-shrink-0" /> [email protected] 85- </ a >
86- </ nav >
39+ < h6 className = "font-semibold text-lg text-[var(--primary-color)]" >
40+ { section . title }
41+ </ h6 >
42+ { section . links . map ( ( link , i ) => (
43+ < a
44+ key = { i }
45+ href = { link . url }
46+ target = { link ?. external ? "_blank" : "_self" }
47+ className = "cursor-pointer flex items-start gap-2.5 hover:text-[var(--primary-color)] hover:transition-colors"
48+ >
49+ { link ?. icon && < link . icon className = "flex-shrink-0" /> }
50+ { link . text }
51+ </ a >
52+ ) ) }
53+ </ nav >
54+ ) ) }
8755 </ div >
8856
8957 < div className = "border-t border-[var(--border-color)] border-opacity-20 p-5 flex items-center justify-center lg:justify-between" >
@@ -125,6 +93,55 @@ const Footer = () => {
12593
12694export default Footer ;
12795
96+ const footerSections : { title : string ; links : FooterLink [ ] } [ ] = [
97+ {
98+ title : "Products" ,
99+ links : [
100+ { text : "Nur/ui" , url : "https://nurui.vercel.app" , external : true } ,
101+ ] ,
102+ } ,
103+ {
104+ title : "Documentation" ,
105+ links : [
106+ {
107+ text : "Introduction" ,
108+ url : "https://nurui.vercel.app/docs/introduction" ,
109+ } ,
110+ {
111+ text : "Documentation" ,
112+ url : "https://nurui.vercel.app/docs/installation" ,
113+ } ,
114+ ] ,
115+ } ,
116+ {
117+ title : "Components" ,
118+ links : [
119+ {
120+ text : "Gradient Hero" ,
121+ url : "https://nurui.vercel.app/docs/gradient-hero" ,
122+ } ,
123+ {
124+ text : "Tech Cursor" ,
125+ url : "https://nurui.vercel.app/docs/tech-cursor" ,
126+ } ,
127+ { text : "Banner" , url : "https://nurui.vercel.app/docs/banner" } ,
128+ ] ,
129+ } ,
130+
131+ {
132+ title : "Community" ,
133+ links : [
134+ {
135+ text : "Linkedin" ,
136+ url : "https://www.linkedin.com/in/md-afsar-mahmud" ,
137+ external : true ,
138+ } ,
139+ { text : "GitHub" , url : "https://github.com/afsar-dev" , external : true } ,
140+ { text : "Twitter" , url : "https://x.com/md_afsar_mahmud" , external : true } ,
141+ ] ,
142+ } ,
143+ ] ;
144+
128145const navigation = [
129146 {
130147 id : 1 ,
0 commit comments