Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 76cefab85d | |||
| f859b2f7b6 | |||
| 87cd8449de | |||
| 97030efc3a | |||
| 2db8601120 | |||
| cad7fb2641 | |||
| e312c9fb24 | |||
| 1a7ccb274e | |||
| c34cc0325c | |||
| 36294b647d | |||
| cfbb1add43 | |||
| 990b79905b | |||
| dd2106fdd8 | |||
| a3e25e9d20 | |||
| b76a502725 | |||
| ad84279f42 |
@@ -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>
|
||||||
|
|
||||||
@@ -95,11 +88,11 @@ export default function LandscapingPage() {
|
|||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
features={[
|
features={[
|
||||||
{
|
{
|
||||||
tag: "Design", title: "Master Planning", subtitle: "Conceptual Vision", description: "Comprehensive site analysis and 3D visualization to ensure your vision is realized before construction begins.", imageSrc: "http://img.b2bpic.net/free-vector/architecture-background-design_1168-66.jpg", imageAlt: "Landscape architectural blueprint"},
|
tag: "Design", title: "Master Planning", subtitle: "Conceptual Vision", description: "Comprehensive site analysis and 3D visualization to ensure your vision is realized before construction begins.", imageSrc: "http://img.b2bpic.net/free-vector/architecture-background-design_1168-66.jpg", imageAlt: "Landscape architectural blueprint"},
|
||||||
{
|
{
|
||||||
tag: "Construction", title: "Hardscape Artistry", subtitle: "Precision Build", description: "Natural stone masonry, custom water features, and architectural lighting installations built to last.", imageSrc: "http://img.b2bpic.net/free-photo/swimming-pool-top-view_1150-11006.jpg", imageAlt: "Modern patio hardscape"},
|
tag: "Construction", title: "Hardscape Artistry", subtitle: "Precision Build", description: "Natural stone masonry, custom water features, and architectural lighting installations built to last.", imageSrc: "http://img.b2bpic.net/free-photo/swimming-pool-top-view_1150-11006.jpg", imageAlt: "Modern patio hardscape"},
|
||||||
{
|
{
|
||||||
tag: "Horticulture", title: "Botanical Curation", subtitle: "Native Planting", description: "Selecting sustainable, climate-adapted plants to ensure your garden remains vibrant through every season.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-arrangement-with-pink-purple-flowers_23-2148447138.jpg", imageAlt: "Lush botanical garden"},
|
tag: "Horticulture", title: "Botanical Curation", subtitle: "Native Planting", description: "Selecting sustainable, climate-adapted plants to ensure your garden remains vibrant through every season.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-arrangement-with-pink-purple-flowers_23-2148447138.jpg", imageAlt: "Lush botanical garden"},
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -114,11 +107,11 @@ export default function LandscapingPage() {
|
|||||||
animationType="slide-up"
|
animationType="slide-up"
|
||||||
members={[
|
members={[
|
||||||
{
|
{
|
||||||
id: "1", name: "Award-Winning", role: "Recognized globally for landscape innovation and sustainability.", imageSrc: "http://img.b2bpic.net/free-photo/golden-trophy-award-white-background_187299-46243.jpg", imageAlt: "Award trophy"},
|
id: "1", name: "Award-Winning", role: "Recognized globally for landscape innovation and sustainability.", imageSrc: "http://img.b2bpic.net/free-photo/golden-trophy-award-white-background_187299-46243.jpg", imageAlt: "Award trophy"},
|
||||||
{
|
{
|
||||||
id: "2", name: "Sustainable", role: "We use exclusively organic soil and low-impact machinery.", imageSrc: "http://img.b2bpic.net/free-photo/save-planet-sustainable-energy-saving-ecology-environment_53876-128096.jpg", imageAlt: "Green leaf eco-symbol"},
|
id: "2", name: "Sustainable", role: "We use exclusively organic soil and low-impact machinery.", imageSrc: "http://img.b2bpic.net/free-photo/save-planet-sustainable-energy-saving-ecology-environment_53876-128096.jpg", imageAlt: "Green leaf eco-symbol"},
|
||||||
{
|
{
|
||||||
id: "3", name: "Dedicated", role: "Our crew stays on your site until the project is absolute perfection.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-cheerful-gardener-covering-nose-from-smell-with-fingers_176420-3809.jpg", imageAlt: "Landscaper working"},
|
id: "3", name: "Dedicated", role: "Our crew stays on your site until the project is absolute perfection.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-cheerful-gardener-covering-nose-from-smell-with-fingers_176420-3809.jpg", imageAlt: "Landscaper working"},
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -134,11 +127,11 @@ export default function LandscapingPage() {
|
|||||||
animationType="slide-up"
|
animationType="slide-up"
|
||||||
members={[
|
members={[
|
||||||
{
|
{
|
||||||
id: "1", name: "Julian Thorne", role: "Lead Landscape Architect", imageSrc: "http://img.b2bpic.net/free-photo/man-with-construction-plan-copy-space_23-2148269820.jpg", imageAlt: "Julian Thorne"},
|
id: "1", name: "Julian Thorne", role: "Lead Landscape Architect", imageSrc: "http://img.b2bpic.net/free-photo/man-with-construction-plan-copy-space_23-2148269820.jpg", imageAlt: "Julian Thorne"},
|
||||||
{
|
{
|
||||||
id: "2", name: "Sofia Reyes", role: "Senior Horticulturalist", imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-florist-apron-standing-with-notepad-pencil-hands-happily-looking-camera-while-working-greenhouse_574295-749.jpg", imageAlt: "Sofia Reyes"},
|
id: "2", name: "Sofia Reyes", role: "Senior Horticulturalist", imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-florist-apron-standing-with-notepad-pencil-hands-happily-looking-camera-while-working-greenhouse_574295-749.jpg", imageAlt: "Sofia Reyes"},
|
||||||
{
|
{
|
||||||
id: "3", name: "Liam O'Connor", role: "Director of Hardscapes", imageSrc: "http://img.b2bpic.net/free-photo/architect-safety-equipment-with-plans_23-2148242982.jpg", imageAlt: "Liam O'Connor"},
|
id: "3", name: "Liam O'Connor", role: "Director of Hardscapes", imageSrc: "http://img.b2bpic.net/free-photo/architect-safety-equipment-with-plans_23-2148242982.jpg", imageAlt: "Liam O'Connor"},
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</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