Merge version_2_1781708230979 into main #1
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f6f0e9;
|
||||
--card: #efe7dd;
|
||||
--foreground: #2b180a;
|
||||
--primary-cta: #2b180a;
|
||||
--primary-cta-text: #f6f0e9;
|
||||
--secondary-cta: #efe7dd;
|
||||
--secondary-cta-text: #2b180a;
|
||||
--accent: #94877c;
|
||||
--background-accent: #afa094;
|
||||
--background: #0a0a0a;
|
||||
--card: #141414;
|
||||
--foreground: #f5f5f5;
|
||||
--primary-cta: #d4af37;
|
||||
--primary-cta-text: #0a0a0a;
|
||||
--secondary-cta: #1f1f1f;
|
||||
--secondary-cta-text: #d4af37;
|
||||
--accent: #b8860b;
|
||||
--background-accent: #1a1a1a;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1.5rem;
|
||||
|
||||
@@ -1,189 +1,27 @@
|
||||
import FeaturesBorderGlow from '@/components/sections/features/FeaturesBorderGlow';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
|
||||
import { Heart, Sparkles, Users } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import FeaturesWhySection from './HomePage/sections/FeaturesWhy';
|
||||
import ServicesBentoSection from './HomePage/sections/ServicesBento';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardCarousel
|
||||
tag="Since 2017"
|
||||
title="Turning Your Special Moments into Unforgettable Memories"
|
||||
description="Professional event planning, decoration, and coordination services for weddings, corporate events, birthdays, and special occasions across Kenya."
|
||||
primaryButton={{
|
||||
text: "Get a Quote",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "/contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/look-through-threads-with-buds-chrysanthemums-plastic-chairs-standing-hall_1304-3345.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bouquet-white-roses-stands-middle-dinner-table-restaurant_1304-5424.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crystals-hang-from-chandelier-decorated-with-greenery_8353-1269.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cropped-image-young-african-man-standing-office_171337-13528.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-wedding-planner-working-ceremony_23-2150167224.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-wedding-altar-made-garland-spearworts-greene_8353-1775.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="features-why" data-section="features-why">
|
||||
<SectionErrorBoundary name="features-why">
|
||||
<FeaturesBorderGlow
|
||||
tag="Why Choose Us"
|
||||
title="Excellence in Event Planning"
|
||||
description="We bring creativity and professionalism to every celebration, ensuring stress-free and stunning results."
|
||||
features={[
|
||||
{
|
||||
icon: Users,
|
||||
title: "Experienced Team",
|
||||
description: "Professional event management team with years of expertise.",
|
||||
},
|
||||
{
|
||||
icon: Sparkles,
|
||||
title: "Creative Concepts",
|
||||
description: "Tailored themes to suit your vision and occasion.",
|
||||
},
|
||||
{
|
||||
icon: Heart,
|
||||
title: "Personalized Services",
|
||||
description: "Dedicated approach focused on your specific desires.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesWhySection />
|
||||
|
||||
<div id="services-bento" data-section="services-bento">
|
||||
<SectionErrorBoundary name="services-bento">
|
||||
<FeaturesImageBento
|
||||
tag="Services"
|
||||
title="Our Expert Services"
|
||||
description="Full-service event planning and design for your most important moments."
|
||||
items={[
|
||||
{
|
||||
title: "Weddings",
|
||||
description: "Planning & Decoration",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crop-woman-decorating-bouquet_23-2147761054.jpg",
|
||||
},
|
||||
{
|
||||
title: "Corporate",
|
||||
description: "Events Management",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/glad-blonde-girlfriend-shopping-cart-celebrates-birthday-wears-fashionable-clothes-poses-purple-wall-with-air-balloons-expresses-positive-emotions-people-celebration-party-concept_273609-26357.jpg",
|
||||
},
|
||||
{
|
||||
title: "Birthdays",
|
||||
description: "Creative Party Planning",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-friends-drinking-champagne-party-outdoors_197531-5854.jpg",
|
||||
},
|
||||
{
|
||||
title: "Graduations",
|
||||
description: "Memorable Setups",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-wedding-planner-working-ceremony_23-2150167228.jpg",
|
||||
},
|
||||
{
|
||||
title: "Showers",
|
||||
description: "Baby & Bridal Showers",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-length-portrait-dreamy-female-model-with-curly-hairstyle-holding-party-balloons-her-room-indoor-photo-pleased-girl-wears-black-dress-standing-near-blue-gift-box_197531-1786.jpg",
|
||||
},
|
||||
{
|
||||
title: "Decoration",
|
||||
description: "Stunning Styling",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dining-place-decorated-with-toys-glass-plates-new-year-eve-concept_132075-11257.jpg",
|
||||
},
|
||||
{
|
||||
title: "Coordination",
|
||||
description: "Full Management",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-interior-with-served-decorated-tables-guests-restaurant_181624-53274.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesBentoSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeOverlayCards
|
||||
tag="Testimonials"
|
||||
title="Client Stories"
|
||||
description="Hear from those who trusted us with their special moments."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Bride",
|
||||
company: "Wedding",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-beautiful-bride-smiling_1153-774.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C.",
|
||||
role: "Manager",
|
||||
company: "Corporate",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-senior-businessman-with-arms-crossed_1262-1751.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Client",
|
||||
company: "Party",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-enjoying-party-holding-wine-glass_23-2148037558.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Coordinator",
|
||||
company: "Corporate",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/curly-haired-businessman-smiles-talks-phone_496169-2746.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jane L.",
|
||||
role: "Mom",
|
||||
company: "Shower",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/joyful-young-bald-call-center-man-wearing-headset-sitting-desk-with-work-tools-doing-ok-sign-showing-thumb-up-laptop-isolated-white_141793-84103.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted By"
|
||||
title="Our Industry Partners"
|
||||
description="Collaborating with top brands to create excellence."
|
||||
names={[
|
||||
"Corporate Kenya",
|
||||
"Venue Partners",
|
||||
"Floral Experts",
|
||||
"Catering Group",
|
||||
"Audio-Visual Pros",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialProofSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
38
src/pages/HomePage/sections/FeaturesWhy.tsx
Normal file
38
src/pages/HomePage/sections/FeaturesWhy.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features-why" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesBorderGlow from '@/components/sections/features/FeaturesBorderGlow';
|
||||
import { Heart, Sparkles, Users } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesWhySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features-why" data-section="features-why">
|
||||
<SectionErrorBoundary name="features-why">
|
||||
<FeaturesBorderGlow
|
||||
tag="Why Choose Us"
|
||||
title="Excellence in Event Planning"
|
||||
description="We bring creativity and professionalism to every celebration, ensuring stress-free and stunning results."
|
||||
features={[
|
||||
{
|
||||
icon: Users,
|
||||
title: "Experienced Team",
|
||||
description: "Professional event management team with years of expertise.",
|
||||
},
|
||||
{
|
||||
icon: Sparkles,
|
||||
title: "Creative Concepts",
|
||||
description: "Tailored themes to suit your vision and occasion.",
|
||||
},
|
||||
{
|
||||
icon: Heart,
|
||||
title: "Personalized Services",
|
||||
description: "Dedicated approach focused on your specific desires.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
48
src/pages/HomePage/sections/Hero.tsx
Normal file
48
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardCarousel
|
||||
tag="Since 2017"
|
||||
title="Turning Your Special Moments into Unforgettable Memories"
|
||||
description="Professional event planning, decoration, and coordination services for weddings, corporate events, birthdays, and special occasions across Kenya."
|
||||
primaryButton={{
|
||||
text: "Get a Quote",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "/contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/look-through-threads-with-buds-chrysanthemums-plastic-chairs-standing-hall_1304-3345.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bouquet-white-roses-stands-middle-dinner-table-restaurant_1304-5424.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crystals-hang-from-chandelier-decorated-with-greenery_8353-1269.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cropped-image-young-african-man-standing-office_171337-13528.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-wedding-planner-working-ceremony_23-2150167224.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-wedding-altar-made-garland-spearworts-greene_8353-1775.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/ServicesBento.tsx
Normal file
57
src/pages/HomePage/sections/ServicesBento.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "services-bento" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ServicesBentoSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services-bento" data-section="services-bento">
|
||||
<SectionErrorBoundary name="services-bento">
|
||||
<FeaturesImageBento
|
||||
tag="Services"
|
||||
title="Our Expert Services"
|
||||
description="Full-service event planning and design for your most important moments."
|
||||
items={[
|
||||
{
|
||||
title: "Weddings",
|
||||
description: "Planning & Decoration",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crop-woman-decorating-bouquet_23-2147761054.jpg",
|
||||
},
|
||||
{
|
||||
title: "Corporate",
|
||||
description: "Events Management",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/glad-blonde-girlfriend-shopping-cart-celebrates-birthday-wears-fashionable-clothes-poses-purple-wall-with-air-balloons-expresses-positive-emotions-people-celebration-party-concept_273609-26357.jpg",
|
||||
},
|
||||
{
|
||||
title: "Birthdays",
|
||||
description: "Creative Party Planning",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-friends-drinking-champagne-party-outdoors_197531-5854.jpg",
|
||||
},
|
||||
{
|
||||
title: "Graduations",
|
||||
description: "Memorable Setups",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-wedding-planner-working-ceremony_23-2150167228.jpg",
|
||||
},
|
||||
{
|
||||
title: "Showers",
|
||||
description: "Baby & Bridal Showers",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-length-portrait-dreamy-female-model-with-curly-hairstyle-holding-party-balloons-her-room-indoor-photo-pleased-girl-wears-black-dress-standing-near-blue-gift-box_197531-1786.jpg",
|
||||
},
|
||||
{
|
||||
title: "Decoration",
|
||||
description: "Stunning Styling",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dining-place-decorated-with-toys-glass-plates-new-year-eve-concept_132075-11257.jpg",
|
||||
},
|
||||
{
|
||||
title: "Coordination",
|
||||
description: "Full Management",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-interior-with-served-decorated-tables-guests-restaurant_181624-53274.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/SocialProof.tsx
Normal file
27
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social-proof" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialProofSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted By"
|
||||
title="Our Industry Partners"
|
||||
description="Collaborating with top brands to create excellence."
|
||||
names={[
|
||||
"Corporate Kenya",
|
||||
"Venue Partners",
|
||||
"Floral Experts",
|
||||
"Catering Group",
|
||||
"Audio-Visual Pros",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeOverlayCards
|
||||
tag="Testimonials"
|
||||
title="Client Stories"
|
||||
description="Hear from those who trusted us with their special moments."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Bride",
|
||||
company: "Wedding",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-beautiful-bride-smiling_1153-774.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C.",
|
||||
role: "Manager",
|
||||
company: "Corporate",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-senior-businessman-with-arms-crossed_1262-1751.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Client",
|
||||
company: "Party",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-enjoying-party-holding-wine-glass_23-2148037558.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Coordinator",
|
||||
company: "Corporate",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/curly-haired-businessman-smiles-talks-phone_496169-2746.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jane L.",
|
||||
role: "Mom",
|
||||
company: "Shower",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/joyful-young-bald-call-center-man-wearing-headset-sitting-desk-with-work-tools-doing-ok-sign-showing-thumb-up-laptop-isolated-white_141793-84103.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user