The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
import { Inter, JetBrains_Mono } from "next/font/google";
import localFont from "next/font/local";
const inter = Inter({
variable: "--font-sans",
subsets: ["latin"],
});
const mono = JetBrains_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
const albra = localFont({
variable: "--font-heading",
display: "swap",
src: [
{ path: "../../public/fonts/albra/Albra-Light.otf", weight: "300", style: "normal" },
{ path: "../../public/fonts/albra/Albra-Regular.otf", weight: "400", style: "normal" },
{ path: "../../public/fonts/albra/Albra-Medium.otf", weight: "500", style: "normal" },
{ path: "../../public/fonts/albra/Albra-Semi.otf", weight: "600", style: "normal" },
{ path: "../../public/fonts/albra/Albra-Bold.otf", weight: "700", style: "normal" },
{ path: "../../public/fonts/albra/Albra-Black.otf", weight: "900", style: "normal" },
],
});
const grotesk = localFont({
variable: "--font-grotesk",
display: "swap",
src: [
{ path: "../../public/fonts/albra-grotesk/AlbraGrotesk-Light.otf", weight: "300", style: "normal" },
{ path: "../../public/fonts/albra-grotesk/AlbraGrotesk-Regular.otf", weight: "400", style: "normal" },
{ path: "../../public/fonts/albra-grotesk/AlbraGrotesk-Medium.otf", weight: "500", style: "normal" },
{ path: "../../public/fonts/albra-grotesk/AlbraGrotesk-Semi.otf", weight: "600", style: "normal" },
{ path: "../../public/fonts/albra-grotesk/AlbraGrotesk-Bold.otf", weight: "700", style: "normal" },
{ path: "../../public/fonts/albra-grotesk/AlbraGrotesk-Black.otf", weight: "900", style: "normal" },
],
});
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html
lang="en"
className={`${inter.variable} ${mono.variable} ${albra.variable} ${grotesk.variable}`}
>
<body>{children}</body>
</html>
);
}@theme inline {
--font-sans: var(--font-sans);
--font-mono: var(--font-geist-mono);
--font-heading: var(--font-heading);
--font-grotesk: var(--font-grotesk);
}
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-heading);
}
body {
font-family: var(--font-grotesk), var(--font-sans), system-ui, sans-serif;
}// Tailwind v4 picks up the variables you exposed in @theme.
// In components, use the family utilities or var(--font-*) directly.
<h1 className="font-heading text-5xl">Display heading</h1>
<p className="font-grotesk">Body copy in Albra Grotesk.</p>
<p className="font-sans">Body copy in Inter (fallback).</p>
<code className="font-mono">const x = 1;</code>The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
Squad builds tooling to help teams move faster without losing craft — from shared components to internal AI agents and data pipelines.
const squad = { brand: "Squad", primary: "#7A6BFF" };
export function greet(name: string) {
return `Hello, ${name}! — from ${squad.brand}`;
}1,234.56 · $99.00 · 420ms · 93% · v2.7.1