Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/(default)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ export default function DefaultLayout({

return (
<>
<main className="relative flex grow flex-col">{children}</main>

<Footer />
<main className="relative flex grow flex-col bg-white text-gray-900">
{children}
</main>
</>
);
}
14 changes: 8 additions & 6 deletions app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { Inter } from "next/font/google";
import localFont from "next/font/local";

import Header from "@/components/ui/header";
import Footer from "@/components/ui/footer"; // ✅ Import du footer

const inter = Inter({
subsets: ["latin"],
Expand Down Expand Up @@ -39,8 +40,8 @@ const nacelle = localFont({
});

export const metadata = {
title: "Create Next App",
description: "Generated by create next app",
title: "LocaFlow - Simplifiez votre gestion locative",
description: "Plateforme intelligente pour propriétaires, locataires et agences.",
};

export default function RootLayout({
Expand All @@ -49,13 +50,14 @@ export default function RootLayout({
children: React.ReactNode;
}) {
return (
<html lang="en">
<html lang="fr">
<body
className={`${inter.variable} ${nacelle.variable} bg-gray-950 font-inter text-base text-gray-200 antialiased`}
className={`${inter.variable} ${nacelle.variable} bg-white font-inter text-base text-gray-900 antialiased`}
>
<div className="flex min-h-screen flex-col overflow-hidden supports-[overflow:clip]:overflow-clip">
<Header />
{children}
<Header />
{children}
<Footer /> {/* ✅ Conserver uniquement celui-ci */}
</div>
</body>
</html>
Expand Down
64 changes: 38 additions & 26 deletions components/cta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import BlurredShape from "@/public/images/blurred-shape.svg";
export default function Cta() {
return (
<section className="relative overflow-hidden">
{/* Arrière-plan flou */}
<div
className="pointer-events-none absolute bottom-0 left-1/2 -z-10 -mb-24 ml-20 -translate-x-1/2"
aria-hidden="true"
Expand All @@ -16,38 +17,49 @@ export default function Cta() {
alt="Blurred shape"
/>
</div>
<div className="max-w6xl mx-auto px-4 sm:px-6">
<div className="bg-linear-to-r from-transparent via-gray-800/50 py-12 md:py-20">

{/* Conteneur */}
<div className="max-w-6xl mx-auto px-4 sm:px-6">
<div className="bg-white border border-gray-200 rounded-3xl py-12 md:py-20 shadow-xl">
<div className="mx-auto max-w-3xl text-center">

{/* Titre avec effet de dégradé animé */}
<h2
className="animate-[gradient_6s_linear_infinite] bg-[linear-gradient(to_right,var(--color-gray-200),var(--color-indigo-200),var(--color-gray-50),var(--color-indigo-300),var(--color-gray-200))] bg-[length:200%_auto] bg-clip-text pb-8 font-nacelle text-3xl font-semibold text-transparent md:text-4xl"
className="text-3xl md:text-4xl font-extrabold animate-[gradient_8s_linear_infinite] bg-[linear-gradient(to_right,#4f46e5,#8b5cf6,#ec4899,#4f46e5)] bg-[length:200%_auto] bg-clip-text text-transparent mb-6"
data-aos="fade-up"
>
Join the content-first platform
Prêt à simplifier votre gestion locative ?
</h2>
<div className="mx-auto max-w-xs sm:flex sm:max-w-none sm:justify-center">
<div data-aos="fade-up" data-aos-delay={400}>
<a
className="btn group mb-4 w-full bg-linear-to-t from-indigo-600 to-indigo-500 bg-[length:100%_100%] bg-[bottom] text-white shadow-[inset_0px_1px_0px_0px_--theme(--color-white/.16)] hover:bg-[length:100%_150%] sm:mb-0 sm:w-auto"
href="#0"
>
<span className="relative inline-flex items-center">
Start Building
<span className="ml-1 tracking-normal text-white/50 transition-transform group-hover:translate-x-0.5">
-&gt;
</span>
</span>
</a>
</div>
<div data-aos="fade-up" data-aos-delay={600}>
<a
className="btn relative w-full bg-linear-to-b from-gray-800 to-gray-800/60 bg-[length:100%_100%] bg-[bottom] text-gray-300 before:pointer-events-none before:absolute before:inset-0 before:rounded-[inherit] before:border before:border-transparent before:[background:linear-gradient(to_right,var(--color-gray-800),var(--color-gray-700),var(--color-gray-800))_border-box] before:[mask-composite:exclude_!important] before:[mask:linear-gradient(white_0_0)_padding-box,_linear-gradient(white_0_0)] hover:bg-[length:100%_150%] sm:ml-4 sm:w-auto"
href="#0"
>
Schedule Demo
</a>
</div>

{/* Sous-titre */}
<p
className="text-gray-600 mb-8 text-lg"
data-aos="fade-up"
data-aos-delay={200}
>
Rejoignez LocaFlow et automatisez vos démarches en quelques clics.
</p>

{/* Boutons */}
<div
className="flex flex-col items-center gap-4 sm:flex-row sm:justify-center"
data-aos="fade-up"
data-aos-delay={400}
>
<a
className="inline-block rounded-lg bg-indigo-600 px-6 py-3 text-white font-semibold hover:bg-indigo-500 transition-colors duration-200"
href="#"
>
Créer un compte gratuitement
</a>
<a
className="inline-block rounded-lg border border-indigo-600 px-6 py-3 text-indigo-600 font-semibold hover:bg-indigo-50 transition-colors duration-200"
href="#"
>
Déposer un bien
</a>
</div>

</div>
</div>
</div>
Expand Down
188 changes: 42 additions & 146 deletions components/features.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,186 +6,82 @@ import FeaturesImage from "@/public/images/features.png";
export default function Features() {
return (
<section className="relative">
<div
className="pointer-events-none absolute left-1/2 top-0 -z-10 -mt-20 -translate-x-1/2"
aria-hidden="true"
>
<Image
className="max-w-none"
src={BlurredShapeGray}
width={760}
height={668}
alt="Blurred shape"
/>
<div className="pointer-events-none absolute left-1/2 top-0 -z-10 -mt-20 -translate-x-1/2" aria-hidden="true">
<Image className="max-w-none" src={BlurredShapeGray} width={760} height={668} alt="Blurred shape" />
</div>
<div
className="pointer-events-none absolute bottom-0 left-1/2 -z-10 -mb-80 -translate-x-[120%] opacity-50"
aria-hidden="true"
>
<Image
className="max-w-none"
src={BlurredShape}
width={760}
height={668}
alt="Blurred shape"
/>
<div className="pointer-events-none absolute bottom-0 left-1/2 -z-10 -mb-80 -translate-x-[120%] opacity-50" aria-hidden="true">
<Image className="max-w-none" src={BlurredShape} width={760} height={668} alt="Blurred shape" />
</div>

<div className="mx-auto max-w-6xl px-4 sm:px-6">
<div className="border-t py-12 [border-image:linear-gradient(to_right,transparent,--theme(--color-slate-400/.25),transparent)1] md:py-20">
{/* Section header */}
<div className="mx-auto max-w-3xl pb-4 text-center md:pb-12">
<div className="inline-flex items-center gap-3 pb-3 before:h-px before:w-8 before:bg-linear-to-r before:from-transparent before:to-indigo-200/50 after:h-px after:w-8 after:bg-linear-to-l after:from-transparent after:to-indigo-200/50">
<span className="inline-flex bg-linear-to-r from-indigo-500 to-indigo-200 bg-clip-text text-transparent">
Advanced Controls
Pensé pour les propriétaires modernes
</span>
</div>
<h2 className="animate-[gradient_6s_linear_infinite] bg-[linear-gradient(to_right,var(--color-gray-200),var(--color-indigo-200),var(--color-gray-50),var(--color-indigo-300),var(--color-gray-200))] bg-[length:200%_auto] bg-clip-text pb-4 font-nacelle text-3xl font-semibold text-transparent md:text-4xl">
Built for modern product teams
<h2 className="text-3xl md:text-4xl font-extrabold animate-[gradient_8s_linear_infinite] bg-[linear-gradient(to_right,#4f46e5,#8b5cf6,#ec4899,#4f46e5)] bg-[length:200%_auto] bg-clip-text text-transparent">
Automatisez vos tâches, gagnez du temps, et concentrez-vous sur l’essentiel
</h2>
<p className="text-lg text-indigo-200/65">
Open AI reads and understands your files, and with nothing more
than a single line of feedback, so you can go further than the
speed of thought.
<p className="text-lg text-gray-600">
Grâce à une interface simple et intuitive, LocaFlow permet aux propriétaires de gérer leur location avec efficacité.
</p>
</div>

<div className="flex justify-center pb-4 md:pb-12" data-aos="fade-up">
<Image
className="max-w-none"
src={FeaturesImage}
width={1104}
height={384}
alt="Features"
/>
<Image className="max-w-none" src={FeaturesImage} width={1104} height={384} alt="Features" />
</div>

{/* Items */}
<div className="mx-auto grid max-w-sm gap-12 sm:max-w-none sm:grid-cols-2 md:gap-x-14 md:gap-y-16 lg:grid-cols-3">
<article>
<svg
className="mb-3 fill-indigo-500"
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
>
<svg className="mb-3 fill-indigo-500" xmlns="http://www.w3.org/2000/svg" width={24} height={24}>
<path d="M0 0h14v17H0V0Zm2 2v13h10V2H2Z" />
<path
fillOpacity=".48"
d="m16.295 5.393 7.528 2.034-4.436 16.412L5.87 20.185l.522-1.93 11.585 3.132 3.392-12.55-5.597-1.514.522-1.93Z"
/>
<path fillOpacity=".48" d="m16.295 5.393 7.528 2.034-4.436 16.412L5.87 20.185l.522-1.93Z" />
</svg>
<h3 className="mb-1 font-nacelle text-[1rem] font-semibold text-gray-200">
Project Milestones
</h3>
<p className="text-indigo-200/65">
Track progress across custom flows for your team. Find the right
balance for the user, privacy and security.
</p>
<h3 className="mb-1 text-[1rem] font-semibold text-gray-900">Suivi des projets</h3>
<p className="text-gray-600">Gérez les étapes de location, les échanges avec les locataires et les actions de maintenance sans stress.</p>
</article>

<article>
<svg
className="mb-3 fill-indigo-500"
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
>
<path fillOpacity=".48" d="M7 8V0H5v8h2Zm12 16v-4h-2v4h2Z" />
<path d="M19 6H0v2h17v8H7v-6H5v8h19v-2h-5V6Z" />
<svg className="mb-3 fill-indigo-500" xmlns="http://www.w3.org/2000/svg" width={24} height={24}>
<path d="M3 13h8V3H3v10Zm0 8h8v-6H3v6Zm10 0h8V11h-8v10Zm0-18v6h8V3h-8Z" />
</svg>
<h3 className="mb-1 font-nacelle text-[1rem] font-semibold text-gray-200">
Team Views
</h3>
<p className="text-indigo-200/65">
Track progress across custom flows for your team. Find the right
balance for the user, privacy and security.
</p>
<h3 className="mb-1 text-[1rem] font-semibold text-gray-900">Tableau de bord</h3>
<p className="text-gray-600">Visualisez en un coup d'œil vos locations, loyers perçus et interventions.</p>
</article>

<article>
<svg
className="mb-3 fill-indigo-500"
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
>
<path d="M23.414 6 18 .586 16.586 2l3 3H7a6 6 0 0 0-6 6h2a4 4 0 0 1 4-4h12.586l-3 3L18 11.414 23.414 6Z" />
<path
fillOpacity=".48"
d="M13.01 12.508a2.5 2.5 0 0 0-3.502.482L1.797 23.16.203 21.952l7.71-10.17a4.5 4.5 0 1 1 7.172 5.437l-4.84 6.386-1.594-1.209 4.841-6.385a2.5 2.5 0 0 0-.482-3.503Z"
/>
<svg className="mb-3 fill-indigo-500" xmlns="http://www.w3.org/2000/svg" width={24} height={24}>
<path d="M21 3H3v2h18V3Zm0 4H6v2h15V7Zm0 4H9v2h12v-2Zm0 4H12v2h9v-2ZM3 19h18v2H3v-2Z" />
</svg>
<h3 className="mb-1 font-nacelle text-[1rem] font-semibold text-gray-200">
Advanced Search
</h3>
<p className="text-indigo-200/65">
Track progress across custom flows for your team. Find the right
balance for the user, privacy and security.
</p>
<h3 className="mb-1 text-[1rem] font-semibold text-gray-900">Organisation des visites</h3>
<p className="text-gray-600">Gérez facilement les demandes et plannings de visites des biens.</p>
</article>

<article>
<svg
className="mb-3 fill-indigo-500"
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
>
<path
fillOpacity=".48"
d="m3.031 9.05-.593-.805 1.609-1.187.594.804a6.966 6.966 0 0 1 0 8.276l-.594.805-1.61-1.188.594-.805a4.966 4.966 0 0 0 0-5.9Z"
/>
<path d="m7.456 6.676-.535-.845 1.69-1.07.534.844a11.944 11.944 0 0 1 0 12.789l-.535.845-1.69-1.071.536-.845a9.944 9.944 0 0 0 0-10.647Z" />
<path
d="m11.888 4.35-.514-.858 1.717-1.027.513.858a16.9 16.9 0 0 1 2.4 8.677 16.9 16.9 0 0 1-2.4 8.676l-.513.859-1.717-1.028.514-.858A14.9 14.9 0 0 0 14.003 12a14.9 14.9 0 0 0-2.115-7.65Z"
opacity=".48"
/>
<path d="m16.321 2-.5-.866 1.733-1 .5.866A22 22 0 0 1 21 12c0 3.852-1.017 7.636-2.948 10.97l-.502.865-1.73-1.003.501-.865A19.878 19.878 0 0 0 19 12a20 20 0 0 0-2.679-10Z" />
<svg className="mb-3 fill-indigo-500" xmlns="http://www.w3.org/2000/svg" width={24} height={24}>
<path d="M12 2a10 10 0 1 0 10 10A10.012 10.012 0 0 0 12 2Zm1 15h-2v-2h2Zm0-4h-2V7h2Z" />
</svg>
<h3 className="mb-1 font-nacelle text-[1rem] font-semibold text-gray-200">
Strategic Initiatives
</h3>
<p className="text-indigo-200/65">
Track progress across custom flows for your team. Find the right
balance for the user, privacy and security.
</p>
<h3 className="mb-1 text-[1rem] font-semibold text-gray-900">Recherche simplifiée</h3>
<p className="text-gray-600">Accédez rapidement à des profils de locataires sérieux et vérifiés.</p>
</article>

<article>
<svg
className="mb-3 fill-indigo-500"
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
>
<path
fillOpacity=".48"
d="M12 8.8a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm-5 3a5 5 0 1 1 10 0 5 5 0 0 1-10 0Z"
/>
<path d="m7.454 2.891.891-.454L7.437.655l-.891.454a12 12 0 0 0 0 21.382l.89.454.91-1.781-.892-.455a10 10 0 0 1 0-17.818ZM17.456 1.11l-.891-.454-.909 1.782.891.454a10 10 0 0 1 0 17.819l-.89.454.908 1.781.89-.454a12 12 0 0 0 0-21.382Z" />
<svg className="mb-3 fill-indigo-500" xmlns="http://www.w3.org/2000/svg" width={24} height={24}>
<path d="M4 4h16v2H4zm0 6h10v2H4zm0 6h13v2H4z" />
</svg>
<h3 className="mb-1 font-nacelle text-[1rem] font-semibold text-gray-200">
Flexible Workflows
</h3>
<p className="text-indigo-200/65">
Track progress across custom flows for your team. Find the right
balance for the user, privacy and security.
</p>
<h3 className="mb-1 text-[1rem] font-semibold text-gray-900">Automatisation des relances</h3>
<p className="text-gray-600">Programmez les rappels de loyers, entretiens ou documents automatiquement.</p>
</article>

<article>
<svg
className="mb-3 fill-indigo-500"
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
>
<path
fillOpacity=".48"
d="M19 8h5v2h-5V8Zm-4 5h9v2h-9v-2Zm9 5H11v2h13v-2Z"
/>
<path d="M19.406 3.844 6.083 20.497.586 15 2 13.586l3.917 3.917L17.844 2.595l1.562 1.25Z" />
<svg className="mb-3 fill-indigo-500" xmlns="http://www.w3.org/2000/svg" width={24} height={24}>
<path d="M19 4h-1V2h-2v2H8V2H6v2H5a1 1 0 0 0-1 1v15a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1Zm-1 15H6V9h12v10Z" />
</svg>
<h3 className="mb-1 font-nacelle text-[1rem] font-semibold text-gray-200">
Unified Timeline
</h3>
<p className="text-indigo-200/65">
Track progress across custom flows for your team. Find the right
balance for the user, privacy and security.
</p>
<h3 className="mb-1 text-[1rem] font-semibold text-gray-900">Historique des échanges</h3>
<p className="text-gray-600">Conservez toutes les discussions et documents au même endroit.</p>
</article>
</div>
</div>
Expand Down
Loading