Introducing Geist Serif
Geist started as a monospace typeface for developers, built for the editors and terminals where they spend their day doing their work. From there it grew into Geist Sans for product interfaces, and then into Geist Pixel, which was inspired by the grids of early computer screens. Today, we're adding a new member to…

Geist started as a monospace typeface for developers, built for the editors and terminals where they spend their day doing their work. From there it grew into Geist Sans for product interfaces, and then into Geist Pixel, which was inspired by the grids of early computer screens.
Today, we're adding a new member to the family: Geist Serif.
Geist Serif is a high-contrast display serif built on the same foundations as Geist Sans, Geist Mono, and Geist Pixel. It has fine, saw-toothed serifs and sharp hairlines, and it was drawn to communicate messages powerfully both in the physical world and on the high-density screens on modern devices.
Same system, new voice
At Vercel, Geist Sans runs the product. For headlines, though, we wanted a second voice, one that belongs to the same system, instead of a stranger picked from a drop-down menu.
A lot of tech brands have moved away from clean sans-serifs to get some personality back, and many of them borrow from vintage computer ads. Geist Serif takes a different path: toward fashion, editorial design, and magazine headlines. It's our homage to the artists behind Rolling Stone and Harper's Bazaar.
From the beginning, each Geist family has read from a chapter of type history: the Swiss design movement, early terminal and DOS computing, and now editorial print.
Display first
Geist Serif began as a set of sketches by Evil Rabbit, which Andrés Briganti then expanded. The first letters already showed an expressive serif, in the spirit of typefaces like Victor Serif and Stanley.
When Mark Davis took over the drawings, we made the first release a display face for headlines, posters, and other large sizes, while work on the full family continued. Print has always struggled to hold fine hairlines and sharp serifs, but today's displays can handle a high level of detail. We wanted the new face to take full advantage of modern screens, so we thinned every downstroke by 50% and tightened the sidebearings to push the contrast as far as it would go.
Each serif has a wedge on one side and a curve on the other, so the proportions are classical and look beautiful in print, but the construction is new and optimized for digital devices.
From the first prototype to today
The first prototype of Geist Serif was shared on April 1, 2026. Here's the same word, Geist, in that prototype, compared with the display drawing shipping today.
Geist grew teeth
The goal was to honor our original intent and keep the serif closely tied to the sans, even when the letters sit on top of each other. Geist Serif’s stems match Geist Sans, and the two share widths and postures.
The saw-toothed serifs and high contrast give Geist an editorial voice. One phrase kept coming up as each character was drawn: “Geist grew teeth.”
Four families, one x-height
Geist Serif uses the same cap height and x-height as Geist Sans, so you can drop it into any Geist layout without moving a line. Mix Sans, Mono, Pixel, and Serif in the same sentence and every word looks the same size.
| Metric | Geist Sans | Geist Serif |
|---|---|---|
| UPM | 1000 | 1000 |
| Cap height | 710 | 710 |
| x-height | 530 | 530 |
| Ascender | 710 | 750 |
| Descender | -150 | -200 |
Four variants, one axis
Like Geist Pixel, Geist Serif has a variable axis that swaps the shape of every dot in the font, including those on i and j and in punctuation. The axis is called Element Shape (ELSH), and it gives you four variants: Regular with round dots (the default), Square, Triangle (a nod to the Vercel logo), and Heart.
Each variant also ships as its own static file. If you use the variable font, pick a variant with font-variation-settings:
Crafted by hand
In July the font had 227 glyphs. It now has 894 and covers 352 Latin-script languages, and we worked through more than 52,000 kerning pairs to get the spacing right. Some of the details are tiny. The eye of the g, for example, is tilted exactly 7°.
Specs at a glance
Geist Serif ships with:
- 1 weight (Regular)
- 4 variants (Regular, Square, Triangle, Heart)
- 894 glyphs
- 5 stylistic sets (
ss01toss05) - 352 supported languages
Getting started
Geist Serif ships in the same package as the rest of the family:
Exports and CSS variables:
GeistSerif(variable, all shapes): --font-geist-serifGeistSerifRegular: --font-geist-serif-regularGeistSerifSquare: --font-geist-serif-squareGeistSerifTriangle: --font-geist-serif-triangleGeistSerifHeart: --font-geist-serif-heart
Each one has its own entry point, so you only ship the font file you use. For example, in layout.tsx with GeistSerifRegular:
You can also download the font files, test every stylistic set, and inspect each glyph at vercel.com/font.
What’s next
Regular is the first style we’re releasing, and the rest of the family is already in progress. We’re testing future versions while building this one, so this release is just the start.
Weights from Thin to Black
The variable font will range from Thin (100) to Black (900). In this week’s proofs, the g in Black is the letter we can’t stop looking at.
Toward a text face
To explore a text version, we built a foundry tool that measures strokes, including where they meet, and thickens the display outlines. It edits the outlines directly, so we can set real words and see which strokes need more weight.
Italics, built rule by rule
We’re also developing an italic generated entirely in Python. We slanted existing italics back upright and compared them with their romans. With the angle removed, the remaining differences show up clearly, and we turned them into rules we can test and revise. This italic won’t be the final version, but breaking glyphs in code helps us find the limits faster.
More scripts and Google Fonts
Cyrillic support is planned to match Geist Sans and Geist Mono, and Geist Serif will come to Google Fonts after launch.
One family
With Geist Sans, Geist Mono, Geist Pixel, and now Geist Serif, the family runs from UI text and code to expressive display type, and all four feel at home together.
Download Geist Serif and start building.
Thank you to everyone who made Geist Serif possible.
None of this would have been possible without an incredible group of people behind the scenes.
Huge thanks to Andrés Briganti for starting this journey with me and drawing the first version that everything else grew from, and to Mark Davis for carrying it across the finish line with obsessive craft, from the expanded glyph set and variable axis to every last kerning pair. Thanks also to Patrick McDonald and Marijana Pavlinić for the poster designs, to Luis Gutierrez Rico for the motion and incredible magic, to Christopher Kindl for shipping the package and rebuilding the landing page down to the smallest details, and to Zahra Jabini for the coordination and technical support that brought it all together. This was a true team effort, and I’m grateful to have built it with all of you.
منتشرشده در
Vercel Blog
ادامه مطالعه





