site.config.ts
Toute la configuration du site est centralisée dans un seul fichier à la racine : site.config.ts. C'est le seul fichier à modifier pour adapter le template à votre projet.
Identité
Les champs de base que vous renseignez en premier :
export const siteConfig = { name: "Nom de votre site", legalName: "SAS Mon Entreprise", description: "Description courte pour le SEO", url: "https://votredomaine.fr", ogImage: "/images/og-default.jpg", }
Contact
contact: { email: "contact@votredomaine.fr", phone: "+33 1 23 45 67 89" }
Navigation
Deux tableaux contrôlent la navigation : mainNav pour le header et footerNav pour le pied de page.
mainNav
Pour les liens externes (GitHub, réseaux sociaux…), ajoutez external: true. Le header rendra automatiquement un <a target="_blank">.
mainNav: [ { label: "Blog", href: "/blog" }, { label: "GitHub", href: "https://github.com/...", external: true }, ],
footerNav
Le footer accepte un objet dont chaque clé est une colonne et la valeur un tableau de liens :
footerNav: { Produit: [ { label: "Fonctionnalités", href: "/features" }, ], }
Design & Couleurs
Les couleurs sont définies en variables CSS dans src/app/globals.css, dans les blocs :root (mode clair) et .dark (mode sombre). Onyx utilise le format OKLCH pour toutes les couleurs du thème.
/* Mode sombre — palette Onyx */ .dark { --background: oklch(0.05 0 0); /* #0A0A0A — onyx */ --foreground: oklch(0.94 0.008 70); /* #EEEAE4 — bone */ --primary: oklch(0.83 0.06 210); /* #a8d8e8 — refract */ }
src/components/ui/ — ces composants shadcn lisent automatiquement les tokens CSS définis dans globals.css.SEO
seo: { defaultTitle: "Titre par défaut", titleTemplate: "%s | Mon Site", }
Chaque page exporte son propre objet metadata avec title et description. Le template de titre est appliqué automatiquement par Next.js.
Analytics
Deux intégrations analytics sont disponibles, toutes deux optionnelles :
analytics: { googleAnalyticsId: "G-XXXXXXXXXX", /* bloqué jusqu'au consentement */ plausibleDomain: "votredomaine.fr", /* cookie-free */ }