15 Commits

Author SHA1 Message Date
a8c7e12c68 Merge version_3 into main
Merge version_3 into main
2026-05-23 21:41:21 +00:00
98212d8098 Update src/app/page.tsx 2026-05-23 21:41:15 +00:00
178113cd1f Merge version_3 into main
Merge version_3 into main
2026-05-23 21:40:54 +00:00
0320e72851 Update src/app/page.tsx 2026-05-23 21:40:48 +00:00
1cc4150936 Merge version_3 into main
Merge version_3 into main
2026-05-23 21:40:25 +00:00
c5a751a4fc Update src/app/styles/variables.css 2026-05-23 21:40:22 +00:00
4e685e1738 Update src/app/page.tsx 2026-05-23 21:40:21 +00:00
4a20e03329 Merge version_2 into main
Merge version_2 into main
2026-05-23 21:23:51 +00:00
0af56f774b Update src/app/page.tsx 2026-05-23 21:23:48 +00:00
64f18026d7 Merge version_2 into main
Merge version_2 into main
2026-05-23 21:23:27 +00:00
e61d8bcaa9 Update src/app/page.tsx 2026-05-23 21:23:24 +00:00
5920ab8ba1 Merge version_2 into main
Merge version_2 into main
2026-05-23 21:23:00 +00:00
e76111620f Update src/app/styles/variables.css 2026-05-23 21:22:57 +00:00
80e5f61d48 Update src/app/page.tsx 2026-05-23 21:22:56 +00:00
4491de538b Merge version_1 into main
Merge version_1 into main
2026-05-23 21:19:56 +00:00
2 changed files with 116 additions and 154 deletions

View File

@@ -2,168 +2,130 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import ContactText from '@/components/sections/contact/ContactText'; import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; import FaqDouble from '@/components/sections/faq/FaqDouble';
import FeatureCardTwentyThree from '@/components/sections/feature/FeatureCardTwentyThree'; import FeatureCardTwentyThree from '@/components/sections/feature/FeatureCardTwentyThree';
import FooterCard from '@/components/sections/footer/FooterCard'; import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import HeroBillboard from '@/components/sections/hero/HeroBillboard'; import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery';
import InlineImageSplitTextAbout from '@/components/sections/about/InlineImageSplitTextAbout'; import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo'; import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import TestimonialCardThirteen from '@/components/sections/testimonial/TestimonialCardThirteen';
export default function LandingPage() { export default function NoirPage() {
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="hover-bubble" defaultButtonVariant="hover-bubble"
defaultTextAnimation="reveal-blur" defaultTextAnimation="reveal-blur"
borderRadius="soft" borderRadius="rounded"
contentWidth="smallMedium" contentWidth="medium"
sizing="mediumLargeSizeLargeTitles" sizing="largeSizeMediumTitles"
background="floatingGradient" background="none"
cardStyle="outline" cardStyle="solid"
primaryButtonStyle="shadow" primaryButtonStyle="flat"
secondaryButtonStyle="glass" secondaryButtonStyle="solid"
headingFontWeight="semibold" headingFontWeight="light"
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarStyleCentered <NavbarLayoutFloatingOverlay
navItems={[ navItems={[
{ name: "Home", id: "#hero" }, { name: "NOIR", id: "hero" },
{ name: "Sobre", id: "#about" }, { name: "AGENDAR", id: "contact" }
{ name: "Vestidos", id: "#products" }, ]}
{ name: "Críticas", id: "#testimonials" }, brandName="NOIR"
{ name: "Contactos", id: "#contact" } />
]} </div>
brandName="Noir Bridal"
/>
</div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroBillboard <HeroBillboardGallery
background={{ variant: "gradient-bars" }} title="NOIR"
title="A Elegância do Seu Momento Especial" description="Pure elegance, defined by silence."
description="Descubra a coleção exclusiva de vestidos de noiva na Noir, onde cada detalhe é desenhado para tornar o seu dia inesquecível." background={{ variant: "plain" }}
buttons={[ mediaItems={[
{ text: "Ver Coleção", href: "#products" }, { imageSrc: "https://images.unsplash.com/photo-1595874609805-4f4d1e2e4f0e?auto=format&fit=crop&q=80&w=1200" },
{ text: "Contactar", href: "#contact" } { imageSrc: "https://images.unsplash.com/photo-1529634519700-b8830733a1e4?auto=format&fit=crop&q=80&w=1200" },
]} { imageSrc: "https://images.unsplash.com/photo-1572804013309-59a88b7e92f1?auto=format&fit=crop&q=80&w=1200&_wi=1" }
imageSrc="http://img.b2bpic.net/free-photo/bridesmaid-stands-room_8353-7657.jpg" ]}
avatars={[ mediaAnimation="opacity"
{ src: "http://img.b2bpic.net/free-photo/beautician-styling-clients-hair_107420-94677.jpg", alt: "Beautician styling clients hair" }, buttons={[{ text: "AGENDAR", href: "#contact" }]}
{ src: "http://img.b2bpic.net/free-photo/women-making-preparations-wedding_23-2149184378.jpg", alt: "Women making preparations for wedding" }, />
{ src: "http://img.b2bpic.net/free-photo/empty-clothing-store-filled-casual-formal-wear-items-hanging-fashion-store-racks-hangers-full-with-fashionable-clothes-accessories-discount-small-business-commercial-activity_482257-65075.jpg", alt: "Empty clothing store interior" }, </div>
{ src: "http://img.b2bpic.net/free-photo/stylish-clothing-boutique-interior_23-2151961902.jpg", alt: "Stylish clothing boutique" },
{ src: "http://img.b2bpic.net/free-photo/bridesmaid-stands-room_8353-7657.jpg", alt: "Elegant bridal gown display" }
]}
marqueeItems={[
{ type: "text", text: "Alta Costura" },
{ type: "text", text: "Exclusividade" },
{ type: "text", text: "Atendimento VIP" },
{ type: "text", text: "Design Único" },
{ type: "text", text: "Luxo Bridal" }
]}
/>
</div>
<div id="about" data-section="about"> <div id="about" data-section="about">
<InlineImageSplitTextAbout <MetricSplitMediaAbout
useInvertedBackground={true} title="MANIFESTO"
heading={[ description="Absolute restraint. Funchal's sanctuary for quiet luxury. We believe in the power of simplicity, form, and texture. No excess, no noise. Just the silhouette."
{ type: "text", content: "Paixão pelo detalhe," }, metrics={[]}
{ type: "image", src: "http://img.b2bpic.net/free-photo/young-women-enjoying-bachelorette-party_23-2149278417.jpg", alt: "Sobre a Noir" }, useInvertedBackground={false}
{ type: "text", content: "Excelência em cada costura." } imageSrc="https://images.unsplash.com/photo-1515886657613-9f3515b0c78f?auto=format&fit=crop&q=80&w=800"
]} mediaAnimation="opacity"
/> />
</div> </div>
<div id="features" data-section="features"> <div id="services" data-section="features">
<FeatureCardTwentyThree <FeatureCardTwentyThree
animationType="slide-up" title="COLLECTION"
textboxLayout="split" description=""
useInvertedBackground={false} animationType="opacity"
features={[ textboxLayout="default"
{ id: "f1", title: "Ajustes de Precisão", tags: ["Costura", "Customizado"], imageSrc: "http://img.b2bpic.net/free-photo/shop-assistant-helping-female-customer-try-new-dress-woman-choosing-clothes-fashion-store-buying-clothes-boutique-concept_74855-11997.jpg" }, useInvertedBackground={false}
{ id: "f2", title: "Coleções Exclusivas", tags: ["Luxo", "Noiva"], imageSrc: "http://img.b2bpic.net/free-photo/sophisticated-tea-party-assortment_23-2149045913.jpg" }, features={[
{ id: "f3", title: "Consultoria Premium", tags: ["Estilo", "Serviço"], imageSrc: "http://img.b2bpic.net/free-photo/happy-friendly-seller-talking-customer-jewelry-store-woman-consulting-shop-assistant-showcase-shopping-service-concept_74855-11796.jpg" } { id: "s1", title: "I", tags: [], imageSrc: "https://images.unsplash.com/photo-1524504388940-b1c1726653e1?auto=format&fit=crop&q=80&w=1200" },
]} { id: "s2", title: "II", tags: [], imageSrc: "https://images.unsplash.com/photo-1490481651871-ab68de25d43d?auto=format&fit=crop&q=80&w=1200" },
title="O Nosso Diferencial" { id: "s3", title: "III", tags: [], imageSrc: "https://images.unsplash.com/photo-1558237952-b88d37446e16?auto=format&fit=crop&q=80&w=1200" },
description="Oferecemos um serviço personalizado para garantir que encontra o vestido que sempre sonhou." { id: "s4", title: "IV", tags: [], imageSrc: "https://images.unsplash.com/photo-1572804013309-59a88b7e92f1?auto=format&fit=crop&q=80&w=1200&_wi=2" }
/> ]}
</div> />
</div>
<div id="products" data-section="products"> <div id="testimonials" data-section="testimonials">
<ProductCardTwo <TestimonialCardSix
animationType="slide-up" title=""
textboxLayout="split" description=""
gridVariant="three-columns-all-equal-width" animationType="opacity"
useInvertedBackground={true} textboxLayout="default"
products={[ useInvertedBackground={false}
{ id: "p1", brand: "Noir", name: "Vestido Clássico Lace", price: "Sob consulta", rating: 5, reviewCount: "12", imageSrc: "http://img.b2bpic.net/free-photo/snow-queen-swing-posing_329181-4943.jpg" }, testimonials={[
{ id: "p2", brand: "Noir", name: "Vestido Silk Minimalista", price: "Sob consulta", rating: 5, reviewCount: "8", imageSrc: "http://img.b2bpic.net/free-photo/woman-lookin-his-wedding-dress-mirror_1157-188.jpg" }, { id: "1", name: "Anonymous", handle: "", testimonial: "A singular vision of beauty. Silence speaks volumes in their designs.", imageSrc: "" }
{ id: "p3", brand: "Noir", name: "Vestido Sparkling Glam", price: "Sob consulta", rating: 5, reviewCount: "15", imageSrc: "http://img.b2bpic.net/free-photo/arrow-with-lettering-beach-hangs-pastel-dresses_8353-783.jpg" }, ]}
{ id: "p4", brand: "Noir", name: "Vestido Boho Chic", price: "Sob consulta", rating: 5, reviewCount: "9", imageSrc: "http://img.b2bpic.net/free-photo/gorgeous-bride-standing-near-balcony-looking-big-window_132075-11764.jpg" }, />
{ id: "p5", brand: "Noir", name: "Vestido Satin Elegance", price: "Sob consulta", rating: 5, reviewCount: "11", imageSrc: "http://img.b2bpic.net/free-photo/young-happy-bride-smiling_624325-830.jpg" }, </div>
{ id: "p6", brand: "Noir", name: "Vestido Signature Bridal", price: "Sob consulta", rating: 5, reviewCount: "20", imageSrc: "http://img.b2bpic.net/free-photo/ladies-evening-dress-elegant-women-long-gown_1157-47537.jpg" }
]}
title="Vestidos de Sonho"
description="Explore a nossa curadoria de vestidos de noiva, com modelos variados para cada estilo de noiva."
/>
</div>
<div id="testimonials" data-section="testimonials"> <div id="visit" data-section="faq">
<TestimonialCardThirteen <FaqDouble
textboxLayout="split" title="EXPERIENCE"
animationType="slide-up" description="Three pillars of Noir."
useInvertedBackground={false} faqs={[
testimonials={[ { id: "a1", title: "Location", content: "Funchal, Madeira" },
{ id: "t1", name: "Ana Silva", handle: "@anasilva", testimonial: "O serviço é excelente e os vestidos de uma qualidade incomparável. Fizeram o meu dia especial.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/close-up-beautiful-bride-smiling_1153-774.jpg" }, { id: "a2", title: "Philosophy", content: "Quiet Luxury" },
{ id: "t2", name: "Maria Fernandes", handle: "@mariaf", testimonial: "Equipa muito atenciosa e profissional. Ajustes perfeitos, senti-me incrível no meu grande dia.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/front-view-beautiful-bride-indoors_23-2149640909.jpg" }, { id: "a3", title: "Service", content: "Private Appointments Only" }
{ id: "t3", name: "Sofia Costa", handle: "@sofiac", testimonial: "A melhor loja em Funchal para encontrar vestidos exclusivos. Recomendo vivamente a todas as noivas.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/young-women-enjoying-bachelorette-party_23-2149278400.jpg" }, ]}
{ id: "t4", name: "Joana Gomes", handle: "@joanag", testimonial: "Atendimento fantástico e vestidos lindos. Uma experiência memorável do início ao fim.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/closeup-portrait-happy-bride-white-bathrobe-morning-she-looks-bouquet-flowers-hands-smiling_197531-576.jpg" }, faqsAnimation="opacity"
{ id: "t5", name: "Cláudia Santos", handle: "@claudias", testimonial: "Encontrei exatamente o vestido que imaginava. Muito obrigada por toda a dedicação e carinho.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/young-woman-getting-ready-wedding_23-2149329140.jpg" } textboxLayout="split"
]} useInvertedBackground={false}
showRating={true} />
title="O Que Dizem as Nossas Noivas" </div>
description="Experiências inesquecíveis partilhadas pelas noivas que escolheram a Noir."
/>
</div>
<div id="faq" data-section="faq"> <div id="contact" data-section="contact">
<FaqSplitMedia <ContactSplitForm
textboxLayout="split" title="CONSULTATION"
useInvertedBackground={true} description="Appointment only."
faqs={[ useInvertedBackground={false}
{ id: "q1", title: "É necessário agendar visita?", content: "Sim, recomendamos o agendamento de uma visita para garantir um atendimento personalizado." }, inputs={[
{ id: "q2", title: "Quanto tempo demoram os ajustes?", content: "Os ajustes dependem da complexidade, geralmente entre 2 a 4 semanas." }, { name: "name", type: "text", placeholder: "Name" },
{ id: "q3", title: "Realizam entregas?", content: "Sim, realizamos entregas ao domicílio para maior conveniência." } { name: "email", type: "email", placeholder: "Email" }
]} ]}
mediaAnimation="slide-up" buttonText="SUBMIT"
title="Perguntas Frequentes" />
description="Esclareça as suas dúvidas antes de nos visitar." </div>
faqsAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-photo/young-women-enjoying-bachelorette-party_23-2149278417.jpg"
/>
</div>
<div id="contact" data-section="contact"> <div id="footer" data-section="footer">
<ContactText <FooterBaseCard
useInvertedBackground={false} logoText="NOIR"
background={{ variant: "sparkles-gradient" }} columns={[]}
text="Estamos prontos para ajudar a realizar o seu sonho. Visite-nos na Rua 31 de Janeiro ou entre em contacto conosco." copyrightText="© 2025 NOIR"
buttons={[ />
{ text: "Ligar: 967 088 444", href: "tel:967088444" } </div>
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="Noir"
copyrightText="© 2025 Noir Bridal | Todos os direitos reservados."
/>
</div>
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #fcf6ec; --background: #000000;
--card: #f3ede2; --card: #000000;
--foreground: #2e2521; --foreground: #FAFAFA;
--primary-cta: #2e2521; --primary-cta: #FAFAFA;
--primary-cta-text: #fcf6ec; --primary-cta-text: #fcf6ec;
--secondary-cta: #ffffff; --secondary-cta: #000000;
--secondary-cta-text: #2e2521; --secondary-cta-text: #2e2521;
--accent: #b2a28b; --accent: #888888;
--background-accent: #b2a28b; --background-accent: #1a1a1a;
/* 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);