Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 76cefab85d | |||
| f859b2f7b6 | |||
| 87cd8449de | |||
| 97030efc3a | |||
| 2db8601120 | |||
| cad7fb2641 | |||
| e312c9fb24 | |||
| 1a7ccb274e | |||
| c34cc0325c | |||
| 36294b647d | |||
| cfbb1add43 | |||
| 990b79905b | |||
| dd2106fdd8 | |||
| a3e25e9d20 | |||
| b76a502725 |
@@ -6,20 +6,26 @@ import "@/lib/gsap-setup";
|
|||||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
||||||
import Tag from "@/tag/Tag";
|
import Tag from "@/tag/Tag";
|
||||||
import { getVisualEditScript } from "@/utils/visual-edit-script";
|
import { getVisualEditScript } from "@/utils/visual-edit-script";
|
||||||
|
import { Nunito } from "next/font/google";
|
||||||
|
import { DM_Sans } from "next/font/google";
|
||||||
|
import { Open_Sans } from "next/font/google";
|
||||||
|
|
||||||
const halant = Halant({
|
|
||||||
variable: "--font-halant",
|
|
||||||
|
export const metadata: Metadata = { title: 'VerdantVista | Bespoke Landscape & Garden Architecture', description: 'Transform your outdoor property with VerdantVista. We specialize in high-end landscape architecture, bespoke hardscaping, and intentional botanical curation.' };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const dmSans = DM_Sans({
|
||||||
|
variable: "--font-dm-sans",
|
||||||
subsets: ["latin"],
|
subsets: ["latin"],
|
||||||
weight: ["300", "400", "500", "600", "700"],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const inter = Inter({
|
const inter = Inter({
|
||||||
variable: "--font-inter",
|
variable: "--font-inter",
|
||||||
subsets: ["latin"],
|
subsets: ["latin"],
|
||||||
});
|
});
|
||||||
|
|
||||||
export const metadata: Metadata = { title: 'VerdantVista | Bespoke Landscape & Garden Architecture', description: 'Transform your outdoor property with VerdantVista. We specialize in high-end landscape architecture, bespoke hardscaping, and intentional botanical curation.' };
|
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
}: Readonly<{
|
}: Readonly<{
|
||||||
@@ -28,9 +34,7 @@ export default function RootLayout({
|
|||||||
return (
|
return (
|
||||||
<html lang="en" suppressHydrationWarning>
|
<html lang="en" suppressHydrationWarning>
|
||||||
<ServiceWrapper>
|
<ServiceWrapper>
|
||||||
<body
|
<body className={`${dmSans.variable} ${inter.variable} antialiased`}>
|
||||||
className={`${halant.variable} ${inter.variable} antialiased`}
|
|
||||||
>
|
|
||||||
<Tag />
|
<Tag />
|
||||||
{children}
|
{children}
|
||||||
<script
|
<script
|
||||||
|
|||||||
@@ -3,7 +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 NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
||||||
import HeroOverlayTestimonial from "@/components/sections/hero/HeroOverlayTestimonial";
|
import HeroSplit from "@/components/sections/hero/HeroSplit";
|
||||||
import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCard";
|
import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCard";
|
||||||
import FeatureCardNineteen from "@/components/sections/feature/FeatureCardNineteen";
|
import FeatureCardNineteen from "@/components/sections/feature/FeatureCardNineteen";
|
||||||
import TeamCardSix from "@/components/sections/team/TeamCardSix";
|
import TeamCardSix from "@/components/sections/team/TeamCardSix";
|
||||||
@@ -44,11 +44,12 @@ export default function LandscapingPage() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="hero" data-section="hero">
|
<div id="hero" data-section="hero">
|
||||||
<HeroOverlayTestimonial
|
<HeroSplit
|
||||||
tag="Masterful Land Design"
|
tag="Masterful Land Design"
|
||||||
tagIcon={Leaf}
|
tagIcon={Leaf}
|
||||||
title="Where Nature Meets Art"
|
title="Where Nature Meets Art"
|
||||||
description="We curate bespoke outdoor environments that harmonize sophisticated architectural lines with the wild beauty of native flora. Elevate your property today."
|
description="We curate bespoke outdoor environments that harmonize sophisticated architectural lines with the wild beauty of native flora. Elevate your property today."
|
||||||
|
background={{ variant: "plain" }}
|
||||||
buttons={[
|
buttons={[
|
||||||
{ text: "Explore Designs", href: "#services" },
|
{ text: "Explore Designs", href: "#services" },
|
||||||
{ text: "View Portfolio", href: "#team" },
|
{ text: "View Portfolio", href: "#team" },
|
||||||
@@ -56,16 +57,8 @@ export default function LandscapingPage() {
|
|||||||
buttonAnimation="slide-up"
|
buttonAnimation="slide-up"
|
||||||
imageSrc="http://img.b2bpic.net/free-photo/town-square-shenzhen_1359-1110.jpg"
|
imageSrc="http://img.b2bpic.net/free-photo/town-square-shenzhen_1359-1110.jpg"
|
||||||
imageAlt="Stunning luxury modern garden design"
|
imageAlt="Stunning luxury modern garden design"
|
||||||
showDimOverlay={true}
|
imagePosition="right"
|
||||||
textPosition="bottom"
|
mediaAnimation="blur-reveal"
|
||||||
testimonials={[
|
|
||||||
{
|
|
||||||
name: "Elena V.", handle: "Boutique Hotel Owner", testimonial: "VerdantVista transformed our hotel courtyard into a serene sanctuary. Their eye for detail is unparalleled.", rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/serious-beautiful-businesswoman-standing-window_1262-1913.jpg", imageAlt: "Elena V."},
|
|
||||||
{
|
|
||||||
name: "Marcus P.", handle: "Architect", testimonial: "Collaboration was seamless. They truly understand the balance between structured design and natural growth.", rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/architect-being-serious-while-looking-camera_23-2148242992.jpg", imageAlt: "Marcus P."},
|
|
||||||
]}
|
|
||||||
/>
|
/>
|
||||||
</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-tight), sans-serif;
|
font-family: var(--font-inter), 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-inter-tight), sans-serif;
|
font-family: var(--font-dm-sans), sans-serif;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@
|
|||||||
--accent: #ffffff;
|
--accent: #ffffff;
|
||||||
--background-accent: #ffffff; */
|
--background-accent: #ffffff; */
|
||||||
|
|
||||||
--background: #f7f9f4;
|
--background: #f5f4ef;
|
||||||
--card: #ffffff;
|
--card: #dad6cd;
|
||||||
--foreground: #1a2e1a;
|
--foreground: #2a2928;
|
||||||
--primary-cta: #2d5a27;
|
--primary-cta: #2a2928;
|
||||||
--primary-cta-text: #ffffff;
|
--primary-cta-text: #f5f4ef;
|
||||||
--secondary-cta: #ffffff;
|
--secondary-cta: #ecebea;
|
||||||
--secondary-cta-text: #2d5a27;
|
--secondary-cta-text: #2a2928;
|
||||||
--accent: #4a8c3f;
|
--accent: #ffffff;
|
||||||
--background-accent: #6fb85e;
|
--background-accent: #c6b180;
|
||||||
|
|
||||||
/* 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