next/font — chargement des polices

Le layout.tsx de bext préconnecte déjà à Google Fonts et charge Inter — c'est l'approche idiomatique. Le shim @bext-stack/framework/next/font/google est un objet de configuration passthrough ; il ne sous-ensemble pas encore les polices au moment de la compilation.

Astuce
Si les CDN de polices externes sont bloqués par la CSP par défaut de bext (script-src 'self'), auto-hébergez le woff2 dans public/vendor/fonts/ et référencez-le via @font-face dans votre route_css. Vous évitez ainsi une dépendance réseau externe et toute latence DNS supplémentaire.
En cours : le sous-ensemblage des polices à la compilation (la partie de next/font qui supprime les glyphes inutilisés et auto-héberge le woff2) n'est pas implémenté. Le shim renvoie l'objet de configuration pour que les imports ne cassent pas, mais l'optimisation réelle est un no-op.
src/app/layout.tsxTSX
// layout.tsx — load Inter via the standard CSS path.
<head>
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link
    rel="stylesheet"
    href="/fonts/fonts.css"
  />
</head>

// next/font migration shim (passthrough — returns a config object)
import { Inter } from "@bext-stack/framework/next/font/google";
const inter = Inter({ subsets: ["latin"] });
// inter.className / inter.style.fontFamily are defined; subsetting is a no-op.