← VercelCONTENT HISTORY

Update to Vercel

Snapshot Sep 30, 2026 · 23:18 UTC · version 0.21.4

Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED · RULE-BASED ANALYSIS

Supporting file metadata differs

Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Supporting files

Before

[]

After

[{"relative_path":"agents/openai.yaml","size_in_bytes":167}]

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

changed /included_files

BEFORE
[]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 167
  }
]
Full snapshot data
{
  "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.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 167
    }
  ],
  "skill_md_contents": "---\nname: geist\ndescription: 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.\nmetadata:\n  priority: 4\n  docs:\n    - \"https://vercel.com/font\"\n    - \"https://github.com/vercel/geist-font\"\n  sitemap: \"https://vercel.com/sitemap/docs.xml\"\n  pathPatterns:\n    - 'app/layout.*'\n    - 'src/app/layout.*'\n    - 'app/globals.css'\n    - 'src/app/globals.css'\n    - 'styles/**'\n    - 'tailwind.config.*'\n    - 'apps/*/app/layout.*'\n    - 'apps/*/src/app/layout.*'\n    - 'apps/*/app/globals.css'\n    - 'apps/*/src/app/globals.css'\n  importPatterns:\n    - 'geist'\n    - 'geist/font'\n    - 'geist/font/*'\n  bashPatterns:\n    - '\\bnpm\\s+(install|i|add)\\s+[^\\n]*\\bgeist\\b'\n    - '\\bpnpm\\s+(install|i|add)\\s+[^\\n]*\\bgeist\\b'\n    - '\\bbun\\s+(install|i|add)\\s+[^\\n]*\\bgeist\\b'\n    - '\\byarn\\s+add\\s+[^\\n]*\\bgeist\\b'\n---\n\n# Geist — Vercel's Font Family\n\nYou 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).\n\n## Installation\n\n```bash\nnpm install geist\n```\n\n## Usage with Next.js (next/font)\n\n### App Router\n\n```tsx\n// app/layout.tsx\nimport { GeistSans } from 'geist/font/sans'\nimport { GeistMono } from 'geist/font/mono'\n\nexport default function RootLayout({ children }: { children: React.ReactNode }) {\n  return (\n    <html lang=\"en\" className={`${GeistSans.variable} ${GeistMono.variable}`}>\n      <body className={GeistSans.className}>\n        {children}\n      </body>\n    </html>\n  )\n}\n```\n\n### With Tailwind CSS\n\n```tsx\n// app/layout.tsx\nimport { GeistSans } from 'geist/font/sans'\nimport { GeistMono } from 'geist/font/mono'\n\nexport default function RootLayout({ children }: { children: React.ReactNode }) {\n  return (\n    <html lang=\"en\" className={`${GeistSans.variable} ${GeistMono.variable}`}>\n      <body>{children}</body>\n    </html>\n  )\n}\n```\n\n```ts\n// tailwind.config.ts\nimport type { Config } from 'tailwindcss'\n\nconst config: Config = {\n  theme: {\n    extend: {\n      fontFamily: {\n        sans: ['var(--font-geist-sans)'],\n        mono: ['var(--font-geist-mono)'],\n      },\n    },\n  },\n}\nexport default config\n```\n\nThen use in components:\n\n```tsx\n<p className=\"font-sans\">Geist Sans text</p>\n<code className=\"font-mono\">Geist Mono code</code>\n```\n\n### CSS Variables\n\nGeist fonts expose CSS custom properties:\n\n| Variable | Font |\n|---|---|\n| `--font-geist-sans` | Geist Sans |\n| `--font-geist-mono` | Geist Mono |\n\nUse them in CSS:\n\n```css\nbody {\n  font-family: var(--font-geist-sans);\n}\n\ncode, pre {\n  font-family: var(--font-geist-mono);\n}\n```\n\n## Font Weights\n\nBoth Geist Sans and Geist Mono support these weights:\n\n| Weight | Value |\n|---|---|\n| Thin | 100 |\n| Extra Light | 200 |\n| Light | 300 |\n| Regular | 400 |\n| Medium | 500 |\n| Semi Bold | 600 |\n| Bold | 700 |\n| Extra Bold | 800 |\n| Black | 900 |\n\n## Typography Direction for Geist\n\nGeist 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.\n\n### What good looks like\n\n- Headlines are crisp, tightly tracked, and decisive\n- Body copy is readable and restrained; secondary text is muted, not washed out\n- Numbers, commands, IDs, timestamps use Geist Mono for precision\n- Typography carries hierarchy first; color and decoration come second\n\n### Default type recipes\n\n```tsx\n<h1 className=\"text-4xl font-medium tracking-[-0.04em]\">Large page title</h1>\n<p className=\"text-sm leading-6 text-muted-foreground\">Supporting copy</p>\n<div className=\"font-mono text-[12px] text-muted-foreground tabular-nums\">Dense metadata</div>\n<h2 className=\"text-lg tracking-tight\">Section heading</h2>\n<h2 className=\"text-xl tracking-tight\">Large section heading</h2>\n<label className=\"text-sm\">UI label</label>\n```\n\nAvoid defaulting entire interfaces to `text-base`.\n\n### Where to use each family\n\n- Geist Sans: navigation, body copy, buttons, headings, forms, tables, dialogs\n- Geist Mono: code, shortcuts, terminal output, commit hashes, invoice amounts, metrics, timestamps, ENV keys, feature flags\n- Geist Pixel: one accent moment only - hero wordmark, campaign heading, empty-state label. Never body text or settings UI.\n\n### Anti-patterns\n\n- Mixing Geist with multiple unrelated font families\n- Using Geist Mono for long paragraphs\n- Using Geist Pixel for more than one or two focal moments\n- Making every heading bold (Geist looks strongest with restrained weight and tight tracking)\n- Letting secondary text get so faint that hierarchy disappears\n\n## Subset Configuration\n\nOptimize font loading by specifying subsets:\n\n```tsx\nimport { GeistSans } from 'geist/font/sans'\n\n// GeistSans automatically uses the 'latin' subset\n// For additional subsets, configure in next.config.js\n```\n\n## Geist Pixel (Feb 6, 2026)\n\nGeist Pixel is a bitmap-inspired display typeface family designed for headlines, logos, and decorative use. It ships five variants, each built on a different geometric primitive:\n\n| Variant | Description |\n|---|---|\n| Geist Pixel Square | Square-based pixel grid |\n| Geist Pixel Grid | Dense grid pattern |\n| Geist Pixel Circle | Circular dot matrix |\n| Geist Pixel Triangle | Triangular pixel forms |\n| Geist Pixel Line | Line-based pixel strokes |\n\nGeist Pixel is intended for display sizes only — use Geist Sans for body text and Geist Mono for code.\n\n## Coding Ligatures (v1.7.0)\n\nCoding ligatures are **no longer enabled by default**. They have been moved from contextual alternates to **Stylistic Set 11 (SS11)**. If you rely on coding ligatures in your editor or terminal, enable SS11 explicitly:\n\n- **VS Code**: `\"editor.fontLigatures\": \"'ss11'\"`\n- **CSS**: `font-feature-settings: 'ss11' 1;`\n\n## Cyrillic Support (v1.7.0)\n\nGeist 1.7.0 includes a redesigned Cyrillic script for all Geist Sans and Geist Mono styles.\n\n## Key Points\n\n1. **Optimized for Next.js** — works seamlessly with `next/font` for zero-layout-shift font loading\n2. **Three families** — Geist Sans for UI text, Geist Mono for code, Geist Pixel for decorative display\n3. **CSS variables** — `--font-geist-sans` and `--font-geist-mono` for flexible styling\n4. **Variable font** — single file supports all weights (100–900)\n5. **Self-hosted** — fonts are bundled with your app, no external requests\n6. **Import paths** — use `geist/font/sans` and `geist/font/mono` (not `geist/font`)\n7. **Coding ligatures** — opt-in via Stylistic Set 11 (no longer default)\n\n## Official Resources\n\n- [Geist Font GitHub](https://github.com/vercel/geist-font)\n- [Geist Design System](https://vercel.com/geist)\n"
}

SHA-256: 561263484cb7a79acd05d2edfccc386fbe2acfd2fa313d8abf6a8807cfae14ba