designlang
Brand guidelines #518dd2

June 25, 2026

retool.com

A reading of the visual language at https://retool.com. Every token, every rule, every component — captured from the live site.

Page intent
landing
System grade
A 90/100
Tokens
13 colours · 11 sizes
Generated
designlang
Chapter 00

Essence

retool.com is an Innocent brand — understated, warm, modern, optimistic and pure — anchored on #e9ebdf and saansFont, mixed motion.

Innocent archetype · 77% fit · vs Everyman

Adjectives

Personality axes

Cool Warm
Composed Kinetic
Understated Bold
Timeless Modern

Evidence

Chapter 01

About

Page intent
landing 57% confidence
Material language
flat
Imagery style
flat-illustration
Component library
tailwindcss
Stack
next · Tailwind
Voice tone
neutral
Chapter 03

Colour

1 primary · 1 secondary · 1 accent · 9 neutrals · 13 total

Primary #E9EBDF
RGB
233, 235, 223
HSL
70°, 23%, 90%
Secondary #518DD2
RGB
81, 141, 210
HSL
212°, 59%, 57%
Accent #F7F8F4
RGB
247, 248, 244
HSL
75°, 22%, 96%

Neutrals

#151515
#FFFFFF
#CBCCC4
#242424
#8B867F
#B6B8AF
#000000
#D9D9D9
#433E38

Full palette

#E9EBDF
#151515
#FFFFFF
#CBCCC4
#242424
#8B867F
#F7F8F4
#B6B8AF
#000000
#D9D9D9
#433E38
#518DD2
#0E352C

WCAG 100% · 5 passing pairs · 0 failing. Full breakdown in §11.

Chapter 04

Typography

2 families · 11 sizes · 3 weights

Display
saansFont
Body
pxGroteskFont
Weights
400, 380, 300

Specimen

Secure your vibe-coded apps
Apps that mean business

Scale

StepSizeSample
t00 68.9231px Secure your vibe-coded apps
t01 56.9231px Secure your vibe-coded apps
t02 44.9231px Secure your vibe-coded apps
t03 28.9231px Secure your vibe-coded apps
t04 22.4615px Secure your vibe-coded apps
t05 18px Secure your vibe-coded apps
t06 16px Secure your vibe-coded apps
t07 14px Secure your vibe-coded apps
t08 13.2308px Secure your vibe-coded apps
t09 12px Secure your vibe-coded apps
Chapter 05

Spacing

Base 2px · 13 steps captured

Rhythm

1px
20px
24px
28px
32px
40px
56px
64px
71px
80px
Chapter 06

Shape

9 radii · 3 elevation tiers

Border radii

4px
8px
12px
16px
20px
24px

Elevation

xs
sm
md
Chapter 07

Iconography

heroicons-solid · 24 captured

Library
heroicons-solid
Confidence
55%
Stroke style
fillDominant
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
icon
Chapter 08

Motion

Feel: mixed · 4 durations · 4 easings

Duration scale

100ms
200ms
300ms
500ms

Easings

Chapter 09

Components

tailwindcss · 2 component patterns captured

Mocks

Card

Built from these tokens

Radius, primary, surface, text — all sampled from the live site.

Read more →

Detected patterns

button

Slots
label, icon, badge
Variants
secondary, primary
Sizes
sm, lg

card

Slots
heading, description, media, footer
Variants
link
Sizes
Chapter 10

Voice

neutral · — · —

Headlines from the site

CTA verbs

Chapter 11

Accessibility

100% WCAG 2.1 contrast
5 passing · 0 failing

No failing contrast pairs detected.

Chapter 12

Tokens

Drop-in code for the most common stacks. All values from the live extraction.

CSS variablesvariables.css
:root {
  --color-primary: #e9ebdf;
  --font-display: "saansFont";
  --space-base: 2px;
  --radius-md: 8px;
}
Tailwind configtailwind.config.js
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: { brand: '#e9ebdf' },
      fontFamily: { display: ['saansFont', 'serif'] },
      spacing: { base: '2px' },
      borderRadius: { md: '8px' },
    },
  },
};

Run npx designlang pack retool.com for the full bundle (DTCG, shadcn, Figma vars, motion, anatomy, Storybook).

Chapter 13

Usage

  1. Lead with the primary.

    It belongs on calls-to-action and one accent moment per screen. Not on body copy.

  2. Two type families, three weights.

    Display for headlines, body for paragraphs. Resist a third unless there is a real reason.

  3. Snap to the spacing scale.

    Padding, margin, and gap should land on the values in §05. One-off pixels accumulate into noise.

  4. Treat accessibility as a hard constraint.

    When a colour pair fails WCAG, fix the colour — not the contrast check.