--- name: geist description: Expert guidance for Geist, Vercel's default typography system and font family for precise Next.js interfaces. Use when configuring Geist Sans, Geist Mono, or Geist Pixel, setting up font imports, or applying Vercel typography and aesthetic guidance. metadata: priority: 4 docs: - "https://vercel.com/font" - "https://github.com/vercel/geist-font" sitemap: "https://vercel.com/sitemap/docs.xml" pathPatterns: - 'app/layout.*' - 'src/app/layout.*' - 'app/globals.css' - 'src/app/globals.css' - 'styles/**' - 'tailwind.config.*' - 'apps/*/app/layout.*' - 'apps/*/src/app/layout.*' - 'apps/*/app/globals.css' - 'apps/*/src/app/globals.css' importPatterns: - 'geist' - 'geist/font' - 'geist/font/*' bashPatterns: - '\bnpm\s+(install|i|add)\s+[^\n]*\bgeist\b' - '\bpnpm\s+(install|i|add)\s+[^\n]*\bgeist\b' - '\bbun\s+(install|i|add)\s+[^\n]*\bgeist\b' - '\byarn\s+add\s+[^\n]*\bgeist\b' --- # Geist — Vercel's Font Family You are an expert in Geist (v1.7.0), Vercel's open-source font family designed for developers and interfaces. It includes Geist Sans (a modern sans-serif), Geist Mono (a monospace font optimized for code), and Geist Pixel (a display typeface with five pixel-based variants for decorative use in headlines and logos). ## Installation ```bash npm install geist ``` ## Usage with Next.js (next/font) ### App Router ```tsx // app/layout.tsx import { GeistSans } from 'geist/font/sans' import { GeistMono } from 'geist/font/mono' export default function RootLayout({ children }: { children: React.ReactNode }) { return (
{children} ) } ``` ### With Tailwind CSS ```tsx // app/layout.tsx import { GeistSans } from 'geist/font/sans' import { GeistMono } from 'geist/font/mono' export default function RootLayout({ children }: { children: React.ReactNode }) { return ( {children} ) } ``` ```ts // tailwind.config.ts import type { Config } from 'tailwindcss' const config: Config = { theme: { extend: { fontFamily: { sans: ['var(--font-geist-sans)'], mono: ['var(--font-geist-mono)'], }, }, }, } export default config ``` Then use in components: ```tsxGeist Sans text
Geist Mono code
```
### CSS Variables
Geist fonts expose CSS custom properties:
| Variable | Font |
|---|---|
| `--font-geist-sans` | Geist Sans |
| `--font-geist-mono` | Geist Mono |
Use them in CSS:
```css
body {
font-family: var(--font-geist-sans);
}
code, pre {
font-family: var(--font-geist-mono);
}
```
## Font Weights
Both Geist Sans and Geist Mono support these weights:
| Weight | Value |
|---|---|
| Thin | 100 |
| Extra Light | 200 |
| Light | 300 |
| Regular | 400 |
| Medium | 500 |
| Semi Bold | 600 |
| Bold | 700 |
| Extra Bold | 800 |
| Black | 900 |
## Typography Direction for Geist
Geist is not just a font import. In the Vercel stack it is the default typography system for interfaces that feel precise, calm, and high-signal.
### What good looks like
- Headlines are crisp, tightly tracked, and decisive
- Body copy is readable and restrained; secondary text is muted, not washed out
- Numbers, commands, IDs, timestamps use Geist Mono for precision
- Typography carries hierarchy first; color and decoration come second
### Default type recipes
```tsx
Supporting copy