Visible Tokens

Visible Tokens is a design token generator for building design systems from scratch. Create colour palettes, typography, accessible surface and text colour pairings, and layout tokens such as spacing and border radius. Export tokens for multiple use cases, or use the Visible Tokens Figma plugin to generate variables, text styles, and design guidelines in one click.

Design ToolUI TokensProduct StrategyUI/UXVibe CodingProduct Release
Timeline
Jun — Jul 2026
Project type
Self-initiated design tool
Role
Product Designer & Maker

Responsibilities

  • Identified the core pain point and defined the product opportunity.
  • Designed the end-to-end product and visual experience.
  • Built the product using Codex, Tailwind CSS, and shadcn/ui, managing versions and iterations through GitHub.
  • Launched the product and created its Figma plugin page, SEO content, demo videos, visuals, and product copy.
Visible Tokens desktop design token generator.Visible Tokens mobile interface.
01

Why I built it?

Some tedious design work had always bothered me, and it often came up in conversations with other designers too. We all seemed to complain about the same things.

Pain Points

Building a colour palette takes ages

A UI colour palette is different from a branding palette. Branding colours can vary widely in brightness and saturation, with combinations often chosen to express creativity and personality. For UI, however, colours need to work as a system. They should feel like they belong to the same family, with a similar visual weight, so they can sit alongside each other in UI elements, charts, buttons, and data visualisations without one colour feeling overly vivid while another fades into the background.

Now imagine building a palette of 10 colours, each with 10 brightness steps. The colours need to feel harmonious horizontally, while each step maintains a consistent perceived brightness vertically across all 10 colours. And that’s just for one mode. If the product supports both light and dark modes, that means building and balancing two palettes.

Font styles and settings aren't exactly exciting

There are thousands of fonts on Google Fonts. Which ones come with a useful range of weights? Which ones pair well together? Finding the right combination can mean a lot of browsing, testing, and comparing. Is all that exploration a necessary part of the creative process? For some products, absolutely. But for many others — especially SaaS and back-end products — typography simply needs to be practical, clean, consistent, and easy to read.

And choosing the typeface is only the beginning. Font sizes, weights, and line heights still need to be defined for headings, body text, buttons, subtitles, and other UI elements. Designers often rely on different tools and repeated testing just to arrive at a typography system that feels balanced. Then comes the setup work: turning those decisions into Figma variables and linking them to text styles. It’s a lot of repetitive work for something that, in many products, doesn’t need to be complicated.

Text and border colours need to work across every surface

Text can appear on almost any surface in a product, and every combination needs enough contrast to stay readable. But good text colours aren’t just about passing a contrast check — primary and secondary text should also feel visually different while remaining clear on every background. Borders have a similar challenge. They usually don’t need to be expressive or draw attention. Their job is more subtle: separating content and defining boundaries without becoming visually distracting.

Most products use multiple surface colours to create hierarchy and distinguish different areas. In a light theme, the main background might be close to white, while other sections use progressively darker greys. Dark themes work in much the same way. It’s easy to end up with five or more surface colours in a single theme. Now every text and border colour needs to work across all of them. That means checking contrast ratios across surface and text combinations, while maintaining a clear visual hierarchy between primary, secondary, and more subtle text. Borders need the same balancing act — visible enough to separate content, but not strong on one surface and barely visible on another. Getting every combination to feel consistent means a lot of checking, comparing, and tweaking.

02

Colour Palette

Be simple

The idea is quite simple. Start with the colour you have in mind — for example, a warm, tomato-like red might be around Hue 10. Set the hue to 10, and VT takes it from there, generating the full scale of reds automatically.

Hue control in Visible Tokens.Generated red colour scale.

Palette settings

The palette scale is completely flexible. It can be 100–1000, 100–500, or even 100–2000 — whatever works for the system. Normally, a value somewhere in the middle is used as the base scale, but it doesn’t have to be. It simply acts as a reference point for how many lighter and darker shades are needed on either side.

Palette scale settings.

Global Appearance

Once a palette is finished, someone on the team or yourself might suddenly feel it looks a bit too faded. Normally, that means going back and adjusting the colours one by one. The global sliders are made to avoid this nightmare — simply move the slider, and the whole palette updates together.

Global palette appearance controls.

Fine-tuning some colours

Sometimes, people just want one colour to feel a little different. You might have heard this many times: “Can the red be redder?”

Don’t roll your eyes — VT can help. You can adjust one colour without messing up the rest of the palette.

Simply use the buttons to reduce or boost the chroma. VT generates a slightly more muted or vivid version of that colour while keeping its overall brightness level consistent with the rest of the scale.

Fine-tuning controls for one colour.

Matrix view

The Matrix View gives a better overview of the whole palette while making adjustments.

Visible Tokens matrix palette view.
03

Typography

Choose fonts based on your product’s tone

Choosing fonts usually means scrolling through a long list in Google Fonts or Figma, trying different options, and then figuring out which title and body fonts work well together.

Visible Tokens takes a different approach. Instead of starting with font names, start with the style of the product. First, choose whether it feels more classic or modern, then narrow it down by personality — calm, friendly, or expressive.

From these selections, VT recommends font pairings for titles and body text that match the overall tone of the product.

Typography personality and font pairing controls.
04

Interface

A simpler way to set up neutral colours

If the interface doesn’t need tinted surfaces, text, or borders — no bluish backgrounds, slightly tinted text, or colour-touched borders — and simple greys are enough, VT provides a much faster way to set them up.

Simply choose how bright the lightest surface should be, and VT generates a set of progressively darker surface colours to use across the interface. For dark mode, it works the other way around.

For each surface, VT also generates a matching border colour and three levels of text colours, with proper contrast ratios and enough brightness difference between them to create a clear visual hierarchy.

This makes it much easier to create colours that need to work with and constrain each other, rather than choosing every value separately and repeatedly checking whether they work together.

P.S. Instead of using the exact same border colour across the whole product, VT generates a border colour for each surface. The idea is to make borders look visually consistent across different backgrounds, rather than simply keeping their colour values consistent. Of course, this depends on the design approach you prefer.

Neutral interface token settings.
05

Responsive

Light/Dark mode switch

VT visualise all your settings in both light and dark mode, you see what you select.

Visible Tokens light mode preview.Visible Tokens dark mode preview.

Additional Help

Every setting can be previewed directly on the website. Fonts update as you make your selections, along with surface, text and border colours, spacing, and radius — so you can see how everything actually works together.

The idea is simple: don’t just set the tokens, make them Visible.

06

Figma Plugin

Turn all those settings into something usable

Once all the settings are finished on the website, export the file and import it into the Visible Tokens Figma plugin. In less than a minute, the plugin turns everything into Figma variables, text styles, and reference frames — ready to use in the design.