taste-skill / Style guides / Ashby style

How to build a UI in the Ashby style

Ashby (ashbyhq.com) reads as Analytics-Driven Recruiting SaaS & Royal Indigo TTNormsPro — Bright #FFFFFF / #FCFCFE canvas with #EEEDEF soft lavender-gray borders, 72px TTNormsPro geometric display headings (-0.04em tracking, 575 weight), and #473BCE royal indigo CTAs. 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://www.ashbyhq.com on 2026-10-26 by the taste-skill extractor. Brand fonts may be proprietary; previews fall back to Inter / system fonts. Ashby is a trademark of its owner; this page documents publicly visible styling for reference and is not affiliated with Ashby.

Live preview with Ashby tokens

Ashby style · light
Ship the product, not the pixels.
Preview text rendered with the extracted Ashby canvas, text, muted and accent tokens.
Get in Touch Get in Touch
Card on extracted card recipe
Accent link: #473BCE · border #EEEDEF

Color palette (light mode)

RoleValueTailwindUsage
canvasBg#FFFFFFbg-whitePrimary Ashby page canvas
surfaceElevated#FCFCFEbg-[#FCFCFE]Primary elevated card & bento surface
surfaceSecondary#FFFFFFbg-whiteSecondary interactive container / hover fill
borderPrimary#EEEDEFborder-[#EEEDEF]Primary structural divider (1px solid #EEEDEF)
borderSecondary#EEEDEFborder-[#EEEDEF]Secondary nested module or pill border
textPrimary#141415text-[#141415]Hero H1, section H2 & high-contrast foreground
textMuted#717075text-[#717075]Lead paragraphs, descriptions & muted labels
accentPrimary#473BCEbg-[#473BCE]Primary interactive CTA & brand highlight (6px)
accentSecondary#473BCEtext-[#473BCE]Secondary badge, syntax or telemetry highlight

Typography

Heading TTNormsPro · body TTNormsPro / Inter · mono SF Mono

LevelComputed spec
Hero H172px | line-height 79.2px (leading-[1.1]) | letter-spacing -2.88px (tracking-[-0.04em]) | weight 575 (font-[575]) | color #141415 (text-[#141415]) | font TTNormsPro
Section H2 (Primary)44px | line-height 48.4px (leading-[1.1]) | letter-spacing -1.1px (tracking-[-0.025em]) | weight 575 (font-[575]) | color #141415 (text-[#141415]) | font TTNormsPro
Card / Feature H320px | line-height 25px (leading-[1.25]) | letter-spacing -0.5px (tracking-[-0.025em]) | weight 500 (font-[500]) | color #141415 (text-[#141415]) | font TTNormsPro
Body Copy (Paragraph)20px | line-height 30px (leading-[1.5]) | letter-spacing -0.16px (tracking-[-0.008em]) | weight 400 (font-[400]) | color #717075 (text-[#717075]) | font TTNormsPro
Monospace / Code Block13px–14px | line-height 1.5 (leading-relaxed) | font Consolas,Monaco,monospace

Spacing, radius, depth and motion

Token familyMost frequent values (count on page)
Border radius6px ×65 · 16px ×6 · 8px ×5 · 12px ×5 · 2px ×3
Box shadowrgb(255, 255, 255) 0px 0px 0px 4.5px, rgba(0, 0, 0, 0.1) 0px 0px 0px 5.5px ×5 · rgba(20, 20, 21, 0.18) 0px 0px 1px 0px, rgba(20, 20, 21, 0.3) 0px 2px 3px -2px ×4 · rgba(20, 20, 21, 0.16) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.2) 0px 1px 2px 0px inset ×3
Grid / flex gap16px ×19 · 4px ×17 · 32px ×12 · 24px ×10 · 12px ×9 · 8px ×4
Container max-width1200px ×6 · 1109.7px ×5 · 1296px ×3 · 730px ×1
Section vertical padding64px / 64px ×7 · 128px / 0px ×1 · 72px / 24px ×1 · 48px / 96px ×1
Easingease-out, ease-out, ease-out ×38 · cubic-bezier(0.16, 1, 0.3, 1) ×8 · cubic-bezier(0.07, 0.82, 0.57, 1.42) ×4
Duration0.12s, 0.12s, 0.12s ×38 · 0.15s ×8 · 0.2s ×8 · 0.5s ×1

Component recipes

Buttons (3 distinct)

RenderedHeightPaddingRadiusBackground / TextBorderFont
Get in Touch36px1px 16px6pxtransparent
#FCFCFE
none16px / 545
Get in Touch44px1px 24px6pxtransparent
#FCFCFE
none20px / 500
Ashby Platform41px8px 12px6px#EEEDEF
#717075
none16px / 400

Cards (3 distinct)

#BackgroundBorderRadiusPaddingShadow
1#FFFFFF1px solid #F4F4F46px20px 26pxrgba(172, 171, 171, 0.3) 0px -1px 10px 0px
2transparentnone16px64px 64pxrgba(20, 20, 21, 0.18) 0px 0px 1px 0px, rgba(20, 20, 21, 0.3) 0px 2px 3px -2px
3transparentnone8px0px 0pxrgba(20, 20, 21, 0.18) 0px 0px 1px 0px, rgba(20, 20, 21, 0.3) 0px 2px 3px -2px

Rules: what never to do in the Ashby style

Copy-paste kit

CSS variables
:root {
  /* Ashby style — extracted from ashbyhq.com by taste-skill */
  --canvas: #FFFFFF;
  --surface: #FCFCFE;
  --text: #141415;
  --text-muted: #717075;
  --accent: #473BCE;
  --border: #EEEDEF;
  --font-heading: TTNormsPro, Inter, system-ui, -apple-system, sans-serif;
  --font-body: 'TTNormsPro / Inter', Inter, system-ui, -apple-system, sans-serif;
  --font-mono: 'SF Mono', 'JetBrains Mono', ui-monospace, monospace;
  --h1-size: 72px;
  --h1-tracking: -0.04em;
  --h1-weight: 575;
  --radius-button: 6px;
  --radius-common: 6px;
  --shadow-common: rgb(255, 255, 255) 0px 0px 0px 4.5px, rgba(0, 0, 0, 0.1) 0px 0px 0px 5.5px;
  --ease: ease-out, ease-out, ease-out;
  --duration: 0.12s, 0.12s, 0.12s;
}
tailwind.config.js
// tailwind.config.js — Ashby style tokens (taste-skill)
module.exports = {
  theme: {
    extend: {
      colors: {
        canvas: "#FFFFFF",
        surface: "#FCFCFE",
        ink: "#141415",
        muted: "#717075",
        accent: "#473BCE",
        line: "#EEEDEF",
      },
      fontFamily: {
        heading: ["TTNormsPro", 'Inter', 'system-ui', 'sans-serif'],
        sans: ["TTNormsPro / Inter", 'Inter', 'system-ui', 'sans-serif'],
        mono: ["SF Mono", 'ui-monospace', 'monospace'],
      },
      fontSize: { display: ["72px", { letterSpacing: "-0.04em", fontWeight: "575" }] },
      borderRadius: { button: "6px", card: "6px" },
      boxShadow: { brand: "rgb(255, 255, 255) 0px 0px 0px 4.5px, rgba(0, 0, 0, 0.1) 0px 0px 0px 5.5px" },
      transitionTimingFunction: { brand: "ease-out, ease-out, ease-out" },
    },
  },
};
.cursor/skills/ashby-style/SKILL.md
---
name: ashby-style
description: Build UI in the Ashby visual style (Analytics-Driven Recruiting SaaS & Royal Indigo TTNormsPro). Use when the user asks for a Ashby-like look.
---

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

## Tokens
- canvasBg: #FFFFFF — Primary Ashby page canvas
- surfaceElevated: #FCFCFE — Primary elevated card & bento surface
- surfaceSecondary: #FFFFFF — Secondary interactive container / hover fill
- borderPrimary: #EEEDEF — Primary structural divider (1px solid #EEEDEF)
- borderSecondary: #EEEDEF — Secondary nested module or pill border
- textPrimary: #141415 — Hero H1, section H2 & high-contrast foreground
- textMuted: #717075 — Lead paragraphs, descriptions & muted labels
- accentPrimary: #473BCE — Primary interactive CTA & brand highlight (6px)
- accentSecondary: #473BCE — Secondary badge, syntax or telemetry highlight

## Typography
- Heading font: TTNormsPro; body: TTNormsPro / Inter; mono: SF Mono
- Hero H1: 72px | line-height 79.2px (leading-[1.1]) | letter-spacing -2.88px (tracking-[-0.04em]) | weight 575 (font-[575]) | color #141415 (text-[#141415]) | font TTNormsPro
- Section H2 (Primary): 44px | line-height 48.4px (leading-[1.1]) | letter-spacing -1.1px (tracking-[-0.025em]) | weight 575 (font-[575]) | color #141415 (text-[#141415]) | font TTNormsPro
- Card / Feature H3: 20px | line-height 25px (leading-[1.25]) | letter-spacing -0.5px (tracking-[-0.025em]) | weight 500 (font-[500]) | color #141415 (text-[#141415]) | font TTNormsPro
- Body Copy (Paragraph): 20px | line-height 30px (leading-[1.5]) | letter-spacing -0.16px (tracking-[-0.008em]) | weight 400 (font-[400]) | color #717075 (text-[#717075]) | font TTNormsPro

## Components
- Primary button: height 36px, padding 1px 16px, radius 6px, bg transparent, text #FCFCFE, 16px / 545
- Card: bg #FFFFFF, border 1px solid #F4F4F4, radius 6px, padding 20px 26px

## Never
- NEVER substitute generic uncalibrated gray backgrounds for Ashby’s exact #FFFFFF canvas and #FCFCFE surface pairing.
- NEVER replace TTNormsPro display typography or ignore its signature scale (72px / -0.04em (w575)).
- NEVER use thick opaque borders that clash with #EEEDEF (1px solid #EEEDEF).
- NEVER deviate from the signature button geometry (6px) or introduce off-brand saturated gradients.
- NEVER use default browser monospace when rendering code or telemetry—always pair with SF Mono.

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

Related

Similar styles

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

See taste-skill Pro →