Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7008df596c | |||
| d10a7402fe | |||
| 567b48d916 | |||
| 724566cf5f | |||
| bd467d5826 | |||
| 8a5a2ddd6d | |||
| 682f38b1d1 | |||
| 016b87a540 | |||
| 3224a144ca | |||
| 2b9305f662 | |||
| cbf31f0831 | |||
| d117cc1fb3 | |||
| a7deb2f5cf | |||
| 1268ad86a4 |
@@ -4,6 +4,10 @@ import { Inter } from "next/font/google";
|
|||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
||||||
import Tag from "@/tag/Tag";
|
import Tag from "@/tag/Tag";
|
||||||
|
import { Montserrat } from "next/font/google";
|
||||||
|
import { Inter } from "next/font/google";
|
||||||
|
import { Work_Sans } from "next/font/google";
|
||||||
|
import { Source_Sans_3 } from "next/font/google";
|
||||||
|
|
||||||
const notoSans = Noto_Sans({
|
const notoSans = Noto_Sans({
|
||||||
variable: "--font-noto-sans", subsets: ["latin"],
|
variable: "--font-noto-sans", subsets: ["latin"],
|
||||||
@@ -36,6 +40,24 @@ export const metadata: Metadata = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const montserrat = Montserrat({
|
||||||
|
variable: "--font-montserrat",
|
||||||
|
subsets: ["latin"],
|
||||||
|
});
|
||||||
|
const inter = Inter({
|
||||||
|
variable: "--font-inter",
|
||||||
|
subsets: ["latin"],
|
||||||
|
});
|
||||||
|
|
||||||
|
const workSans = Work_Sans({
|
||||||
|
variable: "--font-work-sans",
|
||||||
|
subsets: ["latin"],
|
||||||
|
});
|
||||||
|
const sourceSans3 = Source_Sans_3({
|
||||||
|
variable: "--font-source-sans-3",
|
||||||
|
subsets: ["latin"],
|
||||||
|
});
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
}: Readonly<{
|
}: Readonly<{
|
||||||
@@ -44,9 +66,7 @@ export default function RootLayout({
|
|||||||
return (
|
return (
|
||||||
<html lang="en" suppressHydrationWarning>
|
<html lang="en" suppressHydrationWarning>
|
||||||
<ServiceWrapper>
|
<ServiceWrapper>
|
||||||
<body
|
<body className={`${workSans.variable} ${sourceSans3.variable} antialiased`}>
|
||||||
className={`${notoSans.variable} ${inter.variable} antialiased`}
|
|
||||||
>
|
|
||||||
<Tag />
|
<Tag />
|
||||||
{children}
|
{children}
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,20 @@ import ProductCardOne from '@/components/sections/product/ProductCardOne';
|
|||||||
import FeatureBento from '@/components/sections/feature/FeatureBento';
|
import FeatureBento from '@/components/sections/feature/FeatureBento';
|
||||||
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
|
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
|
||||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||||
import ContactCenter from '@/components/sections/contact/ContactCenter';
|
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
|
||||||
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
||||||
import { Globe, HelpCircle, Leaf, Mail, Recycle, Shield, Sparkles, Star, TrendingUp, Users, Zap, Heart, Share2, Crown } from "lucide-react";
|
import { Globe, HelpCircle, Leaf, Mail, Recycle, Shield, Sparkles, Star, TrendingUp, Users, Zap, Heart, Share2, Crown } from "lucide-react";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
export default function LandingPage() {
|
export default function LandingPage() {
|
||||||
|
const [formData, setFormData] = useState<Record<string, string>>({});
|
||||||
|
|
||||||
|
const handleContactSubmit = (data: Record<string, string>) => {
|
||||||
|
setFormData(data);
|
||||||
|
console.log("Form submitted:", data);
|
||||||
|
// Handle form submission here
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="hover-bubble"
|
defaultButtonVariant="hover-bubble"
|
||||||
@@ -193,16 +202,24 @@ export default function LandingPage() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="contact" data-section="contact">
|
<div id="contact" data-section="contact">
|
||||||
<ContactCenter
|
<ContactSplitForm
|
||||||
tag="Stay Connected"
|
|
||||||
tagIcon={Mail}
|
|
||||||
title="Get Early Access to New Drops"
|
title="Get Early Access to New Drops"
|
||||||
description="Subscribe to our newsletter and be the first to know about exclusive releases, limited editions, and special events."
|
description="Subscribe to our newsletter and be the first to know about exclusive releases, limited editions, and special events."
|
||||||
background={{ variant: "rotated-rays-animated-grid" }}
|
inputs={[
|
||||||
|
{ name: "email", type: "email", placeholder: "your@email.com", required: true },
|
||||||
|
{ name: "name", type: "text", placeholder: "Your name", required: true }
|
||||||
|
]}
|
||||||
|
textarea={{
|
||||||
|
name: "message", placeholder: "Tell us what styles you're interested in...", rows: 4,
|
||||||
|
required: false
|
||||||
|
}}
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
inputPlaceholder="your@email.com"
|
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_32SzEkxKoNyIbQ4hnQYui6BHsfB/uploaded-1771003746831-w3xavybf.jpg"
|
||||||
|
imageAlt="APEX Newsletter"
|
||||||
|
mediaPosition="right"
|
||||||
|
mediaAnimation="blur-reveal"
|
||||||
buttonText="Subscribe"
|
buttonText="Subscribe"
|
||||||
termsText="We respect your privacy. Unsubscribe anytime. No spam, just pure streetwear culture."
|
onSubmit={handleContactSubmit}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ html {
|
|||||||
body {
|
body {
|
||||||
background-color: var(--background);
|
background-color: var(--background);
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
font-family: var(--font-inter), sans-serif;
|
font-family: var(--font-source-sans-3), sans-serif;
|
||||||
position: relative;
|
position: relative;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
overscroll-behavior: none;
|
overscroll-behavior: none;
|
||||||
@@ -24,5 +24,5 @@ h3,
|
|||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
font-family: var(--font-noto-sans), sans-serif;
|
font-family: var(--font-work-sans), sans-serif;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,21 +2,21 @@
|
|||||||
/* Base units */
|
/* Base units */
|
||||||
/* --vw is set by ThemeProvider */
|
/* --vw is set by ThemeProvider */
|
||||||
|
|
||||||
/* --background: #fcf6ec;;
|
/* --background: #fbfbfb;;;;;
|
||||||
--card: #f3ede2;;
|
--card: #f3ede2;;;;;
|
||||||
--foreground: #2e2521;;
|
--foreground: #11e1e8;;;;;
|
||||||
--primary-cta: #2e2521;;
|
--primary-cta: #f37139;;;;;
|
||||||
--secondary-cta: #ffffff;;
|
--secondary-cta: #ffffff;;;;;
|
||||||
--accent: #b2a28b;;
|
--accent: #b2a28b;;;;;
|
||||||
--background-accent: #b2a28b;; */
|
--background-accent: #b2a28b;;;;; */
|
||||||
|
|
||||||
--background: #fcf6ec;;
|
--background: #fbfbfb;;;;;
|
||||||
--card: #f3ede2;;
|
--card: #f3ede2;;;;;
|
||||||
--foreground: #2e2521;;
|
--foreground: #11e1e8;;;;;
|
||||||
--primary-cta: #2e2521;;
|
--primary-cta: #f37139;;;;;
|
||||||
--secondary-cta: #ffffff;;
|
--secondary-cta: #ffffff;;;;;
|
||||||
--accent: #b2a28b;;
|
--accent: #b2a28b;;;;;
|
||||||
--background-accent: #b2a28b;;
|
--background-accent: #b2a28b;;;;;
|
||||||
|
|
||||||
/* 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);
|
||||||
|
|||||||
Reference in New Issue
Block a user