Retool's reference documents #3C3C3C as a documented primary color. Retool is the platform for building internal tools fast — the admin panels, dashboards, and operational apps that companies used to hand-code for months.
Needs work: freshness conflict · token source unverified · verification v2 missing
Retool is the platform for building internal tools fast — the admin panels, dashboards, and operational apps that companies used to hand-code for months. Its visual identity is unapologetically built for developers, and that audience defines everything: the brand site reads like a well-organized IDE, not a consumer landing page. The dominant atmosphere is dark, structural, and instrumented — near-black canvases (#0E0E0E–#1A1A1A), crisp 1px hairline grids, and a single warm accent that punches through the monochrome like a syntax-highlight keyword.
The brand's emotional register is competence, not delight. Where a consumer fintech app leans on rounded optimism, Retool leans on the aesthetic of tooling: tight grids, drag-handle affordances, table-dense layouts, monospaced data, and the visual language of a configuration surface. The marketing site itself frequently renders mock app-builder canvases — component trays on the left, a grid in the center, an inspector panel on the right — because the product is the brand. You are looking at software that builds software.
The palette is a study in restraint: a deep neutral foundation (the "Cod Gray" near-black and a soft "Green White" #E9EBDF off-white for light surfaces) punctuated by a small set of editorial accents — a warm Burnt Sienna orange, a muted Smalt Blue teal, and a periwinkle Cornflower. These are not loud SaaS gradients; they read like a carefully chosen terminal theme. Typography is a clean grotesque sans for UI and prose, paired with a true monospace for code, table data, and anything that smells like a value rather than a label.
Key Characteristics:
#1A1A1A), hairline #2E2E2E grids#E0613A) as the primary highlight against deep neutrals#E9EBDF) as the signature light surface — warmer than pure white#1A1A1A): The signature dark surface — page canvas, app builder background, nav bars. Near-black with a neutral undertone.#0E0E0E): Deepest surface — code blocks, the editor void, footer.#E9EBDF): Retool's signature off-white — light-mode surfaces, marketing sections, cards. Warmer and softer than #ffffff, with a faint green undertone.#FFFFFF): Maximum-contrast text on dark, true-white inputs inside light surfaces.#E0613A): The primary warm accent — CTA emphasis, key highlights, hover glows, syntax-keyword energy. Retool's most recognizable color note.#C94F2C): Pressed/hover state for the orange accent.#6E8BE0): Periwinkle secondary accent — links, informational highlights, illustration detail.#4E7C82): Muted teal — tertiary accent, data categories, secondary illustration tone.#3C3C3C): Default dark UI button fill on light surfaces — neutral, developer-grade. The product favors neutral primaries with accent reserved for emphasis.#FFFFFF): White-fill buttons against the dark canvas.#E0613A): When a button needs to pull — sign-up, "Start for free."#2FA86A): Successful query, deploy, passing state.#E5484D): Failed query, validation error, destructive action.#E0A23A): Unsaved changes, deprecation notices, attention states.#6E8BE0): Informational banners (reuses Cornflower).#0E0E0E): Deepest void — editor, code.#1A1A1A): Primary dark canvas.#232323): Raised panel — inspector, side trays.#2E2E2E): Default border / hairline grid on dark.#3C3C3C): Strong border, neutral button fill.#6B6B6B): Disabled text, muted icons on dark.#8A8A8A): Secondary/caption text on dark.#B4B4B4): Body text on dark surfaces.#D6D6D6): Strong body text on dark.#E9EBDF): Light page surface.#F4F5EF): Lightest tint — subtle section banding.#DCDED2): Card fill on light, disabled surface.#CACBBF): Default border / divider on light.#1A1A1A): Headings on light surfaces.#3C3C3C): Body copy on light.#6B6B6B): Captions, metadata on light.#2E2E2E (Neutral 700). Hairline grids, panel separators, table cell lines.#CACBBF. Card edges, input borders, dividers.rgba(14,14,14,0.64). Modal/dialog backdrop over the dark canvas.rgba(224,97,58,0.20). Subtle focus halo around accented elements."Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif — a neutral grotesque with excellent legibility at small sizes and tabular figure support. Retool's product and marketing favor a clean grotesque of this class."IBM Plex Mono", "JetBrains Mono", "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace — used for code blocks, query editors, table values, environment keys, and any literal value.| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display Hero | Inter | 56px | 700 | 60px (1.07) | -0.02em | Marketing hero headlines |
| Display | Inter | 40px | 700 | 46px (1.15) | -0.02em | Section headers |
| Heading 1 | Inter | 30px | 600 | 38px (1.27) | -0.01em | Page titles |
| Heading 2 | Inter | 22px | 600 | 30px (1.36) | -0.01em | Card / feature titles |
| Heading 3 | Inter | 18px | 600 | 26px (1.44) | normal | Sub-sections, panel headers |
| Subtitle | Inter | 16px | 500 | 24px (1.50) | normal | Nav labels, list headers |
| Body Large | Inter | 16px | 400 | 26px (1.63) | normal | Marketing prose |
| Body | Inter | 14px | 400 | 22px (1.57) | normal | Standard UI text |
| Body Small | Inter | 13px | 400 | 20px (1.54) | normal | Secondary info, helper text |
| Caption | Inter | 12px | 400 | 16px (1.33) | normal | Metadata, table headers (often uppercase) |
| Label (uppercase) | Inter | 11px | 600 | 16px (1.45) | 0.06em | Section eyebrows, table column heads |
| Code / Mono | IBM Plex Mono | 13px | 400 | 20px (1.54) | normal | Query editor, values, keys |
| Data (tabular) | IBM Plex Mono | 13px | 400 | 20px | normal | Table cells — font-variant-numeric: tabular-nums |
-0.02em for a dense, engineered feel. Body stays at normal tracking.0.06em tracking mark section starts and table column headers — a developer-doc convention.Retool buttons are low-radius, structural, and lean neutral by default — accent color is spent sparingly on the single most important action per view.
Primary (neutral / dark fill)
#3C3C3C#FFFFFF#2E2E2EAccent (Burnt Sienna)
#E0613A#FFFFFF#C94F2CSecondary (outline)
#3C3C3C (light) / #D6D6D6 (dark)#CACBBF (light) / #3C3C3C (dark)#F4F5EF (light) / #232323 (dark)Ghost / Text
#3C3C3C (light) / #B4B4B4 (dark)rgba(0,0,0,0.04) / rgba(255,255,255,0.06)Destructive
#E5484D#FFFFFF#CE3A3FIcon Button
rgba(255,255,255,0.06) on hover (dark)#B4B4B4 → #FFFFFF on hoverDisabled across all variants: 40% opacity, no pointer events. Focus: 2px rgba(224,97,58,0.20) ring + 1px #E0613A outline.
Text Field (light)
#FFFFFF#1A1A1A#CACBBF#8A8A8A#E0613A + 2px rgba(224,97,58,0.20) ringText Field (dark)
#1A1A1A#FFFFFF#2E2E2E#6B6B6B#E0613ACode / Query Editor
#0E0E0E#D6D6D6#2E2E2E#E0613A, strings #2FA86A, numbers #6E8BE0, comments #6B6B6BError State
#E5484D#E5484D 13px below fieldStandard (light)
#FFFFFF#CACBBF0px 1px 2px rgba(14,14,14,0.06)Panel (dark)
#232323#2E2E2EResource Card
#1A1A1A#2E2E2E#3C3C3C, accent icon tintThe signature Retool surface. Tables are dense, mono-valued, and grid-lined.
#232323 bg, #8A8A8A 11px uppercase 0.06em, 1px #2E2E2E bottom border#1A1A1A bg, #D6D6D6 13px IBM Plex Mono, 36px row height#232323rgba(224,97,58,0.12) bg, 2px #E0613A left border#2E2E2E (hairline grid)#1E1E1EStatus (Success)
rgba(47,168,106,0.14)#2FA86AStatus (Error)
rgba(229,72,77,0.14)#E5484DStatus (Warning)
rgba(224,162,58,0.14)#E0A23ANeutral / Tag
#2E2E2E#B4B4B4#2E2E2E bottom#8A8A8A 14px / 500, 10px 14px padding#FFFFFF text + 2px #E0613A bottom indicator#D6D6D6Default
#232323#FFFFFF#2E2E2E0px 8px 24px rgba(14,14,14,0.40)#2FA86A, error #E5484DModal
#1A1A1A (dark) / #FFFFFF (light)#2E2E2E / #CACBBF0px 16px 48px rgba(14,14,14,0.50)#B4B4B4#E0613A · Off: #3C3C3C#FFFFFF 16px circle, 0px 1px 2px rgba(0,0,0,0.3)Verified: 2026-06-06
Tier 1 sources: retool.com (live brand site — dark-first developer aesthetic, Burnt Sienna accent CTAs, app-builder layout language, "Start for free" / "Book a demo" copy), docs.retool.com/apps/guides/presentation-styling/themes (theme + typography controls), mobbin.com/colors/brand/retool (palette names: Green White #E9EBDF, Cod Gray, Smalt Blue, Burnt Sienna, Cornflower, White). · https://retool.com (live production site)
Note: Retool ships no public token catalog; component geometry (radii, heights, spacing) is reconstructed from the live product/marketing UI and standard developer-tool conventions. Hex values for accent/semantic tiers are calibrated to the documented brand palette names.
| Level | Treatment | Use |
|---|---|---|
| Flat (Level 0) | No shadow; 1px border defines edges | Panels, cards on dark, table cells |
| Subtle (Level 1) | 0px 1px 2px rgba(14,14,14,0.06) | Light-surface cards, raised tiles |
| Standard (Level 2) | 0px 4px 12px rgba(14,14,14,0.24) | Dropdowns, popovers, context menus |
| Elevated (Level 3) | 0px 8px 24px rgba(14,14,14,0.40) | Toasts, floating panels |
| Modal (Level 4) | 0px 16px 48px rgba(14,14,14,0.50) | Dialogs, command palette |
Shadow Philosophy: On dark surfaces, Retool defines elevation primarily through 1px borders and background-value steps (#1A1A1A → #232323 → #2E2E2E), not shadow — shadows are nearly invisible on near-black anyway. Shadows return on light surfaces and for true overlays. The aesthetic is structural: edges are drawn, not blurred. This is the visual logic of an IDE, where panels are bounded by lines.
backdrop-filter: blur(8px) over a rgba(14,14,14,0.64) scrim#1A1A1A) for product/tool surfaces; use Green White (#E9EBDF) for marketing/light#E0613A) sparingly — one accented action per view#2E2E2E dark / #CACBBF light)0.06em tracking for section starts and column heads#3C3C3C is the default primary#FFFFFF as the light page surface — Green White (#E9EBDF) is the brand's warm off-white| Name | Width | Key Changes |
|---|---|---|
| Mobile | <640px | Single column, 24px padding, nav collapses to drawer |
| Tablet | 640–1024px | 2-col feature grids, condensed builder preview |
| Desktop | 1024–1440px | Full 12-col, 3-zone builder layout |
| Wide | >1440px | 1200px centered content, expanded canvas |
#2E2E2E border#1A1A1A)#0E0E0E)#E9EBDF)#232323#E0613A)#C94F2C#3C3C3C#2E2E2E / #CACBBF#B4B4B4 / #3C3C3C#8A8A8A#2FA86A / #E5484D / #E0A23A#6E8BE0, Smalt Blue #4E7C82#1A1A1A bg, header #232323 with #8A8A8A 11px uppercase column labels (0.06em tracking), rows 36px, cell values in IBM Plex Mono 13px #D6D6D6, 1px #2E2E2E cell borders, hover row #232323, selected row rgba(224,97,58,0.12) with 2px #E0613A left border, tabular numerals."#3C3C3C bg, white 14px/500 Inter text, 6px radius, 36px height, 0 16px padding, hover #2E2E2E. Focus ring 2px rgba(224,97,58,0.20)."#E0613A bg, white 15px/600 text, 6px radius, 40px height, hover #C94F2C. Label 'Start for free'."#0E0E0E bg, 1px #2E2E2E border, 6px radius, IBM Plex Mono 13px #D6D6D6, syntax keywords #E0613A, strings #2FA86A, numbers #6E8BE0, comments #6B6B6B."rgba(47,168,106,0.14) bg / #2FA86A text; error rgba(229,72,77,0.14) / #E5484D; 4px radius, 2px 8px padding, 12px/600 Inter."#232323 bg, 1px #2E2E2E border, 8px radius, 16px padding, dark text fields #1A1A1A with #2E2E2E borders, section eyebrow 11px uppercase #8A8A8A."#1A1A1A); reserve Green White (#E9EBDF) for marketing/light contexts#E0613A) is for one emphasis per view — neutral #3C3C3C is the default primary0.06em eyebrows mark sections and table columnsRetool talks to engineers like a senior colleague — direct, technically precise, allergic to fluff. Copy assumes the reader knows what an API, a query, and a deploy are. It sells leverage, not magic: the promise is "build the thing your team needs in hours instead of months," stated plainly. Marketing leads with verbs (Build, Ship, Connect, Govern) and grounds claims in capability, not adjectives. There is confidence without hype — enterprise-grade trust language ("a platform you can trust", "governance", "security") sits alongside builder energy ("Start for free").
| Context | Tone |
|---|---|
| CTAs | Imperative, two words max ("Start for free", "Book a demo", "Get started") |
| Headlines | Capability-forward, plainspoken ("Build internal tools, remarkably fast") |
| Feature copy | Concrete and technical — names the integration, the protocol, the action |
| Success messages | Terse confirmations ("Query ran successfully", "Deployed to production") |
| Error messages | Specific and actionable — names the failing resource and the fix. Never "Something went wrong." |
| Docs voice | Second-person, step-numbered, code-sample-first |
| Enterprise/sales | Trust and governance language — SOC 2, SSO, audit logs, access control |
Forbidden moves. No exclamation-point hype, no "magical"/"effortless"/"revolutionary" filler, no cutesy mascot voice, no apology theater ("Oops! Something broke"). Errors name the resource and the next step. The reader is a builder, not a consumer to be delighted.
Retool was founded in 2017 by David Hsu (with co-founder Snir Kodesh) on a sharp observation: every company builds the same internal tools — admin panels, customer-support dashboards, inventory managers, ops consoles — and every company wastes enormous engineering time hand-coding them from scratch. These tools are essential but rarely differentiating; they don't deserve months of bespoke React and CRUD plumbing. Retool's thesis was to make that work assembly instead of construction: a library of pre-built components (tables, forms, charts, buttons) that snap onto a grid and wire directly to any database or API.
The company went through Y Combinator (2017) and grew into one of the defining developer-productivity platforms, reaching a multi-billion-dollar valuation with customers spanning startups to large enterprises. The product expanded from internal-app building into workflows, a database, and AI-assisted app generation — but the core remains: drag components onto a canvas, connect a data source, ship.
The design system flows directly from this identity. Retool looks like the tool it is. The dark, gridded, panel-bounded aesthetic isn't a style choice layered on top — it's the literal interface of the app builder, promoted to brand language. The component-tray-and-inspector layout you see on the marketing site is the product. The monospace-for-values convention is how the product displays data. The restraint — one accent, low radii, drawn edges — communicates engineering seriousness: this is infrastructure you'll trust with production operations.
What Retool refuses: the bubbly gradient-heavy aesthetic of consumer-facing SaaS, the illustration-led "fun" of no-code toys (Retool is low-code for developers, a crucial distinction), and any visual that implies the tool is a black box. The grid is visible because builders want to see the structure. The brand sells competence and control to people who could build it themselves — and choose Retool because it's faster.
Personas below are fictional archetypes informed by Retool's publicly described developer-platform audience, not individual people.
Marcus, 31, San Francisco. Full-stack engineer at a 200-person fintech. Tasked with building an internal ops dashboard for the support team — refund approvals, account lookups, transaction reversals. Could build it in React, but it would eat two sprints he doesn't have. Reaches for Retool to wire Postgres + Stripe API to a table-and-form UI in an afternoon. Values: speed, real data binding, the ability to drop into raw JS when a component's defaults don't cut it. Lives in the query editor.
Priya, 38, Austin. Engineering manager / platform lead. Owns the decision of whether the org adopts Retool. Cares about governance — SSO, role-based access, audit logs, self-hosting for compliance. Wants her team to stop one-off-coding internal tools and standardize on a platform. Reads the security page before the features page. Will champion Retool internally only if it survives a SOC 2 conversation.
Dev, 26, remote. Operations engineer at a logistics startup, more scripts-and-SQL than frontend. Not a React person, but very comfortable with data and APIs. Retool lets him build the warehouse-ops tool himself instead of waiting in the eng backlog. Values: not having to learn a frontend framework, the visual grid that makes layout obvious, monospace tables that feel like the SQL console he already lives in.
| State | Treatment |
|---|---|
| Empty (no data) | #8A8A8A body line explaining the state ("No rows returned"), plus a ghost or accent action to add/connect data. Dense, no illustration — a tooling empty state, not a consumer one. |
| Empty (no resources) | Centered card on dark with a "Connect a resource" accent button (#E0613A) and one line of helper text in #8A8A8A. |
| Loading (query running) | Inline spinner in the panel header, #E0613A tint. Table shows a 1.2s shimmer over #232323 skeleton rows. Run button shows inline spinner, label preserved. |
| Loading (page) | Skeleton blocks at #232323 on the dark canvas matching final layout, 8% white shimmer sweep. |
| Success (query) | Toast: #232323 bg, leading #2FA86A dot, "Query ran successfully" 14px white, 3s auto-dismiss. |
| Success (deploy) | Status badge flips to rgba(47,168,106,0.14) / #2FA86A "Deployed", optional confirmation toast. |
| Error (query failed) | Inline error panel below the editor: rgba(229,72,77,0.14) bg, #E5484D left border, monospace error text naming the failure. Actionable, never generic. |
| Error (validation) | Field border #E5484D, helper text #E5484D 13px below — one sentence, names the fix. |
| Warning (unsaved) | Amber badge rgba(224,162,58,0.14) / #E0A23A "Unsaved changes" in the toolbar; Save button gains accent emphasis. |
| Disabled | 40% opacity, no pointer events. Borders retained so geometry stays stable. |
| Selected (table row / component) | 2px #E0613A left border + rgba(224,97,58,0.12) fill. The single consistent use of accent for selection across the builder. |
| Focus | 1px #E0613A outline + 2px rgba(224,97,58,0.20) ring on all interactive elements. |
Durations (named):
| Token | Value | Use |
|---|---|---|
motion-instant | 0ms | Toggle flips, checkbox, immediate state |
motion-fast | 120ms | Hover, focus ring, button press, tab indicator slide |
motion-standard | 200ms | The default — panel reveal, dropdown open, accordion |
motion-slow | 320ms | Modal entry, side-panel slide-in, route transitions |
motion-data | 240ms | Table row insert/update, query-result paint-in |
Easings:
| Token | Curve | Use |
|---|---|---|
ease-enter | cubic-bezier(0.16, 1, 0.3, 1) | Things appearing — panels, dropdowns, modals (a confident, settled ease-out) |
ease-exit | cubic-bezier(0.4, 0, 1, 1) | Things leaving — dismissals, collapses |
ease-standard | cubic-bezier(0.4, 0, 0.2, 1) | Two-way — tab content, accordion, hover transitions |
ease-linear | linear | Spinners, shimmer sweeps, progress bars |
Signature motions.
motion-standard / ease-enter — a single decisive slide, no bounce. Tooling motion is functional, never playful; overshoot would undermine the engineering tone.#E0613A underline slides horizontally between tabs over motion-fast / ease-standard, tracking the active panel. Crisp and immediate.motion-data / ease-enter, staggered subtly so a result set feels like it lands rather than flickers. Values never cross-fade between states.linear 1.2s left-to-right sweep with an 8% white highlight over #232323 blocks. The only continuously-animated element on the canvas.prefers-reduced-motion: reduce, all motion-* tokens collapse to motion-instant; slides become instant swaps, shimmer becomes a static #232323 block. The tool stays fully usable.Retool is the platform for building internal tools fast — the admin panels, dashboards, and operational apps that companies used to hand-code for months. Its visual identity is unapologetically built for developers, and that audience defines everything: the brand site reads like a well-organized IDE, not a consumer landing page. The dominant atmosphere is dark, structural, and instrumented — near-black canvases (#0E0E0E–#1A1A1A), crisp 1px hairline grids, and a single warm accent that punches through the monochrome like a syntax-highlight keyword.
Do and Don't guidelines parsed from DESIGN.md.
Do
Don't