23 Commits

Author SHA1 Message Date
1d7e0e7fe4 Update src/app/page.tsx 2026-03-02 10:25:07 +00:00
5dca1fa1f9 Update theme colors 2026-03-02 10:23:11 +00:00
e896b9e3a3 Update src/app/page.tsx 2026-03-02 10:19:58 +00:00
112ded484f Update src/app/layout.tsx 2026-03-02 10:19:57 +00:00
61556f6a7b Update src/app/bagels/page.tsx 2026-03-02 10:19:56 +00:00
529ad05bbc Merge version_5 into main
Merge version_5 into main
2026-03-02 10:17:45 +00:00
4f952292e2 Update src/app/styles/variables.css 2026-03-02 10:17:40 +00:00
4174384e86 Update src/app/page.tsx 2026-03-02 10:17:39 +00:00
372190f49b Update src/app/layout.tsx 2026-03-02 10:17:38 +00:00
9fddaa981e Update src/app/bagels/page.tsx 2026-03-02 10:17:37 +00:00
23432529c9 Merge version_4 into main
Merge version_4 into main
2026-03-02 10:08:25 +00:00
0edd5d12d5 Update src/app/page.tsx 2026-03-02 10:08:20 +00:00
1dacb1fad8 Merge version_4 into main
Merge version_4 into main
2026-03-02 10:01:14 +00:00
01a5ca0c4a Update src/app/bagels/page.tsx 2026-03-02 10:01:10 +00:00
2790f02604 Merge version_3 into main
Merge version_3 into main
2026-03-02 09:57:15 +00:00
61ad2280ee Update src/app/page.tsx 2026-03-02 09:57:11 +00:00
d98d1be6c1 Update src/app/coffees/page.tsx 2026-03-02 09:57:10 +00:00
418c85c7b4 Update src/app/bagels/page.tsx 2026-03-02 09:57:09 +00:00
be1ebce411 Merge version_3 into main
Merge version_3 into main
2026-03-02 09:56:30 +00:00
c10a796c03 Update src/app/page.tsx 2026-03-02 09:56:26 +00:00
67563e4167 Add src/app/coffees/page.tsx 2026-03-02 09:56:25 +00:00
074a13becc Add src/app/bagels/page.tsx 2026-03-02 09:56:24 +00:00
d1d683732f Merge version_2 into main
Merge version_2 into main
2026-03-02 09:52:02 +00:00
5 changed files with 234 additions and 57 deletions

95
src/app/bagels/page.tsx Normal file
View File

@@ -0,0 +1,95 @@
"use client";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { Croissant } from "lucide-react";
export default function BagelsPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="mediumSmall"
sizing="mediumLargeSizeLargeTitles"
background="blurBottom"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<div id="nav" data-section="nav">
<NavbarStyleCentered
brandName="Artisan Coffee Co."
navItems={[
{ name: "Home", id: "/" },
{ name: "Coffees", id: "/coffees" },
{ name: "Bagels", id: "/bagels" },
{ name: "Contact", id: "contact" }
]}
button={{ text: "Order Now", href: "contact" }}
/>
</div>
<div id="bagels" data-section="bagels">
<ProductCardTwo
title="Fan Favorite Bagels"
description="Indulge in our bestselling bagels, freshly baked daily. From classic cream cheese to our signature salmon bagel, each one is crafted with premium ingredients."
tag="Bestsellers"
tagIcon={Croissant}
tagAnimation="slide-up"
textboxLayout="default"
useInvertedBackground={false}
animationType="blur-reveal"
products={[
{
id: "1", brand: "Artisan Coffee Co.", name: "Salmon Bagel", price: "$8.99", rating: 5,
reviewCount: "342", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AN51bjLT2H1DJy7cFepO8qMgO7/uploaded-1772445675642-eu470ff5.jpg", imageAlt: "Fresh salmon bagel with cream cheese"
},
{
id: "2", brand: "Artisan Coffee Co.", name: "California Bagel", price: "$9.49", rating: 5,
reviewCount: "298", imageSrc: "http://img.b2bpic.net/free-photo/sandwich-with-lettuce-tomato-cheese_1441-1508.jpg", imageAlt: "California bagel with avocado and veggies"
},
{
id: "3", brand: "Artisan Coffee Co.", name: "Cream Cheese Bagel", price: "$4.99", rating: 5,
reviewCount: "451", imageSrc: "http://img.b2bpic.net/free-photo/close-up-bagel-cream-cheese_1441-1510.jpg", imageAlt: "Classic cream cheese bagel"
}
]}
gridVariant="uniform-all-items-equal"
buttons={[
{ text: "Shop All Bagels", href: "contact" }
]}
buttonAnimation="slide-up"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
title="Special Orders & Catering"
description="Planning an event or want to order in bulk? We'd love to help! Contact us for custom bagel platters, catering options, and special requests."
inputs={[
{ name: "name", type: "text", placeholder: "Your Name", required: true },
{ name: "email", type: "email", placeholder: "Your Email", required: true }
]}
textarea={{ name: "message", placeholder: "Tell us about your bagel order or catering needs...", rows: 5, required: true }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/rustic-chandelier-made-bulbs-ropes-dining-table-vintage-kitchen_181624-9173.jpg?_wi=3"
imageAlt="Coffee shop interior with bagels"
mediaAnimation="slide-up"
buttonText="Send Message"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Artisan Coffee Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Visit Us: 123 Valencia St, SF", href: "https://maps.google.com" }}
/>
</div>
</ThemeProvider>
);
}

103
src/app/coffees/page.tsx Normal file
View File

@@ -0,0 +1,103 @@
"use client"
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { Coffee, Mail } from "lucide-react";
export default function CoffeesPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="mediumSmall"
sizing="mediumLargeSizeLargeTitles"
background="blurBottom"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<div id="nav" data-section="nav">
<NavbarStyleCentered
brandName="Artisan Coffee Co."
navItems={[
{ name: "Home", id: "/" },
{ name: "Coffees", id: "/coffees" },
{ name: "Bagels", id: "/bagels" },
{ name: "Contact", id: "contact" }
]}
button={{ text: "Order Now", href: "contact" }}
/>
</div>
<div id="coffees" data-section="coffees">
<ProductCardTwo
title="Our Premium Coffee Collection"
description="Discover our bestselling coffees, from smooth espresso blends to refreshing cold brews. Each coffee is carefully sourced and roasted to perfection."
tag="Bestsellers"
tagIcon={Coffee}
tagAnimation="slide-up"
textboxLayout="default"
useInvertedBackground={false}
animationType="blur-reveal"
products={[
{
id: "1", brand: "Artisan Coffee Co.", name: "Espresso", price: "$4.99", rating: 5,
reviewCount: "189", imageSrc: "http://img.b2bpic.net/free-photo/young-man-working-with-coffee-machine-bar-counter-restaurant-barista-apron-white-shirt-making-coffee-by-coffee-machine-cafe-boy-working-as-barista-coffee-shop_574295-4942.jpg?_wi=2", imageAlt: "Perfect espresso shot with crema"
},
{
id: "2", brand: "Artisan Coffee Co.", name: "Cappuccino", price: "$5.99", rating: 5,
reviewCount: "276", imageSrc: "http://img.b2bpic.net/free-photo/close-up-cup-coffee-latte-art-woman-hand-coffee-shop-cafe_1150-10238.jpg?_wi=2", imageAlt: "Cappuccino with latte art"
},
{
id: "3", brand: "Artisan Coffee Co.", name: "Americano", price: "$4.49", rating: 5,
reviewCount: "142", imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-person-making-drip-coffee_53876-30607.jpg?_wi=2", imageAlt: "Americano coffee"
},
{
id: "4", brand: "Artisan Coffee Co.", name: "Matcha Latte", price: "$6.99", rating: 5,
reviewCount: "203", imageSrc: "http://img.b2bpic.net/free-photo/close-up-cup-coffee-latte-art-woman-hand-coffee-shop-cafe_1150-10238.jpg?_wi=3", imageAlt: "Matcha latte with creamy foam"
},
{
id: "5", brand: "Artisan Coffee Co.", name: "Chaga Tea", price: "$5.49", rating: 5,
reviewCount: "98", imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-person-making-drip-coffee_53876-30607.jpg?_wi=3", imageAlt: "Chaga tea blend"
}
]}
gridVariant="uniform-all-items-equal"
buttons={[
{ text: "Shop All Coffees", href: "contact" }
]}
buttonAnimation="slide-up"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
title="Get In Touch"
description="Have questions about our coffees? Want to place an order or learn more about our sourcing practices? Fill out the form and we'll get back to you shortly."
inputs={[
{ name: "name", type: "text", placeholder: "Your Name", required: true },
{ name: "email", type: "email", placeholder: "Your Email", required: true }
]}
textarea={{ name: "message", placeholder: "Tell us about your coffee preferences...", rows: 5, required: true }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/rustic-chandelier-made-bulbs-ropes-dining-table-vintage-kitchen_181624-9173.jpg?_wi=2"
imageAlt="Coffee shop interior"
mediaAnimation="slide-up"
buttonText="Send Message"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Artisan Coffee Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Visit Us: 123 Valencia St, SF", href: "https://maps.google.com" }}
/>
</div>
</ThemeProvider>
);
}

View File

@@ -1,45 +1,23 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Montserrat } from "next/font/google"; import { Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import "./styles/variables.css";
import Tag from "@/tag/Tag"; import "./styles/base.css";
const montserrat = Montserrat({ const inter = Inter({ subsets: ["latin"] });
variable: "--font-montserrat", subsets: ["latin"],
});
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Artisan Coffee Co. | Premium Coffee in San Francisco", description: "Discover freshly roasted, expertly crafted coffee in the heart of San Francisco. Visit our cafe for premium espresso, single-origin pour overs, and exceptional service.", keywords: ["coffee shop", "San Francisco", "artisan coffee", "specialty coffee", "espresso", "cafe", "premium roasted beans"], title: "Artisan Coffee Co.", description: "Premium artisan coffee, freshly roasted and expertly prepared"
robots: {
index: true,
follow: true
},
openGraph: {
title: "Artisan Coffee Co. | Premium Coffee in San Francisco", description: "Discover freshly roasted, expertly crafted coffee in the heart of San Francisco.", type: "website", siteName: "Artisan Coffee Co.", images: [
{
url: "http://img.b2bpic.net/free-photo/rustic-chandelier-made-bulbs-ropes-dining-table-vintage-kitchen_181624-9173.jpg", alt: "Artisan Coffee Co. - San Francisco"
}
]
},
twitter: {
card: "summary_large_image", title: "Artisan Coffee Co. | Premium Coffee in San Francisco", description: "Discover freshly roasted, expertly crafted coffee in the heart of San Francisco.", images: ["http://img.b2bpic.net/free-photo/rustic-chandelier-made-bulbs-ropes-dining-table-vintage-kitchen_181624-9173.jpg"]
}
}; };
export default function RootLayout({ export default function RootLayout({
children, children,
}: Readonly<{ }: {
children: React.ReactNode; children: React.ReactNode;
}>) { }) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en">
<ServiceWrapper> <body className={inter.className}>{children}
<body
className={`${montserrat.variable} antialiased`}
>
<Tag />
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@@ -1407,7 +1385,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

View File

@@ -1,4 +1,4 @@
"use client" "use client";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import HeroSplit from '@/components/sections/hero/HeroSplit'; import HeroSplit from '@/components/sections/hero/HeroSplit';
@@ -33,7 +33,9 @@ export default function LandingPage() {
{ name: "Menu", id: "products" }, { name: "Menu", id: "products" },
{ name: "Our Story", id: "story" }, { name: "Our Story", id: "story" },
{ name: "Visit Us", id: "contact" }, { name: "Visit Us", id: "contact" },
{ name: "Reviews", id: "testimonials" } { name: "Reviews", id: "testimonials" },
{ name: "Coffees", id: "/coffees" },
{ name: "Bagels", id: "/bagels" }
]} ]}
button={{ text: "Order Now", href: "contact" }} button={{ text: "Order Now", href: "contact" }}
/> />
@@ -41,13 +43,13 @@ export default function LandingPage() {
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroSplit <HeroSplit
title="Freshly Roasted Coffee" title="i"
description="Welcome to Artisan Coffee Co., where we believe in the perfect cup. Every bean is carefully selected, roasted to perfection, and prepared with passion by our experienced baristas." description="Welcome to Artisan Coffee Co., where we believe in the perfect cup. Every bean is carefully selected, roasted to perfection, and prepared with passion by our experienced baristas."
tag="Premium Artisan Coffee" tag="Premium Artisan Coffee"
tagIcon={Coffee} tagIcon={Coffee}
tagAnimation="slide-up" tagAnimation="slide-up"
background={{ variant: "glowing-orb" }} background={{ variant: "glowing-orb" }}
imageSrc="http://img.b2bpic.net/free-photo/rustic-chandelier-made-bulbs-ropes-dining-table-vintage-kitchen_181624-9173.jpg" videoSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AN51bjLT2H1DJy7cFepO8qMgO7/uploaded-1772446040564-b62odt8g.mp4"
imageAlt="Warm, inviting coffee shop interior with specialty coffee equipment" imageAlt="Warm, inviting coffee shop interior with specialty coffee equipment"
imagePosition="right" imagePosition="right"
mediaAnimation="slide-up" mediaAnimation="slide-up"
@@ -86,15 +88,15 @@ export default function LandingPage() {
products={[ products={[
{ {
id: "1", brand: "Artisan Coffee Co.", name: "Signature Espresso Blend", price: "$16.99", rating: 5, id: "1", brand: "Artisan Coffee Co.", name: "Signature Espresso Blend", price: "$16.99", rating: 5,
reviewCount: "324", imageSrc: "http://img.b2bpic.net/free-photo/young-man-working-with-coffee-machine-bar-counter-restaurant-barista-apron-white-shirt-making-coffee-by-coffee-machine-cafe-boy-working-as-barista-coffee-shop_574295-4942.jpg", imageAlt: "Perfect espresso shot with crema" reviewCount: "324", imageSrc: "http://img.b2bpic.net/free-photo/young-man-working-with-coffee-machine-bar-counter-restaurant-barista-apron-white-shirt-making-coffee-by-coffee-machine-cafe-boy-working-as-barista-coffee-shop_574295-4942.jpg?_wi=1", imageAlt: "Perfect espresso shot with crema"
}, },
{ {
id: "2", brand: "Artisan Coffee Co.", name: "Ethiopian Pour Over", price: "$18.99", rating: 5, id: "2", brand: "Artisan Coffee Co.", name: "Ethiopian Pour Over", price: "$18.99", rating: 5,
reviewCount: "287", imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-person-making-drip-coffee_53876-30607.jpg", imageAlt: "Beautiful pour over coffee preparation" reviewCount: "287", imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-person-making-drip-coffee_53876-30607.jpg?_wi=1", imageAlt: "Beautiful pour over coffee preparation"
}, },
{ {
id: "3", brand: "Artisan Coffee Co.", name: "Artisan Latte Blend", price: "$15.99", rating: 4, id: "3", brand: "Artisan Coffee Co.", name: "Artisan Latte Blend", price: "$15.99", rating: 4,
reviewCount: "401", imageSrc: "http://img.b2bpic.net/free-photo/close-up-cup-coffee-latte-art-woman-hand-coffee-shop-cafe_1150-10238.jpg", imageAlt: "Perfect latte with latte art" reviewCount: "401", imageSrc: "http://img.b2bpic.net/free-photo/close-up-cup-coffee-latte-art-woman-hand-coffee-shop-cafe_1150-10238.jpg?_wi=1", imageAlt: "Perfect latte with latte art"
} }
]} ]}
gridVariant="three-columns-all-equal-width" gridVariant="three-columns-all-equal-width"
@@ -182,4 +184,4 @@ export default function LandingPage() {
</div> </div>
</ThemeProvider> </ThemeProvider>
); );
} }

View File

@@ -2,23 +2,23 @@
/* Base units */ /* Base units */
/* --vw is set by ThemeProvider */ /* --vw is set by ThemeProvider */
/* --background: #f7f6f7;; /* --background: #000000;;;
--card: #ffffff;; --card: #1a1a1a;;;
--foreground: #25190c;; --foreground: #ffffff;;;
--primary-cta: #ff6207;; --primary-cta: #ff6207;;;
--secondary-cta: #ffffff;; --secondary-cta: #1a1a1a;;;
--accent: #ffce93;; --accent: #ff6207;;;
--background-accent: #e8cfa8;; */ --background-accent: #ff6207;;; */
--background: #f7f6f7;; --background: #000000;;;
--card: #ffffff;; --card: #1a1a1a;;;
--foreground: #25190c;; --foreground: #ffffff;;;
--primary-cta: #ff6207;; --primary-cta: #ff6207;;;
--primary-cta-text: #f7f6f7;; --primary-cta-text: #f7f6f7;;;
--secondary-cta: #ffffff;; --secondary-cta: #1a1a1a;;;
--secondary-cta-text: #25190c;; --secondary-cta-text: #ffffff;;;
--accent: #ffce93;; --accent: #ff6207;;;
--background-accent: #e8cfa8;; --background-accent: #ff6207;;;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);