Merge version_1 into main

Merge version_1 into main
This commit was merged in pull request #1.
This commit is contained in:
2026-03-13 13:14:56 +00:00
3 changed files with 70 additions and 266 deletions

View File

@@ -33,7 +33,7 @@ export default function ContactPage() {
borderRadius="rounded"
contentWidth="small"
sizing="medium"
background="noise"
background="circleGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="double-inset"
secondaryButtonStyle="layered"
@@ -44,9 +44,7 @@ export default function ContactPage() {
brandName="REALcutz"
navItems={navItems}
button={{
text: "Objednat se",
href: "/kontakt",
}}
text: "Objednat se", href: "/kontakt"}}
buttonClassName="bg-[var(--primary-cta)] text-[var(--primary-cta-text)] hover:opacity-90 transition-opacity"
buttonTextClassName="font-montserrat font-semibold"
/>
@@ -60,8 +58,7 @@ export default function ContactPage() {
tagIcon={Calendar}
tagAnimation="slide-up"
background={{
variant: "noise",
}}
variant: "plain"}}
useInvertedBackground={false}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=en48xs"
imageAlt="REALcutz barbershop interiér"
@@ -81,13 +78,9 @@ export default function ContactPage() {
<FooterLogoReveal
logoText="REALcutz"
leftLink={{
text: "GDPR",
href: "#",
}}
text: "GDPR", href: "#"}}
rightLink={{
text: "Sociální sítě",
href: "https://instagram.com",
}}
text: "Sociální sítě", href: "https://instagram.com"}}
ariaLabel="Site footer - Kontakt"
className="bg-[var(--foreground)] text-[var(--background)]"
containerClassName="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"

View File

@@ -9,7 +9,7 @@ import TeamCardSix from "@/components/sections/team/TeamCardSix";
import PricingCardEight from "@/components/sections/pricing/PricingCardEight";
import TestimonialCardFive from "@/components/sections/testimonial/TestimonialCardFive";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
import { Sparkles, Award, Users, DollarSign, Star } from "lucide-react";
import { Sparkles, Award, Users, DollarSign, Star, Zap, CheckCircle } from "lucide-react";
export default function HomePage() {
const navItems = [
@@ -28,7 +28,7 @@ export default function HomePage() {
borderRadius="rounded"
contentWidth="small"
sizing="medium"
background="noise"
background="circleGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="double-inset"
secondaryButtonStyle="layered"
@@ -40,9 +40,7 @@ export default function HomePage() {
navItems={navItems}
brandName="REALcutz"
button={{
text: "Objednat se",
href: "/kontakt",
}}
text: "Objednat se", href: "/kontakt"}}
buttonClassName="bg-[var(--primary-cta)] text-[var(--primary-cta-text)] hover:opacity-90 transition-opacity"
buttonTextClassName="font-montserrat font-semibold"
/>
@@ -53,19 +51,15 @@ export default function HomePage() {
<HeroBillboardScroll
title="Zažij luxusní střih přesně podle tvých představ"
description="Profesionální barbershop v přátelské atmosféře, kde čas u křesla utíká rychle. Každý střih je umělecké dílo."
background={{ variant: "noise" }}
background={{ variant: "plain" }}
tag="Barbershop Praha"
tagIcon={Sparkles}
tagAnimation="slide-up"
buttons={[
{
text: "Objednat se",
href: "/kontakt",
},
text: "Objednat se", href: "/kontakt"},
{
text: "Prohlédnout služby",
href: "/sluzby",
},
text: "Prohlédnout služby", href: "/sluzby"},
]}
buttonAnimation="slide-up"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=fa4hdt"
@@ -90,9 +84,7 @@ export default function HomePage() {
title="V REALcutz věříme, že každý střih je umělecké dílo"
buttons={[
{
text: "Poznat naše barbery",
href: "#team-home",
},
text: "Poznat naše barbery", href: "#team-home"},
]}
buttonAnimation="slide-up"
useInvertedBackground={false}
@@ -109,26 +101,11 @@ export default function HomePage() {
<TeamCardSix
members={[
{
id: "janik",
name: "Janík",
role: "Senior Barber - Detail & Precision",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ow8k7b",
imageAlt: "Janík - Senior barber REALcutz",
},
id: "janik", name: "Janík", role: "Senior Barber - Detail & Precision", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ow8k7b", imageAlt: "Janík - Senior barber REALcutz"},
{
id: "martin",
name: "Martin Erben",
role: "Master Barber - Speed & Expertise",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=32s26b",
imageAlt: "Martin Erben - Master barber REALcutz",
},
id: "martin", name: "Martin Erben", role: "Master Barber - Speed & Expertise", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=32s26b", imageAlt: "Martin Erben - Master barber REALcutz"},
{
id: "richard",
name: "Richard",
role: "Friendly Barber - Personal Touch",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=xo9nna",
imageAlt: "Richard - Friendly barber REALcutz",
},
id: "richard", name: "Richard", role: "Friendly Barber - Personal Touch", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=xo9nna", imageAlt: "Richard - Friendly barber REALcutz"},
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
@@ -141,8 +118,8 @@ export default function HomePage() {
useInvertedBackground={false}
ariaLabel="Team section - Naši barberi"
containerClassName="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 text-center"
titleClassName="text-4xl sm:text-5xl font-montserrat font-bold text-[var(--foreground)] mb-6"
descriptionClassName="text-lg text-[var(--foreground)] opacity-90 mb-12"
nameClassName="text-lg font-semibold"
roleClassName="text-sm text-[var(--foreground)] opacity-75"
/>
</div>
@@ -151,83 +128,40 @@ export default function HomePage() {
<PricingCardEight
plans={[
{
id: "mens-cut",
badge: "Nejpopulárnější",
badgeIcon: "Zap",
price: "520 Kč",
subtitle: "Profesionální pánský střih",
buttons: [
id: "mens-cut", badge: "Nejpopulárnější", badgeIcon: Zap,
price: "520 Kč", subtitle: "Profesionální pánský střih", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Konzultace střihu",
"Péče o detaily",
"Káva nebo nealko",
"Bezplatné parkování",
"Cca 30 minut",
],
"Konzultace střihu", "Péče o detaily", "Káva nebo nealko", "Bezplatné parkování", "Cca 30 minut"],
},
{
id: "kids-cut",
badge: "Pro děti",
badgeIcon: "Star",
price: "350 Kč",
subtitle: "Přátelský dětský střih",
buttons: [
id: "kids-cut", badge: "Pro děti", badgeIcon: Star,
price: "350 Kč", subtitle: "Přátelský dětský střih", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Trpělivý barber",
"Bezpečné nůžky",
"Sladkosti k dispozici",
"Krátká doba",
"Maximální zábava",
],
"Trpělivý barber", "Bezpečné nůžky", "Sladkosti k dispozici", "Krátká doba", "Maximální zábava"],
},
{
id: "beard-trim",
badge: "Specialita",
badgeIcon: "Sparkles",
price: "250 Kč",
subtitle: "Profesionální úprava vousů",
buttons: [
id: "beard-trim", badge: "Specialita", badgeIcon: Sparkles,
price: "250 Kč", subtitle: "Profesionální úprava vousů", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Trimování & tvarování",
"Péče o vousy",
"Masáž obličeje",
"Aplikace balzámu",
"Cca 20 minut",
],
"Trimování & tvarování", "Péče o vousy", "Masáž obličeje", "Aplikace balzámu", "Cca 20 minut"],
},
{
id: "complete-package",
badge: "Nejlepší cena",
price: "700 Kč",
subtitle: "Kompletní balíček střih + vousy",
buttons: [
id: "complete-package", badge: "Nejlepší cena", badgeIcon: CheckCircle,
price: "700 Kč", subtitle: "Kompletní balíček střih + vousy", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Profesionální střih",
"Úprava vousů",
"Péče o detaily",
"Káva + nealko",
"Cca 50 minut",
],
"Profesionální střih", "Úprava vousů", "Péče o detaily", "Káva + nealko", "Cca 50 minut"],
},
]}
animationType="slide-up"
@@ -239,8 +173,8 @@ export default function HomePage() {
textboxLayout="default"
useInvertedBackground={false}
containerClassName="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"
titleClassName="text-4xl sm:text-5xl font-montserrat font-bold text-[var(--foreground)] mb-6"
descriptionClassName="text-lg text-[var(--foreground)] opacity-90 mb-12"
textBoxTitleClassName="text-4xl sm:text-5xl font-montserrat font-bold text-[var(--foreground)] mb-6"
textBoxDescriptionClassName="text-lg text-[var(--foreground)] opacity-90 mb-12"
/>
</div>
@@ -249,65 +183,17 @@ export default function HomePage() {
<TestimonialCardFive
testimonials={[
{
id: "testimonial-1",
name: "Tomáš K.",
date: "před 2 týdny",
title: "Extrémní péče o detail",
quote: "Za mne naprosto bezkonkurenční Barber, který vám vyjde vstříc. Extrémní péče o detail, výsledky přesně podle představ.",
tag: "Google Recenze",
avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=2knoj0",
avatarAlt: "Tomáš K.",
},
id: "testimonial-1", name: "Tomáš K.", date: "před 2 týdny", title: "Extrémní péče o detail", quote: "Za mne naprosto bezkonkurenční Barber, který vám vyjde vstříc. Extrémní péče o detail, výsledky přesně podle představ.", tag: "Google Recenze", avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=2knoj0", avatarAlt: "Tomáš K."},
{
id: "testimonial-2",
name: "Filip M.",
date: "před měsícem",
title: "Čas utíká jak nic",
quote: "Profesionální střih, čas u křesla utíká jak nic. Každý barber ví, co dělá. Doporučuji všem!",
tag: "Facebook Recenze",
avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=1i31jm",
avatarAlt: "Filip M.",
},
id: "testimonial-2", name: "Filip M.", date: "před měsícem", title: "Čas utíká jak nic", quote: "Profesionální střih, čas u křesla utíká jak nic. Každý barber ví, co dělá. Doporučuji všem!", tag: "Facebook Recenze", avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=1i31jm", avatarAlt: "Filip M."},
{
id: "testimonial-3",
name: "Petr H.",
date: "před 3 týdny",
title: "Megaking střih",
quote: "Moc díky za Megaking střih! Přesně to, co jsem si představoval. Určitě se vrátím.",
tag: "Google Recenze",
avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=gwfjo7",
avatarAlt: "Petr H.",
},
id: "testimonial-3", name: "Petr H.", date: "před 3 týdny", title: "Megaking střih", quote: "Moc díky za Megaking střih! Přesně to, co jsem si představoval. Určitě se vrátím.", tag: "Google Recenze", avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=gwfjo7", avatarAlt: "Petr H."},
{
id: "testimonial-4",
name: "David L.",
date: "před 10 dny",
title: "Vtipkujeme a dokonalý střih",
quote: "Vtipkujeme a zároveň perfektní střih. Richard je fenomén! Skvělá atmosféra v salonu.",
tag: "Google Recenze",
avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6ody0v",
avatarAlt: "David L.",
},
id: "testimonial-4", name: "David L.", date: "před 10 dny", title: "Vtipkujeme a dokonalý střih", quote: "Vtipkujeme a zároveň perfektní střih. Richard je fenomén! Skvělá atmosféra v salonu.", tag: "Google Recenze", avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6ody0v", avatarAlt: "David L."},
{
id: "testimonial-5",
name: "Miroslav P.",
date: "před 5 dny",
title: "Vrátím se určitě",
quote: "Všem vřele doporučuji - čas u křesla utíká jak nic. Profesionální přístup, přátelská atmosféra. Top!",
tag: "Facebook Recenze",
avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ixj7l5",
avatarAlt: "Miroslav P.",
},
id: "testimonial-5", name: "Miroslav P.", date: "před 5 dny", title: "Vrátím se určitě", quote: "Všem vřele doporučuji - čas u křesla utíká jak nic. Profesionální přístup, přátelská atmosféra. Top!", tag: "Facebook Recenze", avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ixj7l5", avatarAlt: "Miroslav P."},
{
id: "testimonial-6",
name: "Lukáš S.",
date: "před týdnem",
title: "Dokonalá kombinace",
quote: "Kombinace luxusu a přátelskosti - přesně to jsem hledal. Barberi vědí, co dělají. Vrátím se určitě.",
tag: "Google Recenze",
avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=nvder7",
avatarAlt: "Lukáš S.",
},
id: "testimonial-6", name: "Lukáš S.", date: "před týdnem", title: "Dokonalá kombinace", quote: "Kombinace luxusu a přátelskosti - přesně to jsem hledal. Barberi vědí, co dělají. Vrátím se určitě.", tag: "Google Recenze", avatarSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=nvder7", avatarAlt: "Lukáš S."},
]}
title="Co Říkají Naši Klienti"
description="Skutečné recenze od spokojených zákazníků, kteří věří REALcutz."
@@ -317,8 +203,8 @@ export default function HomePage() {
textboxLayout="default"
useInvertedBackground={false}
containerClassName="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"
titleClassName="text-4xl sm:text-5xl font-montserrat font-bold text-[var(--foreground)] mb-6"
descriptionClassName="text-lg text-[var(--foreground)] opacity-90 mb-12"
textBoxTitleClassName="text-4xl sm:text-5xl font-montserrat font-bold text-[var(--foreground)] mb-6"
textBoxDescriptionClassName="text-lg text-[var(--foreground)] opacity-90 mb-12"
carouselClassName="mt-12"
/>
</div>
@@ -328,13 +214,9 @@ export default function HomePage() {
<FooterLogoReveal
logoText="REALcutz"
leftLink={{
text: "Objednat",
href: "/kontakt",
}}
text: "Objednat", href: "/kontakt"}}
rightLink={{
text: "Instagram",
href: "https://instagram.com",
}}
text: "Instagram", href: "https://instagram.com"}}
ariaLabel="Site footer - REALcutz"
className="bg-[var(--foreground)] text-[var(--background)]"
containerClassName="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"

View File

@@ -29,7 +29,7 @@ export default function ServicesPage() {
borderRadius="rounded"
contentWidth="small"
sizing="medium"
background="noise"
background="circleGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="double-inset"
secondaryButtonStyle="layered"
@@ -40,9 +40,7 @@ export default function ServicesPage() {
brandName="REALcutz"
navItems={navItems}
button={{
text: "Objednat se",
href: "/kontakt",
}}
text: "Objednat se", href: "/kontakt"}}
buttonClassName="bg-[var(--primary-cta)] text-[var(--primary-cta-text)] hover:opacity-90 transition-opacity"
buttonTextClassName="font-montserrat font-semibold"
/>
@@ -52,85 +50,37 @@ export default function ServicesPage() {
<PricingCardEight
plans={[
{
id: "mens-cut-detailed",
badge: "Klasik",
price: "520 Kč",
subtitle: "Pánský střih na míru",
buttons: [
id: "mens-cut-detailed", badge: "Klasik", price: "520 Kč", subtitle: "Pánský střih na míru", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Konzultace o stylu",
"Přesné trimování",
"Úprava linie vlasů",
"Stylingové tipy",
"Káva zdarma",
"Cca 30 minut",
],
"Konzultace o stylu", "Přesné trimování", "Úprava linie vlasů", "Stylingové tipy", "Káva zdarma", "Cca 30 minut"],
},
{
id: "kids-detailed",
badge: "Děti",
price: "350 Kč",
subtitle: "Bezpečný a zábavný střih",
buttons: [
id: "kids-detailed", badge: "Děti", price: "350 Kč", subtitle: "Bezpečný a zábavný střih", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Trpělivý barber",
"Bezpečné techniky",
"Motivující atmosféra",
"Odměna za statečnost",
"Sladkosti",
"Cca 20 minut",
],
"Trpělivý barber", "Bezpečné techniky", "Motivující atmosféra", "Odměna za statečnost", "Sladkosti", "Cca 20 minut"],
},
{
id: "beard-detailed",
badge: "Specialita",
price: "250 Kč",
subtitle: "Profesionální úprava vousů",
buttons: [
id: "beard-detailed", badge: "Specialita", price: "250 Kč", subtitle: "Profesionální úprava vousů", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Přesné trimování",
"Tvarování linií",
"Péče o vousy",
"Hydratační balzám",
"Masáž obličeje",
"Cca 20 minut",
],
"Přesné trimování", "Tvarování linií", "Péče o vousy", "Hydratační balzám", "Masáž obličeje", "Cca 20 minut"],
},
{
id: "complete-detailed",
badge: "Balíček",
badgeIcon: Zap,
price: "700 Kč",
subtitle: "Komplet: střih + vousy + péče",
buttons: [
id: "complete-detailed", badge: "Balíček", badgeIcon: Zap,
price: "700 Kč", subtitle: "Komplet: střih + vousy + péče", buttons: [
{
text: "Objednat",
href: "/kontakt",
},
text: "Objednat", href: "/kontakt"},
],
features: [
"Profesionální střih",
"Úprava + tvarování vousů",
"Balzám na vousy",
"Polní na obličej",
"Nápoj dle výběru",
"Cca 50 minut",
],
"Profesionální střih", "Úprava + tvarování vousů", "Balzám na vousy", "Polní na obličej", "Nápoj dle výběru", "Cca 50 minut"],
},
]}
animationType="slide-up"
@@ -142,8 +92,8 @@ export default function ServicesPage() {
textboxLayout="default"
useInvertedBackground={false}
containerClassName="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-16"
titleClassName="text-4xl sm:text-5xl font-montserrat font-bold text-[var(--foreground)] mb-6"
descriptionClassName="text-lg text-[var(--foreground)] opacity-90 mb-12"
textBoxTitleClassName="text-4xl sm:text-5xl font-montserrat font-bold text-[var(--foreground)] mb-6"
textBoxDescriptionClassName="text-lg text-[var(--foreground)] opacity-90 mb-12"
/>
</div>
@@ -151,38 +101,21 @@ export default function ServicesPage() {
<FaqSplitText
faqs={[
{
id: "faq-booking",
title: "Jak se objednám?",
content: "Objednávku lze provést přes našeho webového formuláře na stránce Kontakt, nebo nás zavolejte přímo. Doporučujeme objednat se s předstihem, obzvláště o víkendech.",
},
id: "faq-booking", title: "Jak se objednám?", content: "Objednávku lze provést přes našeho webového formuláře na stránce Kontakt, nebo nás zavolejte přímo. Doporučujeme objednat se s předstihem, obzvláště o víkendech."},
{
id: "faq-payment",
title: "Jaké jsou platební možnosti?",
content: "Přijímáme hotovost a kartové platby. Pro snadnost doporučujeme kartu, ale rádi sloužíme i s hotovostí.",
},
id: "faq-payment", title: "Jaké jsou platební možnosti?", content: "Přijímáme hotovost a kartové platby. Pro snadnost doporučujeme kartu, ale rádi sloužíme i s hotovostí."},
{
id: "faq-cancellation",
title: "Mohu zrušit nebo přesunout objednávku?",
content: "Ano, zrušení nebo přesunutí je možné s minimálním předstihem 24 hodin. Kontaktujte nás prosím telefonicky nebo e-mailem.",
},
id: "faq-cancellation", title: "Mohu zrušit nebo přesunout objednávku?", content: "Ano, zrušení nebo přesunutí je možné s minimálním předstihem 24 hodin. Kontaktujte nás prosím telefonicky nebo e-mailem."},
{
id: "faq-first-visit",
title: "Jsem poprvé. Co má smysl ví?",
content: "Nepotřebujete nic. Ať si vezměte jen sebe! Během prvního střihu se s barberem poradíte o stylu a péči o vlasy.",
},
id: "faq-first-visit", title: "Jsem poprvé. Co má smysl ví?", content: "Nepotřebujete nic. Ať si vezměte jen sebe! Během prvního střihu se s barberem poradíte o stylu a péči o vlasy."},
{
id: "faq-special-requests",
title: "Mám speciální požadavek. Je to možné?",
content: "Samozřejmě! Naši barberi jsou flexibilní a rádi vám vychází vstříc. Při objednávce si napište poznámku nebo zavolejte.",
},
id: "faq-special-requests", title: "Mám speciální požadavek. Je to možné?", content: "Samozřejmě! Naši barberi jsou flexibilní a rádi vám vychází vstříc. Při objednávce si napište poznámku nebo zavolejte."},
]}
sideTitle="Časté Otázky"
sideDescription="Nenašli jste odpověď? Kontaktujte nás přímo."
buttons={[
{
text: "Zavolat",
href: "tel:+420123456789",
},
text: "Zavolat", href: "tel:+420123456789"},
]}
faqsAnimation="slide-up"
textPosition="left"
@@ -195,13 +128,9 @@ export default function ServicesPage() {
<FooterLogoReveal
logoText="REALcutz"
leftLink={{
text: "Objednat",
href: "/kontakt",
}}
text: "Objednat", href: "/kontakt"}}
rightLink={{
text: "Domů",
href: "/",
}}
text: "Domů", href: "/"}}
ariaLabel="Site footer - Stránka služby"
className="bg-[var(--foreground)] text-[var(--background)]"
containerClassName="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"