Merge version_1 into main #2
@@ -17,7 +17,7 @@ export default function LandingPage() {
|
||||
borderRadius="pill"
|
||||
contentWidth="small"
|
||||
sizing="largeSmallSizeMediumTitles"
|
||||
background="grid"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="radial-glow"
|
||||
secondaryButtonStyle="glass"
|
||||
@@ -40,12 +40,12 @@ export default function LandingPage() {
|
||||
<HeroBillboardGallery
|
||||
title="Handcrafted Donuts & Pastries Worth Waking Up For"
|
||||
description="Fresh every morning. Friendly service. The best donuts in Vegas. We craft premium donuts with unique flavors and signature pastries daily."
|
||||
background={{ variant: "grid" }}
|
||||
background={{ variant: "sparkles-gradient" }}
|
||||
tag="Fresh Daily"
|
||||
mediaItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg?_wi=1", imageAlt: "Colorful assorted fresh donuts" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg", imageAlt: "Colorful assorted fresh donuts" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-shot-person-holding-tray-with-freshly-baked-round-cookies_181624-57599.jpg", imageAlt: "Buttery croissants and pastries" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg?_wi=1", imageAlt: "Specialty gourmet donuts" }
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg", imageAlt: "Specialty gourmet donuts" }
|
||||
]}
|
||||
buttons={[
|
||||
{ text: "View Our Menu", href: "#menu" },
|
||||
@@ -91,7 +91,7 @@ export default function LandingPage() {
|
||||
},
|
||||
{
|
||||
id: "specialty", brand: "Specialty Crafted", name: "Sea Salt Caramel", price: "$3.50", rating: 5,
|
||||
reviewCount: "750+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg?_wi=2", imageAlt: "Artisan sea salt caramel donut"
|
||||
reviewCount: "750+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg", imageAlt: "Artisan sea salt caramel donut"
|
||||
},
|
||||
{
|
||||
id: "pastries", brand: "Pastry Selection", name: "Chocolate Croissant", price: "$4.00", rating: 5,
|
||||
@@ -121,7 +121,7 @@ export default function LandingPage() {
|
||||
},
|
||||
{
|
||||
id: "variety", title: "Huge Selection", author: "Always Expanding", description: "From classic glazed to unique specialty flavors like Sea Salt Caramel and Dubai Chocolate. We rotate seasonal favorites and take custom requests.", tags: ["Variety", "Selection"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg?_wi=1", imageAlt: "Display case with variety of donuts and pastries"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg", imageAlt: "Display case with variety of donuts and pastries"
|
||||
},
|
||||
{
|
||||
id: "service", title: "Friendly Staff", author: "Customer First", description: "Our team is trained to be fast, welcoming, and helpful. We remember regulars and treat every customer like family.", tags: ["Service", "Friendly"],
|
||||
@@ -129,7 +129,7 @@ export default function LandingPage() {
|
||||
},
|
||||
{
|
||||
id: "value", title: "Affordable Dozens", author: "Great Pricing", description: "Get a full box of a dozen donuts at competitive prices. Perfect for office meetings, parties, or treating your family.", tags: ["Bulk", "Deals"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg?_wi=2", imageAlt: "Box of fresh donuts ready to take home"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg", imageAlt: "Box of fresh donuts ready to take home"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
@@ -145,7 +145,7 @@ export default function LandingPage() {
|
||||
features={[
|
||||
{
|
||||
id: "counter", title: "Premium Display Case", author: "Always Stocked", description: "Our signature counter showcases fresh donuts, croissants, and pastries. Stop by anytime—morning to evening.", tags: ["Display", "Fresh"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg?_wi=2", imageAlt: "Glass display case with fresh pastries"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg", imageAlt: "Glass display case with fresh pastries"
|
||||
},
|
||||
{
|
||||
id: "space", title: "Comfortable Shop", author: "Neighborhood Favorite", description: "Warm, inviting space with friendly vibes. Great for morning coffee runs or sitting down with a fresh donut and friends.", tags: ["Space", "Welcoming"],
|
||||
@@ -170,7 +170,7 @@ export default function LandingPage() {
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterMedia
|
||||
imageSrc="http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg?_wi=3"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg"
|
||||
imageAlt="Dee's Donuts display of fresh pastries"
|
||||
logoText="Dee's Donuts & Pastry"
|
||||
copyrightText="© 2025 Dee's Donuts & Pastry. Las Vegas' favorite neighborhood bakery."
|
||||
|
||||
@@ -1,51 +1,40 @@
|
||||
"use client";
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
import React from 'react';
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
text: string;
|
||||
className?: string;
|
||||
fontSize?: number;
|
||||
letterSpacing?: number;
|
||||
dominantBaseline?: 'auto' | 'text-top' | 'hanging' | 'mathematical' | 'central' | 'middle' | 'text-bottom' | 'ideographic' | 'alphabetic';
|
||||
}
|
||||
|
||||
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
|
||||
logoText,
|
||||
adjustHeightFactor,
|
||||
verticalAlign = "top",
|
||||
className = "",
|
||||
}) {
|
||||
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
|
||||
|
||||
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
|
||||
text,
|
||||
className = '',
|
||||
fontSize = 24,
|
||||
letterSpacing = 0,
|
||||
dominantBaseline = 'middle',
|
||||
}) => {
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
viewBox={`0 0 ${text.length * fontSize} ${fontSize * 2}`}
|
||||
className={`w-full h-auto ${className}`}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<text
|
||||
ref={textRef}
|
||||
x="0"
|
||||
y={verticalAlign === "center" ? "50%" : "0"}
|
||||
className="font-bold fill-current"
|
||||
style={{
|
||||
fontSize: "20px",
|
||||
letterSpacing: "-0.02em",
|
||||
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
|
||||
}}
|
||||
x="50%"
|
||||
y="50%"
|
||||
textAnchor="middle"
|
||||
dominantBaseline={dominantBaseline}
|
||||
fontSize={fontSize}
|
||||
letterSpacing={letterSpacing}
|
||||
fill="currentColor"
|
||||
className="font-bold"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user