From 4a7374d26f03fed033e420e216c81c27461e901f Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Thu, 25 Jun 2026 07:08:40 +0000 Subject: [PATCH 1/2] Bob AI: Update global theme to deep emerald and charcoal dark mode w --- src/index.css | 22 +- src/pages/HomePage.tsx | 291 ++------------------ src/pages/HomePage/sections/About.tsx | 39 +++ src/pages/HomePage/sections/Contact.tsx | 27 ++ src/pages/HomePage/sections/Faq.tsx | 34 +++ src/pages/HomePage/sections/Features.tsx | 43 +++ src/pages/HomePage/sections/Hero.tsx | 48 ++++ src/pages/HomePage/sections/Metrics.tsx | 38 +++ src/pages/HomePage/sections/Product.tsx | 64 +++++ src/pages/HomePage/sections/Testimonial.tsx | 52 ++++ 10 files changed, 380 insertions(+), 278 deletions(-) create mode 100644 src/pages/HomePage/sections/About.tsx create mode 100644 src/pages/HomePage/sections/Contact.tsx create mode 100644 src/pages/HomePage/sections/Faq.tsx create mode 100644 src/pages/HomePage/sections/Features.tsx create mode 100644 src/pages/HomePage/sections/Hero.tsx create mode 100644 src/pages/HomePage/sections/Metrics.tsx create mode 100644 src/pages/HomePage/sections/Product.tsx create mode 100644 src/pages/HomePage/sections/Testimonial.tsx diff --git a/src/index.css b/src/index.css index 00a8c6b..3f8ab57 100644 --- a/src/index.css +++ b/src/index.css @@ -1,19 +1,19 @@ -@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); @import "tailwindcss"; @import "./styles/masks.css"; @import "./styles/animations.css"; :root { /* @colorThemes/lightTheme/grayNavyBlue */ - --background: #f5faff; - --card: #ffffff; - --foreground: #001122; - --primary-cta: #15479c; - --primary-cta-text: #f5faff; - --secondary-cta: #ffffff; - --secondary-cta-text: #001122; - --accent: #a8cce8; - --background-accent: #7ba3cf; + --background: #0F172A; + --card: #1E293B; + --foreground: #F8FAF9; + --primary-cta: #0E9F6E; + --primary-cta-text: #F8FAF9; + --secondary-cta: #1E293B; + --secondary-cta-text: #F8FAF9; + --accent: #94A3B8; + --background-accent: #334155; /* @layout/border-radius/rounded */ --radius: 1.5rem; @@ -88,7 +88,7 @@ --color-background-accent: var(--background-accent); /* Fonts */ - --font-sans: 'Nunito Sans', sans-serif; + --font-sans: 'Inter', sans-serif; --font-tight: "Inter Tight", sans-serif; --font-mono: monospace; diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index a89c607..cc30aff 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,279 +1,36 @@ -import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit'; -import ContactCta from '@/components/sections/contact/ContactCta'; -import FaqSimple from '@/components/sections/faq/FaqSimple'; -import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; -import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento'; -import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel'; -import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; -import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards'; -import { Award, BarChart2, Flame, Target, Users, Zap } from "lucide-react"; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in .//sections/.tsx. Edit the section +// files directly. Non-block content (wrappers, non-inlinable sections) is +// preserved inline; extracted section blocks become 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 ProductSection from './HomePage/sections/Product'; +import MetricsSection from './HomePage/sections/Metrics'; +import TestimonialSection from './HomePage/sections/Testimonial'; +import FaqSection from './HomePage/sections/Faq'; +import ContactSection from './HomePage/sections/Contact'; + +export default function HomePage(): React.JSX.Element { return ( - <> -
- - - -
+<> + -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ ); } diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx new file mode 100644 index 0000000..25c53d6 --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -0,0 +1,39 @@ +// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit'; +import { Award, BarChart2, Flame, Target, Users, Zap } from "lucide-react"; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function AboutSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..25eea1c --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Faq.tsx b/src/pages/HomePage/sections/Faq.tsx new file mode 100644 index 0000000..f27d58a --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,34 @@ +// 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 FaqSimple from '@/components/sections/faq/FaqSimple'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function FaqSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Features.tsx b/src/pages/HomePage/sections/Features.tsx new file mode 100644 index 0000000..4da3792 --- /dev/null +++ b/src/pages/HomePage/sections/Features.tsx @@ -0,0 +1,43 @@ +// 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 FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function FeaturesSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..3ff7bdf --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -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 HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Metrics.tsx b/src/pages/HomePage/sections/Metrics.tsx new file mode 100644 index 0000000..176235b --- /dev/null +++ b/src/pages/HomePage/sections/Metrics.tsx @@ -0,0 +1,38 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "metrics" section. + +import React from 'react'; +import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; +import { Award, BarChart2, Flame, Target, Users, Zap } from "lucide-react"; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function MetricsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Product.tsx b/src/pages/HomePage/sections/Product.tsx new file mode 100644 index 0000000..66a82ae --- /dev/null +++ b/src/pages/HomePage/sections/Product.tsx @@ -0,0 +1,64 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "product" section. + +import React from 'react'; +import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ProductSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Testimonial.tsx b/src/pages/HomePage/sections/Testimonial.tsx new file mode 100644 index 0000000..9117838 --- /dev/null +++ b/src/pages/HomePage/sections/Testimonial.tsx @@ -0,0 +1,52 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "testimonial" section. + +import React from 'react'; +import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function TestimonialSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} -- 2.49.1 From b2a01dbac1abf28233387fa2c036a7a19ed56d02 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Thu, 25 Jun 2026 07:13:39 +0000 Subject: [PATCH 2/2] Bob AI: Update hero section with custom dashboard mockup and dark mo --- src/pages/HomePage/sections/Hero.tsx | 252 ++++++++++++++++++++++----- 1 file changed, 211 insertions(+), 41 deletions(-) diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx index 3ff7bdf..ab62446 100644 --- a/src/pages/HomePage/sections/Hero.tsx +++ b/src/pages/HomePage/sections/Hero.tsx @@ -1,48 +1,218 @@ -// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this -// file as the canonical source for the "hero" section. +/* eslint-disable */ +// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body +import Button from "@/components/ui/Button"; +import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; + +const primaryButton = { + href: "/signup", + text: "Start tracking free" +}; +const secondaryButton = { + href: "#features", + text: "See how it works" +}; +const leftItems = []; +const rightItems = []; + +type HeroSplitVerticalMarqueeProps = { + tag: string; + title: string; + description: string; + primaryButton: { text: string; href: string }; + secondaryButton: { text: string; href: string }; + leftItems: ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })[]; + rightItems: ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })[]; +}; -import React from 'react'; import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel'; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; -export default function HeroSection(): React.JSX.Element { +const HeroInline = () => { return ( -
- - - +
+
+ +
+
+
+

AI-Powered Nutrition Companion

+
+ + + + + +
+
+ +
+
+ {[1, 2, 3, 4].map((i) => ( + User + ))} +
+
+
+ {[1, 2, 3, 4, 5].map((star) => ( + + + + ))} +
+ Trusted by 50,000+ users +
+
+
+ +
+
+ {/* Notch */} +
+ + {/* Screen Content */} +
+ {/* Header */} +
+
+

Today

+

Dashboard

+
+
+ + + +
+
+ + {/* Content */} +
+ {/* Calorie Ring */} +
+
+
+ + + + +
+ 1,840 + kcal left +
+
+
+
Eaten660
+
Burned320
+
+
+ + {/* Macros */} +
+ {[ + { label: 'Protein', value: '45g', color: 'bg-[#3B82F6]', percent: '60%' }, + { label: 'Carbs', value: '120g', color: 'bg-[#10B981]', percent: '40%' }, + { label: 'Fat', value: '22g', color: 'bg-[#F59E0B]', percent: '30%' } + ].map((macro, i) => ( +
+ {macro.label} + {macro.value} +
+
+
+
+ ))} +
+ + {/* Recent Meal */} +
+
+

Lunch

+ 540 kcal +
+
+
+ Salad +
+
+
Grilled Chicken Salad
+

1 serving • 45g P • 12g C • 22g F

+
+
+
+
+ + {/* Bottom Nav */} +
+
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+ + {/* Floating Elements */} +
+
+ +
+
+

Goal Reached!

+

Protein target hit

+
+
+ +
+
+ +
+
+

320 kcal

+

Burned today

+
+
+
+
+ ); +}; + +export default function HeroSection() { + return ( +
+ +
); } -- 2.49.1