9 Commits

Author SHA1 Message Date
0195084306 Update src/app/signup/page.tsx 2026-04-29 10:53:39 +00:00
8fa89b9f6c Update src/app/reset-password/page.tsx 2026-04-29 10:53:39 +00:00
f6415267de Update src/app/login/page.tsx 2026-04-29 10:53:38 +00:00
80d90afe8a Update src/app/styles/variables.css 2026-04-29 10:53:12 +00:00
ab628935b8 Add src/app/signup/page.tsx 2026-04-29 10:53:12 +00:00
6b796e7c89 Add src/app/reset-password/page.tsx 2026-04-29 10:53:12 +00:00
8044397c12 Update src/app/page.tsx 2026-04-29 10:53:11 +00:00
ddc690b104 Add src/app/login/page.tsx 2026-04-29 10:53:11 +00:00
378dc0548f Add src/app/dashboard/page.tsx 2026-04-29 10:53:10 +00:00
6 changed files with 253 additions and 101 deletions

View File

@@ -0,0 +1,83 @@
"use client";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import MetricCardTwo from "@/components/sections/metrics/MetricCardTwo";
import { Award, Users, TrendingUp, User, Clock, CheckCircle } from "lucide-react";
export default function DashboardPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="glass-elevated"
primaryButtonStyle="metallic"
secondaryButtonStyle="glass"
headingFontWeight="medium"
>
<ReactLenis root>
<NavbarLayoutFloatingOverlay
brandName="Webild"
navItems={[
{ name: "Dashboard", id: "/dashboard" },
{ name: "Work", id: "/work" },
{ name: "Services", id: "/services" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
]}
button={{ text: "Get Started", href: "/contact" }}
/>
<div className="pt-32 pb-20 px-6 max-w-7xl mx-auto space-y-12">
<div className="bg-[var(--card)] p-8 rounded-2xl border border-white/10">
<div className="flex items-center gap-6">
<div className="w-24 h-24 rounded-full bg-[var(--background-accent)] flex items-center justify-center text-4xl">
<User className="w-12 h-12" />
</div>
<div>
<h1 className="text-3xl font-bold">Welcome back, User</h1>
<p className="opacity-70 mt-1">Manage your bookings and project statistics below.</p>
</div>
</div>
</div>
<MetricCardTwo
title="Event Statistics"
description="An overview of your engagement metrics and performance."
textboxLayout="default"
useInvertedBackground={false}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
metrics={[
{ id: "bookings", value: "12", description: "Total bookings made" },
{ id: "active", value: "3", description: "Active projects running" },
{ id: "completed", value: "9", description: "Successfully completed events" },
]}
/>
<div className="bg-[var(--card)] p-8 rounded-2xl border border-white/10">
<h2 className="text-2xl font-bold mb-6">Booking History</h2>
<div className="space-y-4">
{[1, 2, 3].map((i) => (
<div key={i} className="flex items-center justify-between p-4 bg-[var(--background-accent)] rounded-xl border border-white/5">
<div className="flex items-center gap-4">
<CheckCircle className="w-6 h-6 text-emerald-500" />
<div>
<p className="font-semibold">Consultation Meeting #{i * 105}</p>
<p className="text-sm opacity-60">Scheduled for Oct {i * 5}, 2024</p>
</div>
</div>
<span className="px-3 py-1 bg-white/10 rounded-full text-xs font-medium uppercase">Completed</span>
</div>
))}
</div>
</div>
</div>
</ReactLenis>
</ThemeProvider>
);
}

45
src/app/login/page.tsx Normal file
View File

@@ -0,0 +1,45 @@
"use client";
import React from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import ContactForm from "@/components/form/ContactForm";
export default function LoginPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="medium"
>
<NavbarLayoutFloatingOverlay
brandName="Webild"
navItems={[
{ name: "Work", id: "/" },
{ name: "Services", id: "/" },
{ name: "About", id: "/" },
{ name: "Login", id: "/login" },
]}
button={{ text: "Get Started", href: "/contact" }}
/>
<main className="min-h-screen flex items-center justify-center pt-24">
<ContactForm
title="Login"
description="Welcome back, please login to your account."
tag="Access Account"
inputPlaceholder="Enter your email"
buttonText="Login"
centered={true}
useInvertedBackground={false}
/>
</main>
</ThemeProvider>
);
}

View File

@@ -3,6 +3,7 @@
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay"; import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import { BentoGlobe } from "@/components/bento/BentoGlobe";
import HeroSplitDoubleCarousel from "@/components/sections/hero/HeroSplitDoubleCarousel"; import HeroSplitDoubleCarousel from "@/components/sections/hero/HeroSplitDoubleCarousel";
import FeatureBento from "@/components/sections/feature/FeatureBento"; import FeatureBento from "@/components/sections/feature/FeatureBento";
import FeatureCardTwentySix from "@/components/sections/feature/FeatureCardTwentySix"; import FeatureCardTwentySix from "@/components/sections/feature/FeatureCardTwentySix";
@@ -68,6 +69,7 @@ export default function WebAgency2Page() {
]} ]}
carouselItemClassName="!aspect-[4/5]" carouselItemClassName="!aspect-[4/5]"
/> />
<BentoGlobe className="py-20 px-6 max-w-7xl mx-auto" />
<FeatureBento <FeatureBento
title="Our Services" title="Our Services"
description="We offer a full suite of digital services to help your brand stand out online." description="We offer a full suite of digital services to help your brand stand out online."
@@ -78,28 +80,18 @@ export default function WebAgency2Page() {
buttonAnimation="slide-up" buttonAnimation="slide-up"
features={[ features={[
{ {
title: "SEO", title: "SEO", description: "We optimize your website to rank higher on search engines and drive organic traffic.", bentoComponent: "marquee", centerIcon: Search,
description: "We optimize your website to rank higher on search engines and drive organic traffic.", variant: "text", texts: ["Keywords", "Backlinks", "Meta Tags", "Organic Traffic", "Rankings", "Analytics", "SERP", "Indexing"],
bentoComponent: "marquee",
centerIcon: Search,
variant: "text",
texts: ["Keywords", "Backlinks", "Meta Tags", "Organic Traffic", "Rankings", "Analytics", "SERP", "Indexing"],
}, },
{ {
title: "Web Development", title: "Web Development", description: "Custom-built websites that are fast, responsive, and designed to convert.", bentoComponent: "media-stack", items: [
description: "Custom-built websites that are fast, responsive, and designed to convert.",
bentoComponent: "media-stack",
items: [
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/dev-2.webp", imageAlt: "Web project - AgentFlow AI platform" }, { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/dev-2.webp", imageAlt: "Web project - AgentFlow AI platform" },
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/dev-1.webp", imageAlt: "Web project - Architecture studio" }, { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/dev-1.webp", imageAlt: "Web project - Architecture studio" },
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/dev-3.webp", imageAlt: "Web project - Summit Roofing" }, { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/dev-3.webp", imageAlt: "Web project - Summit Roofing" },
], ],
}, },
{ {
title: "Branding", title: "Branding", description: "Build a memorable brand identity that resonates with your audience.", bentoComponent: "media-stack", items: [
description: "Build a memorable brand identity that resonates with your audience.",
bentoComponent: "media-stack",
items: [
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/shot-1.webp", imageAlt: "Brand project 1" }, { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/shot-1.webp", imageAlt: "Brand project 1" },
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/shot-2.webp", imageAlt: "Brand project 2" }, { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/shot-2.webp", imageAlt: "Brand project 2" },
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/shot-4.webp", imageAlt: "Brand project 3" }, { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/shot-4.webp", imageAlt: "Brand project 3" },
@@ -117,45 +109,20 @@ export default function WebAgency2Page() {
cardClassName="!h-auto aspect-video" cardClassName="!h-auto aspect-video"
features={[ features={[
{ {
title: "Umbra Skincare", title: "Umbra Skincare", description: "Luxury fragrance e-commerce", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-1.webp", imageAlt: "Umbra Skincare website", buttonIcon: ArrowUpRight,
description: "Luxury fragrance e-commerce", buttonHref: "#"},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-1.webp",
imageAlt: "Umbra Skincare website",
buttonIcon: ArrowUpRight,
buttonHref: "#",
},
{ {
title: "Luxuria Travel", title: "Luxuria Travel", description: "Bespoke luxury travel experiences", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-2.webp", imageAlt: "Luxuria Travel website", buttonIcon: ArrowUpRight,
description: "Bespoke luxury travel experiences", buttonHref: "#"},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-2.webp",
imageAlt: "Luxuria Travel website",
buttonIcon: ArrowUpRight,
buttonHref: "#",
},
{ {
title: "Dental Care", title: "Dental Care", description: "Premier dental practice", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-3.webp", imageAlt: "Luxury Dental Care website", buttonIcon: ArrowUpRight,
description: "Premier dental practice", buttonHref: "#"},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-3.webp",
imageAlt: "Luxury Dental Care website",
buttonIcon: ArrowUpRight,
buttonHref: "#",
},
{ {
title: "Summit Roofing", title: "Summit Roofing", description: "Professional roofing services", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-4.webp", imageAlt: "Summit Roofing website", buttonIcon: ArrowUpRight,
description: "Professional roofing services", buttonHref: "#"},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-4.webp",
imageAlt: "Summit Roofing website",
buttonIcon: ArrowUpRight,
buttonHref: "#",
},
{ {
title: "Dubai Real Estate", title: "Dubai Real Estate", description: "Luxury property listings", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-5.webp", imageAlt: "Dubai Real Estate website", buttonIcon: ArrowUpRight,
description: "Luxury property listings", buttonHref: "#"},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/web-agency-2/project-5.webp",
imageAlt: "Dubai Real Estate website",
buttonIcon: ArrowUpRight,
buttonHref: "#",
},
]} ]}
/> />
<FeatureBento <FeatureBento
@@ -166,14 +133,9 @@ export default function WebAgency2Page() {
animationType="slide-up" animationType="slide-up"
features={[ features={[
{ {
title: "All Devices Optimization", title: "All Devices Optimization", description: "Pixel-perfect websites that look stunning on every screen size and device.", bentoComponent: "phone", statusIcon: Lock,
description: "Pixel-perfect websites that look stunning on every screen size and device.",
bentoComponent: "phone",
statusIcon: Lock,
alertIcon: Monitor, alertIcon: Monitor,
alertTitle: "Responsive check", alertTitle: "Responsive check", alertMessage: "All breakpoints passed", apps: [
alertMessage: "All breakpoints passed",
apps: [
{ name: "Phone", icon: Phone }, { name: "Phone", icon: Phone },
{ name: "SMS", icon: MessageCircle }, { name: "SMS", icon: MessageCircle },
{ name: "Books", icon: BookOpen }, { name: "Books", icon: BookOpen },
@@ -185,29 +147,17 @@ export default function WebAgency2Page() {
], ],
}, },
{ {
title: "Secure Hosting", title: "Secure Hosting", description: "Enterprise-grade security and 99.9% uptime for your website.", bentoComponent: "reveal-icon", icon: Shield,
description: "Enterprise-grade security and 99.9% uptime for your website.",
bentoComponent: "reveal-icon",
icon: Shield,
}, },
{ {
title: "Fast Turnaround", title: "Fast Turnaround", description: "From concept to launch in record time without sacrificing quality.", bentoComponent: "timeline", heading: "Project Launch", subheading: "Week 1", items: [
description: "From concept to launch in record time without sacrificing quality.",
bentoComponent: "timeline",
heading: "Project Launch",
subheading: "Week 1",
items: [
{ label: "Discovery & wireframes", detail: "Day 1-3" }, { label: "Discovery & wireframes", detail: "Day 1-3" },
{ label: "Design & development", detail: "Day 4-10" }, { label: "Design & development", detail: "Day 4-10" },
{ label: "Testing & deployment", detail: "Day 11-14" }, { label: "Testing & deployment", detail: "Day 11-14" },
], ],
completedLabel: "Live", completedLabel: "Live"},
},
{ {
title: "Seamless Integrations", title: "Seamless Integrations", description: "Connect with the tools you already use — CRMs, analytics, payments, and more.", bentoComponent: "orbiting-icons", centerIcon: Puzzle,
description: "Connect with the tools you already use — CRMs, analytics, payments, and more.",
bentoComponent: "orbiting-icons",
centerIcon: Puzzle,
items: [ items: [
{ icon: Shield }, { icon: Shield },
{ icon: Monitor }, { icon: Monitor },
@@ -216,10 +166,7 @@ export default function WebAgency2Page() {
], ],
}, },
{ {
title: "Growth Trends", title: "Growth Trends", description: "Data-driven insights to optimize your search presence and drive traffic.", bentoComponent: "line-chart"},
description: "Data-driven insights to optimize your search presence and drive traffic.",
bentoComponent: "line-chart",
},
]} ]}
/> />
<TestimonialCardFifteen <TestimonialCardFifteen
@@ -254,21 +201,11 @@ export default function WebAgency2Page() {
animationType="slide-up" animationType="slide-up"
negativeCard={{ negativeCard={{
items: [ items: [
"Generic templates with no personality", "Generic templates with no personality", "Slow load times and poor performance", "No SEO strategy or search visibility", "Outdated design that hurts credibility", "No ongoing support after launch"],
"Slow load times and poor performance",
"No SEO strategy or search visibility",
"Outdated design that hurts credibility",
"No ongoing support after launch",
],
}} }}
positiveCard={{ positiveCard={{
items: [ items: [
"Custom designs tailored to your brand", "Custom designs tailored to your brand", "Lightning-fast performance on all devices", "Built-in SEO to drive organic traffic", "Modern design that builds trust", "Dedicated support and maintenance"],
"Lightning-fast performance on all devices",
"Built-in SEO to drive organic traffic",
"Modern design that builds trust",
"Dedicated support and maintenance",
],
}} }}
/> />
<TeamCardFive <TeamCardFive
@@ -315,8 +252,7 @@ export default function WebAgency2Page() {
copyrightText="© 2026 | Webild" copyrightText="© 2026 | Webild"
columns={[ columns={[
{ {
title: "Company", title: "Company", items: [
items: [
{ label: "About", href: "#about" }, { label: "About", href: "#about" },
{ label: "Services", href: "#services" }, { label: "Services", href: "#services" },
{ label: "Work", href: "#work" }, { label: "Work", href: "#work" },
@@ -324,8 +260,7 @@ export default function WebAgency2Page() {
], ],
}, },
{ {
title: "Services", title: "Services", items: [
items: [
{ label: "Web Development", href: "#" }, { label: "Web Development", href: "#" },
{ label: "SEO", href: "#" }, { label: "SEO", href: "#" },
{ label: "Branding", href: "#" }, { label: "Branding", href: "#" },
@@ -333,8 +268,7 @@ export default function WebAgency2Page() {
], ],
}, },
{ {
title: "Connect", title: "Connect", items: [
items: [
{ label: "Twitter", href: "#" }, { label: "Twitter", href: "#" },
{ label: "LinkedIn", href: "#" }, { label: "LinkedIn", href: "#" },
{ label: "Instagram", href: "#" }, { label: "Instagram", href: "#" },

View File

@@ -0,0 +1,45 @@
"use client";
import React from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import ContactForm from "@/components/form/ContactForm";
export default function ResetPasswordPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="medium"
>
<NavbarLayoutFloatingOverlay
brandName="Webild"
navItems={[
{ name: "Work", id: "/" },
{ name: "Services", id: "/" },
{ name: "About", id: "/" },
{ name: "Login", id: "/login" },
]}
button={{ text: "Get Started", href: "/contact" }}
/>
<main className="min-h-screen flex items-center justify-center pt-24">
<ContactForm
title="Reset Password"
description="Enter your email address to receive instructions on how to reset your password."
tag="Recovery"
inputPlaceholder="Enter your email"
buttonText="Send Reset Link"
centered={true}
useInvertedBackground={false}
/>
</main>
</ThemeProvider>
);
}

45
src/app/signup/page.tsx Normal file
View File

@@ -0,0 +1,45 @@
"use client";
import React from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import ContactForm from "@/components/form/ContactForm";
export default function SignupPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="medium"
>
<NavbarLayoutFloatingOverlay
brandName="Webild"
navItems={[
{ name: "Work", id: "/" },
{ name: "Services", id: "/" },
{ name: "About", id: "/" },
{ name: "Signup", id: "/signup" },
]}
button={{ text: "Get Started", href: "/contact" }}
/>
<main className="min-h-screen flex items-center justify-center pt-24">
<ContactForm
title="Sign Up"
description="Create your account and start your journey with us."
tag="Join Us"
inputPlaceholder="Enter your email"
buttonText="Create Account"
centered={true}
useInvertedBackground={false}
/>
</main>
</ThemeProvider>
);
}

View File

@@ -11,14 +11,14 @@
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #0a0a0a; --background: #0a0a0a;
--card: #161616; --card: #1a1a1a;
--foreground: #f0f0f0; --foreground: #ffffff;
--primary-cta: #ffffff; --primary-cta: #ef4444;
--primary-cta-text: #0a0a0a; --primary-cta-text: #0a0a0a;
--secondary-cta: #1e1e1e; --secondary-cta: #1a1a1a;
--secondary-cta-text: #e0e0e0; --secondary-cta-text: #e0e0e0;
--accent: #d0d0d0; --accent: #1e3a8a;
--background-accent: #9a9a9a; --background-accent: #1e3a8a;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);