Compare commits
32 Commits
version_11
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ec235c48b | |||
|
|
9717e121f6 | ||
|
|
a5283d27c8 | ||
| 82d3bb2af3 | |||
| 992017f936 | |||
| d353c846ae | |||
|
|
67ade2fdd9 | ||
|
|
e29a634ca5 | ||
| c45973d9ed | |||
|
|
d1f64ebcfe | ||
| 7429e33760 | |||
| cf1c3e228d | |||
| 5871d3f16e | |||
|
|
d4da9836a5 | ||
|
|
d6fabcdb70 | ||
| de908b7def | |||
|
|
b51e5b2484 | ||
| 784b42c0ea | |||
|
|
d304be0199 | ||
| b8bb7a6d5f | |||
| dfe477646a | |||
|
|
7a6adf8255 | ||
| 69582c45b1 | |||
|
|
c24ff1996b | ||
| c210f3c561 | |||
|
|
e2dcc2d5e5 | ||
| ea750d0b01 | |||
| 3618dd9836 | |||
|
|
4c5eccd24d | ||
| 65d86351c8 | |||
|
|
96bd96da91 | ||
| 6d11724ec5 |
@@ -13,6 +13,13 @@ import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import EventsSection from './HomePage/sections/Events';{/* webild-stub @2026-06-02T15:24:31.770Z: To make testimonials more impactful, ensure each quote includes an avatar or photo of the reviewer, along with their name and, if possible, their location or a brief title, to build greater trust. */}
|
||||
|
||||
{/* webild-stub @2026-06-02T15:14:24.839Z: Introduce a dedicated section for upcoming events, live music, or special releases to encourage repeat visits and community engagement, transforming passive viewers into active participants. */}
|
||||
|
||||
{/* webild-stub @2026-06-02T14:34:15.285Z: make badges in hero sections each on in different color */}
|
||||
|
||||
{/* webild-stub @2026-06-02T14:28:11.483Z: make badges in hero sections each on in different color */}
|
||||
@@ -24,6 +31,7 @@ export default function HomePage(): React.JSX.Element {
|
||||
<BeersSection />
|
||||
<StorySection />
|
||||
<TaproomSection />
|
||||
<EventsSection />
|
||||
<TestimonialQuoteCardsSection />
|
||||
<FaqSimpleSection />
|
||||
<ContactSection />
|
||||
|
||||
@@ -1,64 +1,86 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "beers" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
import GridOrCarousel from '@/components/ui/GridOrCarousel';
|
||||
import Card from '@/components/ui/Card';
|
||||
import Tag from '@/components/ui/Tag';
|
||||
|
||||
export default function BeersSection() {
|
||||
const beers = [
|
||||
{
|
||||
name: "Mountain Pale Ale",
|
||||
type: "Pale Ale",
|
||||
abv: "5.5%",
|
||||
description: "A crisp and refreshing pale ale with notes of pine and citrus, brewed with local mountain spring water.",
|
||||
alt: "Glass of pale ale craft beer with pine background"
|
||||
},
|
||||
{
|
||||
name: "Cedar Stout",
|
||||
type: "Stout",
|
||||
abv: "7.2%",
|
||||
description: "Rich and complex with deep roasted coffee and dark chocolate flavors, perfect for chilly evenings.",
|
||||
alt: "Pint of dark stout craft beer with roasted coffee beans"
|
||||
},
|
||||
{
|
||||
name: "Valley IPA",
|
||||
type: "IPA",
|
||||
abv: "6.8%",
|
||||
description: "A hop-forward India Pale Ale bursting with tropical fruit aromas and a smooth, bitter finish.",
|
||||
alt: "Glass of IPA craft beer with tropical fruits"
|
||||
},
|
||||
{
|
||||
name: "Sunset Amber",
|
||||
type: "Amber Ale",
|
||||
abv: "5.0%",
|
||||
description: "A perfectly balanced amber ale featuring toasted caramel malts and a subtle earthy hop profile.",
|
||||
alt: "Glass of amber ale craft beer on a wooden table"
|
||||
}
|
||||
];
|
||||
|
||||
export default function BeersSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="beers" data-section="beers">
|
||||
<SectionErrorBoundary name="beers">
|
||||
<FeaturesRevealCardsBentoSharp
|
||||
tag="Our Signature Collection"
|
||||
title="Taste the Craftsmanship"
|
||||
description="From crisp lagers to robust stouts, each Cedar Mountain brew tells a story of Vermont's rich landscape and our dedication to the art of brewing. Discover our most popular and beloved beers."
|
||||
items={[
|
||||
{
|
||||
title: "Maple Amber Ale",
|
||||
description: "A rich, malty ale with subtle notes of Vermont maple syrup, balanced by a clean hop finish. Perfect for any season.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/composed-books-autumnal-goods_23-2147687094.jpg",
|
||||
},
|
||||
{
|
||||
title: "Cascade IPA",
|
||||
description: "Our flagship IPA, bursting with vibrant citrus and pine aromas from generous Cascade hop additions. Bold, refreshing, and truly iconic.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-psd/flat-design-oktoberfest-celebration-poster_23-2150683567.jpg",
|
||||
},
|
||||
{
|
||||
title: "Stout Mountain Porter",
|
||||
description: "A dark and brooding porter with deep roasted malt flavors, hints of chocolate and coffee, and a creamy texture. A comforting classic.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-bottles-bear-dark-background_140725-94854.jpg",
|
||||
},
|
||||
{
|
||||
title: "Summertime Lager",
|
||||
description: "Light, crisp, and incredibly refreshing. Our lager is brewed for sunny days and good company, with a clean finish that invites another sip.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/celebration-beer-cheers-concept-close-up-hand-holding-up-glasses-beer-man_1150-6458.jpg",
|
||||
},
|
||||
{
|
||||
title: "Harvest Wheat Beer",
|
||||
description: "A hazy, unfiltered wheat beer brewed with local Vermont wheat, offering subtle fruit and spice notes. A true taste of the harvest.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/composition-with-tasty-american-beer_23-2148907632.jpg",
|
||||
},
|
||||
{
|
||||
title: "Barrel-Aged Scotch Ale",
|
||||
description: "A robust Scotch Ale aged in oak barrels, developing complex vanilla, caramel, and smoky characteristics. A beer for sipping and savoring.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pints-draught-beer-macro-photography_53876-101409.jpg",
|
||||
},
|
||||
{
|
||||
title: "Raspberry Sour",
|
||||
description: "A delightfully tart and fruity sour ale, brewed with real Vermont raspberries for a vibrant color and juicy, refreshing flavor.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-friends-beach-with-beer_23-2147827103.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
<section id="beers" className="relative bg-background overflow-hidden">
|
||||
<div className="absolute top-0 left-1/2 -translate-x-1/2 w-[800px] h-[400px] bg-primary-cta/5 blur-[120px] rounded-full pointer-events-none -z-10" />
|
||||
|
||||
<div className="max-w-content-width mx-auto px-6">
|
||||
<div className="text-center">
|
||||
<ScrollReveal variant="slide-up">
|
||||
<TextAnimation
|
||||
text="Our Beers"
|
||||
variant="fade-blur"
|
||||
gradientText={false}
|
||||
tag="h2"
|
||||
className="text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6"
|
||||
/>
|
||||
<p className="text-lg md:text-xl text-muted-foreground max-w-content-width mx-auto">
|
||||
Crafted with passion and precision, our core lineup features something for every palate.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
|
||||
<GridOrCarousel>
|
||||
{beers.map((beer, index) => (
|
||||
<ScrollReveal key={index} variant="slide-up" delay={index * 0.1}>
|
||||
<Card className="h-full flex flex-col overflow-hidden border border-border/50 bg-card hover:-translate-y-2 transition-all duration-300 hover:shadow-xl">
|
||||
<div className="relative h-72 w-full bg-muted/50">
|
||||
<img
|
||||
src=""
|
||||
alt={beer.alt}
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
<div className="absolute top-4 right-4 flex flex-col gap-2 items-end">
|
||||
<Tag text={beer.type} className="bg-background/90 backdrop-blur-md border-none shadow-sm" />
|
||||
<Tag text={`ABV ${beer.abv}`} className="bg-primary-cta text-primary-cta-text border-none shadow-sm" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="p-8 flex-grow flex flex-col">
|
||||
<h3 className="text-2xl font-bold text-foreground mb-3">{beer.name}</h3>
|
||||
<p className="text-muted-foreground flex-grow leading-relaxed">{beer.description}</p>
|
||||
</div>
|
||||
</Card>
|
||||
</ScrollReveal>
|
||||
))}
|
||||
</GridOrCarousel>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
}
|
||||
52
src/pages/HomePage/sections/Events.tsx
Normal file
52
src/pages/HomePage/sections/Events.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// Created by create_section tool.
|
||||
|
||||
import React from 'react';
|
||||
import Tag from '@/components/ui/Tag';
|
||||
import Card from '@/components/ui/Card';
|
||||
import Button from '@/components/ui/Button';
|
||||
import { Calendar, Music, Beer } from 'lucide-react';
|
||||
|
||||
export default function EventsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="events" className="bg-background">
|
||||
<div className="container mx-auto px-4">
|
||||
<div className="text-center">
|
||||
<Tag text="Upcoming Events" className="mb-4" />
|
||||
<h2 className="text-4xl md:text-5xl font-bold text-foreground mb-6">Join the Community</h2>
|
||||
<p className="text-lg text-muted-foreground max-w-content-width mx-auto">
|
||||
From live music to special beer releases, there's always something happening at Cedar Mountain Brewery.
|
||||
</p>
|
||||
</div>
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<Card className="p-6 flex flex-col h-full">
|
||||
<div className="w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-6 text-primary">
|
||||
<Music className="w-6 h-6" />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-foreground mb-2">Live Music Fridays</h3>
|
||||
<p className="text-sm text-muted-foreground mb-4">Every Friday, 7 PM - 10 PM</p>
|
||||
<p className="text-muted-foreground flex-grow mb-6">Kick off your weekend with local bands, great beer, and a lively atmosphere in our taproom.</p>
|
||||
<Button text="View Lineup" variant="secondary" className="w-full" />
|
||||
</Card>
|
||||
<Card className="p-6 flex flex-col h-full">
|
||||
<div className="w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-6 text-primary">
|
||||
<Beer className="w-6 h-6" />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-foreground mb-2">Seasonal Release Party</h3>
|
||||
<p className="text-sm text-muted-foreground mb-4">October 15th, 12 PM - 8 PM</p>
|
||||
<p className="text-muted-foreground flex-grow mb-6">Be the first to taste our new Winter Stout. Food trucks, games, and exclusive merchandise available.</p>
|
||||
<Button text="RSVP Now" variant="secondary" className="w-full" />
|
||||
</Card>
|
||||
<Card className="p-6 flex flex-col h-full">
|
||||
<div className="w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-6 text-primary">
|
||||
<Calendar className="w-6 h-6" />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-foreground mb-2">Brewery Tours</h3>
|
||||
<p className="text-sm text-muted-foreground mb-4">Saturdays & Sundays, 2 PM</p>
|
||||
<p className="text-muted-foreground flex-grow mb-6">Get a behind-the-scenes look at our brewing process and enjoy a guided tasting of our core lineup.</p>
|
||||
<Button text="Book a Tour" variant="secondary" className="w-full" />
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -26,14 +26,17 @@ export default function HomeSection(): React.JSX.Element {
|
||||
{
|
||||
text: "Local Ingredients",
|
||||
icon: Leaf,
|
||||
className: "bg-green-100 text-green-800 border-green-200",
|
||||
},
|
||||
{
|
||||
text: "Sustainable Brewing",
|
||||
icon: Droplet,
|
||||
className: "bg-blue-100 text-blue-800 border-blue-200",
|
||||
},
|
||||
{
|
||||
text: "Award-Winning",
|
||||
icon: Award,
|
||||
className: "bg-yellow-100 text-yellow-800 border-yellow-200",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/morning-mountains-carpathian-ukraine-aerial-view_1153-6120.jpg"
|
||||
|
||||
Reference in New Issue
Block a user