Compare commits
15 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 25f93817f8 | |||
| c4c3dd1302 | |||
| 3058e8ca38 | |||
| 026fc0d0f3 | |||
| bafd516d71 | |||
| d67d95cf74 | |||
| 7726ae87ea | |||
| 24d8f8bcb1 | |||
| cfba97474b | |||
| a2d9241c56 | |||
| 3bc0c19ae9 | |||
| 224bab1d16 | |||
| 1e650a2b32 | |||
| 738379cbf0 | |||
| 065204eb84 |
92
src/components/sections/other/TeamPets.tsx
Normal file
92
src/components/sections/other/TeamPets.tsx
Normal file
@@ -0,0 +1,92 @@
|
||||
import Card from "@/components/ui/Card";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
|
||||
type Pet = {
|
||||
name: string;
|
||||
description?: string;
|
||||
imageSrc: string;
|
||||
};
|
||||
|
||||
type TeamPetsProps = {
|
||||
tag?: string;
|
||||
title?: string;
|
||||
description?: string;
|
||||
pets?: Pet[];
|
||||
};
|
||||
|
||||
const defaultPets: Pet[] = [
|
||||
{
|
||||
name: "Barnaby",
|
||||
description: "Chief Tasting Officer",
|
||||
imageSrc: "https://images.unsplash.com/photo-1583511655857-d19b40a7a54e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwxfHxkb2d8ZW58MXwwfHx8MTc3NzM4NDkyMXww&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
},
|
||||
{
|
||||
name: "Luna",
|
||||
description: "Nap Coordinator",
|
||||
imageSrc: "https://images.unsplash.com/photo-1514888286974-6c03e2ca1dba?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwxfHxjYXR8ZW58MXwwfHx8MTc3NzM4NDkyMnww&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
},
|
||||
{
|
||||
name: "Cooper",
|
||||
description: "Door Greeter",
|
||||
imageSrc: "https://images.unsplash.com/photo-1552053831-71594a27632d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwyfHxkb2d8ZW58MXwwfHx8MTc3NzM4NDkyM3ww&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
},
|
||||
{
|
||||
name: "Milo",
|
||||
description: "Crumb Inspector",
|
||||
imageSrc: "https://images.unsplash.com/photo-1573865526739-10659fec78a5?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwyfHxjYXR8ZW58MXwwfHx8MTc3NzM4NDkyNHww&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
}
|
||||
];
|
||||
|
||||
export default function TeamPets({
|
||||
tag = "Our Companions",
|
||||
title = "Meet the Team Pets",
|
||||
description = "The furry friends that keep our bakery running with joy and tail wags.",
|
||||
pets = defaultPets
|
||||
}: TeamPetsProps) {
|
||||
return (
|
||||
<section aria-label="Team Pets section" className="py-20">
|
||||
<div className="flex flex-col gap-8 mx-auto w-content-width">
|
||||
<div className="flex flex-col items-center gap-2">
|
||||
<span className="px-3 py-1 mb-1 text-sm card rounded">{tag}</span>
|
||||
|
||||
<TextAnimation
|
||||
text={title}
|
||||
variant="fade-blur"
|
||||
gradientText={true}
|
||||
tag="h2"
|
||||
className="text-6xl font-medium text-center text-balance"
|
||||
/>
|
||||
|
||||
<TextAnimation
|
||||
text={description}
|
||||
variant="fade-blur"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="md:max-w-6/10 text-lg leading-tight text-center"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<ScrollReveal variant="slide-up">
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-8">
|
||||
{pets.map((pet) => (
|
||||
<Card
|
||||
key={pet.name}
|
||||
className="flex flex-col hover:-translate-y-1 hover:shadow-xl transition-all duration-200"
|
||||
>
|
||||
<div className="w-full h-48 rounded overflow-hidden mb-4">
|
||||
<ImageOrVideo imageSrc={pet.imageSrc} className="w-full h-full object-cover" />
|
||||
</div>
|
||||
<h3 className="text-xl font-semibold text-foreground">{pet.name}</h3>
|
||||
{pet.description && (
|
||||
<p className="text-base opacity-80 mt-2">{pet.description}</p>
|
||||
)}
|
||||
</Card>
|
||||
))}
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -4,16 +4,16 @@
|
||||
@import "./styles/animations.css";
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f6f0e9;
|
||||
--card: #efe7dd;
|
||||
--foreground: #2b180a;
|
||||
--primary-cta: #2b180a;
|
||||
--primary-cta-text: #f6f0e9;
|
||||
--secondary-cta: #efe7dd;
|
||||
--secondary-cta-text: #2b180a;
|
||||
--accent: #94877c;
|
||||
--background-accent: #afa094;
|
||||
/* @colorThemes/magentaTheme */
|
||||
--background: #FCE4EC; /* Very light pinkish-magenta */
|
||||
--card: #F8BBD0; /* Slightly darker pinkish-magenta */
|
||||
--foreground: #880E4F; /* Dark, rich magenta */
|
||||
--primary-cta: #C2185B; /* Vibrant magenta */
|
||||
--primary-cta-text: #FFFFFF; /* White, for contrast with dark primary-cta */
|
||||
--secondary-cta: #F48FB1; /* Lighter magenta */
|
||||
--secondary-cta-text: #880E4F; /* Dark magenta, for contrast with light secondary-cta */
|
||||
--accent: #AD1457; /* A slightly darker accent magenta */
|
||||
--background-accent: #E91E63; /* A more saturated background accent magenta */
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 0.5rem;
|
||||
@@ -197,4 +197,4 @@ h6 {
|
||||
is always visible — when --secondary-cta is white-ish on a near-white page
|
||||
bg, a same-color border is invisible and the button disappears. */
|
||||
border: 1px solid color-mix(in srgb, var(--color-foreground) 18%, transparent);
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
import ProductVariantCards from '@/components/sections/product/ProductVariantCards';
|
||||
import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
import TeamPets from '@/components/sections/other/TeamPets';
|
||||
|
||||
export default function HomePage() {
|
||||
return (
|
||||
@@ -14,7 +15,7 @@ export default function HomePage() {
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBrand
|
||||
brand="Artisanal Bakes"
|
||||
description="Hand-crafted sourdough, pastries, and daily treats baked fresh every single morning in the heart of your neighborhood."
|
||||
description="Hand-crafted sourdough"
|
||||
primaryButton={{
|
||||
text: "Explore Menu",
|
||||
href: "#products",
|
||||
@@ -66,7 +67,7 @@ export default function HomePage() {
|
||||
name: "Brioche Buns",
|
||||
variant: "Pack of 6",
|
||||
price: "$10",
|
||||
imageSrc: "https://images.unsplash.com/photo-1623412905247-8f6a84823837?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwyMXx8aG9tZW1hZGUlMjBicmlvY2hlJTIwYnJlYWR8ZW58MXwwfHx8MTc3NzM4NDkxOXww&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
imageSrc: "https://images.unsplash.com/photo-1623412905247-8f6a84823837?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwyMXx8aG9tZW1hZGUlMjBicmlvY2hlJTIwYnJlYWQfGVufDF8MHx8fDE3NzczODQ5MTl8MA&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
},
|
||||
{
|
||||
name: "Cinnamon Roll",
|
||||
@@ -123,7 +124,7 @@ export default function HomePage() {
|
||||
role: "Retired",
|
||||
company: "Community Member",
|
||||
rating: 5,
|
||||
imageSrc: "https://images.unsplash.com/photo-1582930177321-5e1fd7d6cbe2?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwxfHx3b21hbiUyMHByb2ZpbGUlMjBoYXBweSUyMGJha2VyeXxlbnwxfDB8fHwxNzc3Mzg0OTI0fDA&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
imageSrc: "https://images.unsplash.com/photo-1582930177321-5e1fd7d6cbe2?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHx3b21hbiUyMHByb2ZpbGUlMjBoYXBweSUyMGJha2VyeXxlbnwxfDB8fHwxNzc3Mzg0OTI0fDA&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
@@ -145,7 +146,7 @@ export default function HomePage() {
|
||||
{
|
||||
title: "Traditional Methods",
|
||||
description: "Long fermentation times create superior flavor and digestibility.",
|
||||
avatarSrc: "https://images.unsplash.com/photo-1737700089482-e6ce492f712f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwzfHxmcmVuY2glMjBmbGFreSUyMHBhc3RyeSUyMGJyZWFrZmFzdHxlbnwxfDB8fHwxNzc3Mzg0OTI4fDA&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
avatarSrc: "https://images.unsplash.com/photo-1737700089482-e6ce492f712f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHwzfHxmcmVuY2glMjBwYXN0cnklMjBicmVha2Zhc3R8ZW58MXwwfHx8MTc3NzM4NDkyOHww&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
buttonText: "See Methods",
|
||||
imageSrc: "https://images.unsplash.com/photo-1605345746984-8ade72b44e00?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4Mzc5ODl8MHwxfHNlYXJjaHw1Mnx8ZnJlc2glMjBjcm9pc3NhbnRzJTIwc2VsZWN0aW9uJTIwYnV0dGVyeXxlbnwxfDB8fHwxNzc3Mzg0OTI4fDA&ixlib=rb-4.1.0&q=80&w=1080",
|
||||
},
|
||||
@@ -233,6 +234,10 @@ export default function HomePage() {
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=xrpk5b"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="other" data-section="other">
|
||||
<TeamPets />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user