26 Commits

Author SHA1 Message Date
068e5917ca Merge version_4 into main
Merge version_4 into main
2026-04-23 09:18:42 +00:00
0231217c73 Update src/app/page.tsx 2026-04-23 09:18:39 +00:00
077921d045 Merge version_4 into main
Merge version_4 into main
2026-04-23 09:18:09 +00:00
34771ec8df Update src/app/page.tsx 2026-04-23 09:18:06 +00:00
1640c716c9 Merge version_4 into main
Merge version_4 into main
2026-04-23 09:17:37 +00:00
e33aae3dcf Update src/app/page.tsx 2026-04-23 09:17:34 +00:00
7e4b9e03c0 Switch to version 3: modified src/app/styles/variables.css 2026-04-23 09:14:46 +00:00
a868e1c813 Switch to version 3: modified src/app/page.tsx 2026-04-23 09:14:46 +00:00
e354e3686b Switch to version 3: added src/app/menu/page.tsx 2026-04-23 09:14:45 +00:00
2d3aec15cd Switch to version 3: added src/app/contact/page.tsx 2026-04-23 09:14:45 +00:00
ba80fb46c2 Switch to version 2: remove src/app/menu/page.tsx 2026-04-23 09:14:39 +00:00
9e8fddeeb9 Switch to version 2: remove src/app/contact/page.tsx 2026-04-23 09:14:38 +00:00
7a9811a32a Switch to version 2: modified src/app/styles/variables.css 2026-04-23 09:14:38 +00:00
17fd79c534 Switch to version 2: modified src/app/page.tsx 2026-04-23 09:14:37 +00:00
3c79a49e3f Merge version_3 into main
Merge version_3 into main
2026-04-23 09:14:07 +00:00
b81536e9bc Update src/app/menu/page.tsx 2026-04-23 09:14:04 +00:00
7bc1c1d006 Update src/app/contact/page.tsx 2026-04-23 09:14:04 +00:00
09efa56711 Merge version_3 into main
Merge version_3 into main
2026-04-23 09:13:38 +00:00
19169a50ef Update src/app/menu/page.tsx 2026-04-23 09:13:35 +00:00
589c7be53a Update src/app/contact/page.tsx 2026-04-23 09:13:34 +00:00
00a5600935 Merge version_3 into main
Merge version_3 into main
2026-04-23 09:13:05 +00:00
20801f7046 Update src/app/styles/variables.css 2026-04-23 09:13:02 +00:00
3ef2337d93 Update src/app/page.tsx 2026-04-23 09:13:01 +00:00
1e7ebdc58d Add src/app/menu/page.tsx 2026-04-23 09:13:01 +00:00
bfe0cf85b5 Add src/app/contact/page.tsx 2026-04-23 09:13:00 +00:00
1df66407dc Merge version_2 into main
Merge version_2 into main
2026-04-20 08:56:06 +00:00
4 changed files with 202 additions and 150 deletions

76
src/app/contact/page.tsx Normal file
View File

@@ -0,0 +1,76 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ContactSplit from '@/components/sections/contact/ContactSplit';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function ContactPage() {
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="largeSmallSizeLargeTitles"
background="none"
cardStyle="glass-depth"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "/#services" },
{ name: "Experience", id: "/#experience" },
{ name: "Contact", id: "/contact" },
]}
brandName="Jeff & Company"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
tag="Contact Us"
title="Book Your Appointment"
description="Ready to treat your pet? Reach out to us today and schedule a grooming session in our calm, professional salon."
background={{ variant: "plain" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/lifestyle-portrait-handsome-smiling-man-sitting-pet-friendly-cafe-with-his-beautiful-dog-petting-golden-retriever-waiting-order_1258-314442.jpg"
onSubmit={(email) => console.log("New Lead:", email)}
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/high-angle-woman-washing-dog_23-2149872954.jpg?_wi=2"
logoText="Jeff & Company Grooming"
columns={[
{
title: "Contact", items: [
{ label: "Greystoke Dr, Ruislip", href: "#" },
{ label: "07598 206450", href: "tel:07598206450" },
],
},
{
title: "Opening Hours", items: [
{ label: "Mon-Fri: 9am-5pm", href: "#" },
{ label: "Sat: 9am-5pm", href: "#" },
],
},
{
title: "Follow", items: [
{ label: "Instagram", href: "#" },
],
},
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

73
src/app/menu/page.tsx Normal file
View File

@@ -0,0 +1,73 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function MenuPage() {
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="largeSmallSizeLargeTitles"
background="none"
cardStyle="glass-depth"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "#menu" },
{ name: "Contact", id: "/#contact" },
]}
brandName="Jeff & Company"
/>
</div>
<div id="menu" data-section="menu">
<PricingCardEight
animationType="slide-up"
title="Our Menu & Pricing"
description="Explore our grooming packages tailored to your pet's needs."
textboxLayout="default"
useInvertedBackground={false}
plans={[
{
id: "1", badge: "Basic", price: "£35", subtitle: "Bath & Brush", features: ["Deep clean bath", "Gentle brush out", "Nail trim", "Ear cleaning"],
buttons: [{ text: "Book Now", href: "/#contact" }]
},
{
id: "2", badge: "Popular", price: "£55", subtitle: "Full Groom", features: ["Full bath & dry", "Breed specific haircut", "Nail trim", "Ear cleaning", "Sanitary trim"],
buttons: [{ text: "Book Now", href: "/#contact" }]
},
{
id: "3", badge: "Premium", price: "£65", subtitle: "The Works", features: ["Full groom package", "Dematting treatment", "Teeth brushing", "Paw balm", "Luxury fragrance"],
buttons: [{ text: "Book Now", href: "/#contact" }]
}
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/high-angle-woman-washing-dog_23-2149872954.jpg?_wi=1"
logoText="Jeff & Company Grooming"
columns={[
{ title: "Contact", items: [{ label: "Greystoke Dr, Ruislip", href: "#" }, { label: "07598 206450", href: "tel:07598206450" }] },
{ title: "Opening Hours", items: [{ label: "Mon-Fri: 9am-5pm", href: "#" }, { label: "Sat: 9am-5pm", href: "#" }] },
{ title: "Follow", items: [{ label: "Instagram", href: "#" }] }
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -2,16 +2,14 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import ContactSplit from '@/components/sections/contact/ContactSplit'; import FeatureCardSeven from '@/components/sections/feature/FeatureCardSeven';
import FeatureCardOne from '@/components/sections/feature/FeatureCardOne'; import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import FooterMedia from '@/components/sections/footer/FooterMedia';
import HeroBillboardScroll from '@/components/sections/hero/HeroBillboardScroll'; import HeroBillboardScroll from '@/components/sections/hero/HeroBillboardScroll';
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven'; import AboutMetric from '@/components/sections/about/AboutMetric';
import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardOne from '@/components/sections/product/ProductCardOne'; import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import TestimonialCardTwo from '@/components/sections/testimonial/TestimonialCardTwo'; import ContactText from '@/components/sections/contact/ContactText';
import { Star } from "lucide-react"; import { Star, MapPin, Phone } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
return ( return (
@@ -31,14 +29,10 @@ export default function LandingPage() {
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarStyleCentered <NavbarStyleCentered
navItems={[ navItems={[
{ { name: "Home", id: "hero" },
name: "Home", id: "hero"}, { name: "About", id: "experience" },
{ { name: "Services", id: "services" },
name: "Services", id: "services"}, { name: "Contact", id: "contact" },
{
name: "Experience", id: "experience"},
{
name: "Contact", id: "contact"},
]} ]}
brandName="Jeff & Company" brandName="Jeff & Company"
/> />
@@ -46,16 +40,13 @@ export default function LandingPage() {
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroBillboardScroll <HeroBillboardScroll
background={{ background={{ variant: "plain" }}
variant: "plain"}}
title="Jeff & Company Grooming" title="Jeff & Company Grooming"
description="Calm, Gentle Grooming Your Pet Will Love. A trusted, 5-star grooming experience designed to keep your pet relaxed, comfortable, and looking their best." description="Calm, Gentle Grooming Your Pet Will Love. A trusted, 5-star grooming experience designed to keep your pet relaxed, comfortable, and looking their best."
tag="⭐ 5.0 Rated Grooming Service" tag="⭐ 5.0 Rated Grooming Service"
buttons={[ buttons={[
{ { text: "Book Now", href: "/contact" },
text: "Book Now", href: "#contact"}, { text: "Call Now", href: "tel:07598206450" },
{
text: "Call Now (07598 206450)", href: "tel:07598206450"},
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/adorable-pet-enjoying-spa-day-illustration_23-2151841570.jpg" imageSrc="http://img.b2bpic.net/free-photo/adorable-pet-enjoying-spa-day-illustration_23-2151841570.jpg"
imageAlt="Professional pet groomer smiling with a happy groomed dog" imageAlt="Professional pet groomer smiling with a happy groomed dog"
@@ -63,152 +54,64 @@ export default function LandingPage() {
/> />
</div> </div>
<div id="trust" data-section="trust"> <div id="experience" data-section="experience">
<TestimonialCardTwo <AboutMetric
animationType="slide-up" title="About Our Gentle Approach"
textboxLayout="default" metrics={[
useInvertedBackground={false} { icon: Star, label: "Rating", value: "5.0 Star" },
testimonials={[ { icon: MapPin, label: "Location", value: "Ruislip" },
{ { icon: Phone, label: "Support", value: "07598 206450" },
id: "1", name: "Sarah J.", role: "Puppy Owner", testimonial: "A paw-fect experience for my puppys first groom.", imageSrc: "http://img.b2bpic.net/free-photo/lovely-pet-portrait-isolated_23-2149192309.jpg"},
{
id: "2", name: "Mark D.", role: "Client", testimonial: "So patient, caring, and professional.", imageSrc: "http://img.b2bpic.net/free-photo/sideways-portrait-chinese-crested-puppy-with-copy-space-background_23-2148326286.jpg"},
{
id: "3", name: "Emily P.", role: "Pet Owner", testimonial: "Jeff is wonderful with my anxious dog, highly recommend!", imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-yorkshire-dog_23-2151779155.jpg"},
{
id: "4", name: "Laura K.", role: "Regular Client", testimonial: "Excellent service every time, very happy.", imageSrc: "http://img.b2bpic.net/free-photo/lovely-pet-portrait-isolated_23-2149192304.jpg"},
{
id: "5", name: "David W.", role: "Client", testimonial: "Truly the best local grooming experience.", imageSrc: "http://img.b2bpic.net/free-photo/man-playing-with-his-toy-poodle_23-2147840145.jpg"},
]} ]}
title="Trusted by Pet Owners" metricsAnimation="slide-up"
description="Trusted by pet owners across Ruislip for safe, stress-free grooming." useInvertedBackground={false}
/> />
</div> </div>
<div id="services" data-section="services"> <div id="services" data-section="services">
<FeatureCardOne <FeatureCardSeven
animationType="slide-up" animationType="slide-up"
textboxLayout="default" textboxLayout="split"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false} useInvertedBackground={false}
features={[
{
title: "Full Groom", description: "A complete service including wash, cut, blow-dry, and styling.", imageSrc: "http://img.b2bpic.net/free-vector/several-flat-pet-store-elements_23-2147569069.jpg", imageAlt: "pet grooming dog clean"},
{
title: "Puppy Pamper", description: "A gentle introduction to grooming for first-time visits.", imageSrc: "http://img.b2bpic.net/free-photo/woman-holding-cute-dog-close-up_23-2148949388.jpg", imageAlt: "puppy bath time gentle"},
{
title: "Maintenance Groom", description: "Keep your pet clean and comfortable between full grooms.", imageSrc: "http://img.b2bpic.net/free-photo/yorkshire-terrier-getting-procedure-groomer-salon-young-woman-white-tshirt-combing-little-dog-yorkshire-terrier-puppy-blue-table_1157-51439.jpg", imageAlt: "dog grooming maintenance"},
{
title: "Bath & Brush", description: "A quick refresh to keep coats clean and healthy.", imageSrc: "http://img.b2bpic.net/free-photo/haircuting-process-small-dog-sits-table-dog-with-professional_1157-48819.jpg", imageAlt: "pet grooming dog clean"},
]}
title="Our Services" title="Our Services"
description="Comprehensive grooming solutions for every pet's needs." description="Comprehensive, stress-free grooming packages tailored to your pet's temperament."
/> features={[
</div> { title: "Full Groom", description: "Complete wash, cut, and style.", imageSrc: "http://img.b2bpic.net/free-vector/several-flat-pet-store-elements_23-2147569069.jpg" },
{ title: "Puppy Pamper", description: "Gentle introduction for new pets.", imageSrc: "http://img.b2bpic.net/free-photo/woman-holding-cute-dog-close-up_23-2148949388.jpg" },
<div id="experience" data-section="experience"> { title: "Maintenance", description: "Keep them clean between grooms.", imageSrc: "http://img.b2bpic.net/free-photo/yorkshire-terrier-getting-procedure-groomer-salon-young-woman-white-tshirt-combing-little-dog-yorkshire-terrier-puppy-blue-table_1157-51439.jpg" },
<MetricSplitMediaAbout
useInvertedBackground={false}
title="A Calmer Approach"
description="We focus on a calm, patient, one-to-one approach ensuring every pet feels safe and cared for. Our salon provides a quiet environment, ideal for nervous or first-time pets."
metrics={[
{
value: "1-to-1", title: "Appointments"},
{
value: "Calm", title: "Environment"},
{
value: "Expert", title: "Personalized"},
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/empty-wintertime-luxury-ski-resort_482257-102290.jpg"
imageAlt="pet groomer calm atmosphere"
mediaAnimation="slide-up"
metricsAnimation="slide-up"
/> />
</div> </div>
<div id="gallery" data-section="gallery"> <div id="trust" data-section="trust">
<ProductCardOne <TestimonialCardSix
animationType="slide-up" animationType="slide-up"
textboxLayout="default" title="What Pet Owners Say"
gridVariant="one-large-left-three-stacked-right" description="Hear from our happy clients about their experiences."
textboxLayout="split"
useInvertedBackground={false} useInvertedBackground={false}
products={[ testimonials={[
{ { id: "1", name: "Sarah J.", handle: "@puppyowner", testimonial: "The best grooming experience in Ruislip!" },
id: "1", name: "Before & After", price: "Groomed", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-bearded-brutal-tattooed-happy-man-holds-pomeranian-spitz-playing-with-lovely-pet_343596-1531.jpg"}, { id: "2", name: "Mark D.", handle: "@client", testimonial: "So patient with my nervous dog." },
{
id: "2", name: "Styling", price: "Groomed", imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-with-cute-dog_23-2148949395.jpg"},
{
id: "3", name: "Puppy Cut", price: "Groomed", imageSrc: "http://img.b2bpic.net/free-photo/close-up-outdoor-portrait-smiling-girl-with-dark-brown-hair-holding-beagle-dog_197531-4837.jpg"},
{
id: "4", name: "Coat Trim", price: "Groomed", imageSrc: "http://img.b2bpic.net/free-photo/woman-s-hand-holding-hat-prop-pug-dog-s-head_23-2147841035.jpg"},
{
id: "5", name: "Full Refresh", price: "Groomed", imageSrc: "http://img.b2bpic.net/free-photo/stylish-pin-up-girl-with-little-dog_1157-18893.jpg"},
{
id: "6", name: "Healthy Coat", price: "Groomed", imageSrc: "http://img.b2bpic.net/free-photo/vertical-portrait-adorable-mixed-breed-dog-blue-wall_181624-35866.jpg"},
]} ]}
title="Happy Pets, Beautiful Results"
description="Take a look at some of our recent grooms and see the care and attention we provide."
/>
</div>
<div id="cta" data-section="cta">
<MetricCardEleven
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
metrics={[
{
id: "1", value: "5.0", title: "Rating", description: "Highly Rated", imageSrc: "http://img.b2bpic.net/free-photo/lovely-pet-portrait-isolated_23-2149192305.jpg"},
{
id: "2", value: "Mon-Fri", title: "Hours", description: "9am-5pm", imageSrc: "http://img.b2bpic.net/free-photo/rough-collie-looking-side_181624-45167.jpg"},
{
id: "3", value: "Local", title: "Business", description: "Ruislip Based", imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-cute-shih-tzu-dog-red-background_181624-25315.jpg"},
]}
title="Give Your Pet the Care They Deserve"
description="Book today and experience a professional grooming service trusted by local owners."
/> />
</div> </div>
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactSplit <ContactText
text="Ready to pamper your pet? Book your appointment today and see the difference a calm, loving touch makes."
background={{ variant: "plain" }}
buttons={[{ text: "Call 07598 206450", href: "tel:07598206450" }]}
useInvertedBackground={false} useInvertedBackground={false}
background={{
variant: "plain"}}
tag="Visit Us"
title="Book Your Appointment"
description="Greystoke Dr, Ruislip HA4 7YN. Open daily until 5pm. Call us to book."
imageSrc="http://img.b2bpic.net/free-photo/lifestyle-portrait-handsome-smiling-man-sitting-pet-friendly-cafe-with-his-beautiful-dog-petting-golden-retriever-waiting-order_1258-314442.jpg"
mediaAnimation="slide-up"
/> />
</div> </div>
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterMedia <FooterBaseReveal
imageSrc="http://img.b2bpic.net/free-photo/high-angle-woman-washing-dog_23-2149872954.jpg" logoText="Jeff & Company"
logoText="Jeff & Company Grooming"
columns={[ columns={[
{ { title: "Location", items: [{ label: "Ruislip, Greater London", href: "#" }] },
title: "Contact", items: [ { title: "Contact", items: [{ label: "07598 206450", href: "tel:07598206450" }] },
{ { title: "Hours", items: [{ label: "Mon-Fri: 9-5", href: "#" }] },
label: "Greystoke Dr, Ruislip", href: "#"},
{
label: "07598 206450", href: "tel:07598206450"},
],
},
{
title: "Opening Hours", items: [
{
label: "Mon-Fri: 9am-5pm", href: "#"},
{
label: "Sat: 9am-5pm", href: "#"},
],
},
{
title: "Follow", items: [
{
label: "Instagram", href: "#"},
],
},
]} ]}
/> />
</div> </div>

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #fcf6ec; --background: #fdfbf7;
--card: #f3ede2; --card: #f4efe9;
--foreground: #2e2521; --foreground: #3d3227;
--primary-cta: #2b180a; --primary-cta: #8b5e3c;
--primary-cta-text: #fcf6ec; --primary-cta-text: #fcf6ec;
--secondary-cta: #efe7dd; --secondary-cta: #e4d9ce;
--secondary-cta-text: #2e2521; --secondary-cta-text: #2e2521;
--accent: #b2a28b; --accent: #d4c5b9;
--background-accent: #b2a28b; --background-accent: #f4efe9;
/* 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);