Compare commits

..

38 Commits

Author SHA1 Message Date
6fbbdeeb2a Update src/app/page.tsx 2026-04-25 21:42:49 +00:00
02365183c7 Update src/app/fleet/page.tsx 2026-04-25 21:42:49 +00:00
2643da5553 Update src/app/contact/page.tsx 2026-04-25 21:42:48 +00:00
1dd56a2023 Merge version_21 into main
Merge version_21 into main
2026-04-25 21:41:43 +00:00
4cbec6ca27 Update src/app/page.tsx 2026-04-25 21:41:40 +00:00
961a8ace80 Update src/app/fleet/page.tsx 2026-04-25 21:41:40 +00:00
2d9ae2a9ea Update src/app/contact/page.tsx 2026-04-25 21:41:39 +00:00
cdeb1a22f1 Merge version_20 into main
Merge version_20 into main
2026-04-25 21:40:05 +00:00
01c73992ad Update src/app/page.tsx 2026-04-25 21:40:02 +00:00
bac05276ab Update src/app/fleet/page.tsx 2026-04-25 21:40:01 +00:00
c17fc14872 Update src/app/contact/page.tsx 2026-04-25 21:40:01 +00:00
53723f1b86 Merge version_19 into main
Merge version_19 into main
2026-04-25 21:33:28 +00:00
43d7614ef6 Update src/app/page.tsx 2026-04-25 21:33:22 +00:00
38ae71da99 Merge version_18 into main
Merge version_18 into main
2026-04-25 21:33:00 +00:00
4d6985f397 Update theme colors 2026-04-25 21:32:57 +00:00
8b59301201 Merge version_17 into main
Merge version_17 into main
2026-04-25 21:31:53 +00:00
d5d2600e62 Update theme fonts 2026-04-25 21:31:50 +00:00
0e2db7b01b Update theme fonts 2026-04-25 21:31:49 +00:00
e60bc48b7f Merge version_17 into main
Merge version_17 into main
2026-04-25 21:31:46 +00:00
a87890815c Update theme fonts 2026-04-25 21:31:42 +00:00
31d9541633 Update theme fonts 2026-04-25 21:31:42 +00:00
1a2d2925bc Merge version_17 into main
Merge version_17 into main
2026-04-25 21:31:38 +00:00
0f2cb23bb3 Update theme fonts 2026-04-25 21:31:35 +00:00
143bc69d05 Update theme fonts 2026-04-25 21:31:35 +00:00
507bf1b0c7 Merge version_17 into main
Merge version_17 into main
2026-04-25 21:31:21 +00:00
0a3c50f306 Update theme fonts 2026-04-25 21:31:20 +00:00
781dfb364a Update theme fonts 2026-04-25 21:31:19 +00:00
269a4da254 Update theme fonts 2026-04-25 21:31:18 +00:00
c81d811a5f Update theme fonts 2026-04-25 21:31:17 +00:00
8bd03fb16f Merge version_17 into main
Merge version_17 into main
2026-04-25 21:31:03 +00:00
ff759b8cfc Update theme colors 2026-04-25 21:31:00 +00:00
6d0d8ffa2e Merge version_16 into main
Merge version_16 into main
2026-04-25 21:29:40 +00:00
32d8a2efa2 Merge version_15 into main
Merge version_15 into main
2026-04-25 21:29:35 +00:00
3efd4264c4 Update theme colors 2026-04-25 21:29:34 +00:00
6774f79326 Merge version_14 into main
Merge version_14 into main
2026-04-25 21:29:32 +00:00
7358f54c09 Update theme colors 2026-04-25 21:29:32 +00:00
8c3768e39b Update theme colors 2026-04-25 21:29:29 +00:00
548615bec1 Merge version_12 into main
Merge version_12 into main
2026-04-25 21:24:15 +00:00
6 changed files with 78 additions and 153 deletions

View File

@@ -24,14 +24,13 @@ export default function LandingPage() {
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
navItems={[ navItems={[
{ { name: "Home", id: "/" },
name: "Home", id: "/"}, { name: "Fleet", id: "/fleet" },
{ { name: "Contact", id: "/contact" },
name: "Fleet", id: "/fleet"},
{
name: "Contact", id: "/contact"},
]} ]}
brandName="CleanScene Restroom Rentals" logoSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Cr9i1HT3S4vLNiV9XJ6S4fk81W/uploaded-1777153284560-p5dv0rh1.png"
logoAlt="CleanScene Restroom Rentals"
className="w-64"
/> />
</div> </div>
@@ -41,16 +40,10 @@ export default function LandingPage() {
title="Request a Free Estimate" title="Request a Free Estimate"
description="Tell us about your event. We typically respond within 4 business hours." description="Tell us about your event. We typically respond within 4 business hours."
inputs={[ inputs={[
{ { name: "name", type: "text", placeholder: "Full Name", required: true },
name: "name", type: "text", placeholder: "Full Name", required: true, { name: "email", type: "email", placeholder: "Email Address", required: true },
},
{
name: "email", type: "email", placeholder: "Email Address", required: true,
},
]} ]}
textarea={{ textarea={{ name: "message", placeholder: "Tell us about your event details...", rows: 4 }}
name: "message", placeholder: "Tell us about your event details...", rows: 4,
}}
imageSrc="http://img.b2bpic.net/free-photo/happy-event-manager-banquet-hall_23-2148085332.jpg" imageSrc="http://img.b2bpic.net/free-photo/happy-event-manager-banquet-hall_23-2148085332.jpg"
/> />
</div> </div>
@@ -58,22 +51,8 @@ export default function LandingPage() {
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterLogoEmphasis <FooterLogoEmphasis
columns={[ columns={[
{ { items: [{ label: "Home", href: "/" }, { label: "Fleet", href: "/fleet" }] },
items: [ { items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms", href: "#" }] },
{
label: "Home", href: "/"},
{
label: "Fleet", href: "/fleet"},
],
},
{
items: [
{
label: "Privacy Policy", href: "#"},
{
label: "Terms", href: "#"},
],
},
]} ]}
logoText="CleanScene Restroom Rentals" logoText="CleanScene Restroom Rentals"
/> />

View File

@@ -24,14 +24,13 @@ export default function LandingPage() {
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
navItems={[ navItems={[
{ { name: "Home", id: "/" },
name: "Home", id: "/"}, { name: "Fleet", id: "/fleet" },
{ { name: "Contact", id: "/contact" },
name: "Fleet", id: "/fleet"},
{
name: "Contact", id: "/contact"},
]} ]}
brandName="CleanScene Restroom Rentals" logoSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Cr9i1HT3S4vLNiV9XJ6S4fk81W/uploaded-1777153284560-p5dv0rh1.png"
logoAlt="CleanScene Restroom Rentals"
className="w-64"
/> />
</div> </div>
@@ -44,12 +43,9 @@ export default function LandingPage() {
title="Our Full Fleet Inventory" title="Our Full Fleet Inventory"
description="Explore our complete range of high-end mobile restroom solutions." description="Explore our complete range of high-end mobile restroom solutions."
products={[ products={[
{ { id: "f1", name: "2-Station Classic", price: "$750/day", imageSrc: "http://img.b2bpic.net/free-photo/backlit-mirror-minimalist-sink-spa-bathroom_169016-68891.jpg" },
id: "f1", name: "2-Station Classic", price: "$750/day", imageSrc: "http://img.b2bpic.net/free-photo/backlit-mirror-minimalist-sink-spa-bathroom_169016-68891.jpg"}, { id: "f2", name: "3-Station Executive", price: "$1200/day", imageSrc: "http://img.b2bpic.net/close-up-bathtub-with-faucet_1203-1500.jpg" },
{ { id: "f3", name: "5-Station Luxury Suite", price: "$1800/day", imageSrc: "http://img.b2bpic.net/small-bathroom-space-with-modern-style-furniture_23-2150864622.jpg" },
id: "f2", name: "3-Station Executive", price: "$1200/day", imageSrc: "http://img.b2bpic.net/free-photo/close-up-bathtub-with-faucet_1203-1500.jpg"},
{
id: "f3", name: "5-Station Luxury Suite", price: "$1800/day", imageSrc: "http://img.b2bpic.net/free-photo/small-bathroom-space-with-modern-style-furniture_23-2150864622.jpg"},
]} ]}
/> />
</div> </div>
@@ -57,22 +53,8 @@ export default function LandingPage() {
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterLogoEmphasis <FooterLogoEmphasis
columns={[ columns={[
{ { items: [{ label: "Home", href: "/" }, { label: "Fleet", href: "/fleet" }] },
items: [ { items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms", href: "#" }] },
{
label: "Home", href: "/"},
{
label: "Fleet", href: "/fleet"},
],
},
{
items: [
{
label: "Privacy Policy", href: "#"},
{
label: "Terms", href: "#"},
],
},
]} ]}
logoText="CleanScene Restroom Rentals" logoText="CleanScene Restroom Rentals"
/> />

View File

@@ -6,6 +6,11 @@ import "@/lib/gsap-setup";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import { ServiceWrapper } from "@/components/ServiceWrapper";
import { getVisualEditScript } from "@/utils/visual-edit-script"; import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Public_Sans } from "next/font/google"; import { Public_Sans } from "next/font/google";
import { Nunito } from "next/font/google";
import { Archivo } from "next/font/google";
import { Montserrat } from "next/font/google";
import { Libre_Baskerville } from "next/font/google";
import { Open_Sans } from "next/font/google";
@@ -18,12 +23,13 @@ export const metadata: Metadata = {
}, },
}; };
const publicSans = Public_Sans({
variable: "--font-public-sans",
subsets: ["latin"],
});
const inter = Inter({
variable: "--font-inter", const openSans = Open_Sans({
variable: "--font-open-sans",
subsets: ["latin"], subsets: ["latin"],
}); });
@@ -35,7 +41,7 @@ export default function RootLayout({
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${publicSans.variable} ${inter.variable} antialiased`}> <body className={`${openSans.variable} antialiased`}>
{children} {children}
<script <script

View File

@@ -9,7 +9,6 @@ import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatin
import ProductCardTwo from '@/components/sections/product/ProductCardTwo'; import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import FeatureCardTwentyNine from '@/components/sections/feature/featureCardTwentyNine/FeatureCardTwentyNine'; import FeatureCardTwentyNine from '@/components/sections/feature/featureCardTwentyNine/FeatureCardTwentyNine';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout'; import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import { Crown } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
return ( return (
@@ -29,65 +28,46 @@ export default function LandingPage() {
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
navItems={[ navItems={[
{ { name: "Home", id: "/" },
name: "Home", id: "/"}, { name: "Fleet", id: "/fleet" },
{ { name: "Contact", id: "/contact" },
name: "Fleet", id: "/fleet"},
{
name: "Contact", id: "/contact"},
]} ]}
brandName="CleanScene Restroom Rentals" logoSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Cr9i1HT3S4vLNiV9XJ6S4fk81W/uploaded-1777153284560-p5dv0rh1.png"
logoAlt="CleanScene Restroom Rentals"
className="w-64"
/> />
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroSplitKpi <HeroSplitKpi
background={{ background={{ variant: "gradient-bars" }}
variant: "gradient-bars"}}
title="Set the Scene for a Flawless Event" title="Set the Scene for a Flawless Event"
description="Our trailers offer the comfort of an interior space with the quality of modern hospitality." description="Our trailers offer the comfort of an interior space with the quality of modern hospitality."
tag="Luxury Event Standards"
tagIcon={Crown}
kpis={[ kpis={[
{ { value: "10+", label: "Counties Served" },
value: "10+", label: "Counties Served"}, { value: "100%", label: "Guest Comfort" },
{ { value: "24/7", label: "Service" },
value: "100%", label: "Guest Comfort"},
{
value: "24/7", label: "Service"},
]} ]}
enableKpiAnimation={true} enableKpiAnimation={true}
buttons={[ buttons={[
{ { text: "Get My Free Quote", href: "/contact" },
text: "Get My Free Quote", href: "/contact"}, { text: "View The Fleet", href: "/fleet" },
{
text: "View The Fleet", href: "/fleet"},
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/front-view-large-transparent-window-with-opened-door-outside-which-newlyweds-posing-embracing-balcony-their-wedding-day_8353-12102.jpg" imageSrc="http://img.b2bpic.net/free-photo/front-view-large-transparent-window-with-opened-door-outside-which-newlyweds-posing-embracing-balcony-their-wedding-day_8353-12102.jpg"
mediaAnimation="slide-up" mediaAnimation="slide-up"
avatars={[ avatars={[
{ { src: "http://img.b2bpic.net/free-photo/couple-backs-sitting-bed-with-her-head-resting-his-shoulder_1157-1293.jpg", alt: "Couple of backs sitting on a bed with her head resting on his shoulder" },
src: "http://img.b2bpic.net/free-photo/couple-backs-sitting-bed-with-her-head-resting-his-shoulder_1157-1293.jpg", alt: "Couple of backs sitting on a bed with her head resting on his shoulder"}, { src: "http://img.b2bpic.net/long-white-dinner-table-with-sparkling-glassware-candleholders-stands-beach_1304-3243.jpg", alt: "Long white dinner table with sparkling glassware and candleholders stands on the beach" },
{ { src: "http://img.b2bpic.net/free-photo/table-setting-with-decorated-newlyweds-chairs-wedding-reception-hall_637285-989.jpg", alt: "Table setting with decorated newlyweds chairs in wedding reception hall" },
src: "http://img.b2bpic.net/long-white-dinner-table-with-sparkling-glassware-candleholders-stands-beach_1304-3243.jpg", alt: "Long white dinner table with sparkling glassware and candleholders stands on the beach"}, { src: "http://img.b2bpic.net/free-photo/table-setting-with-floral-centerpiece-wedding-reception-venue_637285-5627.jpg", alt: "Table setting with floral centerpiece at wedding reception venue." },
{ { src: "http://img.b2bpic.net/free-photo/floral-compositions-made-greenery-outdoors-wedding-ceremony_8353-9788.jpg", alt: "Floral compositions made of greenery at the outdoors wedding ceremony" },
src: "http://img.b2bpic.net/free-photo/table-setting-with-decorated-newlyweds-chairs-wedding-reception-hall_637285-989.jpg", alt: "Table setting with decorated newlyweds chairs in wedding reception hall"},
{
src: "http://img.b2bpic.net/free-photo/table-setting-with-floral-centerpiece-wedding-reception-venue_637285-5627.jpg", alt: "Table setting with floral centerpiece at wedding reception venue."},
{
src: "http://img.b2bpic.net/free-photo/floral-compositions-made-greenery-outdoors-wedding-ceremony_8353-9788.jpg", alt: "Floral compositions made of greenery at the outdoors wedding ceremony"},
]} ]}
marqueeItems={[ marqueeItems={[
{ { type: "text", text: "Luxury Restroom Trailers" },
type: "text", text: "Luxury Restroom Trailers"}, { type: "text", text: "Northeast Wisconsin" },
{ { type: "text", text: "Event Perfection" },
type: "text", text: "Northeast Wisconsin"}, { type: "text", text: "Seamless Logistics" },
{ { type: "text", text: "Premium Hospitality" },
type: "text", text: "Event Perfection"},
{
type: "text", text: "Seamless Logistics"},
{
type: "text", text: "Premium Hospitality"},
]} ]}
/> />
</div> </div>
@@ -97,7 +77,8 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
title="The CleanScene Difference" title="The CleanScene Difference"
description={[ description={[
"We believe restrooms shouldn't just be functional—they should be part of the event design.", "Our trailers offer the comfort of an interior space with the luxury of modern hospitality."]} "We believe restrooms shouldn't just be functional—they should be part of the event design.", "Our trailers offer the comfort of an interior space with the luxury of modern hospitality."
]}
/> />
</div> </div>
@@ -108,12 +89,8 @@ export default function LandingPage() {
gridVariant="asymmetric-60-wide-40-narrow" gridVariant="asymmetric-60-wide-40-narrow"
useInvertedBackground={false} useInvertedBackground={false}
products={[ products={[
{ { id: "p1", brand: "CleanScene", name: "3-Station Private Suite", price: "Quote on Request", rating: 0, reviewCount: "", imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-modern-wood-stone-white-bathroom_105762-2136.jpg" },
id: "p1", brand: "CleanScene", name: "3-Station Private Suite", price: "Quote on Request", rating: 0, { id: "p2", brand: "CleanScene", name: "Executive Comfort Series", price: "Quote on Request", rating: 0, reviewCount: "", imageSrc: "http://img.b2bpic.net/modern-bathroom-with-big-mirror_1203-1497.jpg" },
reviewCount: "", imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-modern-wood-stone-white-bathroom_105762-2136.jpg"},
{
id: "p2", brand: "CleanScene", name: "Executive Comfort Series", price: "Quote on Request", rating: 0,
reviewCount: "", imageSrc: "http://img.b2bpic.net/free-photo/modern-bathroom-with-big-mirror_1203-1497.jpg"},
]} ]}
title="Our Curated Fleet" title="Our Curated Fleet"
description="Made-in-USA trailers designed for peak comfort." description="Made-in-USA trailers designed for peak comfort."
@@ -129,12 +106,9 @@ export default function LandingPage() {
title="Modern Hospitality Standards" title="Modern Hospitality Standards"
description="Every detail of our rental fleet is meticulously maintained to ensure your event leaves a lasting impression." description="Every detail of our rental fleet is meticulously maintained to ensure your event leaves a lasting impression."
features={[ features={[
{ { title: "Advanced Climate Control", description: "Fully adjustable heating and cooling systems to keep guests comfortable regardless of the season.", imageSrc: "http://img.b2bpic.net/free-photo/view-beautiful-modern-hotel-interior_23-2148777121.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/view-beautiful-modern-hotel-interior_23-2148777121.jpg", buttonText: "Learn More" },
title: "Advanced Climate Control", description: "Fully adjustable heating and cooling systems to keep guests comfortable regardless of the season.", imageSrc: "http://img.b2bpic.net/free-photo/view-beautiful-modern-hotel-interior_23-2148777121.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/view-beautiful-modern-hotel-interior_23-2148777121.jpg", buttonText: "Learn More"}, { title: "Luxury Finishes", description: "Designer lighting, high-end vanity surfaces, and elegant trim throughout our trailers.", imageSrc: "http://img.b2bpic.net/free-photo/interior-design-concept-with-details_23-2148777121.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/interior-design-concept-with-details_23-2148777121.jpg", buttonText: "Learn More" },
{ { title: "White-Glove Setup", description: "Our professional team handles every step from delivery to onsite staging to ensure perfection.", imageSrc: "http://img.b2bpic.net/free-photo/professional-team-working-together_23-2148777121.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/professional-team-working-together_23-2148777121.jpg", buttonText: "Learn More" },
title: "Luxury Finishes", description: "Designer lighting, high-end vanity surfaces, and elegant trim throughout our trailers.", imageSrc: "http://img.b2bpic.net/free-photo/interior-design-concept-with-details_23-2148777121.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/interior-design-concept-with-details_23-2148777121.jpg", buttonText: "Learn More"},
{
title: "White-Glove Setup", description: "Our professional team handles every step from delivery to onsite staging to ensure perfection.", imageSrc: "http://img.b2bpic.net/free-photo/professional-team-working-together_23-2148777121.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/professional-team-working-together_23-2148777121.jpg", buttonText: "Learn More"},
]} ]}
/> />
</div> </div>
@@ -142,12 +116,10 @@ export default function LandingPage() {
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactText <ContactText
useInvertedBackground={false} useInvertedBackground={false}
background={{ background={{ variant: "plain" }}
variant: "plain"}}
text="Ready to elevate your event experience? Get in touch with our team today to secure your dates and discover our premium rental options." text="Ready to elevate your event experience? Get in touch with our team today to secure your dates and discover our premium rental options."
buttons={[ buttons={[
{ { text: "Request My Free Quote", href: "/contact" },
text: "Request My Free Quote", href: "/contact"},
]} ]}
/> />
</div> </div>
@@ -155,22 +127,8 @@ export default function LandingPage() {
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterLogoEmphasis <FooterLogoEmphasis
columns={[ columns={[
{ { items: [{ label: "Home", href: "/" }, { label: "Fleet", href: "/fleet" }] },
items: [ { items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms", href: "#" }] },
{
label: "Home", href: "/"},
{
label: "Fleet", href: "/fleet"},
],
},
{
items: [
{
label: "Privacy Policy", href: "#"},
{
label: "Terms", href: "#"},
],
},
]} ]}
logoText="CleanScene Restroom Rentals" logoText="CleanScene Restroom Rentals"
/> />

View File

@@ -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-open-sans), 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-public-sans), sans-serif; font-family: var(--font-open-sans), sans-serif;
} }

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #F7F4EF; --background: #ffffff;
--card: #ECE6DC; --card: #f9f9f9;
--foreground: #1C2A2F; --foreground: #000f06e6;
--primary-cta: #2F4F4F; --primary-cta: #0a7039;
--primary-cta-text: #ffffff; --primary-cta-text: #ffffff;
--secondary-cta: #ffffff; --secondary-cta: #f9f9f9;
--secondary-cta-text: #1C2A2F; --secondary-cta-text: #000f06e6;
--accent: #D9CFC0; --accent: #e2e2e2;
--background-accent: #D9CFC0; --background-accent: #c4c4c4;
/* 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);