Code & design

Multipurpose Mono:
Unique && Useful

Open counter shapes and recognizable letterforms deliver clarity and consistent rhythm. Uppercase letters have a unique personality, while extraneous details are stripped away from the lowercase for fast and easy recognition. The italic is partly cursive and partly roman in order to stand out while offering instant readability.

**Strict** has straight edges and simple, open forms for long-form use.

**Casual** balances personality and normality for CLIs and code snippets.

Superplexed Sans:
UI can do more

Letters keep the same width across font styles, making it possible to smoothly animate between styles without breaking layout or wordshapes. Direct focus, respond to interaction, or shift the typographic tone by transitioning across weights, slants, and expressions.

Mix & Match:
More cohesive docs

Technical documentation (AKA “docs”) and code-focused blogs often mix mono and proportional type to explain code concepts. These sites must present complex hierarchies in a way that is clear, easy to navigate, and appealing to new users. With Recursive, these sites can have a more expansive typographic voice that is digestible, cohesive, and energetic.

Two subfamilies.
Three Variable Axes.

Recursive Mono

Each character gets the same width as every other character across styles. Originally borrowed from typewriters, monospace type lends extra clarity to code and gives design a technical feel.

Recursive Sans

Characters are drawn at natural, proportional widths for comfortable readability. They are also superplexed: letters are kept the same width, across styles. This opens new possibilities in UI design and interaction.

Variable Axis:

Built from “brush strokes,” Recursive is able to deliver a wide spectrum of personality, from Casual to Strict. Each end of this axis is crafted to be read in text sizes on screens.

**Casual** is striking and warm for headlines, snippets, and CLIs.

**Strict** is normalized and readable for editors, articles, and docs.

Variable Axis:

Many capable fonts have a standard weight range of regular-to-bold. However, a broader and more granular weight range opens new possiblities in expression and communication. Recursive delivers the broadest possible range while retaining legibility in common screen sizes. Within these weights, characters are carefully designed to smoothly interpolate, with no abrupt form changes to glyphs like the dollar sign or uppercase Q.

Variable Axis:

Recursive smoothly slopes from 0° to 14° – a heavy slant, influenced by traditions of technical lettering. Character forms automatically become more “cursive” when slant is increased, to clearly differentiate italic text. Additionally, stylistic alternates allow for extra typographic range and smooth animations, with an upright italic and a sloped roman.

Inspired by signwriting.
Designed for screens.

From casual script…

Recursive takes its formative shapes from single-stroke casual script, a disconnected script for signpainting in which each letter is made of single brush strokes, rather than outlines careful traced and filled in. The very form of this writing style comes from the speed with which it allows practitioners to create beautiful, expressive signs.

The playful, flowing nature of these letterforms has been studied through hands-on practice and redrawn for the needs of coding and interaction design on modern computers and websites. In this sense, the typeface is a reinterpretation of cursive.

…to digital

In computer science, recursion is a problem-solving approach that finds solutions by breaking challenges into smaller and smaller tasks. Recursive functions repeatedly cue themselves to produce a final output.

The process of designing any typeface is recursive. A type family is made from many master files, which are themselves made up of glyphs, which are made of contours, made of segments, made of points. These are manipulated both by hand and through code. Beyond this fractal construction, Recursive was used to both build and test itself. It was used to code Python scripts that manipulated the font source files, it was used in the HTML, CSS, and JavaScript for type proofing in web browsers, and it was used in writing the process documentation.

This process meant that while brush writing was the origin of the typeface, the letterforms were deliberately simplified to balance personality and utility in websites, apps, and code editors.

Variable fonts: More, Performant.

Traditionally, digital fonts have had several distinct, static instances along a stylistic range such as weight: Light, Regular, Bold. Variable fonts, by contrast, offer a fluid range of style: they can be interpolated on the fly within a multidimensional spectrum. This offers not just a few static instances, but also the space between the instances. This allows designers and developers to dial-in more exact results. It makes it possible to smoothly animate between styles. On the web, it offers better performance for wider typographic palettes by packing a range of many styles into a single HTTP request.

Of course, in many cases, preset interpolations are still useful. Often, you just want a couple of useful styles. In static design applications, Recursive offers a set of useful weights for Mono & Sans, Casual & Strict, and Upright & Italic styles.

Familiar. Different.

Recursive pushes the boundaries of what is possible in a variable font. While most variable fonts simply use already-common stylistic parameters such as weight and width, Recursive shows that new parameters are possible. A technical challenge in creating type for variable fonts is that the vector outlines must be compatible between all drawings of the same letter: each drawing must contain an equal number of control points so that shapes can be mathematically interpolated. Recursive has letters which are built from “brush strokes,” with corners that can shift from blocky to brushy. This novel construction makes it possible to keep compatible points even between very different, complementary typographic styles.

Extended Latin character set.
Supports 200+ Languages.

A À Á Â Ã Ä Å Ā Ă Ą Ǻ Ạ B C Ç Ć Ĉ Ċ Č D Ď E È É Ê Ë Ē Ĕ Ė Ę Ě Ẹ Ẽ F G Ĝ Ğ Ġ Ģ Ǧ H Ĥ I Ì Í Î Ï Ĩ Ī Ĭ Į İ Ị J Ĵ K Ķ L Ĺ Ļ Ľ M N Ñ Ń Ņ Ň O Ò Ó Ô Õ Ö Ō Ŏ Ő Ǫ Ọ P Q R Ŕ Ŗ Ř S Ś Ŝ Ş Š Ș T Ť ț U Ù Ú Û Ü Ũ Ū Ŭ Ů Ű Ų Ụ V W Ŵ Ẁ Ẃ Ẅ X Y Ý Ŷ Ÿ Ȳ Ỳ Ỹ Z Ź Ż Ž Æ Ǽ Ð Ø Ǿ Þ Đ Ħ IJ  Ŀ Ł Ŋ Œ Ŧ Ə ẞ Ω a à á â ã ä å ā ă ą ǻ ạ b c ç ć ĉ ċ č d ď e è é ê ë ē ĕ ė ę ě ẹ ẽ f g ĝ ğ ġ ģ ǧ h ĥ i ì í î ï ĩ ī ĭ į ị j ĵ k ķ l ĺ ļ ľ m n ñ ń ņ ň o ò ó ô õ ö ō ŏ ő ǫ ọ p q r ŕ ŗ ř s ś ŝ ş š ș t ţ ť Ț u ù ú û ü ũ ū ŭ ů ű ų ụ v w ŵ ẁ ẃ ẅ x y ý ÿ ŷ ȳ ỳ ỹ z ź ż ž ß æ ǽ ð ø ǿ þ đ ħ ı ij  ĸ ŀ ł ʼn ŋ œ ŧ ə π 0 1 2 3 4 5 6 7 8 9 ¹ ² ³ ¼ ½ ¾ _ - – — \ ( \ ) \ [ \ ] \ { \ } # % ‰ ' " ‘ ’ “ ” ‚ „ ‹ › « » * † ‡ . , : ; … / \ ¡ ! ? ¿ | ¦ @ & § ¶ · • + − ± ÷ × = ≠ < > ≈ ¬ ← ↑ → ↓ ∆ ∏ ∑ µ ≡ $ ¢ € £ ¥ ¤ © ® ™ ℓ ∫ √ ◊ ° ℮ ^ ` ¸ ˛ ~ ´ ˝ ˆ ˇ ˘ ˜ ¯ ¨ ˙ ˚

Simple English

Recursive algorithm: A recursive algorithm is a function that tells itself to do something, resulting in it running over and over on smaller and smaller inputs. At the end, it gives back a value.


Recursie (informatica): Recursie in informatica en computertechniek is een methode waar de oplossing van een probleem afhangt van oplossingen van kleinere identieke problemen, in tegenstelling tot iteratie.


Recursión (ciencias de computación): Recursión es, en ciencias de computación, una forma de atajar y solventar problemas. De hecho, recursión es una de las ideas centrales de ciencia de computación.1​ Resolver un problema mediante recursión significa que la solución depende de las soluciones de pequeñas instancias del mismo problema.


Algoritmo ricorsivo: In informatica viene detto algoritmo ricorsivo un algoritmo espresso in termini di se stesso, ovvero in cui l’esecuzione dell’algoritmo su un insieme di dati comporta la semplificazione o suddivisione dell’insieme di dati e l’applicazione dello stesso algoritmo agli insiemi di dati semplificati.


Algorithme récursif: Un algorithme récursif est un algorithme qui résout un problème en calculant des solutions d’instances plus petites du même problème1. L’approche récursive est un des concepts de base en informatique.


Rekursive Programmierung: Bei der rekursiven Programmierung ruft sich eine Prozedur, Funktion oder Methode in einem Computerprogramm selbst wieder auf (d. h. enthält eine Rekursion). Auch der gegenseitige Aufruf stellt eine Rekursion dar.


Rekurzia (informatika): Rekurzia je z pohľadu informatiky definícia funkcie alebo metódy pomocou samej seba. Rekurzívne vyjadrenia sú všeobecne kratšie a ľahšie zrozumiteľné ako iné vyjadrenia, pretože zvýrazňujú charakteristické vlastnosti funkcie.


Rekurze (programování): Rekurze je programovací technika, při níž je určitá procedura nebo funkce znovu volána dříve, než je dokončeno její předchozí volání. Použití rekurze může u některých úloh vést ke stručnému a matematicky elegantnímu řešení.

Try it!

Publishing Soon.*
Want Updates?

*Recursive is still being expanded and refined for publication. Want to be notified when it is available? Sign up for (very occasional) updates!