diff --git a/src/app/layout.tsx b/src/app/layout.tsx index eb7ac90..a6e0ad2 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -21,9 +21,11 @@ const sourceSans3 = Source_Sans_3({ export const metadata: Metadata = { title: "Essence & Aura | Premium Luxury Perfumes & Cosmetics", description: "Discover curated luxury fragrances with interactive animated product experiences. Premium perfumes and cosmetics for the discerning connoisseur.", keywords: "luxury perfume, fragrance, cosmetics, premium scent, perfume shop, interactive shopping", openGraph: { - title: "Essence & Aura | Discover Your Signature Scent", description: "Experience premium luxury fragrances with immersive interactive animations", type: "website", siteName: "Essence & Aura"}, + title: "Essence & Aura | Discover Your Signature Scent", description: "Experience premium luxury fragrances with immersive interactive animations", type: "website", siteName: "Essence & Aura" + }, twitter: { - card: "summary_large_image", title: "Essence & Aura | Premium Fragrances", description: "Luxury perfumes with interactive product experiences"}, + card: "summary_large_image", title: "Essence & Aura | Premium Fragrances", description: "Luxury perfumes with interactive product experiences" + }, }; export default function RootLayout({ diff --git a/src/app/page.tsx b/src/app/page.tsx index 5f19f54..cb152e6 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -10,8 +10,39 @@ import FaqBase from '@/components/sections/faq/FaqBase'; import ContactSplitForm from '@/components/sections/contact/ContactSplitForm'; import FooterSimple from '@/components/sections/footer/FooterSimple'; import { Sparkles, Heart, Gem, Star, HelpCircle, ShoppingBag } from 'lucide-react'; +import { useState } from 'react'; export default function LandingPage() { + const [activeProductId, setActiveProductId] = useState(null); + const [showSprayAnimation, setShowSprayAnimation] = useState(false); + + const products = [ + { + id: "perfume-1", name: "Midnight Blossom", price: "$185", variant: "100ml • Floral • 3 Scent Notes", imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-beautifully-shaped-glass-bottles-filled-with-perfume_181624-28370.jpg?_wi=2", imageAlt: "Midnight Blossom Fragrance" + }, + { + id: "perfume-2", name: "Crystal Noir", price: "$210", variant: "100ml • Oriental • Premium Edition", imageSrc: "http://img.b2bpic.net/free-photo/close-up-variety-cosmetic-products-desk-isolated_574295-5284.jpg?_wi=2", imageAlt: "Crystal Noir Fragrance" + }, + { + id: "perfume-3", name: "Amber Essence", price: "$165", variant: "75ml • Woody • Signature Collection", imageSrc: "http://img.b2bpic.net/free-photo/ecofriendly-beauty-product_23-2150669115.jpg?_wi=2", imageAlt: "Amber Essence Fragrance" + }, + { + id: "perfume-4", name: "Rose Garden", price: "$195", variant: "100ml • Fruity Floral • Limited Release", imageSrc: "http://img.b2bpic.net/free-photo/containers-liquid-soap-shampoo-with-dispenser-is-sold-supermarket_169016-50305.jpg?_wi=3", imageAlt: "Rose Garden Fragrance" + }, + { + id: "perfume-5", name: "Ocean Wave", price: "$175", variant: "100ml • Fresh Citrus • Summer Collection", imageSrc: "http://img.b2bpic.net/free-photo/containers-liquid-soap-shampoo-with-dispenser-is-sold-supermarket_169016-50305.jpg?_wi=4", imageAlt: "Ocean Wave Fragrance" + }, + { + id: "perfume-6", name: "Vanilla Luxe", price: "$200", variant: "100ml • Gourmand • Exclusive Blend", imageSrc: "http://img.b2bpic.net/free-photo/elegant-vegan-alcohol-arrangement_23-2149337695.jpg?_wi=2", imageAlt: "Vanilla Luxe Fragrance" + } + ]; + + const handleProductClick = (productId: string) => { + setActiveProductId(productId); + setShowSprayAnimation(true); + setTimeout(() => setShowSprayAnimation(false), 2000); + }; + return (
- +
+ ({ + ...product, + onProductClick: () => handleProductClick(product.id) + }))} + title="Premium Fragrance Collection" + description="Sourced from master perfumers worldwide, authenticity guaranteed. Handpicked luxury perfumes and cosmetics for the discerning connoisseur. Click to explore interactive product animations" + tag="Featured Selection" + tagIcon={Heart} + tagAnimation="slide-up" + buttons={[ + { text: "View All Products", href: "#" }, + { text: "Shop Collection", href: "#" } + ]} + buttonAnimation="slide-up" + gridVariant="uniform-all-items-equal" + animationType="slide-up" + textboxLayout="default" + useInvertedBackground={false} + carouselMode="buttons" + /> + + {activeProductId && showSprayAnimation && ( +
+
+ {/* Product rotates leftward */} +
+ p.id === activeProductId)?.imageSrc} + alt="Product" + className="w-full h-full object-cover rounded-lg" + /> +
+ + {/* Spray particles animation */} +
+ {Array.from({ length: 12 }).map((_, i) => ( +
+ ))} +
+ + {/* Product information reveal overlay */} +
+
+

+ {products.find(p => p.id === activeProductId)?.name} +

+

+ {products.find(p => p.id === activeProductId)?.variant} +

+

+ {products.find(p => p.id === activeProductId)?.price} +

+
+
+
+ + +
+ )} +