explaingit

arrowtype/recursive

3,779PythonAudience · designerComplexity · 1/5LicenseSetup · easy

TLDR

A free, open-source variable font family with monospaced and proportional versions designed for code editors and software interfaces, offering continuous control over weight, slant, and style in a single font file.

Mindmap

mindmap
  root((Recursive Font))
    What It Is
      Variable font
      Mono and sans versions
    Adjustable Axes
      Weight
      Slant
      Casual vs strict
      Mono vs proportional
      Cursive letterforms
    Use Cases
      Code editors
      Software UI
      Web typography
    Distribution
      GitHub Releases
      Google Fonts
      CSS font-face
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Install Recursive Mono as your code editor font for a readable, styleable coding experience without buying a commercial font

USE CASE 2

Add Recursive as a CSS variable font on a website to smoothly animate weight or slant transitions without causing layout shifts

USE CASE 3

Use Recursive Sans in software menus and tooltips for consistent typography that can shift between weights without reflowing text

USE CASE 4

Download and embed Recursive in commercial apps or web projects for free under the Open Font License

Tech stack

Python

Getting it running

Difficulty · easy Time to first run · 5min
Free to use in any project including commercial apps and websites, you can modify and redistribute it as long as you keep the SIL Open Font License.

In plain English

Recursive Mono & Sans is a free, open-source font family built specifically for writing and reading code, as well as general software interfaces. It comes in two flavors: a monospaced version (Recursive Mono) where every character takes up the same fixed width, ideal for code editors, and a proportional version (Recursive Sans) where letter widths vary naturally for more comfortable reading in menus, tooltips, and other UI elements. What makes this font family unusual is that it is a variable font. Rather than providing separate files for thin, regular, bold, italic, and dozens of other style combinations, one font file contains a continuous range of styles you can dial in using sliders or CSS properties. Recursive offers five adjustable axes: weight (from light to heavy), slant (upright to angled), a casual-vs-strict expression scale that moves from a loose signpainting-inspired look to a crisp formal one, a toggle between mono and proportional spacing, and a cursive axis for italic letterforms. Because the Sans variant shares proportions across all styles, you can shift between weights and expressions without any text reflow or layout shifts, which is useful for animated UI or responsive design. The name comes from programming itself. In code, recursion is when a function calls itself. This font was partially built using itself: the designers wrote Python scripts to automate production work and created web-based proofs all while using Recursive Mono as their working font. That self-referential loop is baked into the name. Recursive supports well over a hundred languages using Latin-based scripts, plus a range of currency and math symbols. It is released under the SIL Open Font License, which means you can use it freely in personal and commercial projects, including on websites, in apps, and inside other software, without paying a license fee. You can download the fonts from the GitHub Releases page and install them on Mac or Windows using standard system font steps. For websites, you add it via CSS with a standard @font-face block, specifying the weight range so browsers can access the full variable range. Recursive is also distributed through Google Fonts.

Copy-paste prompts

Prompt 1
Help me add the Recursive variable font to my website with a CSS @font-face block, and show me how to use font-variation-settings to control weight and slant independently
Prompt 2
I want to use Recursive Mono as my coding font in VS Code. How do I download and install it, and what do I add to settings.json?
Prompt 3
Show me how to animate font-weight on hover using the Recursive variable font in CSS so the text shifts from light to bold without any layout reflow
Prompt 4
I'm building a developer tool UI. Help me decide between Recursive Mono and Recursive Sans for different parts of the interface and show me the CSS axis values to use for each
Open on GitHub → Explain another repo

← arrowtype on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.