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%
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'é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