taste-skill / Style guides / Clerk style

How to build a UI in the Clerk style

Clerk (clerk.com) reads as Tactile Micro-Shadow Auth Components & Electric Violet — Cool alabaster #F7F7F8 canvas with floating #FFFFFF auth cards, multi-layered ring micro-shadows, tight -0.035em Geist headings, SoehneMono snippets, and #6C47FF electric violet 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://clerk.com on 2026-10-26 by the taste-skill extractor. Brand fonts may be proprietary; previews fall back to Inter / system fonts. Clerk is a trademark of its owner; this page documents publicly visible styling for reference and is not affiliated with Clerk.

Live preview with Clerk tokens

Clerk style · light
Ship the product, not the pixels.
Preview text rendered with the extracted Clerk canvas, text, muted and accent tokens.
Button
Card on extracted card recipe
Accent link: #6C47FF · border rgba(0, 0, 0, 0.06)

Color palette (light mode)

RoleValueTailwindUsage
canvasBg#F7F7F8bg-[#F7F7F8]Primary Clerk page canvas
surfaceElevated#FFFFFFbg-whitePrimary elevated card & bento surface
surfaceSecondary#F7F7F8bg-[#F7F7F8]Secondary interactive container / hover fill
borderPrimaryrgba(0, 0, 0, 0.06)border-black/[0.06]Primary structural divider (1px rgba(0,0,0,0.06))
borderSecondary#EEEEF0border-[#EEEEF0]Secondary nested module or pill border
textPrimary#131316text-[#131316]Hero H1, section H2 & high-contrast foreground
textMuted#747686text-[#747686]Lead paragraphs, descriptions & muted labels
accentPrimary#6C47FFbg-[#6C47FF]Primary interactive CTA & brand highlight (9999px / 6px)
accentSecondary#6C47FFtext-[#6C47FF]Secondary badge, syntax or telemetry highlight

Typography

Heading Geist / geistNumbers · body Inter / Geist · mono soehneMono

LevelComputed spec
Hero H156px | line-height 64px (leading-[1.14]) | letter-spacing -1.96px (tracking-[-0.035em]) | weight 700 (font-[700]) | color #131316 (text-[#131316]) | font geistNumbers
Section H2 (Primary)20px | line-height 26.7px (leading-[1.33]) | letter-spacing 0px (tracking-[0em]) | weight 700 (font-[700]) | color #212126 (text-[#212126]) | font ui-sans-serif
Card / Feature H3Subheading with crisp line-height
Body Copy (Paragraph)18px | line-height 27.9px (leading-[1.55]) | letter-spacing 0px (tracking-[0em]) | weight 400 (font-[400]) | color #5E5F6E (text-[#5E5F6E]) | font geistNumbers
Monospace / Code Block13px | line-height 20px (leading-[1.54]) | letter-spacing 0px (tracking-[0em]) | weight 400 (font-[400]) | color #131316 (text-[#131316]) | font soehneMono

Spacing, radius, depth and motion

Token familyMost frequent values (count on page)
Border radius6px ×77 · 8px ×36 · 4px ×16 · 12px ×6 · 16.5px ×6 · 12.5px ×5
Box shadowrgba(19, 19, 22, 0.024) 0px 0px 0px 1px, rgba(19, 19, 22, 0.024) 0px 1px 1px -0.5px, rgba(19, 19, 22, 0.024) 0px 3px 3px -1.5px, rgba(19, 19, 22, 0.024) 0px 6px 6px -3px, rgba(19, 19, 22, 0.024) 0px 12px 12px -6px, rgba(19, 19, 22, 0.024) 0px 24px 24px -12px ×60 · rgb(217, 217, 222) 0px 0px 0px 0.5px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px, rgba(0, 0, 0, 0.08) 0px 0px 2px 0px ×16 · rgba(19, 19, 22, 0.05) 0px 0px 0px 1px, rgba(19, 19, 22, 0.05) 0px 1px 1px -0.5px, rgba(19, 19, 22, 0.05) 0px 3px 3px -1.5px, rgba(19, 19, 22, 0.05) 0px 6px 6px -3px, rgba(19, 19, 22, 0.05) 0px 12px 12px -6px, rgba(19, 19, 22, 0.05) 0px 24px 24px -12px ×15
Grid / flex gap8px ×55 · 6px ×29 · 12px ×28 · 4px ×15 · 16px ×13 · 20px ×13
Container max-width720px ×2 · 1408px ×1 · 1264px ×1
Section vertical padding0px / 32px ×1 · 164px / 0px ×1
Easingcubic-bezier(0.4, 0, 0.2, 1) ×29 · cubic-bezier(0.33, 1, 0.68, 1) ×26 · cubic-bezier(0, 0, 0.2, 1) ×17
Duration0.45s ×24 · 0.5s ×17 · 0.2s ×17 · 0.15s ×12

Component recipes

Buttons (1 distinct)

RenderedHeightPaddingRadiusBackground / TextBorderFont
Button30px0px 12px9999pxrgba(20, 20, 20, 0.05)
#131316
none13px / 500

Cards (7 distinct)

#BackgroundBorderRadiusPaddingShadow
1transparentnone16.5px0px 0pxrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklab(0.188081 0.0016512 -0.00579907 / 0.06) 0px 0px 0px 1px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px
2#FFFFFFnone8px0px 0pxrgb(217, 217, 222) 0px 0px 0px 0.5px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px, rgba(0, 0, 0, 0.08) 0px 0px 2px 0px, rgba(19, 19, 22, 0.05) 0px 0px 0px 1px, rgba(19, 19, 22, 0.05) 0px 1px 1px -0.5px, rgba(19, 19, 22, 0.05) 0px 3px 3px -1.5px, rgba(19, 19, 22, 0.05) 0px 6px 6px -3px, rgba(19, 19, 22, 0.05) 0px 12px 12px -6px, rgba(19, 19, 22, 0.05) 0px 24px 24px -12px
3#F7F7F8none8px0px 0pxrgba(19, 19, 22, 0.05) 0px 0px 0px 1px, rgba(19, 19, 22, 0.05) 0px 1px 1px -0.5px, rgba(19, 19, 22, 0.05) 0px 3px 3px -1.5px, rgba(19, 19, 22, 0.05) 0px 6px 6px -3px, rgba(19, 19, 22, 0.05) 0px 12px 12px -6px, rgba(19, 19, 22, 0.05) 0px 24px 24px -12px
4transparentnone6px0px 0pxrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklab(0 0 0 / 0.09) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px

Rules: what never to do in the Clerk style

Copy-paste kit

CSS variables
:root {
  /* Clerk style — extracted from clerk.com by taste-skill */
  --canvas: #F7F7F8;
  --surface: #FFFFFF;
  --text: #131316;
  --text-muted: #747686;
  --accent: #6C47FF;
  --border: rgba(0, 0, 0, 0.06);
  --font-heading: 'Geist / geistNumbers', Inter, system-ui, -apple-system, sans-serif;
  --font-body: 'Inter / Geist', Inter, system-ui, -apple-system, sans-serif;
  --font-mono: 'soehneMono', 'JetBrains Mono', ui-monospace, monospace;
  --h1-size: 56px;
  --h1-tracking: -0.035em;
  --h1-weight: 700;
  --radius-button: 9999px;
  --radius-common: 6px;
  --shadow-common: rgba(19, 19, 22, 0.024) 0px 0px 0px 1px, rgba(19, 19, 22, 0.024) 0px 1px 1px -0.5px, rgba(19, 19, 22, 0.024) 0px 3px 3px -1.5px, rgba(19, 19, 22, 0.024) 0px 6px 6px -3px, rgba(19, 19, 22, 0.024) 0px 12px 12px -6px, rgba(19, 19, 22, 0.024) 0px 24px 24px -12px;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --duration: 0.45s;
}
tailwind.config.js
// tailwind.config.js — Clerk style tokens (taste-skill)
module.exports = {
  theme: {
    extend: {
      colors: {
        canvas: "#F7F7F8",
        surface: "#FFFFFF",
        ink: "#131316",
        muted: "#747686",
        accent: "#6C47FF",
        line: "rgba(0, 0, 0, 0.06)",
      },
      fontFamily: {
        heading: ["Geist / geistNumbers", 'Inter', 'system-ui', 'sans-serif'],
        sans: ["Inter / Geist", 'Inter', 'system-ui', 'sans-serif'],
        mono: ["soehneMono", 'ui-monospace', 'monospace'],
      },
      fontSize: { display: ["56px", { letterSpacing: "-0.035em", fontWeight: "700" }] },
      borderRadius: { button: "9999px", card: "6px" },
      boxShadow: { brand: "rgba(19, 19, 22, 0.024) 0px 0px 0px 1px, rgba(19, 19, 22, 0.024) 0px 1px 1px -0.5px, rgba(19, 19, 22, 0.024) 0px 3px 3px -1.5px, rgba(19, 19, 22, 0.024) 0px 6px 6px -3px, rgba(19, 19, 22, 0.024) 0px 12px 12px -6px, rgba(19, 19, 22, 0.024) 0px 24px 24px -12px" },
      transitionTimingFunction: { brand: "cubic-bezier(0.4, 0, 0.2, 1)" },
    },
  },
};
.cursor/skills/clerk-style/SKILL.md
---
name: clerk-style
description: Build UI in the Clerk visual style (Tactile Micro-Shadow Auth Components & Electric Violet). Use when the user asks for a Clerk-like look.
---

# Clerk Style — Quick Rules (source: clerk.com, extracted by taste-skill)

## Tokens
- canvasBg: #F7F7F8 — Primary Clerk page canvas
- surfaceElevated: #FFFFFF — Primary elevated card & bento surface
- surfaceSecondary: #F7F7F8 — Secondary interactive container / hover fill
- borderPrimary: rgba(0, 0, 0, 0.06) — Primary structural divider (1px rgba(0,0,0,0.06))
- borderSecondary: #EEEEF0 — Secondary nested module or pill border
- textPrimary: #131316 — Hero H1, section H2 & high-contrast foreground
- textMuted: #747686 — Lead paragraphs, descriptions & muted labels
- accentPrimary: #6C47FF — Primary interactive CTA & brand highlight (9999px / 6px)
- accentSecondary: #6C47FF — Secondary badge, syntax or telemetry highlight

## Typography
- Heading font: Geist / geistNumbers; body: Inter / Geist; mono: soehneMono
- Hero H1: 56px | line-height 64px (leading-[1.14]) | letter-spacing -1.96px (tracking-[-0.035em]) | weight 700 (font-[700]) | color #131316 (text-[#131316]) | font geistNumbers
- Section H2 (Primary): 20px | line-height 26.7px (leading-[1.33]) | letter-spacing 0px (tracking-[0em]) | weight 700 (font-[700]) | color #212126 (text-[#212126]) | font ui-sans-serif
- Card / Feature H3: Subheading with crisp line-height
- Body Copy (Paragraph): 18px | line-height 27.9px (leading-[1.55]) | letter-spacing 0px (tracking-[0em]) | weight 400 (font-[400]) | color #5E5F6E (text-[#5E5F6E]) | font geistNumbers

## Components
- Primary button: height 30px, padding 0px 12px, radius 9999px, bg rgba(20, 20, 20, 0.05), text #131316, 13px / 500
- Card: bg transparent, border none, radius 16.5px, padding 0px 0px

## Never
- NEVER substitute generic uncalibrated gray backgrounds for Clerk’s exact #F7F7F8 canvas and #FFFFFF surface pairing.
- NEVER replace Geist / geistNumbers display typography or ignore its signature scale (56px / -0.035em (w700)).
- NEVER use thick opaque borders that clash with rgba(0, 0, 0, 0.06) (1px rgba(0,0,0,0.06)).
- NEVER deviate from the signature button geometry (9999px / 6px) or introduce off-brand saturated gradients.
- NEVER use default browser monospace when rendering code or telemetry—always pair with soehneMono.

Full 120-line spec: https://taste-skill.pages.dev/taste/clerk/
Or install the full spec
npx taste-skill add clerk

Related

Similar styles

Get all 30 full SKILL.md specs (Cursor / Claude Code / Codex ready) plus the Pro growth skills.

See taste-skill Pro →