Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 000e164313 | |||
| e7c9e30c90 | |||
| 5863aa6965 | |||
| 1238c9c4ce | |||
| 4d284a5479 | |||
| 23c9592c89 | |||
| f66e0aa5e5 | |||
| 79fe82c0e2 | |||
| 7658eb47e9 | |||
| e214306007 | |||
| dceffb90f0 | |||
| 9355efb315 | |||
| 3ede49b490 |
@@ -1,75 +1,17 @@
|
|||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import { Halant } from "next/font/google";
|
|
||||||
import { Inter } from "next/font/google";
|
|
||||||
import { Public_Sans } from "next/font/google";
|
|
||||||
import "./globals.css";
|
|
||||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
|
||||||
import Tag from "@/tag/Tag";
|
|
||||||
|
|
||||||
const halant = Halant({
|
|
||||||
variable: "--font-halant",
|
|
||||||
subsets: ["latin"],
|
|
||||||
weight: ["300", "400", "500", "600", "700"],
|
|
||||||
});
|
|
||||||
|
|
||||||
const inter = Inter({
|
|
||||||
variable: "--font-inter",
|
|
||||||
subsets: ["latin"],
|
|
||||||
});
|
|
||||||
|
|
||||||
const publicSans = Public_Sans({
|
|
||||||
variable: "--font-public-sans",
|
|
||||||
subsets: ["latin"],
|
|
||||||
});
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Cerramientos Walter | Ventanas y Cerramientos Premium en CABA",
|
title: "Cerramientos Walter", description: "Especialistas en ventanas de aluminio, cerramientos, rejas y soluciones a medida"};
|
||||||
description: "Especialistas en ventanas de aluminio, cerramientos, rejas, mosquiteros y estructuras metálicas a medida. Servicio profesional en Buenos Aires. ⭐ 4.8/5 en Google.",
|
|
||||||
keywords: "cerramientos, ventanas de aluminio, rejas, mosquiteros, puertas, estructuras metálicas, trabajos a medida, CABA, Buenos Aires",
|
|
||||||
metadataBase: new URL("https://cerramientoswalter.com"),
|
|
||||||
alternates: {
|
|
||||||
canonical: "https://cerramientoswalter.com",
|
|
||||||
},
|
|
||||||
openGraph: {
|
|
||||||
title: "Cerramientos Walter | Soluciones Premium en Ventanas y Cerramientos",
|
|
||||||
description: "Instalaciones profesionales de ventanas de aluminio, cerramientos, rejas y más. Presupuesto sin compromiso.",
|
|
||||||
url: "https://cerramientoswalter.com",
|
|
||||||
siteName: "Cerramientos Walter",
|
|
||||||
type: "website",
|
|
||||||
images: [
|
|
||||||
{
|
|
||||||
url: "http://img.b2bpic.net/free-photo/stylish-scandinavian-living-room-with-design-mint-sofa-furnitures-mock-up-poster-map-plants-eleg_1258-152149.jpg",
|
|
||||||
alt: "Ventanas de aluminio premium",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
twitter: {
|
|
||||||
card: "summary_large_image",
|
|
||||||
title: "Cerramientos Walter | Ventanas de Aluminio Premium",
|
|
||||||
description: "Especialistas en cerramientos, ventanas, rejas y estructuras metálicas. Trabajo profesional en CABA.",
|
|
||||||
images: [
|
|
||||||
"http://img.b2bpic.net/free-photo/stylish-scandinavian-living-room-with-design-mint-sofa-furnitures-mock-up-poster-map-plants-eleg_1258-152149.jpg",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
robots: {
|
|
||||||
index: true,
|
|
||||||
follow: true,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
}: Readonly<{
|
}: {
|
||||||
children: React.ReactNode;
|
children: React.ReactNode;
|
||||||
}>) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<html lang="en" suppressHydrationWarning>
|
<html lang="es">
|
||||||
<ServiceWrapper>
|
<body>
|
||||||
<body
|
{children}
|
||||||
className={`${halant.variable} ${inter.variable} ${publicSans.variable} antialiased`}
|
|
||||||
>
|
|
||||||
<Tag />
|
|
||||||
{children}
|
|
||||||
|
|
||||||
<script
|
<script
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
@@ -1438,7 +1380,6 @@ export default function RootLayout({
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</body>
|
</body>
|
||||||
</ServiceWrapper>
|
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -11,14 +11,16 @@ import TestimonialCardTen from "@/components/sections/testimonial/TestimonialCar
|
|||||||
import ProductCardOne from "@/components/sections/product/ProductCardOne";
|
import ProductCardOne from "@/components/sections/product/ProductCardOne";
|
||||||
import ContactSplit from "@/components/sections/contact/ContactSplit";
|
import ContactSplit from "@/components/sections/contact/ContactSplit";
|
||||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||||
|
import WhatsAppButton from "@/components/whatsapp/WhatsAppButton";
|
||||||
|
import { Sparkles, CheckCircle, Shield, Wind, Wrench, Hammer } from "lucide-react";
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
const navItems = [
|
const navItems = [
|
||||||
{ name: "Inicio", id: "/" },
|
{ name: "Inicio", id: "/" },
|
||||||
{ name: "Servicios", id: "/servicios" },
|
{ name: "Servicios", id: "#services" },
|
||||||
{ name: "Trabajos", id: "projects" },
|
{ name: "Trabajos", id: "#projects" },
|
||||||
{ name: "Nosotros", id: "about" },
|
{ name: "Nosotros", id: "#why-us" },
|
||||||
{ name: "Contacto", id: "contact" },
|
{ name: "Contacto", id: "#contact" },
|
||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -39,7 +41,7 @@ export default function HomePage() {
|
|||||||
<NavbarStyleCentered
|
<NavbarStyleCentered
|
||||||
navItems={navItems}
|
navItems={navItems}
|
||||||
button={{
|
button={{
|
||||||
text: "Solicitar presupuesto", href: "contact"}}
|
text: "Solicitar presupuesto", href: "#contact"}}
|
||||||
brandName="Cerramientos Walter"
|
brandName="Cerramientos Walter"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,6 +87,7 @@ export default function HomePage() {
|
|||||||
title="Servicios Principales"
|
title="Servicios Principales"
|
||||||
description="Soluciones completas en cerramientos y estructuras metálicas para tu hogar, local o proyecto"
|
description="Soluciones completas en cerramientos y estructuras metálicas para tu hogar, local o proyecto"
|
||||||
tag="Especialidad"
|
tag="Especialidad"
|
||||||
|
tagIcon={Sparkles}
|
||||||
animationType="slide-up"
|
animationType="slide-up"
|
||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
@@ -115,6 +118,7 @@ export default function HomePage() {
|
|||||||
<div id="why-us" data-section="why-us">
|
<div id="why-us" data-section="why-us">
|
||||||
<TextAbout
|
<TextAbout
|
||||||
tag="Ventajas"
|
tag="Ventajas"
|
||||||
|
tagIcon={CheckCircle}
|
||||||
title="Por qué elegirnos: Atención rápida, trabajos prolijos, materiales de calidad, presupuestos claros, instalación profesional y soluciones a medida"
|
title="Por qué elegirnos: Atención rápida, trabajos prolijos, materiales de calidad, presupuestos claros, instalación profesional y soluciones a medida"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
/>
|
/>
|
||||||
@@ -124,7 +128,7 @@ export default function HomePage() {
|
|||||||
<div id="testimonials" data-section="testimonials">
|
<div id="testimonials" data-section="testimonials">
|
||||||
<TestimonialCardTen
|
<TestimonialCardTen
|
||||||
title="Testimonios de Clientes"
|
title="Testimonios de Clientes"
|
||||||
description="Historias reales de clientes satisfechos"
|
description="Historias reales de clientes satisfechos con nuestro trabajo"
|
||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
testimonials={[
|
testimonials={[
|
||||||
@@ -144,13 +148,13 @@ export default function HomePage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Projects Section */}
|
{/* Projects Gallery Section */}
|
||||||
<div id="projects" data-section="projects">
|
<div id="projects" data-section="projects">
|
||||||
<ProductCardOne
|
<ProductCardOne
|
||||||
title="Proyectos Realizados"
|
title="Proyectos Realizados"
|
||||||
description="Galería de trabajos instalados con acabado profesional"
|
description="Galería de trabajos instalados con acabado profesional. Descubre nuestras soluciones en acción."
|
||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
animationType="slide-up"
|
animationType="scale-rotate"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
gridVariant="bento-grid"
|
gridVariant="bento-grid"
|
||||||
products={[
|
products={[
|
||||||
@@ -174,6 +178,7 @@ export default function HomePage() {
|
|||||||
<div id="final-cta" data-section="final-cta">
|
<div id="final-cta" data-section="final-cta">
|
||||||
<TextAbout
|
<TextAbout
|
||||||
tag="Próximo paso"
|
tag="Próximo paso"
|
||||||
|
tagIcon={Hammer}
|
||||||
title="¿Listo para tu proyecto? Solicita tu presupuesto sin compromiso hoy mismo"
|
title="¿Listo para tu proyecto? Solicita tu presupuesto sin compromiso hoy mismo"
|
||||||
buttons={[
|
buttons={[
|
||||||
{ text: "Solicitar presupuesto", href: "#contact" },
|
{ text: "Solicitar presupuesto", href: "#contact" },
|
||||||
@@ -209,17 +214,17 @@ export default function HomePage() {
|
|||||||
{
|
{
|
||||||
title: "Navegación", items: [
|
title: "Navegación", items: [
|
||||||
{ label: "Inicio", href: "/" },
|
{ label: "Inicio", href: "/" },
|
||||||
{ label: "Servicios", href: "/servicios" },
|
{ label: "Servicios", href: "#services" },
|
||||||
{ label: "Trabajos", href: "/trabajos" },
|
{ label: "Trabajos", href: "#projects" },
|
||||||
{ label: "Nosotros", href: "/nosotros" },
|
{ label: "Nosotros", href: "#why-us" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Servicios", items: [
|
title: "Servicios", items: [
|
||||||
{ label: "Cerramientos", href: "/servicios#cerramientos" },
|
{ label: "Cerramientos", href: "#services" },
|
||||||
{ label: "Ventanas", href: "/servicios#ventanas" },
|
{ label: "Ventanas", href: "#services" },
|
||||||
{ label: "Rejas", href: "/servicios#rejas" },
|
{ label: "Rejas", href: "#services" },
|
||||||
{ label: "Mosquiteros", href: "/servicios#mosquiteros" },
|
{ label: "Mosquiteros", href: "#services" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -241,6 +246,12 @@ export default function HomePage() {
|
|||||||
copyrightText="© 2025 Cerramientos Walter. Todos los derechos reservados. Buenos Aires, Argentina."
|
copyrightText="© 2025 Cerramientos Walter. Todos los derechos reservados. Buenos Aires, Argentina."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* WhatsApp Floating Button */}
|
||||||
|
<WhatsAppButton
|
||||||
|
phoneNumber="5491139493469"
|
||||||
|
message="Hola, quiero consultar por un presupuesto."
|
||||||
|
/>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -11,7 +11,7 @@ html {
|
|||||||
body {
|
body {
|
||||||
background-color: var(--background);
|
background-color: var(--background);
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
font-family: var(--font-public-sans), sans-serif;
|
font-family: var(--font-dm-sans), sans-serif;
|
||||||
position: relative;
|
position: relative;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
overscroll-behavior: none;
|
overscroll-behavior: none;
|
||||||
@@ -24,5 +24,5 @@ h3,
|
|||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
font-family: var(--font-public-sans), sans-serif;
|
font-family: var(--font-dm-sans), sans-serif;
|
||||||
}
|
}
|
||||||
|
|||||||
39
src/components/whatsapp/WhatsAppButton.tsx
Normal file
39
src/components/whatsapp/WhatsAppButton.tsx
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { MessageCircle } from "lucide-react";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
|
||||||
|
interface WhatsAppButtonProps {
|
||||||
|
phoneNumber: string;
|
||||||
|
message: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function WhatsAppButton({
|
||||||
|
phoneNumber,
|
||||||
|
message,
|
||||||
|
}: WhatsAppButtonProps) {
|
||||||
|
const [isVisible, setIsVisible] = useState(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setIsVisible(true);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const handleClick = () => {
|
||||||
|
const encodedMessage = encodeURIComponent(message);
|
||||||
|
const whatsappUrl = `https://wa.me/${phoneNumber}?text=${encodedMessage}`;
|
||||||
|
window.open(whatsappUrl, "_blank");
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!isVisible) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<button
|
||||||
|
onClick={handleClick}
|
||||||
|
aria-label="Contact us on WhatsApp"
|
||||||
|
className="fixed bottom-8 right-8 z-50 flex items-center justify-center w-14 h-14 rounded-full bg-green-500 hover:bg-green-600 shadow-lg transition-all duration-300 hover:scale-110 active:scale-95"
|
||||||
|
title="Chat on WhatsApp"
|
||||||
|
>
|
||||||
|
<MessageCircle className="w-6 h-6 text-white" strokeWidth={2} />
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user