2 Commits

Author SHA1 Message Date
kudinDmitriyUp
5010b364c9 Bob AI: Updated theme colors and images for a safari vibe 2026-06-14 11:43:35 +00:00
fdbef9c589 Merge version_1_1781436897783 into main
Merge version_1_1781436897783 into main
2026-06-14 11:36:13 +00:00
11 changed files with 357 additions and 265 deletions

View File

@@ -5,15 +5,15 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #f5faff;
--background: #faf6f0;
--card: #ffffff;
--foreground: #001122;
--primary-cta: #15479c;
--primary-cta-text: #f5faff;
--foreground: #2c241b;
--primary-cta: #b85c38;
--primary-cta-text: #ffffff;
--secondary-cta: #ffffff;
--secondary-cta-text: #001122;
--accent: #a8cce8;
--background-accent: #7ba3cf;
--accent: #e0c9a3;
--background-accent: #d4b88c;
/* @layout/border-radius/rounded */
--radius: 1rem;

View File

@@ -1,272 +1,39 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
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 AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import ProductsSection from './HomePage/sections/Products';
import TeamSection from './HomePage/sections/Team';
import TestimonialsSection from './HomePage/sections/Testimonials';
import SocialProofSection from './HomePage/sections/SocialProof';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
title="Discover Kenyas Wild Beauty, Your Way"
description="Expert guided tours, premium car hire, and unforgettable coastal escapes across Kenya. From safari to seaside, we handle every detail so you experience everything."
primaryButton={{
text: "Start Your Adventure",
href: "#contact",
}}
secondaryButton={{
text: "Explore Services",
href: "#features",
}}
imageSrc="http://img.b2bpic.net/free-photo/male-elk-standing-front-man-with-backpack_181624-27170.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Your Trusted Gateway to Kenya"
descriptions={[
"With years of experience across the heart of the savanna and the serene shores of the coast, we are dedicated to providing authentic experiences. Our mission is to bridge the gap between world-class comfort and raw, breathtaking adventure.",
"Whether you are looking for a tailored safari itinerary, reliable airport transfers, or a private vehicle for your business trip, our professional team ensures every detail of your Kenyan journey is flawless.",
]}
primaryButton={{
text: "Learn About Our Mission",
href: "#contact",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBentoGrid
tag="Our Expertise"
title="Seamless Journeys, Unforgettable Memories"
description="We specialize in high-quality travel and transport solutions for travelers visiting Kenya."
features={[
{
title: "Expert-Guided Safari",
description: "Curated wildlife encounters with veteran guides.",
imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-silver-car-approaching-giraffe-safari_181624-23101.jpg",
},
{
title: "Coastal Escapes",
description: "Relax in premium beach resorts along the coast.",
imageSrc: "http://img.b2bpic.net/free-photo/luxury-sky-hotel-background-beautiful_1203-5174.jpg",
},
{
title: "Cultural Immersion",
description: "Engage with local communities and traditions.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-chatting-forest_23-2149557242.jpg",
},
{
title: "Premium Car Hire",
description: "Safe, reliable, and convenient transport solutions.",
imageSrc: "http://img.b2bpic.net/free-photo/businesswoman-getting-taxi-cab_23-2149236695.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Explore Packages"
title="Curated Experiences & Services"
items={[
{
title: "Classic Safari",
description: "The quintessential Kenya safari adventure.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-looking-away-while-standing-by-off-road-vehicle-field_107420-9777.jpg",
},
{
title: "Coastal Getaway",
description: "Unwind on the pristine Diani beaches.",
imageSrc: "http://img.b2bpic.net/free-photo/summer-travel-trip-vacation-wanderlust-beach-concept_53876-31828.jpg",
},
{
title: "Luxury Multi-City",
description: "Bespoke itineraries for discerning travelers.",
imageSrc: "http://img.b2bpic.net/free-photo/yeah-we-achieved-our-destination_329181-8443.jpg",
},
{
title: "Airport Transfers",
description: "Seamless arrival and departure transport.",
imageSrc: "http://img.b2bpic.net/free-photo/back-view-woman-getting-out-her-brand-new-car_23-2148685344.jpg",
},
{
title: "Family Expedition",
description: "Child-friendly, safe, and engaging tours.",
imageSrc: "http://img.b2bpic.net/free-photo/mother-with-kids-binoculars_23-2147638873.jpg",
},
{
title: "Hiking Treks",
description: "Trek through Kenya's rugged highlands.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-nature_23-2149026843.jpg",
},
{
title: "Cultural Heritage",
description: "Explore Kenya's rich history and tribes.",
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-posing-fast-fashion-concept_23-2150805287.jpg",
},
]}
description="From wilderness to seaside, we provide top-tier travel options for your Kenyan holiday."
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="Meet Our Pros"
title="Your Kenyan Travel Partners"
members={[
{
name: "James Otieno",
role: "Senior Safari Guide",
imageSrc: "http://img.b2bpic.net/free-photo/black-woman-city_1157-17524.jpg",
},
{
name: "Sarah Wanjiku",
role: "Lead Travel Planner",
imageSrc: "http://img.b2bpic.net/free-photo/day-office-travel-agency_23-2150769990.jpg",
},
{
name: "David Mumo",
role: "Head of Fleet Operations",
imageSrc: "http://img.b2bpic.net/free-photo/doubtful-young-caucasian-delivery-man-blue-uniform-cap-standing-with-closed-posture-looking-camera-isolated-white-wall-with-copy-space_141793-113753.jpg",
},
]}
description="Meet the passionate experts dedicated to making your journey unforgettable."
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Reviews"
title="Voices from the Field"
testimonials={[
{
name: "Anna S.",
role: "Traveler",
quote: "The safari experience was flawless. Our guide made all the difference.",
imageSrc: "http://img.b2bpic.net/free-photo/happy-excited-young-african-american-male-traveler-stylish-shades-headwear-looking-stunned-keeping-mouth-wide-opened-while-standing-high-mountains-admiring-beautiful-view_273609-1104.jpg",
},
{
name: "Marcus T.",
role: "Business Traveler",
quote: "Extremely reliable car hire service in Nairobi. Highly recommend.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-showing-camera-man-vehicle_107420-9751.jpg",
},
{
name: "Elena P.",
role: "Tourist",
quote: "A perfect blend of culture and beach. The coastal stay was heavenly.",
imageSrc: "http://img.b2bpic.net/free-photo/boy-scouts-spending-time-nature_23-2149572861.jpg",
},
{
name: "James K.",
role: "Tourist",
quote: "Everything from booking to the trip was seamless and safe.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-posing-seaside_23-2148687103.jpg",
},
{
name: "Sarah R.",
role: "Tourist",
quote: "Best guided tour we've had in Africa. Simply breathtaking.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-man-pointing-while-sitting-vehicle-hood_107420-9756.jpg",
},
]}
description="See what our travelers have to say about their Kenyan adventures."
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Our Partners"
title="Trusted by Leaders"
names={[
"Travel Connect",
"Kenya Transport Hub",
"Safari Hospitality",
"Eco-Flight Airways",
"Resort Group",
"Adventure Gear Co",
"Cultural Heritage Trust",
]}
description="Proudly working with industry-leading partners to ensure excellence."
/>
</SectionErrorBoundary>
</div>
<SocialProofSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Support"
title="Frequently Asked Questions"
categories={[
{
name: "General",
items: [
{
question: "What is the best time to visit Kenya?",
answer: "The best time is usually from June to October during the migration.",
},
{
question: "Are your services safe for families?",
answer: "Absolutely, safety is our priority for all guests, especially families.",
},
],
},
{
name: "Logistics",
items: [
{
question: "Do you offer airport pickups?",
answer: "Yes, we provide seamless transfers for all bookings.",
},
{
question: "Is car hire with a driver available?",
answer: "Yes, we offer professional chauffeurs for all vehicle rentals.",
},
],
},
]}
description="Find answers to the most common questions about our travel services."
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Let's Go"
text="Ready to experience Kenya? Contact our travel experts today and start planning your perfect journey."
primaryButton={{
text: "Contact Us",
href: "#contact",
}}
secondaryButton={{
text: "View All Tours",
href: "#products",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,26 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Your Trusted Gateway to Kenya"
descriptions={[
"With years of experience across the heart of the savanna and the serene shores of the coast, we are dedicated to providing authentic experiences. Our mission is to bridge the gap between world-class comfort and raw, breathtaking adventure.",
"Whether you are looking for a tailored safari itinerary, reliable airport transfers, or a private vehicle for your business trip, our professional team ensures every detail of your Kenyan journey is flawless.",
]}
primaryButton={{
text: "Learn About Our Mission",
href: "#contact",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Let's Go"
text="Ready to experience Kenya? Contact our travel experts today and start planning your perfect journey."
primaryButton={{
text: "Contact Us",
href: "#contact",
}}
secondaryButton={{
text: "View All Tours",
href: "#products",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,48 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Support"
title="Frequently Asked Questions"
categories={[
{
name: "General",
items: [
{
question: "What is the best time to visit Kenya?",
answer: "The best time is usually from June to October during the migration.",
},
{
question: "Are your services safe for families?",
answer: "Absolutely, safety is our priority for all guests, especially families.",
},
],
},
{
name: "Logistics",
items: [
{
question: "Do you offer airport pickups?",
answer: "Yes, we provide seamless transfers for all bookings.",
},
{
question: "Is car hire with a driver available?",
answer: "Yes, we offer professional chauffeurs for all vehicle rentals.",
},
],
},
]}
description="Find answers to the most common questions about our travel services."
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBentoGrid
tag="Our Expertise"
title="Seamless Journeys, Unforgettable Memories"
description="We specialize in high-quality travel and transport solutions for travelers visiting Kenya."
features={[{"imageSrc":"https://images.unsplash.com/photo-1516426122078-c23e76319801?auto=format&fit=crop&q=80&w=2068&ixlib=rb-4.0.3","title":"Expert-Guided Safari","description":"Curated wildlife encounters with veteran guides."},{"description":"Relax in premium beach resorts along the coast.","imageSrc":"https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&q=80&w=2073&ixlib=rb-4.0.3","title":"Coastal Escapes"},{"imageSrc":"https://images.unsplash.com/photo-1523805009345-7448845a9e53?auto=format&fit=crop&q=80&w=2072&ixlib=rb-4.0.3","title":"Cultural Immersion","description":"Engage with local communities and traditions."},{"title":"Premium Car Hire","imageSrc":"https://images.unsplash.com/photo-1533473359331-0135ef1b58bf?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3","description":"Safe, reliable, and convenient transport solutions."}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// 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 HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
title="Discover Kenyas Wild Beauty, Your Way"
description="Expert guided tours, premium car hire, and unforgettable coastal escapes across Kenya. From safari to seaside, we handle every detail so you experience everything."
primaryButton={{
text: "Start Your Adventure",
href: "#contact",
}}
secondaryButton={{
text: "Explore Services",
href: "#features",
}}
imageSrc="https://images.unsplash.com/photo-1516426122078-c23e76319801?auto=format&fit=crop&q=80&w=2068&ixlib=rb-4.0.3"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "products" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Explore Packages"
title="Curated Experiences & Services"
items={[
{
title: "Classic Safari",
description: "The quintessential Kenya safari adventure.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-looking-away-while-standing-by-off-road-vehicle-field_107420-9777.jpg",
},
{
title: "Coastal Getaway",
description: "Unwind on the pristine Diani beaches.",
imageSrc: "http://img.b2bpic.net/free-photo/summer-travel-trip-vacation-wanderlust-beach-concept_53876-31828.jpg",
},
{
title: "Luxury Multi-City",
description: "Bespoke itineraries for discerning travelers.",
imageSrc: "http://img.b2bpic.net/free-photo/yeah-we-achieved-our-destination_329181-8443.jpg",
},
{
title: "Airport Transfers",
description: "Seamless arrival and departure transport.",
imageSrc: "http://img.b2bpic.net/free-photo/back-view-woman-getting-out-her-brand-new-car_23-2148685344.jpg",
},
{
title: "Family Expedition",
description: "Child-friendly, safe, and engaging tours.",
imageSrc: "http://img.b2bpic.net/free-photo/mother-with-kids-binoculars_23-2147638873.jpg",
},
{
title: "Hiking Treks",
description: "Trek through Kenya's rugged highlands.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-nature_23-2149026843.jpg",
},
{
title: "Cultural Heritage",
description: "Explore Kenya's rich history and tribes.",
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-posing-fast-fashion-concept_23-2150805287.jpg",
},
]}
description="From wilderness to seaside, we provide top-tier travel options for your Kenyan holiday."
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// 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="Our Partners"
title="Trusted by Leaders"
names={[
"Travel Connect",
"Kenya Transport Hub",
"Safari Hospitality",
"Eco-Flight Airways",
"Resort Group",
"Adventure Gear Co",
"Cultural Heritage Trust",
]}
description="Proudly working with industry-leading partners to ensure excellence."
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "team" section.
import React from 'react';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="Meet Our Pros"
title="Your Kenyan Travel Partners"
members={[
{
name: "James Otieno",
role: "Senior Safari Guide",
imageSrc: "http://img.b2bpic.net/free-photo/black-woman-city_1157-17524.jpg",
},
{
name: "Sarah Wanjiku",
role: "Lead Travel Planner",
imageSrc: "http://img.b2bpic.net/free-photo/day-office-travel-agency_23-2150769990.jpg",
},
{
name: "David Mumo",
role: "Head of Fleet Operations",
imageSrc: "http://img.b2bpic.net/free-photo/doubtful-young-caucasian-delivery-man-blue-uniform-cap-standing-with-closed-posture-looking-camera-isolated-white-wall-with-copy-space_141793-113753.jpg",
},
]}
description="Meet the passionate experts dedicated to making your journey unforgettable."
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// 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 TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Reviews"
title="Voices from the Field"
testimonials={[
{
name: "Anna S.",
role: "Traveler",
quote: "The safari experience was flawless. Our guide made all the difference.",
imageSrc: "http://img.b2bpic.net/free-photo/happy-excited-young-african-american-male-traveler-stylish-shades-headwear-looking-stunned-keeping-mouth-wide-opened-while-standing-high-mountains-admiring-beautiful-view_273609-1104.jpg",
},
{
name: "Marcus T.",
role: "Business Traveler",
quote: "Extremely reliable car hire service in Nairobi. Highly recommend.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-showing-camera-man-vehicle_107420-9751.jpg",
},
{
name: "Elena P.",
role: "Tourist",
quote: "A perfect blend of culture and beach. The coastal stay was heavenly.",
imageSrc: "http://img.b2bpic.net/free-photo/boy-scouts-spending-time-nature_23-2149572861.jpg",
},
{
name: "James K.",
role: "Tourist",
quote: "Everything from booking to the trip was seamless and safe.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-posing-seaside_23-2148687103.jpg",
},
{
name: "Sarah R.",
role: "Tourist",
quote: "Best guided tour we've had in Africa. Simply breathtaking.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-man-pointing-while-sitting-vehicle-hood_107420-9756.jpg",
},
]}
description="See what our travelers have to say about their Kenyan adventures."
/>
</SectionErrorBoundary>
</div>
);
}