SPB Git

spb/vrai-prix Public

Vrai-Prix — l'évaluation du vrai prix des propriétés résidentielles au Québec.

TypeScript 96.7% CSS 3.2%
3.8 KB · 94 lines tsx
Raw Blame History
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2import type { Metadata } from "next";3import { Inter, JetBrains_Mono, Space_Grotesk } from "next/font/google";4import "./globals.css";5import { LangProvider, LangToggle } from "@/components/LangContext";6import CookieConsent from "@/components/CookieConsent";7import FooterNav from "@/components/FooterNav";8import HeaderNav from "@/components/HeaderNav";9import Link from "next/link";1011const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });12const spaceGrotesk = Space_Grotesk({13  subsets: ["latin"],14  variable: "--font-space-grotesk",15});16const jetbrains = JetBrains_Mono({17  subsets: ["latin"],18  variable: "--font-jetbrains",19});2021export const metadata: Metadata = {22  title: "Vrai-Prix — la vraie valeur, sans boîte noire",23  description:24    "Estimation immobilière transparente pour le Québec : modèle hédonique + comparables réels, fourchette honnête et indice de confiance.",25};2627const TICKER = [28  "3 747 008 unités d'évaluation",29  "745 119 ventes réelles 2021-2026",30  "22 M d'estimations calculées",31  "Fourchette honnête P10-P90",32  "Indice de confiance A-D",33  "Zéro boîte noire — le calcul est montré",34  "1 100 municipalités couvertes",35  "Erreur médiane 11 %",36];3738export default function RootLayout({ children }: LayoutProps<"/">) {39  return (40    <html lang="fr">41      <body42        className={`${inter.variable} ${spaceGrotesk.variable} ${jetbrains.variable}`}43      >44        <LangProvider>45          {/* fond opaque sur mobile (backdrop-filter casse les enfants fixed sur WebKit) */}46          <header className="sticky top-0 z-[1100] border-b-2 border-ink bg-paper md:bg-[rgba(245,243,238,0.88)] md:backdrop-blur-xl">47            <div className="relative mx-auto flex h-16 max-w-6xl items-center gap-5 px-4 sm:px-6">48              <Link49                href="/"50                className="vp-display group flex items-center text-[22px] font-bold leading-none tracking-[-0.04em] sm:text-[26px]"51              >52                Vrai53                <span className="ml-1 rotate-[-2deg] rounded-md bg-ink px-[7px] pb-1 pt-[2px] text-lime transition-transform duration-200 group-hover:rotate-0">54                  Prix55                </span>56              </Link>57              <div className="ml-auto flex items-center gap-2">58                <HeaderNav />59                <LangToggle />60              </div>61            </div>62          </header>63          <div className="ticker" aria-hidden="true">64            <div className="ticker-track">65              {[...TICKER, ...TICKER].map((s, i) => (66                <span key={i}>{s}</span>67              ))}68            </div>69          </div>70          <main className="mx-auto max-w-6xl px-4 pb-16 sm:px-6">{children}</main>71          <footer className="mt-6 bg-ink py-11 text-[13px] text-[rgba(245,243,238,0.75)]">72            <div className="mx-auto max-w-6xl px-4 sm:px-6">73              <p className="vp-display mb-3 text-[30px] font-bold tracking-[-0.04em] text-paper">74                Vrai<span className="text-lime">Prix</span>75              </p>76              <p className="max-w-2xl">77                Estimations bâties sur les rôles d&apos;évaluation foncière du78                Québec (MAMH, données ouvertes) et 745 119 transactions réelles.79                Modèle hédonique + comparables ajustés, calcul montré en entier.80              </p>81              <FooterNav />82              <p className="vp-mono mt-4 text-[11px] uppercase tracking-[0.08em] text-[rgba(245,243,238,0.45)]">83                vrai-prix.com — Simon-Pierre Boucher · contact@spboucher.ai —84                estimation statistique à titre indicatif85              </p>86            </div>87          </footer>88          <CookieConsent />89        </LangProvider>90      </body>91    </html>92  );93}94