taste-skill / Style guides / WorkOS style
How to build a UI in the WorkOS style
WorkOS (workos.com) reads as Enterprise-Ready Architectural Precision & Untitled Sans — Cool porcelain #F9F9FB canvas with #FFFFFF enterprise cards, #E8EAED 1px hairlines, monumental 80px Untitled Sans headings with ultra-tight -0.07em tracking, and #6363F1 indigo + #23F0C3 mint accents. This guide turns its extracted computed styles into an implementation kit: a live preview, the exact palette and type scale, real button and card recipes, the rules to avoid, and drop-in CSS variables, Tailwind config and a Cursor / Claude Code SKILL.md snippet.
Source: computed styles extracted from
https://workos.com on 2026-10-26 by the taste-skill extractor. Brand fonts may be proprietary; previews fall back to Inter / system fonts. WorkOS is a trademark of its owner; this page documents publicly visible styling for reference and is not affiliated with WorkOS.Live preview with WorkOS tokens
WorkOS style · light
Ship the product, not the pixels.
Preview text rendered with the extracted WorkOS canvas, text, muted and accent tokens.
Card on extracted card recipe
Accent link: #6363F1 · border
#E8EAEDColor palette (light mode)
| Role | Value | Tailwind | Usage |
|---|---|---|---|
| canvasBg | #F9F9FB | bg-[#F9F9FB] | Primary WorkOS page canvas |
| surfaceElevated | #FFFFFF | bg-white | Primary elevated card & bento surface |
| surfaceSecondary | #F9F9FB | bg-[#F9F9FB] | Secondary interactive container / hover fill |
| borderPrimary | #E8EAED | border-[#E8EAED] | Primary structural divider (1px solid #E8EAED) |
| borderSecondary | rgba(0, 0, 49, 0.1) | border-[rgba(0,0,49,0.1)] | Secondary nested module or pill border |
| textPrimary | #29363D | text-[#29363D] | Hero H1, section H2 & high-contrast foreground |
| textMuted | #5E6C75 | text-[#5E6C75] | Lead paragraphs, descriptions & muted labels |
| accentPrimary | #6363F1 | bg-[#6363F1] | Primary interactive CTA & brand highlight (100px (Pill)) |
| accentSecondary | #23F0C3 | text-[#23F0C3] | Secondary badge, syntax or telemetry highlight |
Typography
Heading Untitled Sans · body Untitled Sans · mono IBM Plex Mono
| Level | Computed spec |
|---|---|
| Hero H1 | 80px | line-height 84px (leading-[1.05]) | letter-spacing -5.6px (tracking-[-0.07em]) | weight 500 (font-[500]) | color #29363D (text-[#29363D]) | font Untitled Sans |
| Section H2 (Primary) | 28px | line-height 33.6px (leading-[1.2]) | letter-spacing -1.4px (tracking-[-0.05em]) | weight 500 (font-[500]) | color #6363F1 (text-[#6363F1]) | font Untitled Sans |
| Card / Feature H3 | Subheading with crisp line-height |
| Body Copy (Paragraph) | 19px | line-height 30.4px (leading-[1.6]) | letter-spacing -0.19px (tracking-[-0.01em]) | weight 400 (font-[400]) | color #656B8A (text-[#656B8A]) | font Untitled Sans |
| Monospace / Code Block | 12px | line-height 18px (leading-[1.5]) | letter-spacing 0px (tracking-[0em]) | weight 400 (font-[400]) | color #6B84FF (text-[#6B84FF]) | font IBM Plex Mono |
Spacing, radius, depth and motion
| Token family | Most frequent values (count on page) |
|---|---|
| Border radius | 4px ×41 · 16px ×14 · 7px ×12 · 8px ×7 · 50px ×2 · 24px ×1 |
| Box shadow | rgba(0, 0, 0, 0.04) 0px 0px 0px 1px, rgba(0, 0, 0, 0.17) 0px 5px 10px -4px ×14 · rgba(0, 0, 0, 0.2) 0px 1px 2px 0px inset ×14 · rgba(0, 0, 0, 0.03) 0px 10px 3px 0px, rgb(255, 255, 255) 1px 1px 1px 0px inset, rgba(0, 0, 0, 0.05) 0px -1px 10px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px, rgba(0, 0, 0, 0.17) 0px 2px 5px 0px ×14 |
| Grid / flex gap | 12px ×3 · 4px ×2 · 75px 96px ×2 · 48px ×2 · 20px ×1 · 2px 16px ×1 |
| Container max-width | 1200px ×10 · 670px ×1 · 820px ×1 · 768px ×1 |
| Section vertical padding | 120px / 120px ×5 · 120px / 0px ×1 |
| Easing | ease ×41 · ease, ease ×5 |
| Duration | 0.2s ×30 · 0.15s ×10 · 0.2s, 0.2s ×4 · 0.2s, 0.15s ×1 |
Component recipes
Buttons (8 distinct)
| Rendered | Height | Padding | Radius | Background / Text | Border | Font |
|---|---|---|---|---|---|---|
| Get started | 43px | 12px 24px | 100px | #6363F1#FFFFFF | none | 16px / 500 |
| Read the docs | 43px | 12px 24px | 100px | #23F0C3#030628 | none | 16px / 500 |
| Read more | 51px | 12px 18px | 100px | transparent#6363F1 | 1px solid #E8EAED | 14px / 500 |
| Read more | 43px | 12px 18px | 100px | transparent#6363F1 | 1px solid #E8EAED | 14px / 500 |
| Read more | 26px | 12px 18px | 100px | transparent#6363F1 | 1px solid #E8EAED | 14px / 500 |
Cards (3 distinct)
| # | Background | Border | Radius | Padding | Shadow |
|---|---|---|---|---|---|
| 1 | transparent | 7px solid #F0F0F5 | 46px 46px 0px 0px | 0px 0px | none |
| 2 | transparent | none | 8px | 0px 0px | rgba(38, 33, 84, 0.02) 0px 91px 183px 0px, rgba(38, 33, 84, 0.027) 0px 38.0176px 76.453px 0px, rgba(38, 33, 84, 0.035) 0px 20.326px 40.8754px 0px, rgba(38, 33, 84, 0.043) 0px 11.3946px 22.9144px 0px, rgba(38, 33, 84, 0.05) 0px 6.05159px 12.1697px 0px, rgba(38, 33, 84, 0.07) 0px 2.5182px 5.06408px 0px |
| 3 | #FFFFFF | none | 8px | 0px 0px | rgba(17, 7, 53, 0.05) 0px 51px 78px 0px, rgba(17, 7, 53, 0.035) 0px 21.3066px 35.4944px 0px, rgba(17, 7, 53, 0.03) 0px 11.3915px 18.9418px 0px, rgba(17, 7, 53, 0.024) 0px 6.38599px 9.8801px 0px, rgba(17, 7, 53, 0.02) 0px 3.39155px 4.58665px 0px, rgba(17, 7, 53, 0.016) 0px 1.4113px 1.55262px 0px, rgba(41, 56, 78, 0.05) 0px 1px 0px 0px inset |
Rules: what never to do in the WorkOS style
- NEVER substitute generic uncalibrated gray backgrounds for WorkOS’s exact
#F9F9FBcanvas and#FFFFFFsurface pairing. - NEVER replace
Untitled Sansdisplay typography or ignore its signature scale (80px / -0.07em (w500)). - NEVER use thick opaque borders that clash with
#E8EAED(1px solid #E8EAED). - NEVER deviate from the signature button geometry (
100px (Pill)) or introduce off-brand saturated gradients. - NEVER use default browser monospace when rendering code or telemetry—always pair with
IBM Plex Mono.
Copy-paste kit
CSS variables
:root {
/* WorkOS style — extracted from workos.com by taste-skill */
--canvas: #F9F9FB;
--surface: #FFFFFF;
--text: #29363D;
--text-muted: #5E6C75;
--accent: #6363F1;
--border: #E8EAED;
--font-heading: 'Untitled Sans', Inter, system-ui, -apple-system, sans-serif;
--font-body: 'Untitled Sans', Inter, system-ui, -apple-system, sans-serif;
--font-mono: 'IBM Plex Mono', 'JetBrains Mono', ui-monospace, monospace;
--h1-size: 80px;
--h1-tracking: -0.07em;
--h1-weight: 500;
--radius-button: 100px;
--radius-common: 4px;
--shadow-common: rgba(0, 0, 0, 0.04) 0px 0px 0px 1px, rgba(0, 0, 0, 0.17) 0px 5px 10px -4px;
--ease: ease;
--duration: 0.2s;
}tailwind.config.js
// tailwind.config.js — WorkOS style tokens (taste-skill)
module.exports = {
theme: {
extend: {
colors: {
canvas: "#F9F9FB",
surface: "#FFFFFF",
ink: "#29363D",
muted: "#5E6C75",
accent: "#6363F1",
line: "#E8EAED",
},
fontFamily: {
heading: ["Untitled Sans", 'Inter', 'system-ui', 'sans-serif'],
sans: ["Untitled Sans", 'Inter', 'system-ui', 'sans-serif'],
mono: ["IBM Plex Mono", 'ui-monospace', 'monospace'],
},
fontSize: { display: ["80px", { letterSpacing: "-0.07em", fontWeight: "500" }] },
borderRadius: { button: "100px", card: "4px" },
boxShadow: { brand: "rgba(0, 0, 0, 0.04) 0px 0px 0px 1px, rgba(0, 0, 0, 0.17) 0px 5px 10px -4px" },
transitionTimingFunction: { brand: "ease" },
},
},
};.cursor/skills/workos-style/SKILL.md
--- name: workos-style description: Build UI in the WorkOS visual style (Enterprise-Ready Architectural Precision & Untitled Sans). Use when the user asks for a WorkOS-like look. --- # WorkOS Style — Quick Rules (source: workos.com, extracted by taste-skill) ## Tokens - canvasBg: #F9F9FB — Primary WorkOS page canvas - surfaceElevated: #FFFFFF — Primary elevated card & bento surface - surfaceSecondary: #F9F9FB — Secondary interactive container / hover fill - borderPrimary: #E8EAED — Primary structural divider (1px solid #E8EAED) - borderSecondary: rgba(0, 0, 49, 0.1) — Secondary nested module or pill border - textPrimary: #29363D — Hero H1, section H2 & high-contrast foreground - textMuted: #5E6C75 — Lead paragraphs, descriptions & muted labels - accentPrimary: #6363F1 — Primary interactive CTA & brand highlight (100px (Pill)) - accentSecondary: #23F0C3 — Secondary badge, syntax or telemetry highlight ## Typography - Heading font: Untitled Sans; body: Untitled Sans; mono: IBM Plex Mono - Hero H1: 80px | line-height 84px (leading-[1.05]) | letter-spacing -5.6px (tracking-[-0.07em]) | weight 500 (font-[500]) | color #29363D (text-[#29363D]) | font Untitled Sans - Section H2 (Primary): 28px | line-height 33.6px (leading-[1.2]) | letter-spacing -1.4px (tracking-[-0.05em]) | weight 500 (font-[500]) | color #6363F1 (text-[#6363F1]) | font Untitled Sans - Card / Feature H3: Subheading with crisp line-height - Body Copy (Paragraph): 19px | line-height 30.4px (leading-[1.6]) | letter-spacing -0.19px (tracking-[-0.01em]) | weight 400 (font-[400]) | color #656B8A (text-[#656B8A]) | font Untitled Sans ## Components - Primary button: height 43px, padding 12px 24px, radius 100px, bg #6363F1, text #FFFFFF, 16px / 500 - Card: bg transparent, border 7px solid #F0F0F5, radius 46px 46px 0px 0px, padding 0px 0px ## Never - NEVER substitute generic uncalibrated gray backgrounds for WorkOS’s exact #F9F9FB canvas and #FFFFFF surface pairing. - NEVER replace Untitled Sans display typography or ignore its signature scale (80px / -0.07em (w500)). - NEVER use thick opaque borders that clash with #E8EAED (1px solid #E8EAED). - NEVER deviate from the signature button geometry (100px (Pill)) or introduce off-brand saturated gradients. - NEVER use default browser monospace when rendering code or telemetry—always pair with IBM Plex Mono. Full 120-line spec: https://taste-skill.pages.dev/taste/workos/
Or install the full spec
npx taste-skill add workos
Related
Similar styles
Get all 30 full SKILL.md specs (Cursor / Claude Code / Codex ready) plus the Pro growth skills.
See taste-skill Pro →