From d5b5dcfa52d3030fab18a006b828b05faf622d02 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 13:14:16 +0000 Subject: [PATCH 1/3] Update src/app/gallery/page.tsx --- src/app/gallery/page.tsx | 45 ++++++++++++---------------------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/src/app/gallery/page.tsx b/src/app/gallery/page.tsx index 943d260..444a489 100644 --- a/src/app/gallery/page.tsx +++ b/src/app/gallery/page.tsx @@ -15,7 +15,7 @@ export default function GalleryPage() { borderRadius="rounded" contentWidth="mediumSmall" sizing="mediumLargeSizeMediumTitles" - background="floatingGradient" + background="circleGradient" cardStyle="subtle-shadow" primaryButtonStyle="double-inset" secondaryButtonStyle="layered" @@ -41,42 +41,26 @@ export default function GalleryPage() { description="Step into BrewHaven and experience our inviting spaces, carefully crafted beverages, and delicious homemade treats. Our gallery showcases the heart and soul of our community café." tag="Gallery Showcase" tagIcon={Coffee} - background={{ variant: "floatingGradient" }} + background={{ variant: "plain" }} leftCarouselItems={[ { - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-cup-tea-teapot-books-candle-candlestick_169016-10127.jpg?_wi=5", - imageAlt: "Specialty coffee preparation", - }, + imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-cup-tea-teapot-books-candle-candlestick_169016-10127.jpg", imageAlt: "Specialty coffee preparation"}, { - imageSrc: "http://img.b2bpic.net/free-photo/ice-cream-sundae-edible-waffle-bowl_1339-2876.jpg?_wi=4", - imageAlt: "Delicious desserts", - }, + imageSrc: "http://img.b2bpic.net/free-photo/ice-cream-sundae-edible-waffle-bowl_1339-2876.jpg", imageAlt: "Delicious desserts"}, { - imageSrc: "http://img.b2bpic.net/free-photo/best-place-town-meeting-with-friends_329181-2888.jpg?_wi=5", - imageAlt: "People working and studying", - }, + imageSrc: "http://img.b2bpic.net/free-photo/best-place-town-meeting-with-friends_329181-2888.jpg", imageAlt: "People working and studying"}, { - imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-chair-by-christmas-tree_1303-12424.jpg?_wi=3", - imageAlt: "Cozy café seating", - }, + imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-chair-by-christmas-tree_1303-12424.jpg", imageAlt: "Cozy café seating"}, ]} rightCarouselItems={[ { - imageSrc: "http://img.b2bpic.net/free-photo/high-angle-male-worker-coffee-shop_23-2148366546.jpg?_wi=2", - imageAlt: "Fresh coffee drinks", - }, + imageSrc: "http://img.b2bpic.net/free-photo/high-angle-male-worker-coffee-shop_23-2148366546.jpg", imageAlt: "Fresh coffee drinks"}, { - imageSrc: "http://img.b2bpic.net/free-photo/macaroons-plastic-box_23-2147787082.jpg?_wi=5", - imageAlt: "Fresh desserts and pastries", - }, + imageSrc: "http://img.b2bpic.net/free-photo/macaroons-plastic-box_23-2147787082.jpg", imageAlt: "Fresh desserts and pastries"}, { - imageSrc: "http://img.b2bpic.net/free-photo/non-binary-person-wearing-retro-clothes-enjoying-coffee_23-2148757536.jpg?_wi=2", - imageAlt: "Comfortable seating area", - }, + imageSrc: "http://img.b2bpic.net/free-photo/non-binary-person-wearing-retro-clothes-enjoying-coffee_23-2148757536.jpg", imageAlt: "Comfortable seating area"}, { - imageSrc: "http://img.b2bpic.net/free-photo/smiling-girl-barista-cafe-preparing-cappuccino-coffee-machine-steaming-milk-wearing-uniform_1258-199307.jpg?_wi=4", - imageAlt: "Quality café experience", - }, + imageSrc: "http://img.b2bpic.net/free-photo/smiling-girl-barista-cafe-preparing-cappuccino-coffee-machine-steaming-milk-wearing-uniform_1258-199307.jpg", imageAlt: "Quality café experience"}, ]} buttons={[ { text: "Visit Us", href: "/contact" }, @@ -89,24 +73,21 @@ export default function GalleryPage() { Date: Thu, 12 Mar 2026 13:14:16 +0000 Subject: [PATCH 2/3] Update src/app/page.tsx --- src/app/page.tsx | 117 ++++++++++++----------------------------------- 1 file changed, 30 insertions(+), 87 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index bb38735..f49fbd7 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -8,7 +8,7 @@ import FeatureCardTwentyFour from "@/components/sections/feature/FeatureCardTwen import SplitAbout from "@/components/sections/about/SplitAbout"; import TestimonialCardFifteen from "@/components/sections/testimonial/TestimonialCardFifteen"; import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal"; -import { Coffee, Leaf, Users } from "lucide-react"; +import { Coffee, Leaf, Users, TreePine } from "lucide-react"; export default function HomePage() { const navItems = [ @@ -21,24 +21,21 @@ export default function HomePage() { const footerColumns = [ { - title: "Company", - items: [ + title: "Company", items: [ { label: "About Us", href: "/services" }, { label: "Our Story", href: "/" }, { label: "Sustainability", href: "/services" }, ], }, { - title: "Quick Links", - items: [ + title: "Quick Links", items: [ { label: "Menu", href: "/menu" }, { label: "Gallery", href: "/gallery" }, { label: "Book a Table", href: "/contact" }, ], }, { - title: "Contact", - items: [ + title: "Contact", items: [ { label: "Sengipatti, Tamil Nadu", href: "#" }, { label: "Phone: 09677968168", href: "tel:09677968168" }, { label: "Open 5AM - Midnight", href: "#" }, @@ -53,7 +50,7 @@ export default function HomePage() { borderRadius="rounded" contentWidth="mediumSmall" sizing="mediumLargeSizeMediumTitles" - background="floatingGradient" + background="circleGradient" cardStyle="subtle-shadow" primaryButtonStyle="double-inset" secondaryButtonStyle="layered" @@ -73,42 +70,26 @@ export default function HomePage() { description="Open from 5AM to Midnight. Experience the perfect blend of great coffee, delicious desserts, and a welcoming atmosphere. Whether you're here to work, study, or just relax – BrewHaven is your second home." tag="Welcome to BrewHaven" tagIcon={Coffee} - background={{ variant: "floatingGradient" }} + background={{ variant: "plain" }} leftCarouselItems={[ { - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-cup-tea-teapot-books-candle-candlestick_169016-10127.jpg?_wi=1", - imageAlt: "Specialty coffee preparation", - }, + imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-cup-tea-teapot-books-candle-candlestick_169016-10127.jpg", imageAlt: "Specialty coffee preparation"}, { - imageSrc: "http://img.b2bpic.net/free-photo/ice-cream-sundae-edible-waffle-bowl_1339-2876.jpg?_wi=1", - imageAlt: "Delicious desserts", - }, + imageSrc: "http://img.b2bpic.net/free-photo/ice-cream-sundae-edible-waffle-bowl_1339-2876.jpg", imageAlt: "Delicious desserts"}, { - imageSrc: "http://img.b2bpic.net/free-photo/best-place-town-meeting-with-friends_329181-2888.jpg?_wi=1", - imageAlt: "People working and studying", - }, + imageSrc: "http://img.b2bpic.net/free-photo/best-place-town-meeting-with-friends_329181-2888.jpg", imageAlt: "People working and studying"}, { - imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-chair-by-christmas-tree_1303-12424.jpg?_wi=1", - imageAlt: "Cozy café seating", - }, + imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-chair-by-christmas-tree_1303-12424.jpg", imageAlt: "Cozy café seating"}, ]} rightCarouselItems={[ { - imageSrc: "http://img.b2bpic.net/free-photo/high-angle-male-worker-coffee-shop_23-2148366546.jpg?_wi=1", - imageAlt: "Fresh coffee drinks", - }, + imageSrc: "http://img.b2bpic.net/free-photo/high-angle-male-worker-coffee-shop_23-2148366546.jpg", imageAlt: "Fresh coffee drinks"}, { - imageSrc: "http://img.b2bpic.net/free-photo/macaroons-plastic-box_23-2147787082.jpg?_wi=1", - imageAlt: "Fresh desserts and pastries", - }, + imageSrc: "http://img.b2bpic.net/free-photo/macaroons-plastic-box_23-2147787082.jpg", imageAlt: "Fresh desserts and pastries"}, { - imageSrc: "http://img.b2bpic.net/free-photo/non-binary-person-wearing-retro-clothes-enjoying-coffee_23-2148757536.jpg?_wi=1", - imageAlt: "Comfortable seating area", - }, + imageSrc: "http://img.b2bpic.net/free-photo/non-binary-person-wearing-retro-clothes-enjoying-coffee_23-2148757536.jpg", imageAlt: "Comfortable seating area"}, { - imageSrc: "http://img.b2bpic.net/free-photo/smiling-girl-barista-cafe-preparing-cappuccino-coffee-machine-steaming-milk-wearing-uniform_1258-199307.jpg?_wi=1", - imageAlt: "Quality café experience", - }, + imageSrc: "http://img.b2bpic.net/free-photo/smiling-girl-barista-cafe-preparing-cappuccino-coffee-machine-steaming-milk-wearing-uniform_1258-199307.jpg", imageAlt: "Quality café experience"}, ]} buttons={[ { text: "Order Online", href: "/menu" }, @@ -124,41 +105,17 @@ export default function HomePage() { description="Discover what makes our café special and why customers love us" features={[ { - id: "1", - title: "Great Coffee", - author: "Crafted Daily", - description: "Freshly roasted beans sourced from sustainable farms. Every cup is expertly prepared by our skilled baristas.", - tags: ["Premium", "Fresh", "Quality"], - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-cup-tea-teapot-books-candle-candlestick_169016-10127.jpg?_wi=2", - imageAlt: "Great Coffee", - }, + id: "1", title: "Great Coffee", author: "Crafted Daily", description: "Freshly roasted beans sourced from sustainable farms. Every cup is expertly prepared by our skilled baristas.", tags: ["Premium", "Fresh", "Quality"], + imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-cup-tea-teapot-books-candle-candlestick_169016-10127.jpg", imageAlt: "Great Coffee"}, { - id: "2", - title: "Great Desserts", - author: "Homemade Fresh", - description: "Delicious cakes, brownies, and pastries baked fresh daily in our kitchen. Perfect pairing with your coffee.", - tags: ["Fresh", "Homemade", "Tasty"], - imageSrc: "http://img.b2bpic.net/free-photo/ice-cream-sundae-edible-waffle-bowl_1339-2876.jpg?_wi=2", - imageAlt: "Great Desserts", - }, + id: "2", title: "Great Desserts", author: "Homemade Fresh", description: "Delicious cakes, brownies, and pastries baked fresh daily in our kitchen. Perfect pairing with your coffee.", tags: ["Fresh", "Homemade", "Tasty"], + imageSrc: "http://img.b2bpic.net/free-photo/ice-cream-sundae-edible-waffle-bowl_1339-2876.jpg", imageAlt: "Great Desserts"}, { - id: "3", - title: "Vegan & Vegetarian", - author: "Health Conscious", - description: "Plant-based options for our health-conscious guests. All vegan treats made with care and premium ingredients.", - tags: ["Vegan", "Plant-based", "Healthy"], - imageSrc: "http://img.b2bpic.net/free-photo/macaroons-plastic-box_23-2147787082.jpg?_wi=2", - imageAlt: "Vegan & Vegetarian", - }, + id: "3", title: "Vegan & Vegetarian", author: "Health Conscious", description: "Plant-based options for our health-conscious guests. All vegan treats made with care and premium ingredients.", tags: ["Vegan", "Plant-based", "Healthy"], + imageSrc: "http://img.b2bpic.net/free-photo/macaroons-plastic-box_23-2147787082.jpg", imageAlt: "Vegan & Vegetarian"}, { - id: "4", - title: "Laptop-Friendly Workspace", - author: "Work & Study", - description: "High-speed WiFi, comfortable seating, and power outlets everywhere. Perfect for students, freelancers, and remote workers.", - tags: ["WiFi", "Workspace", "Productive"], - imageSrc: "http://img.b2bpic.net/free-photo/best-place-town-meeting-with-friends_329181-2888.jpg?_wi=2", - imageAlt: "Laptop-Friendly Workspace", - }, + id: "4", title: "Laptop-Friendly Workspace", author: "Work & Study", description: "High-speed WiFi, comfortable seating, and power outlets everywhere. Perfect for students, freelancers, and remote workers.", tags: ["WiFi", "Workspace", "Productive"], + imageSrc: "http://img.b2bpic.net/free-photo/best-place-town-meeting-with-friends_329181-2888.jpg", imageAlt: "Laptop-Friendly Workspace"}, ]} animationType="slide-up" textboxLayout="default" @@ -174,22 +131,16 @@ export default function HomePage() { tagIcon={Leaf} bulletPoints={[ { - title: "Quality Coffee", - description: "We partner with ethical farmers to source the finest arabica and robusta beans, roasted to perfection.", - icon: Coffee, + title: "Quality Coffee", description: "We partner with ethical farmers to source the finest arabica and robusta beans, roasted to perfection.", icon: Coffee, }, { - title: "Sustainable Practices", - description: "Eco-friendly packaging, composting program, and support for local suppliers drive our commitment to the environment.", - icon: Leaf, + title: "Sustainable Practices", description: "Eco-friendly packaging, composting program, and support for local suppliers drive our commitment to the environment.", icon: TreePine, }, { - title: "Welcoming Community", - description: "Whether solo or in groups, everyone finds their place here. We host events, workshops, and community gatherings.", - icon: Users, + title: "Welcoming Community", description: "Whether solo or in groups, everyone finds their place here. We host events, workshops, and community gatherings.", icon: Users, }, ]} - imageSrc="http://img.b2bpic.net/free-photo/smiling-girl-barista-cafe-preparing-cappuccino-coffee-machine-steaming-milk-wearing-uniform_1258-199307.jpg?_wi=2" + imageSrc="http://img.b2bpic.net/free-photo/smiling-girl-barista-cafe-preparing-cappuccino-coffee-machine-steaming-milk-wearing-uniform_1258-199307.jpg" imageAlt="BrewHaven café team" mediaAnimation="slide-up" imagePosition="right" @@ -205,21 +156,13 @@ export default function HomePage() { author="Sarah Johnson, Student" avatars={[ { - src: "http://img.b2bpic.net/free-photo/successful-young-man-stylish-hat-relaxing-alone-cozy-cafeteria-lunch-break-looking-with-happy-expression_273609-1935.jpg", - alt: "Sarah Johnson", - }, + src: "http://img.b2bpic.net/free-photo/successful-young-man-stylish-hat-relaxing-alone-cozy-cafeteria-lunch-break-looking-with-happy-expression_273609-1935.jpg", alt: "Sarah Johnson"}, { - src: "http://img.b2bpic.net/free-photo/vertical-shot-well-dressed-male-leaning-against-wall-looking-camera_181624-15421.jpg", - alt: "Michael Chen", - }, + src: "http://img.b2bpic.net/free-photo/vertical-shot-well-dressed-male-leaning-against-wall-looking-camera_181624-15421.jpg", alt: "Michael Chen"}, { - src: "http://img.b2bpic.net/free-photo/smiley-woman-posing-while-nature-adventure_23-2148647990.jpg", - alt: "Emily Rodriguez", - }, + src: "http://img.b2bpic.net/free-photo/smiley-woman-posing-while-nature-adventure_23-2148647990.jpg", alt: "Emily Rodriguez"}, { - src: "http://img.b2bpic.net/free-photo/latin-man-smiling-cheerful-expression-closeup-portrait_53876-128963.jpg", - alt: "David Kim", - }, + src: "http://img.b2bpic.net/free-photo/latin-man-smiling-cheerful-expression-closeup-portrait_53876-128963.jpg", alt: "David Kim"}, ]} ratingAnimation="slide-up" avatarsAnimation="slide-up" -- 2.49.1 From 6559f060ca33c7e57dd3297d1f263f5d37b0c177 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 13:14:17 +0000 Subject: [PATCH 3/3] Update src/components/shared/SvgTextLogo/SvgTextLogo.tsx --- .../shared/SvgTextLogo/SvgTextLogo.tsx | 136 +++++++++++++----- 1 file changed, 97 insertions(+), 39 deletions(-) diff --git a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx index f214190..72c613e 100644 --- a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx +++ b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx @@ -1,51 +1,109 @@ "use client"; -import { memo } from "react"; -import useSvgTextLogo from "./useSvgTextLogo"; -import { cls } from "@/lib/utils"; +import { useMemo } from "react"; +import { motion } from "framer-motion"; interface SvgTextLogoProps { - logoText: string; - adjustHeightFactor?: number; - verticalAlign?: "top" | "center"; + text: string; + fontSize?: number; + fontWeight?: string | number; + fontFamily?: string; + fill?: string; + animated?: boolean; className?: string; } -const SvgTextLogo = memo(function SvgTextLogo({ - logoText, - adjustHeightFactor, - verticalAlign = "top", - className = "", -}) { - const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor); +export const SvgTextLogo = ({ + text, + fontSize = 48, + fontWeight = "bold", fontFamily = "system-ui, -apple-system, sans-serif", fill = "#000000", animated = false, + className = ""}: SvgTextLogoProps) => { + const textLength = useMemo(() => { + const canvas = typeof document !== "undefined" ? document.createElement("canvas") : null; + if (!canvas) return text.length * fontSize * 0.6; + const context = canvas.getContext("2d"); + if (!context) return text.length * fontSize * 0.6; + context.font = `${fontWeight} ${fontSize}px ${fontFamily}`; + return context.measureText(text).width; + }, [text, fontSize, fontWeight, fontFamily]); + + const padding = 20; + const width = textLength + padding * 2; + const height = fontSize + padding * 2; + + const containerVariants = { + hidden: { opacity: 0 }, + visible: { + opacity: 1, + transition: { + staggerChildren: 0.02, + }, + }, + }; + + const letterVariants = { + hidden: { opacity: 0, y: 20 }, + visible: { + opacity: 1, + y: 0, + transition: { + duration: 0.5, + }, + }, + }; + + if (!animated) { + return ( + + + {text} + + + ); + } return ( - - - {logoText} - - + {text.split("").map((char, index) => ( + + {char} + + ))} + ); -}); +}; -SvgTextLogo.displayName = "SvgTextLogo"; - -export default SvgTextLogo; +export default SvgTextLogo; \ No newline at end of file -- 2.49.1