Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-12 11:50:55 +00:00
2 changed files with 60 additions and 198 deletions

View File

@@ -51,7 +51,7 @@ export default function HomePage() {
borderRadius="rounded"
contentWidth="medium"
sizing="mediumSizeLargeTitles"
background="floatingGradient"
background="circleGradient"
cardStyle="gradient-mesh"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
@@ -62,9 +62,7 @@ export default function HomePage() {
brandName="Carré Vert"
navItems={navItems}
button={{
text: "Demander un devis",
href: "/contact",
}}
text: "Demander un devis", href: "/contact"}}
/>
</div>
@@ -73,23 +71,18 @@ export default function HomePage() {
title="Des jardins entretenus avec passion et professionnalisme"
description="Carré Vert prend soin de vos espaces verts avec une attention particulière aux détails, à la propreté et au respect de la nature."
background={{
variant: "floatingGradient",
}}
variant: "plain"}}
tag="Excellence en Entretien"
tagIcon={Leaf}
tagAnimation="slide-up"
buttons={[
{
text: "Demander un devis gratuit",
href: "/contact",
},
text: "Demander un devis gratuit", href: "/contact"},
{
text: "Découvrir nos services",
href: "/#services",
},
text: "Découvrir nos services", href: "/#services"},
]}
buttonAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-photo/woman-working-alone-sustainable-greenhouse_23-2149072119.jpg?_wi=1"
imageSrc="http://img.b2bpic.net/free-photo/woman-working-alone-sustainable-greenhouse_23-2149072119.jpg"
imageAlt="Jardin magnifiquement entretenu"
mediaAnimation="slide-up"
ariaLabel="Section héro Carré Vert"
@@ -100,50 +93,20 @@ export default function HomePage() {
<FeatureCardTwentyFour
features={[
{
id: "1",
title: "Travail Soigné et Professionnel",
author: "Notre Engagement",
description: "Chaque intervention est réalisée avec rigueur et attention aux détails pour garantir un résultat impeccable.",
tags: ["Qualité", "Professionnalisme"],
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-young-man-driving-lawn-mower_23-2149382199.jpg?_wi=1",
imageAlt: "Travail professionnel de taille de haies",
},
id: "1", title: "Travail Soigné et Professionnel", author: "Notre Engagement", description: "Chaque intervention est réalisée avec rigueur et attention aux détails pour garantir un résultat impeccable.", tags: ["Qualité", "Professionnalisme"],
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-young-man-driving-lawn-mower_23-2149382199.jpg", imageAlt: "Travail professionnel de taille de haies"},
{
id: "2",
title: "Jardin Toujours Propre Après Intervention",
author: "Notre Standard",
description: "Nous nettoyons complètement votre espace après chaque prestation. Aucun débris, aucun désordre.",
tags: ["Nettoyage", "Propreté"],
imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27418.jpg?_wi=1",
imageAlt: "Jardin complètement nettoyé",
},
id: "2", title: "Jardin Toujours Propre Après Intervention", author: "Notre Standard", description: "Nous nettoyons complètement votre espace après chaque prestation. Aucun débris, aucun désordre.", tags: ["Nettoyage", "Propreté"],
imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27418.jpg", imageAlt: "Jardin complètement nettoyé"},
{
id: "3",
title: "Respect de la Nature",
author: "Notre Valeur",
description: "Nous travaillons en harmonie avec l'environnement, préservant la santé de vos plantes et de l'écosystème.",
tags: ["Écologie", "Durabilité"],
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-gardener-planting-seedling_329181-20597.jpg?_wi=1",
imageAlt: "Équipe travaillant respectueusement",
},
id: "3", title: "Respect de la Nature", author: "Notre Valeur", description: "Nous travaillons en harmonie avec l'environnement, préservant la santé de vos plantes et de l'écosystème.", tags: ["Écologie", "Durabilité"],
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-gardener-planting-seedling_329181-20597.jpg", imageAlt: "Équipe travaillant respectueusement"},
{
id: "4",
title: "Équipe Sérieuse et Agréable",
author: "Notre Équipe",
description: "Nos jardiniers sont formés, courtois et à l'écoute de vos besoins spécifiques.",
tags: ["Savoir-faire", "Écoute"],
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-gardener-planting-seedling_329181-20597.jpg?_wi=2",
imageAlt: "Équipe professionnelle de Carré Vert",
},
id: "4", title: "Équipe Sérieuse et Agréable", author: "Notre Équipe", description: "Nos jardiniers sont formés, courtois et à l'écoute de vos besoins spécifiques.", tags: ["Savoir-faire", "Écoute"],
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-gardener-planting-seedling_329181-20597.jpg", imageAlt: "Équipe professionnelle de Carré Vert"},
{
id: "5",
title: "Engagement Social",
author: "Notre Mission",
description: "Nous accompagnons des jeunes en situation de handicap dans l'apprentissage des métiers du paysage.",
tags: ["Solidarité", "Impact"],
imageSrc: "http://img.b2bpic.net/free-photo/creative-team-watching-content-pc-together_74855-9772.jpg?_wi=1",
imageAlt: "Programme d'inclusion professionnelle",
},
id: "5", title: "Engagement Social", author: "Notre Mission", description: "Nous accompagnons des jeunes en situation de handicap dans l'apprentissage des métiers du paysage.", tags: ["Solidarité", "Impact"],
imageSrc: "http://img.b2bpic.net/free-photo/creative-team-watching-content-pc-together_74855-9772.jpg", imageAlt: "Programme d'inclusion professionnelle"},
]}
animationType="slide-up"
title="Pourquoi nos clients nous font confiance"
@@ -157,14 +120,10 @@ export default function HomePage() {
<TextSplitAbout
title="L'expertise Carré Vert"
description={[
"Carré Vert accompagne particuliers et professionnels dans l'entretien et l'aménagement de leurs jardins depuis des années. Notre équipe intervient avec sérieux, efficacité et sens du détail afin de garantir un travail durable et esthétique.",
"Au-delà du jardinage, Carré Vert porte une dimension sociale forte. Nous accompagnons et formons des jeunes en situation de handicap afin de leur permettre d'acquérir des compétences et une expérience professionnelle dans le domaine du paysage. Chaque projet que vous confiez à Carré Vert est donc aussi une contribution à une initiative humaine et solidaire.",
]}
"Carré Vert accompagne particuliers et professionnels dans l'entretien et l'aménagement de leurs jardins depuis des années. Notre équipe intervient avec sérieux, efficacité et sens du détail afin de garantir un travail durable et esthétique.", "Au-delà du jardinage, Carré Vert porte une dimension sociale forte. Nous accompagnons et formons des jeunes en situation de handicap afin de leur permettre d'acquérir des compétences et une expérience professionnelle dans le domaine du paysage. Chaque projet que vous confiez à Carré Vert est donc aussi une contribution à une initiative humaine et solidaire."]}
buttons={[
{
text: "En savoir plus sur nous",
href: "/#about",
},
text: "En savoir plus sur nous", href: "/#about"},
]}
showBorder={true}
useInvertedBackground={false}
@@ -175,41 +134,17 @@ export default function HomePage() {
<FeatureCardTwentyFour
features={[
{
id: "1",
title: "Taille de Haies et d'Arbustes",
author: "Entretien",
description: "Taille précise et adaptée pour garder des haies harmonieuses et en bonne santé. Travail effectué avec professionnalisme et respect des végétaux.",
tags: ["Taille", "Arbustes"],
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-young-man-driving-lawn-mower_23-2149382199.jpg?_wi=2",
imageAlt: "Taille professionnelle de haies",
},
id: "1", title: "Taille de Haies et d'Arbustes", author: "Entretien", description: "Taille précise et adaptée pour garder des haies harmonieuses et en bonne santé. Travail effectué avec professionnalisme et respect des végétaux.", tags: ["Taille", "Arbustes"],
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-young-man-driving-lawn-mower_23-2149382199.jpg", imageAlt: "Taille professionnelle de haies"},
{
id: "2",
title: "Entretien Régulier du Jardin",
author: "Maintenance",
description: "Tonte de pelouse, nettoyage des espaces verts, ramassage des feuilles et entretien saisonnier pour garder votre jardin en excellent état.",
tags: ["Tonte", "Nettoyage"],
imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27418.jpg?_wi=2",
imageAlt: "Entretien régulier du jardin",
},
id: "2", title: "Entretien Régulier du Jardin", author: "Maintenance", description: "Tonte de pelouse, nettoyage des espaces verts, ramassage des feuilles et entretien saisonnier pour garder votre jardin en excellent état.", tags: ["Tonte", "Nettoyage"],
imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27418.jpg", imageAlt: "Entretien régulier du jardin"},
{
id: "3",
title: "Nettoyage et Remise en État",
author: "Restauration",
description: "Remise en état de jardins après l'hiver ou un manque d'entretien. Votre jardin retrouve propreté, structure et vitalité.",
tags: ["Nettoyage", "Restauration"],
imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27418.jpg?_wi=3",
imageAlt: "Jardin rénové et nettoyé",
},
id: "3", title: "Nettoyage et Remise en État", author: "Restauration", description: "Remise en état de jardins après l'hiver ou un manque d'entretien. Votre jardin retrouve propreté, structure et vitalité.", tags: ["Nettoyage", "Restauration"],
imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27418.jpg", imageAlt: "Jardin rénové et nettoyé"},
{
id: "4",
title: "Aménagement Paysager",
author: "Création",
description: "Création et transformation d'espaces verts : plantations, organisation des espaces, amélioration esthétique. Nous réalisons vos projets.",
tags: ["Aménagement", "Design"],
imageSrc: "http://img.b2bpic.net/free-photo/greenhouse-owner-presenting-flowers-options-potential-customer-retailer-using-laptop_158595-7051.jpg?_wi=1",
imageAlt: "Aménagement paysager professionnel",
},
id: "4", title: "Aménagement Paysager", author: "Création", description: "Création et transformation d'espaces verts : plantations, organisation des espaces, amélioration esthétique. Nous réalisons vos projets.", tags: ["Aménagement", "Design"],
imageSrc: "http://img.b2bpic.net/free-photo/greenhouse-owner-presenting-flowers-options-potential-customer-retailer-using-laptop_158595-7051.jpg", imageAlt: "Aménagement paysager professionnel"},
]}
animationType="slide-up"
title="Nos Services"
@@ -223,35 +158,15 @@ export default function HomePage() {
<TestimonialCardTwelve
testimonials={[
{
id: "1",
name: "Isabelle W.",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-curly-woman-with-lgbt-flag_23-2149123940.jpg",
imageAlt: "Portrait d'Isabelle W.",
},
id: "1", name: "Isabelle W.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-curly-woman-with-lgbt-flag_23-2149123940.jpg", imageAlt: "Portrait d'Isabelle W."},
{
id: "2",
name: "Cécile B.",
imageSrc: "http://img.b2bpic.net/free-photo/beaty-style-fashion-age-concept-waist-up-shot-beautiful-gray-haired-50-year-old-female-posing-indoors-standing-white-brick-wall-adjusting-her-stylish-outfit-going-have-meeting_344912-1847.jpg",
imageAlt: "Portrait de Cécile B.",
},
id: "2", name: "Cécile B.", imageSrc: "http://img.b2bpic.net/free-photo/beaty-style-fashion-age-concept-waist-up-shot-beautiful-gray-haired-50-year-old-female-posing-indoors-standing-white-brick-wall-adjusting-her-stylish-outfit-going-have-meeting_344912-1847.jpg", imageAlt: "Portrait de Cécile B."},
{
id: "3",
name: "Paul S.",
imageSrc: "http://img.b2bpic.net/free-photo/horizontal-image-cool-stylish-young-caucasian-male-with-black-curls-relaxing-indoors-sitting-white-desk-keeping-arms-folded-his-look-posture-expressing-confidence-smiling-camera_343059-2016.jpg",
imageAlt: "Portrait de Paul S.",
},
id: "3", name: "Paul S.", imageSrc: "http://img.b2bpic.net/free-photo/horizontal-image-cool-stylish-young-caucasian-male-with-black-curls-relaxing-indoors-sitting-white-desk-keeping-arms-folded-his-look-posture-expressing-confidence-smiling-camera_343059-2016.jpg", imageAlt: "Portrait de Paul S."},
{
id: "4",
name: "Client Satisfait",
imageSrc: "http://img.b2bpic.net/free-photo/studio-portrait-beautiful-young-woman-posing_1301-3598.jpg",
imageAlt: "Portrait client satisfait",
},
id: "4", name: "Client Satisfait", imageSrc: "http://img.b2bpic.net/free-photo/studio-portrait-beautiful-young-woman-posing_1301-3598.jpg", imageAlt: "Portrait client satisfait"},
{
id: "5",
name: "Propriétaire Confiant",
imageSrc: "http://img.b2bpic.net/free-photo/confident-middle-aged-businesswoman-looking-camera_74855-4120.jpg",
imageAlt: "Portrait propriétaire",
},
id: "5", name: "Propriétaire Confiant", imageSrc: "http://img.b2bpic.net/free-photo/confident-middle-aged-businesswoman-looking-camera_74855-4120.jpg", imageAlt: "Portrait propriétaire"},
]}
cardTitle="Plus de mille clients satisfaits qui font confiance à Carré Vert"
cardTag="Ils recommandent nos services"
@@ -265,45 +180,17 @@ export default function HomePage() {
<ProductCardTwo
products={[
{
id: "1",
brand: "Transformation 1",
name: "Jardin Rénové",
price: "Avant",
rating: 5,
reviewCount: "Transformation",
imageSrc: "http://img.b2bpic.net/free-photo/kids-learnign-about-environment_23-2149176600.jpg?_wi=1",
imageAlt: "Jardin avant entretien",
},
id: "1", brand: "Transformation 1", name: "Jardin Rénové", price: "Avant", rating: 5,
reviewCount: "Transformation", imageSrc: "http://img.b2bpic.net/free-photo/kids-learnign-about-environment_23-2149176600.jpg", imageAlt: "Jardin avant entretien"},
{
id: "2",
brand: "Résultat",
name: "Jardin Magnifique",
price: "Après",
rating: 5,
reviewCount: "Réalisé",
imageSrc: "http://img.b2bpic.net/free-photo/gardening-tools-pot-near-spray-bottle_23-2147714861.jpg?_wi=1",
imageAlt: "Jardin après entretien professionnel",
},
id: "2", brand: "Résultat", name: "Jardin Magnifique", price: "Après", rating: 5,
reviewCount: "Réalisé", imageSrc: "http://img.b2bpic.net/free-photo/gardening-tools-pot-near-spray-bottle_23-2147714861.jpg", imageAlt: "Jardin après entretien professionnel"},
{
id: "3",
brand: "Transformation 2",
name: "Espace Restauré",
price: "Avant",
rating: 5,
reviewCount: "Projet",
imageSrc: "http://img.b2bpic.net/free-photo/many-leaves-autumn-lying-grass-poznan-poland_181624-9929.jpg?_wi=1",
imageAlt: "Espace avant transformation",
},
id: "3", brand: "Transformation 2", name: "Espace Restauré", price: "Avant", rating: 5,
reviewCount: "Projet", imageSrc: "http://img.b2bpic.net/free-photo/many-leaves-autumn-lying-grass-poznan-poland_181624-9929.jpg", imageAlt: "Espace avant transformation"},
{
id: "4",
brand: "Résultat",
name: "Espace Parfait",
price: "Après",
rating: 5,
reviewCount: "Complété",
imageSrc: "http://img.b2bpic.net/free-photo/empty-wood-chair_1339-6126.jpg?_wi=1",
imageAlt: "Espace après aménagement",
},
id: "4", brand: "Résultat", name: "Espace Parfait", price: "Après", rating: 5,
reviewCount: "Complété", imageSrc: "http://img.b2bpic.net/free-photo/empty-wood-chair_1339-6126.jpg", imageAlt: "Espace après aménagement"},
]}
gridVariant="two-columns-alternating-heights"
animationType="slide-up"
@@ -314,23 +201,18 @@ export default function HomePage() {
/>
</div>
<div id="cta" data-section="cta">
<div id="contact" data-section="contact">
<ContactText
text="Transformez votre jardin dès aujourd'hui. Notre équipe est à votre écoute pour vous proposer une solution adaptée à vos besoins spécifiques."
animationType="entrance-slide"
buttons={[
{
text: "Demander un devis gratuit",
href: "/contact",
},
text: "Demander un devis gratuit", href: "/contact"},
{
text: "Nous contacter",
href: "/contact",
},
text: "Nous contacter", href: "/contact"},
]}
background={{
variant: "plain",
}}
variant: "plain"}}
useInvertedBackground={false}
/>
</div>

View File

@@ -1,51 +1,31 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from "react";
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
textClassName?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = "", textClassName = ""}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox="0 0 300 100"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
textAnchor="middle"
dominantBaseline="middle"
className={textClassName}
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;