#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.
Essence
retool.com is an Innocent brand — understated, warm, modern, optimistic and pure — anchored on #e9ebdf and saansFont, mixed motion.
Adjectives
- understated
- warm
- modern
- optimistic
- pure
Personality axes
Evidence
- heaviest weight 400, 1.0:1 brand contrast → understated (weight -0.69)
- #e9ebdf at 70° reads warm → warm (warmth +0.45)
- sans display face, flat material → modern (era +0.3)
- Axis fingerprint nearest the Innocent archetype (77% fit, vs Everyman).
About
Logo
Colour
1 primary · 1 secondary · 1 accent · 9 neutrals · 13 total
Neutrals
#151515#FFFFFF#CBCCC4#242424#8B867F#B6B8AF#000000#D9D9D9#433E38Full palette
#E9EBDF#151515#FFFFFF#CBCCC4#242424#8B867F#F7F8F4#B6B8AF#000000#D9D9D9#433E38#518DD2#0E352CWCAG 100% · 5 passing pairs · 0 failing. Full breakdown in §11.
Typography
2 families · 11 sizes · 3 weights
Specimen
Scale
| Step | Size | Sample |
|---|---|---|
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 |
Spacing
Base 2px · 13 steps captured
Rhythm
1px
20px
24px
28px
32px
40px
56px
64px
71px
80px
Shape
9 radii · 3 elevation tiers
Border radii
4px
8px
12px
16px
20px
24px
Elevation
xs
sm
md
Iconography
heroicons-solid · 24 captured
iconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconiconMotion
Feel: mixed · 4 durations · 4 easings
Duration scale
100ms
200ms
300ms
500ms
Easings
customcustomcustomease-out
Components
tailwindcss · 2 component patterns captured
Mocks
Built from these tokens
Radius, primary, surface, text — all sampled from the live site.
Read more →Detected patterns
button
card
Voice
neutral · — · —
Headlines from the site
- Secure your vibe-coded apps
- Apps that mean business
- Why enterprises choose Retool
- Production-ready from day one
CTA verbs
×3×2×2×1×1×1×1×1
Accessibility
5 passing · 0 failing
No failing contrast pairs detected.
Tokens
Drop-in code for the most common stacks. All values from the live extraction.
:root {
--color-primary: #e9ebdf;
--font-display: "saansFont";
--space-base: 2px;
--radius-md: 8px;
}
// 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).
Usage
-
Lead with the primary.
It belongs on calls-to-action and one accent moment per screen. Not on body copy.
-
Two type families, three weights.
Display for headlines, body for paragraphs. Resist a third unless there is a real reason.
-
Snap to the spacing scale.
Padding, margin, and gap should land on the values in §05. One-off pixels accumulate into noise.
-
Treat accessibility as a hard constraint.
When a colour pair fails WCAG, fix the colour — not the contrast check.