3 Commits

Author SHA1 Message Date
9a8e27c1f8 Update src/app/page.tsx 2026-05-11 01:29:48 +00:00
48e01e16a7 Update src/app/styles/variables.css 2026-05-11 01:29:19 +00:00
f4a944fb66 Update src/app/page.tsx 2026-05-11 01:29:18 +00:00
2 changed files with 83 additions and 271 deletions

View File

@@ -2,163 +2,80 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import ContactCTA from '@/components/sections/contact/ContactCTA'; import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; import FaqDouble from '@/components/sections/faq/FaqDouble';
import FeatureHoverPattern from '@/components/sections/feature/featureHoverPattern/FeatureHoverPattern'; import FeatureBorderGlow from '@/components/sections/feature/featureBorderGlow/FeatureBorderGlow';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery'; import HeroLogo from '@/components/sections/hero/HeroLogo';
import InlineImageSplitTextAbout from '@/components/sections/about/InlineImageSplitTextAbout'; import MediaAbout from '@/components/sections/about/MediaAbout';
import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo'; import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline'; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne'; import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne'; import TestimonialCardThirteen from '@/components/sections/testimonial/TestimonialCardThirteen';
import { Award, CheckCircle, Shield, Sparkles, Star, Zap } from "lucide-react"; import { Award, CheckCircle, Shield, Sparkles, Star, Zap } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="expand-hover" defaultButtonVariant="expand-hover"
defaultTextAnimation="background-highlight" defaultTextAnimation="reveal-blur"
borderRadius="rounded" borderRadius="soft"
contentWidth="medium" contentWidth="medium"
sizing="largeSmallSizeMediumTitles" sizing="largeSizeMediumTitles"
background="aurora" background="noise"
cardStyle="inset" cardStyle="glass-elevated"
primaryButtonStyle="gradient" primaryButtonStyle="primary-glow"
secondaryButtonStyle="radial-glow" secondaryButtonStyle="glass"
headingFontWeight="medium" headingFontWeight="semibold"
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingInline <NavbarStyleCentered
navItems={[ navItems={[
{ { name: "Inicio", id: "hero" },
name: "Inicio", { name: "Nosotros", id: "about" },
id: "hero", { name: "Servicios", id: "services" },
}, { name: "Contacto", id: "contact" },
{
name: "Nosotros",
id: "about",
},
{
name: "Servicios",
id: "services",
},
{
name: "Contacto",
id: "contact",
},
]} ]}
brandName="Sonrisa Perfecta" brandName="Sonrisa Perfecta"
button={{ button={{
text: "Agendar Cita", text: "Agendar Cita", href: "#contact"}}
href: "#contact",
}}
/> />
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroBillboardGallery <HeroLogo
background={{ logoText="Sonrisa Perfecta: Cuidamos tu sonrisa con tecnología y calidez humana"
variant: "gradient-bars",
}}
title="Sonrisa Perfecta: Cuidamos tu sonrisa con tecnología y calidez humana"
description="Expertos en salud bucal dedicados a devolverte la seguridad y confianza de una sonrisa saludable y hermosa." description="Expertos en salud bucal dedicados a devolverte la seguridad y confianza de una sonrisa saludable y hermosa."
buttons={[ buttons={[
{ { text: "Agendar Cita", href: "#contact" },
text: "Agendar Cita", { text: "Ver Servicios", href: "#services" },
href: "#contact",
},
{
text: "Ver Servicios",
href: "#services",
},
]} ]}
mediaItems={[ imageSrc="http://img.b2bpic.net/free-photo/empty-space-with-maquette-table-design-urban-property-plan-building-model-layout-nobody-office-with-architecture-project-real-estate-development-presentation_482257-29970.jpg"
{
imageSrc: "http://img.b2bpic.net/free-photo/empty-space-with-maquette-table-design-urban-property-plan-building-model-layout-nobody-office-with-architecture-project-real-estate-development-presentation_482257-29970.jpg",
imageAlt: "dental clinic happy patient smile",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/dental-tools-equipment-white-background_1232-4416.jpg",
imageAlt: "dental equipment modern tools",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-smiling-dentist-office_23-2148338112.jpg",
imageAlt: "dentist consultation friendly atmosphere",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/empty-hospital-reception-counter-hallway-waiting-room-seats-medical-examination-appointment-with-physician-registration-desk-with-waiting-area-help-patients-with-disease-diagnosis_482257-51632.jpg",
imageAlt: "Empty hospital reception counter in hallway and waiting room seats",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-dentist-wearing-face-mask_23-2149164285.jpg",
imageAlt: "Full shot dentist wearing face mask",
},
]}
mediaAnimation="slide-up"
/> />
</div> </div>
<div id="about" data-section="about"> <div id="about" data-section="about">
<InlineImageSplitTextAbout <MediaAbout
title="Compromiso con tu salud"
description="Más de 15 años brindando atención odontológica de primer nivel con un enfoque centrado en el paciente y la innovación constante en nuestros tratamientos."
imageSrc="http://img.b2bpic.net/free-photo/portrait-male-doctor-with-uniform-using-laptop-cabinet-working-checkup-appointments-desk-health-specialist-with-stethoscope-helping-with-prescription-medicine-treatment_482257-39448.jpg"
useInvertedBackground={false} useInvertedBackground={false}
heading={[
{
type: "text",
content: "Compromiso con tu salud",
},
{
type: "image",
src: "http://img.b2bpic.net/free-photo/portrait-male-doctor-with-uniform-using-laptop-cabinet-working-checkup-appointments-desk-health-specialist-with-stethoscope-helping-with-prescription-medicine-treatment_482257-39448.jpg",
alt: "dentist working professional clinic",
},
]}
buttons={[
{
text: "Conoce más",
href: "#contact",
},
]}
/> />
</div> </div>
<div id="services" data-section="services"> <div id="services" data-section="services">
<FeatureHoverPattern <FeatureBorderGlow
animationType="slide-up" animationType="slide-up"
textboxLayout="split" textboxLayout="split"
useInvertedBackground={false} useInvertedBackground={false}
features={[ features={[
{ { title: "Limpieza Dental", description: "Eliminación profunda de placa y sarro para una boca fresca.", icon: Sparkles },
title: "Limpieza Dental", { title: "Blanqueamiento", description: "Recupera el tono natural y brillante de tu sonrisa.", icon: Star },
description: "Eliminación profunda de placa y sarro para una boca fresca.", { title: "Ortodoncia", description: "Corrección de alineación dental para funcionalidad y estética.", icon: CheckCircle },
icon: Sparkles, { title: "Implantes", description: "Soluciones duraderas para recuperar piezas perdidas.", icon: Shield },
}, { title: "Endodoncia", description: "Tratamiento de conducto con tecnología indolora.", icon: Zap },
{ { title: "Odontología General", description: "Prevención y salud bucal integral en cada visita.", icon: Award },
title: "Blanqueamiento",
description: "Recupera el tono natural y brillante de tu sonrisa.",
icon: Star,
},
{
title: "Ortodoncia",
description: "Corrección de alineación dental para funcionalidad y estética.",
icon: CheckCircle,
},
{
title: "Implantes",
description: "Soluciones duraderas para recuperar piezas perdidas.",
icon: Shield,
},
{
title: "Endodoncia",
description: "Tratamiento de conducto con tecnología indolora.",
icon: Zap,
},
{
title: "Odontología General",
description: "Prevención y salud bucal integral en cada visita.",
icon: Award,
},
]} ]}
title="Nuestros Servicios" title="Nuestros Servicios"
description="Tratamientos odontológicos avanzados para toda la familia." description="Tratamientos odontológicos avanzados para toda la familia."
@@ -167,185 +84,80 @@ export default function LandingPage() {
<div id="social-proof" data-section="social-proof"> <div id="social-proof" data-section="social-proof">
<SocialProofOne <SocialProofOne
names={["Asociación Dental", "Certificación Salud", "Premio Calidad", "Aval Médico", "Tecnología Avanzada", "Seguridad Paciente", "Confianza Total"]}
title="Nuestras Certificaciones"
description="Instituciones que avalan nuestra calidad y servicio."
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
names={[
"Asociación Dental",
"Certificación Salud",
"Premio Calidad",
"Aval Médico",
"Tecnología Avanzada",
"Seguridad Paciente",
"Confianza Total",
]}
title="Nuestras Certificaciones"
description="Contamos con los más altos estándares de calidad y seguridad para tu tranquilidad."
/> />
</div> </div>
<div id="testimonials" data-section="testimonials"> <div id="testimonials" data-section="testimonials">
<TestimonialCardOne <TestimonialCardThirteen
animationType="slide-up" animationType="slide-up"
showRating={true}
textboxLayout="default" textboxLayout="default"
gridVariant="asymmetric-60-wide-40-narrow"
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[
{
id: "1",
name: "María González",
role: "Paciente",
company: "Sonrisa Perfecta",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/happy-african-american-healthcare-expert-looking-camera_637285-11471.jpg",
},
{
id: "2",
name: "Juan Pérez",
role: "Paciente",
company: "Sonrisa Perfecta",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/half-profile-image-cheerful-attractive-middle-aged-woman-with-short-gray-hair-wrinkles-having-fun-laughing-joke-smiling-broadly-camera_343059-1891.jpg",
},
{
id: "3",
name: "Lucía Ruiz",
role: "Paciente",
company: "Sonrisa Perfecta",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-woman-smiling-confident-standing-street_839833-16107.jpg",
},
{
id: "4",
name: "Carlos Mendieta",
role: "Paciente",
company: "Sonrisa Perfecta",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/food-lifestyle-concept-beautiful-woman-cooking-kitchen-holding-raw-zucchini-smiling_1258-193230.jpg",
},
{
id: "5",
name: "Ana López",
role: "Paciente",
company: "Sonrisa Perfecta",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-male-doctor-patient_1170-2163.jpg",
},
]}
title="Lo que dicen nuestros pacientes" title="Lo que dicen nuestros pacientes"
description="Más de 10 años creando sonrisas felices." description="Historias de sonrisas renovadas gracias a nuestra atención especializada."
testimonials={[
{ id: "1", name: "María González", handle: "@mariag", testimonial: "El trato fue excelente y los resultados superaron mis expectativas.", rating: 5 },
{ id: "2", name: "Juan Pérez", handle: "@juanp", testimonial: "Muy profesional, sin dolor y con tecnología de vanguardia.", rating: 5 },
{ id: "3", name: "Lucía Ruiz", handle: "@luciar", testimonial: "La mejor experiencia dental que he tenido en años.", rating: 5 },
]}
/> />
</div> </div>
<div id="metrics" data-section="metrics"> <div id="metrics" data-section="metrics">
<MetricCardTwo <MetricCardEleven
animationType="slide-up" animationType="slide-up"
textboxLayout="default" textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false} useInvertedBackground={false}
metrics={[
{
id: "1",
value: "+10k",
description: "Pacientes felices",
},
{
id: "2",
value: "15+",
description: "Años de experiencia",
},
{
id: "3",
value: "100%",
description: "Trato personalizado",
},
]}
title="Logros de la clínica" title="Logros de la clínica"
description="Números que respaldan nuestra atención." description="Resultados que nos avalan en nuestra trayectoria."
metrics={[
{ id: "1", value: "+10k", title: "Pacientes felices", description: "Confianza construida a través de los años.", imageSrc: "http://img.b2bpic.net/free-photo/happy-african-american-healthcare-expert-looking-camera_637285-11471.jpg" },
{ id: "2", value: "15+", title: "Años de experiencia", description: "Compromiso ininterrumpido con la salud dental.", imageSrc: "http://img.b2bpic.net/free-photo/half-profile-image-cheerful-attractive-middle-aged-woman-with-short-gray-hair-wrinkles-having-fun-laughing-joke-smiling-broadly-camera_343059-1891.jpg" },
{ id: "3", value: "100%", title: "Atención Personalizada", description: "Cada sonrisa es tratada como única y especial.", imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-woman-smiling-confident-standing-street_839833-16107.jpg" },
]}
/> />
</div> </div>
<div id="faq" data-section="faq"> <div id="faq" data-section="faq">
<FaqSplitMedia <FaqDouble
title="Preguntas Frecuentes"
description="Resolvemos tus inquietudes para que tu visita sea cómoda y segura."
faqs={[
{ id: "1", title: "¿Cada cuánto debo ir al dentista?", content: "Recomendamos una revisión cada 6 meses." },
{ id: "2", title: "¿El blanqueamiento es seguro?", content: "Sí, utilizamos productos aprobados por especialistas." },
{ id: "3", title: "¿Aceptan urgencias?", content: "Sí, contamos con atención inmediata para emergencias." },
]}
faqsAnimation="slide-up"
textboxLayout="split" textboxLayout="split"
useInvertedBackground={false} useInvertedBackground={false}
faqs={[
{
id: "1",
title: "¿Cada cuánto debo ir al dentista?",
content: "Se recomienda cada 6 meses para revisiones preventivas.",
},
{
id: "2",
title: "¿El blanqueamiento duele?",
content: "No, es un procedimiento seguro y cómodo bajo supervisión profesional.",
},
{
id: "3",
title: "¿Aceptan urgencias?",
content: "Sí, tenemos horarios especiales para atender tus emergencias.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/close-up-doctor-patient-clinic_23-2149103571.jpg"
mediaAnimation="slide-up"
title="Preguntas Frecuentes"
description="Resolvemos tus dudas principales sobre salud dental."
faqsAnimation="slide-up"
imageAlt="dental health questions consultation"
/> />
</div> </div>
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactCTA <ContactSplitForm
useInvertedBackground={false}
background={{
variant: "plain",
}}
tag="Contacto"
title="Agenda tu cita hoy" title="Agenda tu cita hoy"
description="Estamos listos para atenderte en nuestra clínica. Escríbenos por WhatsApp o déjanos un mensaje." description="Estamos listos para atenderte en nuestra clínica. Envíanos tus detalles y nos pondremos en contacto."
buttons={[ inputs={[
{ { name: "nombre", type: "text", placeholder: "Tu nombre completo" },
text: "WhatsApp", { name: "email", type: "email", placeholder: "Tu correo electrónico" }
href: "https://wa.me/123456789",
},
{
text: "Llamar ahora",
href: "tel:123456789",
},
]} ]}
textarea={{ name: "mensaje", placeholder: "Cuéntanos cómo podemos ayudarte" }}
imageSrc="http://img.b2bpic.net/free-photo/close-up-doctor-patient-clinic_23-2149103571.jpg"
useInvertedBackground={false}
/> />
</div> </div>
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterBaseCard <FooterBaseReveal
logoText="Sonrisa Perfecta" logoText="Sonrisa Perfecta"
columns={[ columns={[
{ { title: "Navegación", items: [{ label: "Inicio", href: "#hero" }, { label: "Servicios", href: "#services" }] },
title: "Navegación", { title: "Legal", items: [{ label: "Privacidad", href: "#" }, { label: "Términos", href: "#" }] },
items: [
{
label: "Inicio",
href: "#hero",
},
{
label: "Servicios",
href: "#services",
},
],
},
{
title: "Legal",
items: [
{
label: "Privacidad",
href: "#",
},
{
label: "Términos",
href: "#",
},
],
},
]} ]}
/> />
</div> </div>

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #f5faff; --background: #fbfbfb;
--card: #f1f8ff; --card: #f2f2f2;
--foreground: #001122; --foreground: #1a1a1a;
--primary-cta: #15479c; --primary-cta: #1c3c5c;
--primary-cta-text: #f5faff; --primary-cta-text: #f5faff;
--secondary-cta: #ffffff; --secondary-cta: #ffffff;
--secondary-cta-text: #001122; --secondary-cta-text: #001122;
--accent: #a8cce8; --accent: #b8c9d9;
--background-accent: #7ba3cf; --background-accent: #e0e7ed;
/* 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);