UX Collective

We believe designers are thinkers as much as they are makers. https://linktr.ee/uxc

Follow publication

Member-only story

Fluid typography in design systems: from design to code

Felix
UX Collective
Published in
12 min readAug 22, 2024

A responsive, typescale from Rekka’s design System, for Large, Medium and Small screens, showing how the fonts adapt to various screen sizes.
Example Fluid Type Scale Defined in Figma by Felix Oginni

In an era where users interact with digital products on a plethora of devices, from smartphones to widescreen monitors, typography becomes more than just a visual element — it’s a cornerstone of usability and brand consistency.

In this guide, we’ll explore how to build a fluid typography system that ensures a flawless reading experience, whether on web or mobile.

The Building Blocks of a Typography System

1. Primitives

Primitives are the fundamental building blocks of your typography system. They consist of raw, unmodified values that define essential typographic elements such as font family, size, weight, line height, letter spacing, and color. These are not tied to any specific context or use case, making them versatile and reusable across your entire design system. Below is a simplified example.

:root {
/* Font Families */
--font-family-sans: 'Arial', sans-serif;
--font-family-serif: 'Georgia', serif;

/* Font Sizes (Referencing your Sizing Scale) */
--font-size-100: 16px;
--font-size-200: 20px;
--font-size-300: 24px;
--font-size-400: 32px;

/* Font Weights */

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

Written by Felix

Designer, building practical design systems, UI kits, and automation tools. Passionate about making design accessible for all.

Write a response

Thanks for sharing this amazing article! I’ve been looking around fluid typography for a while and always come across limitations when it comes to implementing it. Does this solution comply with accessibility standards?