Merge version_9_1782113871773 into main #9
@@ -1,43 +1,19 @@
|
||||
import Button from "@/components/ui/Button";
|
||||
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import AvatarGroup from "@/components/ui/AvatarGroup";
|
||||
import { Check } from "lucide-react";
|
||||
import GridOrCarousel from "@/components/ui/GridOrCarousel";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function PricingPage() {
|
||||
import React from 'react';
|
||||
import HeroBillboardSection from './PricingPage/sections/HeroBillboard';
|
||||
import PricingSplitCardsSection from './PricingPage/sections/PricingSplitCards';
|
||||
import PricingSimpleCardsSection from './PricingPage/sections/PricingSimpleCards';
|
||||
|
||||
export default function PricingPage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div data-webild-section="HeroBillboard"><section aria-label="Hero section" className="relative pt-25 pb-20 md:pt-30"><HeroBackgroundSlot /><div className="flex flex-col gap-12 md:gap-15 w-content-width mx-auto"><div className="flex flex-col items-center gap-3 text-center"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Service Menu</p></div><TextAnimation text="Making Your Hands Feel" variant="fade" gradientText={true} tag="h1" className="md:max-w-8/10 text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Explore our curated selection of gel treatments, extensions, and manicures. Experience architectural precision and the quiet beauty of Japanese minimalism." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Book Appointment" href="#booking" variant="primary" /><Button text="View Pricing" href="#services" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="fade-blur" delay={0.2} className="w-full p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/close-up-woman-getting-manicure_23-2148873327.jpg" className="aspect-4/5 md:aspect-video" /></ScrollReveal></div></section></div>
|
||||
<div data-webild-section="PricingSplitCards"><section aria-label="Pricing section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center gap-2 w-content-width mx-auto"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Services & Pricing</p></div><TextAnimation text="Making your hands feel" variant="fade" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Discover our range of meticulous nail services, from natural gel overlays to architectural extensions, all performed with Japanese precision and care." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Book an Appointment" href="/booking" variant="primary" /><Button text="View Gallery" href="/gallery" variant="secondary" animationDelay={0.1} /></div></div><div className="flex flex-col gap-5 w-content-width mx-auto"><ScrollReveal variant="fade" key="Natural Care" className="flex flex-col md:flex-row gap-5 md:gap-12 p-5 md:p-12 card rounded"><div className="flex flex-col gap-2 justify-between w-full md:w-1/2"><div className="flex flex-col gap-2"><div className="px-3 py-1 mb-2 w-fit text-sm card rounded"><p>Natural Care</p></div><div className="flex items-baseline gap-1"><span className="text-5xl md:text-6xl font-semibold">From €65</span><span className="text-2xl font-medium">per session</span></div><p className="text-xl md:text-2xl leading-snug text-balance">Enhance your natural nails with our strengthening gel overlays and meticulous cuticle care.</p></div><div className="flex flex-col gap-3"><Button text="Book Natural Gel" href="/booking" variant="primary" className="w-full" /></div></div><div className="w-full h-px bg-foreground/20 md:hidden" /><div className="flex flex-col gap-3 w-full md:w-1/2"><h3 className="text-xl font-medium truncate">Included Services</h3><div className="w-full h-px bg-foreground/5" /><div key="Japanese manicure techniques" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Japanese manicure techniques</span></div>
|
||||
<div key="Strengthening gel overlay" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Strengthening gel overlay</span></div>
|
||||
<div key="Precision cuticle care" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Precision cuticle care</span></div>
|
||||
<div key="Custom color application" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Custom color application</span></div>
|
||||
<div key="Nourishing oil treatment" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Nourishing oil treatment</span></div></div></ScrollReveal>
|
||||
<ScrollReveal variant="fade" key="Extensions" className="flex flex-col md:flex-row gap-5 md:gap-12 p-5 md:p-12 card rounded"><div className="flex flex-col gap-2 justify-between w-full md:w-1/2"><div className="flex flex-col gap-2"><div className="px-3 py-1 mb-2 w-fit text-sm card rounded"><p>Extensions</p></div><div className="flex items-baseline gap-1"><span className="text-5xl md:text-6xl font-semibold">From €95</span><span className="text-2xl font-medium">per session</span></div><p className="text-xl md:text-2xl leading-snug text-balance">Flawless, durable nail extensions crafted with architectural precision for a natural look.</p></div><div className="flex flex-col gap-3"><Button text="Book Extensions" href="/booking" variant="primary" className="w-full" /></div></div><div className="w-full h-px bg-foreground/20 md:hidden" /><div className="flex flex-col gap-3 w-full md:w-1/2"><h3 className="text-xl font-medium truncate">Included Services</h3><div className="w-full h-px bg-foreground/5" /><div key="Custom length and shape" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Custom length and shape</span></div>
|
||||
<div key="Architectural gel building" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Architectural gel building</span></div>
|
||||
<div key="Seamless cuticle blending" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Seamless cuticle blending</span></div>
|
||||
<div key="Minimalist art options" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Minimalist art options</span></div>
|
||||
<div key="Long-lasting finish" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Long-lasting finish</span></div></div></ScrollReveal>
|
||||
<ScrollReveal variant="fade" key="Bridal" className="flex flex-col md:flex-row gap-5 md:gap-12 p-5 md:p-12 card rounded"><div className="flex flex-col gap-2 justify-between w-full md:w-1/2"><div className="flex flex-col gap-2"><div className="px-3 py-1 mb-2 w-fit text-sm card rounded"><p>Bridal</p></div><div className="flex items-baseline gap-1"><span className="text-5xl md:text-6xl font-semibold">From €120</span><span className="text-2xl font-medium">per session</span></div><p className="text-xl md:text-2xl leading-snug text-balance">Bespoke nail artistry designed to complement your special day with serene elegance.</p></div><div className="flex flex-col gap-3"><Button text="Book Bridal" href="/booking" variant="primary" className="w-full" /></div></div><div className="w-full h-px bg-foreground/20 md:hidden" /><div className="flex flex-col gap-3 w-full md:w-1/2"><h3 className="text-xl font-medium truncate">Included Services</h3><div className="w-full h-px bg-foreground/5" /><div key="In-depth consultation" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">In-depth consultation</span></div>
|
||||
<div key="Trial session available" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Trial session available</span></div>
|
||||
<div key="Intricate minimalist art" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Intricate minimalist art</span></div>
|
||||
<div key="Premium gel products" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Premium gel products</span></div>
|
||||
<div key="Relaxing hand massage" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Relaxing hand massage</span></div></div></ScrollReveal></div></div></section></div>
|
||||
<div data-webild-section="PricingSimpleCards"><section aria-label="Pricing section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center w-content-width mx-auto gap-2"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Services</p></div><TextAnimation text="Making your hands feel" variant="fade" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Discover our range of meticulous nail services, from natural gel overlays to architectural extensions, designed for serenity and health." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Book Appointment" href="/booking" variant="primary" /><Button text="View Gallery" href="/gallery" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="fade"><GridOrCarousel><div key="Gel Manicure" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Gel Manicure</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">From €65</span><span className="text-base font-medium">A gentle, long-lasting gel application focusing on natural nail health.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Detailed cuticle care" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Detailed cuticle care</span></div>
|
||||
<div key="Strengthening base coat" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Strengthening base coat</span></div>
|
||||
<div key="Flawless color application" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Flawless color application</span></div>
|
||||
<div key="Nourishing oil finish" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Nourishing oil finish</span></div></div></div>
|
||||
<div key="Extensions" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Extensions</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">From €95</span><span className="text-base font-medium">Precision-sculpted extensions for elegant length and perfect structure.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Custom form fitting" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Custom form fitting</span></div>
|
||||
<div key="Architectural shaping" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Architectural shaping</span></div>
|
||||
<div key="Minimalist finish" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Minimalist finish</span></div>
|
||||
<div key="Up to 4 weeks wear" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Up to 4 weeks wear</span></div></div></div>
|
||||
<div key="Wedding Nails" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Wedding Nails</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">From €120</span><span className="text-base font-medium">Bespoke nail artistry for your most important day, tailored to your style.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="In-depth consultation" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">In-depth consultation</span></div>
|
||||
<div key="Custom color mixing" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Custom color mixing</span></div>
|
||||
<div key="Delicate nail art" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Delicate nail art</span></div>
|
||||
<div key="Premium care products" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Premium care products</span></div></div></div></GridOrCarousel></ScrollReveal></div></section></div>
|
||||
<>
|
||||
<HeroBillboardSection />
|
||||
<PricingSplitCardsSection />
|
||||
<PricingSimpleCardsSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
15
src/pages/PricingPage/sections/HeroBillboard.tsx
Normal file
15
src/pages/PricingPage/sections/HeroBillboard.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "HeroBillboard" section.
|
||||
|
||||
import React from 'react';
|
||||
import Button from "@/components/ui/Button";
|
||||
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
|
||||
export default function HeroBillboardSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="HeroBillboard"><section aria-label="Hero section" className="relative pt-25 pb-20 md:pt-30"><HeroBackgroundSlot /><div className="flex flex-col gap-12 md:gap-15 w-content-width mx-auto"><div className="flex flex-col items-center gap-3 text-center"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Service Menu</p></div><TextAnimation text="Making Your Hands Feel" variant="fade" gradientText={true} tag="h1" className="md:max-w-8/10 text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Explore our curated selection of gel treatments, extensions, and manicures. Experience architectural precision and the quiet beauty of Japanese minimalism." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Book Appointment" href="#booking" variant="primary" /><Button text="View Pricing" href="#services" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="fade-blur" delay={0.2} className="w-full p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/close-up-woman-getting-manicure_23-2148873327.jpg" className="aspect-4/5 md:aspect-video" /></ScrollReveal></div></section></div>
|
||||
);
|
||||
}
|
||||
18
src/pages/PricingPage/sections/PricingSimpleCards.tsx
Normal file
18
src/pages/PricingPage/sections/PricingSimpleCards.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// Created by add_section_from_catalog (ProductVariantCards).
|
||||
|
||||
import React from 'react';
|
||||
import ProductVariantCards from '@/components/sections/product/ProductVariantCards';
|
||||
|
||||
export default function PricingSimpleCardsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="pricing-simple-cards" id="pricing-simple-cards">
|
||||
<ProductVariantCards
|
||||
description="Tutustu kattavaan kynsipalveluiden valikoimaamme ja varaa aikasi. Valitse itsellesi sopivin palvelu ja anna meidän hemmotella käsiäsi."
|
||||
tag="Hinnasto"
|
||||
primaryButton={{"text":"Varaa aika","href":"/booking"}}
|
||||
products={[{"name":"Geelilakkaus uudet / gel polish new","variant":"Geelilakkaus antaa upean ja kestävän lakan jopa 4-5 viikoksi. Ei sisällä vanhan geelilakkauksen poistoa tai huoltoa.","imageSrc":"https://images.unsplash.com/photo-1519014816548-bf5fe059e98b?auto=format&fit=crop&q=80","price":"alk. 60€"},{"imageSrc":"https://images.unsplash.com/photo-1522337660859-02fbefca4702?auto=format&fit=crop&q=80","name":"Rakennekynnet huolto / Hard gel fill","variant":"Geelilakkaus huolto. Sisältää kynsinauhojen syväpuhdistuksen. Kestää hyvänä jopa 6-7 viikkoa.","price":"alk. 80€"},{"price":"alk. 70€","name":"Geelilakkaus huolto / gel polish fill","variant":"Geelilakkaus antaa upean ja kestävän lakan jopa 6 viikoksi. Ei sisällä vanhan lakan poistoa/huoltoa.","imageSrc":"https://images.unsplash.com/photo-1604654894610-df63bc536371?auto=format&fit=crop&q=80"},{"price":"alk. 85€","variant":"Rakennekynnet tehdään omien kynsien päälle geelillä. Pidennyskynsillä saa pidennettyä oman kynnen pituutta.","name":"Rakennekynnet uudet / New set tip","imageSrc":"https://images.unsplash.com/photo-1519014816548-bf5fe059e98b?auto=format&fit=crop&q=80"},{"imageSrc":"https://images.unsplash.com/photo-1522337660859-02fbefca4702?auto=format&fit=crop&q=80","name":"Geelilakkaus poisto / gel polish remove","variant":"Poistamme vain omat laadukkaat tuotteemme.","price":"alk. 30€"},{"variant":"Rakennekynnet tehdään omien kynsien päälle geelillä tai akryylillä. Pidennyskynsillä saa pidennettyä oman kynnen pituutta.","name":"Rakennekynnet uudet (Pitkät)","imageSrc":"https://images.unsplash.com/photo-1604654894610-df63bc536371?auto=format&fit=crop&q=80","price":"alk. 95€"},{"imageSrc":"https://images.unsplash.com/photo-1519014816548-bf5fe059e98b?auto=format&fit=crop&q=80","name":"Extension remove","variant":"Removing gel, shaping.","price":"30€"},{"imageSrc":"https://images.unsplash.com/photo-1522337660859-02fbefca4702?auto=format&fit=crop&q=80","variant":"Shape, deep cleaning cuticle, shine, cream.","name":"Manicure","price":"40€"},{"imageSrc":"https://images.unsplash.com/photo-1604654894610-df63bc536371?auto=format&fit=crop&q=80","variant":"Exfoliation, massage, scrub, hand cream, trimming of nails and cuticles.","name":"Spa Manicure","price":"alk. 60€"},{"price":"60€","imageSrc":"https://images.unsplash.com/photo-1519014816548-bf5fe059e98b?auto=format&fit=crop&q=80","name":"Wedding Nails / Geelilakkaus Uudet","variant":"Make your day special trusting your hands me! 😍🪄"},{"name":"Wedding Nails / Rakennekynnet uudet","variant":"Make your day special trusting your hands me! 🥰🪄","imageSrc":"https://images.unsplash.com/photo-1522337660859-02fbefca4702?auto=format&fit=crop&q=80","price":"85€"},{"price":"alk. 5€","variant":"Nail repair (5€), Hailey Bieber Nails (10€), French/ombre/design (20€), Removal of old gel (15€)","name":"Lisäpalvelut","imageSrc":"https://images.unsplash.com/photo-1604654894610-df63bc536371?auto=format&fit=crop&q=80"}]}
|
||||
title="Kynnet ja kynsien hinnat"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/PricingPage/sections/PricingSplitCards.tsx
Normal file
28
src/pages/PricingPage/sections/PricingSplitCards.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "PricingSplitCards" section.
|
||||
|
||||
import React from 'react';
|
||||
import Button from "@/components/ui/Button";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import { Check } from "lucide-react";
|
||||
|
||||
export default function PricingSplitCardsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="PricingSplitCards"><section aria-label="Pricing section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center gap-2 w-content-width mx-auto"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Services & Pricing</p></div><TextAnimation text="Making your hands feel" variant="fade" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Discover our range of meticulous nail services, from natural gel overlays to architectural extensions, all performed with Japanese precision and care." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Book an Appointment" href="/booking" variant="primary" /><Button text="View Gallery" href="/gallery" variant="secondary" animationDelay={0.1} /></div></div><div className="flex flex-col gap-5 w-content-width mx-auto"><ScrollReveal variant="fade" key="Natural Care" className="flex flex-col md:flex-row gap-5 md:gap-12 p-5 md:p-12 card rounded"><div className="flex flex-col gap-2 justify-between w-full md:w-1/2"><div className="flex flex-col gap-2"><div className="px-3 py-1 mb-2 w-fit text-sm card rounded"><p>Natural Care</p></div><div className="flex items-baseline gap-1"><span className="text-5xl md:text-6xl font-semibold">From €65</span><span className="text-2xl font-medium">per session</span></div><p className="text-xl md:text-2xl leading-snug text-balance">Enhance your natural nails with our strengthening gel overlays and meticulous cuticle care.</p></div><div className="flex flex-col gap-3"><Button text="Book Natural Gel" href="/booking" variant="primary" className="w-full" /></div></div><div className="w-full h-px bg-foreground/20 md:hidden" /><div className="flex flex-col gap-3 w-full md:w-1/2"><h3 className="text-xl font-medium truncate">Included Services</h3><div className="w-full h-px bg-foreground/5" /><div key="Japanese manicure techniques" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Japanese manicure techniques</span></div>
|
||||
<div key="Strengthening gel overlay" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Strengthening gel overlay</span></div>
|
||||
<div key="Precision cuticle care" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Precision cuticle care</span></div>
|
||||
<div key="Custom color application" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Custom color application</span></div>
|
||||
<div key="Nourishing oil treatment" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Nourishing oil treatment</span></div></div></ScrollReveal>
|
||||
<ScrollReveal variant="fade" key="Extensions" className="flex flex-col md:flex-row gap-5 md:gap-12 p-5 md:p-12 card rounded"><div className="flex flex-col gap-2 justify-between w-full md:w-1/2"><div className="flex flex-col gap-2"><div className="px-3 py-1 mb-2 w-fit text-sm card rounded"><p>Extensions</p></div><div className="flex items-baseline gap-1"><span className="text-5xl md:text-6xl font-semibold">From €95</span><span className="text-2xl font-medium">per session</span></div><p className="text-xl md:text-2xl leading-snug text-balance">Flawless, durable nail extensions crafted with architectural precision for a natural look.</p></div><div className="flex flex-col gap-3"><Button text="Book Extensions" href="/booking" variant="primary" className="w-full" /></div></div><div className="w-full h-px bg-foreground/20 md:hidden" /><div className="flex flex-col gap-3 w-full md:w-1/2"><h3 className="text-xl font-medium truncate">Included Services</h3><div className="w-full h-px bg-foreground/5" /><div key="Custom length and shape" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Custom length and shape</span></div>
|
||||
<div key="Architectural gel building" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Architectural gel building</span></div>
|
||||
<div key="Seamless cuticle blending" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Seamless cuticle blending</span></div>
|
||||
<div key="Minimalist art options" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Minimalist art options</span></div>
|
||||
<div key="Long-lasting finish" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Long-lasting finish</span></div></div></ScrollReveal>
|
||||
<ScrollReveal variant="fade" key="Bridal" className="flex flex-col md:flex-row gap-5 md:gap-12 p-5 md:p-12 card rounded"><div className="flex flex-col gap-2 justify-between w-full md:w-1/2"><div className="flex flex-col gap-2"><div className="px-3 py-1 mb-2 w-fit text-sm card rounded"><p>Bridal</p></div><div className="flex items-baseline gap-1"><span className="text-5xl md:text-6xl font-semibold">From €120</span><span className="text-2xl font-medium">per session</span></div><p className="text-xl md:text-2xl leading-snug text-balance">Bespoke nail artistry designed to complement your special day with serene elegance.</p></div><div className="flex flex-col gap-3"><Button text="Book Bridal" href="/booking" variant="primary" className="w-full" /></div></div><div className="w-full h-px bg-foreground/20 md:hidden" /><div className="flex flex-col gap-3 w-full md:w-1/2"><h3 className="text-xl font-medium truncate">Included Services</h3><div className="w-full h-px bg-foreground/5" /><div key="In-depth consultation" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">In-depth consultation</span></div>
|
||||
<div key="Trial session available" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Trial session available</span></div>
|
||||
<div key="Intricate minimalist art" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Intricate minimalist art</span></div>
|
||||
<div key="Premium gel products" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Premium gel products</span></div>
|
||||
<div key="Relaxing hand massage" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base leading-snug">Relaxing hand massage</span></div></div></ScrollReveal></div></div></section></div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user