Merge version_1_1777031880177 into main #1
274
src/App.tsx
274
src/App.tsx
@@ -1,274 +1,10 @@
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import FooterBrandReveal from '@/components/sections/footer/FooterBrandReveal';
|
||||
import HeroBrandCarousel from '@/components/sections/hero/HeroBrandCarousel';
|
||||
import MetricsMinimalCards from '@/components/sections/metrics/MetricsMinimalCards';
|
||||
import NavbarCentered from '@/components/ui/NavbarCentered';
|
||||
import ProductQuantityCards from '@/components/sections/product/ProductQuantityCards';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import { Routes, Route } from 'react-router-dom';
|
||||
import HomePage from './pages/HomePage';
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarCentered
|
||||
logo="LENSO"
|
||||
navItems={[
|
||||
{
|
||||
name: "About",
|
||||
href: "#about",
|
||||
},
|
||||
{
|
||||
name: "Portfolio",
|
||||
href: "#portfolio",
|
||||
},
|
||||
{
|
||||
name: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
]}
|
||||
ctaButton={{
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBrandCarousel
|
||||
brand="Capture Your Moments."
|
||||
description="Professional photography that tells your unique story. Dedicated to capturing raw, natural beauty in every frame."
|
||||
primaryButton={{
|
||||
text: "View Portfolio",
|
||||
href: "#portfolio",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Me",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/photographer-sea-evening-light-girl-with-camera-sunset_169016-69993.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-couple-bird-watching_23-2148243194.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/nature-landscape-with-hand-holding-frame_23-2149389984.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-posing-night-with-flash_23-2150204450.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/kissing-woman-with-vintage-camera-looking-camera_23-2148205443.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-is-engaged-subject-photography-photo-studio_185193-163991.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<AboutTextSplit
|
||||
title="About My Journey"
|
||||
descriptions={[
|
||||
"I believe that photography is more than just taking pictures; it's about freezing moments in time that tell a story. My style is rooted in natural light, authenticity, and emotional connection.",
|
||||
"Over the past decade, I have honed my skills across landscape, portrait, and lifestyle photography. My goal is to capture the essence of my subjects and produce images that resonate long after the shoot ends.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="stats" data-section="stats">
|
||||
<MetricsMinimalCards
|
||||
tag="Expertise"
|
||||
title="Photography By The Numbers"
|
||||
metrics={[
|
||||
{
|
||||
value: "500+",
|
||||
description: "Successful Shoots",
|
||||
},
|
||||
{
|
||||
value: "12+",
|
||||
description: "Years of Experience",
|
||||
},
|
||||
{
|
||||
value: "100%",
|
||||
description: "Happy Clients",
|
||||
},
|
||||
{
|
||||
value: "50k+",
|
||||
description: "Photos Edited",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="portfolio" data-section="portfolio">
|
||||
<ProductQuantityCards
|
||||
tag="Gallery"
|
||||
title="Selected Works"
|
||||
description="Explore a curated collection of my work, ranging from landscape photography to intimate portrait sessions."
|
||||
products={[
|
||||
{
|
||||
name: "Landscape Print",
|
||||
price: "$150",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-tall-trees-reflection-lake-park_181624-30524.jpg",
|
||||
},
|
||||
{
|
||||
name: "Portrait Print",
|
||||
price: "$200",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-african-american-man-posing-outdoors-paris-happy-smile-fashion-style-lights-evening-cafes_1321-2929.jpg",
|
||||
},
|
||||
{
|
||||
name: "Wedding Capture",
|
||||
price: "$250",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753662.jpg",
|
||||
},
|
||||
{
|
||||
name: "Product Commercial",
|
||||
price: "$180",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/camera-lens-with-photography-accessories-photo-text-arranged-white-wooden-table_23-2148038943.jpg",
|
||||
},
|
||||
{
|
||||
name: "Travel Story",
|
||||
price: "$120",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-boy-standing-with-binoculars_23-2147770322.jpg",
|
||||
},
|
||||
{
|
||||
name: "Abstract Nature",
|
||||
price: "$140",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/macro-shot-backlit-chinese-horse-chestnuts-leaf-autumn-south-korea_181624-13062.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Social Proof"
|
||||
title="Client Stories"
|
||||
description="Hear what my clients have to say about working together."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Elena Smith",
|
||||
role: "Creative Director",
|
||||
quote: "The most professional and intuitive photographer I've worked with. Captured the perfect moments seamlessly.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-young-asian-girl-smiling-laughing-walking-along-park-enjoying-summer-sunny-day_1258-198738.jpg",
|
||||
},
|
||||
{
|
||||
name: "Mark Johnson",
|
||||
role: "Actor",
|
||||
quote: "My headshots are exactly what I needed. Professional, high quality, and fast turnaround time.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/empowered-business-woman-office_23-2149279553.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah & Dave",
|
||||
role: "Newlyweds",
|
||||
quote: "Our wedding gallery is a dream. Every photo tells our story just as we remembered it.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/african-young-man-giving-white-flowers-bouquet-her-smiling-girlfriend_23-2148151758.jpg",
|
||||
},
|
||||
{
|
||||
name: "Laura Williams",
|
||||
role: "Parent",
|
||||
quote: "The family session was so relaxed. The photos are beautiful and captured the essence of our family.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-family-smiling-home_1098-1343.jpg",
|
||||
},
|
||||
{
|
||||
name: "James Chen",
|
||||
role: "Model",
|
||||
quote: "Creative, talented, and patient. Highly recommend for any photography project.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-floor_246466-14.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Support"
|
||||
title="Common Questions"
|
||||
description="Have questions? Here are some common answers."
|
||||
items={[
|
||||
{
|
||||
question: "What is your photography style?",
|
||||
answer: "I focus on candid, natural-light photography that emphasizes authentic emotions.",
|
||||
},
|
||||
{
|
||||
question: "How long until I get my photos?",
|
||||
answer: "Typically, you'll receive your edited gallery within 2 weeks after the session.",
|
||||
},
|
||||
{
|
||||
question: "Do you travel for shoots?",
|
||||
answer: "Yes! I love traveling for photography work, both domestic and international.",
|
||||
},
|
||||
{
|
||||
question: "Can I request specific locations?",
|
||||
answer: "Absolutely, we can discuss location options that align with your vision during the consultation.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCta
|
||||
tag="Let's Connect"
|
||||
text="Ready to capture your story? Let's discuss your project and create something beautiful together."
|
||||
primaryButton={{
|
||||
text: "Email Me",
|
||||
href: "mailto:hello@lenso.com",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Schedule a Call",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBrandReveal
|
||||
brand="LENSO"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{
|
||||
label: "Portfolio",
|
||||
href: "#portfolio",
|
||||
},
|
||||
{
|
||||
label: "About",
|
||||
href: "#about",
|
||||
},
|
||||
{
|
||||
label: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#",
|
||||
},
|
||||
{
|
||||
label: "Terms of Service",
|
||||
href: "#",
|
||||
},
|
||||
{
|
||||
label: "Instagram",
|
||||
href: "https://instagram.com",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
<Routes>
|
||||
<Route path="/" element={<HomePage />} />
|
||||
</Routes>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,22 +1,276 @@
|
||||
import NavbarCentered from "@/components/ui/NavbarCentered";
|
||||
import { routes } from "@/routes";
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import FooterBrandReveal from '@/components/sections/footer/FooterBrandReveal';
|
||||
import HeroBrandCarousel from '@/components/sections/hero/HeroBrandCarousel';
|
||||
import MetricsMinimalCards from '@/components/sections/metrics/MetricsMinimalCards';
|
||||
import NavbarCentered from '@/components/ui/NavbarCentered';
|
||||
import ProductQuantityCards from '@/components/sections/product/ProductQuantityCards';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
|
||||
const HomePage = () => {
|
||||
export default function HomePage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-background">
|
||||
<NavbarCentered
|
||||
logo="Logo"
|
||||
navItems={routes.map((r) => ({ name: r.label, href: r.path }))}
|
||||
ctaButton={{ text: "Get Started", href: "#" }}
|
||||
/>
|
||||
<main className="pt-20 flex flex-col items-center justify-center min-h-[80vh] px-4">
|
||||
<h1 className="text-4xl font-bold text-foreground mb-4">Welcome</h1>
|
||||
<p className="text-lg text-muted-foreground max-w-xl text-center">
|
||||
Your website content will appear here.
|
||||
</p>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default HomePage;
|
||||
<>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarCentered
|
||||
logo="LENSO"
|
||||
navItems={[
|
||||
{
|
||||
name: "About",
|
||||
href: "#about",
|
||||
},
|
||||
{
|
||||
name: "Portfolio",
|
||||
href: "#portfolio",
|
||||
},
|
||||
{
|
||||
name: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
]}
|
||||
ctaButton={{
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBrandCarousel
|
||||
brand="Capture Your Moments."
|
||||
description="Professional photography that tells your unique story. Dedicated to capturing raw, natural beauty in every frame."
|
||||
primaryButton={{
|
||||
text: "View Portfolio",
|
||||
href: "#portfolio",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Me",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/photographer-sea-evening-light-girl-with-camera-sunset_169016-69993.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-couple-bird-watching_23-2148243194.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/nature-landscape-with-hand-holding-frame_23-2149389984.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-posing-night-with-flash_23-2150204450.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/kissing-woman-with-vintage-camera-looking-camera_23-2148205443.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-is-engaged-subject-photography-photo-studio_185193-163991.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<AboutTextSplit
|
||||
title="About My Journey"
|
||||
descriptions={[
|
||||
"I believe that photography is more than just taking pictures; it's about freezing moments in time that tell a story. My style is rooted in natural light, authenticity, and emotional connection.",
|
||||
"Over the past decade, I have honed my skills across landscape, portrait, and lifestyle photography. My goal is to capture the essence of my subjects and produce images that resonate long after the shoot ends.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="stats" data-section="stats">
|
||||
<MetricsMinimalCards
|
||||
tag="Expertise"
|
||||
title="Photography By The Numbers"
|
||||
metrics={[
|
||||
{
|
||||
value: "500+",
|
||||
description: "Successful Shoots",
|
||||
},
|
||||
{
|
||||
value: "12+",
|
||||
description: "Years of Experience",
|
||||
},
|
||||
{
|
||||
value: "100%",
|
||||
description: "Happy Clients",
|
||||
},
|
||||
{
|
||||
value: "50k+",
|
||||
description: "Photos Edited",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="portfolio" data-section="portfolio">
|
||||
<ProductQuantityCards
|
||||
tag="Gallery"
|
||||
title="Selected Works"
|
||||
description="Explore a curated collection of my work, ranging from landscape photography to intimate portrait sessions."
|
||||
products={[
|
||||
{
|
||||
name: "Landscape Print",
|
||||
price: "$150",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-tall-trees-reflection-lake-park_181624-30524.jpg",
|
||||
},
|
||||
{
|
||||
name: "Portrait Print",
|
||||
price: "$200",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-african-american-man-posing-outdoors-paris-happy-smile-fashion-style-lights-evening-cafes_1321-2929.jpg",
|
||||
},
|
||||
{
|
||||
name: "Wedding Capture",
|
||||
price: "$250",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753662.jpg",
|
||||
},
|
||||
{
|
||||
name: "Product Commercial",
|
||||
price: "$180",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/camera-lens-with-photography-accessories-photo-text-arranged-white-wooden-table_23-2148038943.jpg",
|
||||
},
|
||||
{
|
||||
name: "Travel Story",
|
||||
price: "$120",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-boy-standing-with-binoculars_23-2147770322.jpg",
|
||||
},
|
||||
{
|
||||
name: "Abstract Nature",
|
||||
price: "$140",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/macro-shot-backlit-chinese-horse-chestnuts-leaf-autumn-south-korea_181624-13062.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Social Proof"
|
||||
title="Client Stories"
|
||||
description="Hear what my clients have to say about working together."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Elena Smith",
|
||||
role: "Creative Director",
|
||||
quote: "The most professional and intuitive photographer I've worked with. Captured the perfect moments seamlessly.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-young-asian-girl-smiling-laughing-walking-along-park-enjoying-summer-sunny-day_1258-198738.jpg",
|
||||
},
|
||||
{
|
||||
name: "Mark Johnson",
|
||||
role: "Actor",
|
||||
quote: "My headshots are exactly what I needed. Professional, high quality, and fast turnaround time.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/empowered-business-woman-office_23-2149279553.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah & Dave",
|
||||
role: "Newlyweds",
|
||||
quote: "Our wedding gallery is a dream. Every photo tells our story just as we remembered it.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/african-young-man-giving-white-flowers-bouquet-her-smiling-girlfriend_23-2148151758.jpg",
|
||||
},
|
||||
{
|
||||
name: "Laura Williams",
|
||||
role: "Parent",
|
||||
quote: "The family session was so relaxed. The photos are beautiful and captured the essence of our family.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-family-smiling-home_1098-1343.jpg",
|
||||
},
|
||||
{
|
||||
name: "James Chen",
|
||||
role: "Model",
|
||||
quote: "Creative, talented, and patient. Highly recommend for any photography project.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-floor_246466-14.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Support"
|
||||
title="Common Questions"
|
||||
description="Have questions? Here are some common answers."
|
||||
items={[
|
||||
{
|
||||
question: "What is your photography style?",
|
||||
answer: "I focus on candid, natural-light photography that emphasizes authentic emotions.",
|
||||
},
|
||||
{
|
||||
question: "How long until I get my photos?",
|
||||
answer: "Typically, you'll receive your edited gallery within 2 weeks after the session.",
|
||||
},
|
||||
{
|
||||
question: "Do you travel for shoots?",
|
||||
answer: "Yes! I love traveling for photography work, both domestic and international.",
|
||||
},
|
||||
{
|
||||
question: "Can I request specific locations?",
|
||||
answer: "Absolutely, we can discuss location options that align with your vision during the consultation.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCta
|
||||
tag="Let's Connect"
|
||||
text="Ready to capture your story? Let's discuss your project and create something beautiful together."
|
||||
primaryButton={{
|
||||
text: "Email Me",
|
||||
href: "mailto:hello@lenso.com",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Schedule a Call",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBrandReveal
|
||||
brand="LENSO"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{
|
||||
label: "Portfolio",
|
||||
href: "#portfolio",
|
||||
},
|
||||
{
|
||||
label: "About",
|
||||
href: "#about",
|
||||
},
|
||||
{
|
||||
label: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#",
|
||||
},
|
||||
{
|
||||
label: "Terms of Service",
|
||||
href: "#",
|
||||
},
|
||||
{
|
||||
label: "Instagram",
|
||||
href: "https://instagram.com",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user