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.
Get started Read the docs
Card on extracted card recipe
Accent link: #6363F1 · border #E8EAED

Color palette (light mode)

RoleValueTailwindUsage
canvasBg#F9F9FBbg-[#F9F9FB]Primary WorkOS page canvas
surfaceElevated#FFFFFFbg-whitePrimary elevated card & bento surface
surfaceSecondary#F9F9FBbg-[#F9F9FB]Secondary interactive container / hover fill
borderPrimary#E8EAEDborder-[#E8EAED]Primary structural divider (1px solid #E8EAED)
borderSecondaryrgba(0, 0, 49, 0.1)border-[rgba(0,0,49,0.1)]Secondary nested module or pill border
textPrimary#29363Dtext-[#29363D]Hero H1, section H2 & high-contrast foreground
textMuted#5E6C75text-[#5E6C75]Lead paragraphs, descriptions & muted labels
accentPrimary#6363F1bg-[#6363F1]Primary interactive CTA & brand highlight (100px (Pill))
accentSecondary#23F0C3text-[#23F0C3]Secondary badge, syntax or telemetry highlight

Typography

Heading Untitled Sans · body Untitled Sans · mono IBM Plex Mono

LevelComputed spec
Hero H180px | 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 H3Subheading 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 Block12px | 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 familyMost frequent values (count on page)
Border radius4px ×41 · 16px ×14 · 7px ×12 · 8px ×7 · 50px ×2 · 24px ×1
Box shadowrgba(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 gap12px ×3 · 4px ×2 · 75px 96px ×2 · 48px ×2 · 20px ×1 · 2px 16px ×1
Container max-width1200px ×10 · 670px ×1 · 820px ×1 · 768px ×1
Section vertical padding120px / 120px ×5 · 120px / 0px ×1
Easingease ×41 · ease, ease ×5
Duration0.2s ×30 · 0.15s ×10 · 0.2s, 0.2s ×4 · 0.2s, 0.15s ×1

Component recipes

Buttons (8 distinct)

RenderedHeightPaddingRadiusBackground / TextBorderFont
Get started43px12px 24px100px#6363F1
#FFFFFF
none16px / 500
Read the docs43px12px 24px100px#23F0C3
#030628
none16px / 500
Read more51px12px 18px100pxtransparent
#6363F1
1px solid #E8EAED14px / 500
Read more43px12px 18px100pxtransparent
#6363F1
1px solid #E8EAED14px / 500
Read more26px12px 18px100pxtransparent
#6363F1
1px solid #E8EAED14px / 500

Cards (3 distinct)

#BackgroundBorderRadiusPaddingShadow
1transparent7px solid #F0F0F546px 46px 0px 0px0px 0pxnone
2transparentnone8px0px 0pxrgba(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#FFFFFFnone8px0px 0pxrgba(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

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 →