Skip to content

Commit 07ac6c3

Browse files
authored
Merge pull request #138 from afsar-dev/dev
Dev
2 parents 839c73a + 8a017e0 commit 07ac6c3

File tree

7 files changed

+169
-149
lines changed

7 files changed

+169
-149
lines changed

public/r/rocket-footer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
},
1818
{
1919
"path": "./src/components/nurui/rocket-footer.tsx",
20-
"content": "\"use client\";\nimport NuruiLogo from \"@/components/nurui/nurui-logo\";\nimport RocketScrollToTop from \"@/components/nurui/rocket-scroll-to-top\";\nimport Link from \"next/link\";\nimport { usePathname } from \"next/navigation\";\nimport { IoLocationOutline } from \"react-icons/io5\";\nimport { MdOutlineMail } from \"react-icons/md\";\nimport \"./styles/footer.css\";\n\nconst navigationActive = (href: string = \"/\", pathName: string) => {\n return pathName === href;\n};\n\nconst RocketFooter = () => {\n const pathName = usePathname();\n\n return (\n <div className=\"bg-[#fff] dark:bg-transparent border-t border-[#393a3d] w-full text-[#fff] mt-auto rounded-tl-[50px] lg:rounded-tl-[80px] xl:rounded-tl-[110px] rocket-animation\">\n <RocketScrollToTop className=\"bg-[#010313] max-w-24 mx-auto rounded-full -mt-16 hidden md:block\" />\n\n <div className=\"container\">\n <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\">\n <div className=\"space-y-3 lg:space-y-4 xl:space-y-6 max-w-80 col-span-full\">\n <Link\n href=\"/\"\n className={`text-[#3ca2fa] font-black text-3xl flex items-center gap-1`}\n >\n <NuruiLogo />\n <span>Nur/ui</span>\n </Link>\n <p className=\"text-[#fff]\">\n Beautifully crafted, accessible components built with Tailwind CSS\n perfect for modern developers and creative teams.\n </p>\n </div>\n\n <nav className=\"space-y-4 max-w-80 flex flex-col text-[#fff]\">\n <h6 className=\"font-semibold text-lg\">Products</h6>\n <a\n href=\"https://nurui.vercel.app\"\n target=\"_blank\"\n className=\"cursor-pointer\"\n >\n Nurui\n </a>\n </nav>\n\n <nav className=\"space-y-4 max-w-80 flex flex-col text-[#fff]\">\n <h6 className=\"font-semibold text-lg\">Company</h6>\n <a\n href=\"https://nurui.vercel.app/about-us\"\n className=\"cursor-pointer\"\n >\n About\n </a>\n <a\n href=\"https://nurui.vercel.app/playground\"\n className=\"cursor-pointer\"\n >\n Playground\n </a>\n </nav>\n\n <nav className=\"space-y-4 max-w-80 flex flex-col text-[#fff]\">\n <h6 className=\"font-semibold text-lg\">Explore</h6>\n <a\n href=\"https://nurui.vercel.app/docs/introduction\"\n className=\"cursor-pointer\"\n >\n Introduction\n </a>\n <a\n href=\"https://nurui.vercel.app/docs/installation\"\n className=\"cursor-pointer\"\n >\n Documentation\n </a>\n <a\n href=\"https://nurui.vercel.app/docs/components\"\n className=\"cursor-pointer\"\n >\n Components\n </a>\n </nav>\n\n <nav className=\"space-y-4 max-w-80 flex flex-col text-[#fff]\">\n <h6 className=\"font-semibold text-lg\">Contact</h6>\n <a className=\"flex items-start gap-2.5 max-w-48\">\n <IoLocationOutline className=\"flex-shrink-0\" />\n Sylhet, Bangladesh\n </a>\n <a className=\"flex gap-2.5 items-center cursor-pointer\">\n <MdOutlineMail className=\"flex-shrink-0\" /> [email protected]\n </a>\n </nav>\n </div>\n\n <div className=\"border-t border-[#393a3d] border-opacity-20 p-5 flex items-center justify-center lg:justify-between\">\n <div className=\"hidden lg:flex flex-wrap items-center justify-between gap-4\">\n {navigation.map((data, i) => (\n <Link\n key={data?.id}\n href={data?.url}\n className={`${\n navigation?.length === i + 1\n ? \"\"\n : \"border-r border-[#736f7f]\"\n } pr-4 font-semibold ${\n navigationActive(data?.url, pathName)\n ? \"text-[#3ca2fa] font-bold\"\n : \"text-[#6a5f77]\"\n }`}\n >\n {data?.name}\n </Link>\n ))}\n </div>\n\n <p className=\"text-[#6a5f77]\">\n Created by{\" \"}\n <a\n href=\"https://github.com/afsar-dev\"\n target=\"_blank\"\n className=\"text-[#3ca2fa] border-b border-[#3ca2fa] font-semibold\"\n >\n Md Afsar Mahmud\n </a>{\" \"}\n © {new Date().getFullYear()}. All rights reserved.\n </p>\n </div>\n </div>\n </div>\n );\n};\n\nexport default RocketFooter;\n\nconst navigation = [\n { id: 1, name: \"Home\", url: \"/\" },\n { id: 2, name: \"Docs\", url: \"/docs/installation\" },\n { id: 3, name: \"Components\", url: \"/docs/components\" },\n { id: 4, name: \"About\", url: \"/about-us\" },\n { id: 5, name: \"Playground\", url: \"/playground\" },\n];\n",
20+
"content": "\"use client\";\n\nimport NuruiLogo from \"@/components/nurui/nurui-logo\";\nimport RocketScrollToTop from \"@/components/nurui/rocket-scroll-to-top\";\nimport Link from \"next/link\";\nimport { usePathname } from \"next/navigation\";\nimport { IoLocationOutline } from \"react-icons/io5\";\nimport { MdOutlineMail } from \"react-icons/md\";\nimport \"./styles/footer.css\";\n\nconst FOOTER_SECTIONS = [\n {\n title: \"Products\",\n items: [\n { label: \"Nurui\", url: \"https://nurui.vercel.app\", external: true },\n ],\n },\n {\n title: \"Company\",\n items: [\n { label: \"About\", url: \"https://nurui.vercel.app/about-us\" },\n { label: \"Playground\", url: \"https://nurui.vercel.app/playground\" },\n ],\n },\n {\n title: \"Explore\",\n items: [\n {\n label: \"Introduction\",\n url: \"https://nurui.vercel.app/docs/introduction\",\n },\n {\n label: \"Documentation\",\n url: \"https://nurui.vercel.app/docs/installation\",\n },\n { label: \"Components\", url: \"https://nurui.vercel.app/docs/components\" },\n ],\n },\n];\n\nconst navigation = [\n { id: 1, name: \"Home\", url: \"/\" },\n { id: 2, name: \"Docs\", url: \"/docs/installation\" },\n { id: 3, name: \"Components\", url: \"/docs/components\" },\n { id: 4, name: \"About\", url: \"/about-us\" },\n { id: 5, name: \"Playground\", url: \"/playground\" },\n];\n\nconst RocketFooter = () => {\n const pathName = usePathname();\n\n return (\n <div className=\"bg-[#fff] dark:bg-transparent border-t border-[#393a3d] w-full text-[#fff] mt-auto rounded-tl-[50px] lg:rounded-tl-[80px] xl:rounded-tl-[110px] rocket-animation\">\n <RocketScrollToTop className=\"bg-[#f7f7f7] dark:bg-[#010313] max-w-24 mx-auto rounded-full -mt-16 hidden md:block\" />\n\n <div className=\"container\">\n <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\">\n {/* Logo & description */}\n <div className=\"space-y-3 max-w-80 col-span-full\">\n <Link\n href=\"/\"\n className=\"text-[#3ca2fa] font-black text-3xl flex items-center gap-1\"\n >\n <NuruiLogo />\n <span>Nur/ui</span>\n </Link>\n <p className=\"text-black dark:text-[#fff]\">\n Beautifully crafted, accessible components built with Tailwind CSS\n perfect for modern developers and creative teams.\n </p>\n </div>\n\n {/* Dynamic Footer Nav Sections */}\n {FOOTER_SECTIONS.map((section) => (\n <nav\n key={section.title}\n className=\"space-y-4 max-w-80 flex flex-col text-black dark:text-[#fff]\"\n >\n <h6 className=\"font-semibold text-lg text-[#3ca2fa]\">\n {section.title}\n </h6>\n\n {section.items.map((item) => (\n <a\n key={item.label}\n href={item.url}\n target={\"_blank\"}\n className=\"cursor-pointer hover:text-[#3ca2fa]\"\n >\n {item.label}\n </a>\n ))}\n </nav>\n ))}\n\n {/* Contact */}\n <nav className=\"space-y-4 max-w-80 flex flex-col text-black dark:text-[#fff]\">\n <h6 className=\"font-semibold text-lg\">Contact</h6>\n <a className=\"flex items-start gap-2.5 max-w-48\">\n <IoLocationOutline className=\"flex-shrink-0\" />\n Sylhet, Bangladesh\n </a>\n <a className=\"flex gap-2.5 items-center cursor-pointer\">\n <MdOutlineMail className=\"flex-shrink-0\" /> [email protected]\n </a>\n </nav>\n </div>\n\n {/* Bottom Navigation */}\n <div className=\"border-t border-[#393a3d] border-opacity-20 p-5 flex items-center justify-center lg:justify-between\">\n <div className=\"hidden lg:flex flex-wrap items-center gap-4\">\n {navigation.map((item, i) => (\n <Link\n key={item.id}\n href={item.url}\n className={`\n pr-4 font-semibold\n ${i !== navigation.length - 1 ? \"border-r border-[#736f7f]\" : \"\"}\n ${pathName === item.url ? \"text-[#3ca2fa] font-bold\" : \"text-[#6a5f77]\"}\n `}\n >\n {item.name}\n </Link>\n ))}\n </div>\n\n <p className=\"text-[#6a5f77]\">\n Created by{\" \"}\n <a\n href=\"https://github.com/afsar-dev\"\n target=\"_blank\"\n className=\"text-[#3ca2fa] border-b border-[#3ca2fa] font-semibold\"\n >\n Md Afsar Mahmud\n </a>{\" \"}\n © {new Date().getFullYear()}. All rights reserved.\n </p>\n </div>\n </div>\n </div>\n );\n};\n\nexport default RocketFooter;\n",
2121
"type": "registry:component"
2222
},
2323
{

src/components/common/FullScreenPreview.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
"use client";
2-
import { Fullscreen } from "lucide-react";
32
import { Button } from "@/components/ui/button";
4-
import React from "react";
53
import { siteLink } from "@/config/site";
64
import { cn } from "@/lib/utils";
75
import IClassName from "@/types/common.type";
6+
import { Fullscreen } from "lucide-react";
87
import { usePathname } from "next/navigation";
98

109
const FullScreenPreview = ({
@@ -20,7 +19,7 @@ const FullScreenPreview = ({
2019
aria-label="Full Screen Preview"
2120
asChild
2221
className={cn(
23-
"z-40 text-[var(--primary-colo)] bg-[var(--primary-color)] rounded-lg shadow-none px-2.5",
22+
"z-40 text-white bg-[var(--primary-color)] rounded-lg shadow-none px-2.5",
2423
className,
2524
)}
2625
>

src/components/layout/Footer.tsx

Lines changed: 78 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,23 @@ import Nurui from "@/components/common/Nurui";
44
import RocketScrollToTop from "@/components/nurui/rocket-scroll-to-top";
55
import { navigationActive } from "@/utils/navigationActive";
66
import { 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";
98
import "../../styles/footer.css";
109

10+
type FooterLink = {
11+
text: string;
12+
url: string;
13+
external?: boolean;
14+
icon?: IconType;
15+
};
16+
1117
const 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

12694
export 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+
128145
const navigation = [
129146
{
130147
id: 1,

src/components/layout/Navbar.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import VaulDrawer from "@/components/ui/drawer/VaulDrawer";
66
import { navigationActive } from "@/utils/navigationActive";
77
import { usePathname } from "next/navigation";
88
import { useEffect, useState } from "react";
9-
import { FaDiscord, FaGithub } from "react-icons/fa";
9+
import { FaGithub } from "react-icons/fa";
10+
import { FaXTwitter } from "react-icons/fa6";
1011
import ThemeSwitcher from "../common/ThemeSwitcher";
1112

1213
const Navbar = () => {
@@ -57,9 +58,9 @@ const Navbar = () => {
5758

5859
<div className="hidden xl:flex items-center gap-3.5">
5960
<RoundedButton
60-
href="https://discord.gg/XzAh8V3S"
61+
href="https://x.com/md_afsar_mahmud"
6162
icon={
62-
<FaDiscord className="text-2xl text-[var(--white-color)] dark:text-[var(--primary-color)]" />
63+
<FaXTwitter className="text-2xl text-[var(--white-color)] dark:text-[var(--primary-color)]" />
6364
}
6465
/>
6566
<RoundedButton

src/components/layout/components-layout/ComponentsNavbar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import RoundedButton from "@/components/common/RoundedButton";
33
import ThemeSwitcher from "@/components/common/ThemeSwitcher";
44
import VaulDrawer from "@/components/ui/drawer/VaulDrawer";
55
import { useAppContext } from "@/context/AppContext";
6-
import React, { useEffect, useState } from "react";
7-
import { FaDiscord, FaGithub } from "react-icons/fa6";
6+
import { useEffect, useState } from "react";
7+
import { FaGithub, FaXTwitter } from "react-icons/fa6";
88
import { GoSidebarCollapse, GoSidebarExpand } from "react-icons/go";
99

1010
const ComponentsNavbar = () => {
@@ -47,9 +47,9 @@ const ComponentsNavbar = () => {
4747
<VaulDrawer />
4848
<div className="flex items-center md:gap-3.5">
4949
<RoundedButton
50-
href="https://discord.gg/XzAh8V3S"
50+
href="https://x.com/md_afsar_mahmud"
5151
icon={
52-
<FaDiscord className="text-2xl text-[var(--white-color)] dark:text-[var(--primary-color)]" />
52+
<FaXTwitter className="text-2xl text-[var(--white-color)] dark:text-[var(--primary-color)]" />
5353
}
5454
/>
5555
<RoundedButton

0 commit comments

Comments
 (0)