14 Commits

Author SHA1 Message Date
318d9f7a37 Update src/app/page.tsx 2026-03-06 17:32:34 +00:00
e68257d43a Update src/app/layout.tsx 2026-03-06 17:32:33 +00:00
406781540f Merge version_3 into main
Merge version_3 into main
2026-03-06 17:30:56 +00:00
becf2ef8d4 Update src/app/page.tsx 2026-03-06 17:30:52 +00:00
381e8e4a47 Merge version_3 into main
Merge version_3 into main
2026-03-06 17:29:38 +00:00
9404113f98 Update src/app/page.tsx 2026-03-06 17:29:34 +00:00
4dde058531 Merge version_3 into main
Merge version_3 into main
2026-03-06 17:28:25 +00:00
e098da26ed Update src/app/page.tsx 2026-03-06 17:28:21 +00:00
a3d7d993bf Merge version_2 into main
Merge version_2 into main
2026-03-06 17:26:34 +00:00
dece214ab0 Update src/app/page.tsx 2026-03-06 17:26:30 +00:00
718143afcf Merge version_2 into main
Merge version_2 into main
2026-03-06 17:25:44 +00:00
15acbf6396 Update src/app/styles/variables.css 2026-03-06 17:25:40 +00:00
fdf10f9b42 Update src/app/page.tsx 2026-03-06 17:25:39 +00:00
082b7d0d0c Update src/app/layout.tsx 2026-03-06 17:25:39 +00:00
3 changed files with 30 additions and 75 deletions

View File

@@ -1,59 +1,28 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Halant } from "next/font/google"; import { Geist, Geist_Mono } from "next/font/google";
import { Inter } from "next/font/google";
import { Mulish } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const halant = Halant({ const geist = Geist({
variable: "--font-halant", subsets: ["latin"], variable: "--font-geist-sans", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
}); });
const inter = Inter({ const geistMono = Geist_Mono({
variable: "--font-inter", subsets: ["latin"], variable: "--font-geist-mono", subsets: ["latin"],
});
const mulish = Mulish({
variable: "--font-mulish", subsets: ["latin"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Premium Modular Homes | Sustainable Architecture", description: "Build your dream home in weeks. Sustainable, customizable modular homes designed for modern living. Luxury architecture meets eco-conscious design.", keywords: "modular homes, sustainable architecture, prefab homes, luxury homes, Scandinavian design, eco-friendly construction", metadataBase: new URL("https://modularliving.com"), title: "Modular Living - Build Your Dream Home in Weeks", description: "Sustainable, architecturally stunning modular homes designed for modern living. Build your dream home in weeks, not years."};
alternates: {
canonical: "https://modularliving.com"
},
openGraph: {
title: "Premium Modular Homes | Sustainable Architecture", description: "Experience luxury modular homes built with sustainable materials and intelligent design. From concept to completion in weeks.", url: "https://modularliving.com", siteName: "Modular Living", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/long-shot-runner-taking-break_23-2148274732.jpg", alt: "Luxury modular home in nature"
}
]
},
twitter: {
card: "summary_large_image", title: "Premium Modular Homes | Sustainable Architecture", description: "Luxury modular homes built sustainably. Design, manufacture, and installation in weeks.", images: ["http://img.b2bpic.net/free-photo/long-shot-runner-taking-break_23-2148274732.jpg"]
},
robots: {
index: true,
follow: true
}
};
export default function RootLayout({ export default function RootLayout({
children, children,
}: Readonly<{ }: {
children: React.ReactNode; children: React.ReactNode;
}>) { }) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en">
<ServiceWrapper> <body className={`${geist.variable} ${geistMono.variable} antialiased`}>
<body {children}
className={`${halant.variable} ${inter.variable} ${mulish.variable} antialiased`}
>
<Tag />
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@@ -1421,7 +1390,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

View File

@@ -2,7 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import HeroCentered from '@/components/sections/hero/HeroCentered'; import HeroBillboardScroll from '@/components/sections/hero/HeroBillboardScroll';
import FeatureCardThree from '@/components/sections/feature/featureCardThree/FeatureCardThree'; import FeatureCardThree from '@/components/sections/feature/featureCardThree/FeatureCardThree';
import ProductCardOne from '@/components/sections/product/ProductCardOne'; import ProductCardOne from '@/components/sections/product/ProductCardOne';
import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen'; import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen';
@@ -42,27 +42,14 @@ export default function LandingPage() {
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroCentered <HeroBillboardScroll
title="Build Your Dream Home in Weeks, Not Years" title="Build your dream home in weeks, not years"
description="Sustainable, architecturally stunning modular homes designed for the modern lifestyle. Premium materials, intelligent design, delivered fast." description="Sustainable, architecturally stunning modular homes designed for the modern lifestyle."
background={{ variant: "radial-gradient" }} background={{ variant: "plain" }}
avatars={[
{
src: "http://img.b2bpic.net/free-photo/content-senior-businessman-with-arms-crossed_1262-1790.jpg", alt: "Happy homeowner"
},
{
src: "http://img.b2bpic.net/free-photo/curly-woman-eyeglasses-black-jacket-writting-outdoors-beautiful-woman-with-red-lipstick-brunette-hair-sitting-stairs_197531-19326.jpg", alt: "Satisfied client"
},
{
src: "http://img.b2bpic.net/free-photo/handsome-gay-official-suit-looking-camera-front-view-bearded-caucasian-man-smiling-camera-getting-dressed-wedding-ceremony-with-lover-lgbt-love-marriage-concept_74855-22937.jpg", alt: "Family in new home"
}
]}
avatarText="Join 500+ families in their modular homes"
buttons={[ buttons={[
{ text: "Explore Models", href: "models" }, { text: "Explore Models", href: "models" },
{ text: "Book Consultation", href: "contact" } { text: "Book Consultation", href: "contact" }
]} ]}
buttonAnimation="slide-up"
ariaLabel="Hero section for modular homes landing page" ariaLabel="Hero section for modular homes landing page"
/> />
</div> </div>
@@ -102,7 +89,7 @@ export default function LandingPage() {
tagIcon={Camera} tagIcon={Camera}
features={[ features={[
{ {
id: "01", title: "Forest Escape", description: "Glass and timber blending seamlessly with nature. A sanctuary for modern living.", imageSrc: "http://img.b2bpic.net/free-photo/path-leads-white-building-green-hill_1304-3762.jpg", imageAlt: "Modern home in forest" id: "01", title: "Forest Escape", description: "Glass and timber blending seamlessly with nature. A sanctuary for modern living.", imageSrc: "http://img.b2bpic.net/free-photo/path-leads-white-building-green-hill_1304-3762.jpg?_wi=2", imageAlt: "Modern home in forest"
}, },
{ {
id: "02", title: "Open Living", description: "Flowing spaces designed for connection. Light-filled interiors with zero-waste construction.", imageSrc: "http://img.b2bpic.net/free-photo/modern-interior-lobby-with-uncommon-furniture_1262-3576.jpg", imageAlt: "Open interior space" id: "02", title: "Open Living", description: "Flowing spaces designed for connection. Light-filled interiors with zero-waste construction.", imageSrc: "http://img.b2bpic.net/free-photo/modern-interior-lobby-with-uncommon-furniture_1262-3576.jpg", imageAlt: "Open interior space"
@@ -156,10 +143,10 @@ export default function LandingPage() {
tagIcon={Home} tagIcon={Home}
products={[ products={[
{ {
id: "1", name: "Essential Home", price: "€185,000", imageSrc: "http://img.b2bpic.net/free-photo/photorealistic-wooden-house-with-timber-structure_23-2151302616.jpg", imageAlt: "Essential modular home" id: "1", name: "Essential Home", price: "€185,000", imageSrc: "http://img.b2bpic.net/free-photo/photorealistic-wooden-house-with-timber-structure_23-2151302616.jpg?_wi=2", imageAlt: "Essential modular home"
}, },
{ {
id: "2", name: "Comfort Plus", price: "€275,000", imageSrc: "http://img.b2bpic.net/free-photo/home-interior-with-decorative-items-wooden-table_169016-1693.jpg", imageAlt: "Comfort Plus modular home" id: "2", name: "Comfort Plus", price: "€275,000", imageSrc: "http://img.b2bpic.net/free-photo/home-interior-with-decorative-items-wooden-table_169016-1693.jpg?_wi=2", imageAlt: "Comfort Plus modular home"
}, },
{ {
id: "3", name: "Luxury Estate", price: "€425,000", imageSrc: "http://img.b2bpic.net/free-photo/photorealistic-house-with-wooden-architecture-timber-structure_23-2151302593.jpg", imageAlt: "Luxury Estate modular home" id: "3", name: "Luxury Estate", price: "€425,000", imageSrc: "http://img.b2bpic.net/free-photo/photorealistic-house-with-wooden-architecture-timber-structure_23-2151302593.jpg", imageAlt: "Luxury Estate modular home"
@@ -212,7 +199,7 @@ export default function LandingPage() {
tag="Start Your Project" tag="Start Your Project"
tagIcon={Sparkles} tagIcon={Sparkles}
title="Ready to Build Your Dream Home?" title="Ready to Build Your Dream Home?"
description="Connect with our design team today. Get personalized guidance on your modular home journey, from concept to completion." description="Schedule a free 20-minute consultation with our design team. We'll guide you through options, timeline, and pricing."
background={{ variant: "downward-rays-animated-grid" }} background={{ variant: "downward-rays-animated-grid" }}
useInvertedBackground={true} useInvertedBackground={true}
inputPlaceholder="your@email.com" inputPlaceholder="your@email.com"
@@ -251,4 +238,4 @@ export default function LandingPage() {
</div> </div>
</ThemeProvider> </ThemeProvider>
); );
} }

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #ffffff; --background: #000000;
--card: #f9f9f9; --card: #1a2f1d;
--foreground: #000f06e6; --foreground: #ffffff;
--primary-cta: #0a7039; --primary-cta: #ffffff;
--primary-cta-text: #ffffff; --primary-cta-text: #ffffff;
--secondary-cta: #f9f9f9; --secondary-cta: #0d200f;
--secondary-cta-text: #000f06e6; --secondary-cta-text: #000f06e6;
--accent: #e2e2e2; --accent: #1a3d1f;
--background-accent: #c4c4c4; --background-accent: #355e3b;
/* 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);