taste-skill / Style guides / Attio style

How to build a UI in the Attio style

Attio (attio.com) reads as Next-Gen CRM Spreadsheet-Grid Precision & Inter Display — Crisp #F3F4F6 / #FFFFFF daylight UI with exposed #E4E7EC 1px data-table grid lines, 64px Inter Display headlines (0.95 line-height, -0.02em), JetBrains Mono badges, and #1C1D1F monochrome controls. 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://attio.com on 2026-10-26 by the taste-skill extractor. Brand fonts may be proprietary; previews fall back to Inter / system fonts. Attio is a trademark of its owner; this page documents publicly visible styling for reference and is not affiliated with Attio.

Live preview with Attio tokens

Attio style · light
Ship the product, not the pixels.
Preview text rendered with the extracted Attio canvas, text, muted and accent tokens.
Talk to sales Talk to sales
Card on extracted card recipe
Accent link: #1C1D1F · border #E4E7EC

Color palette (light mode)

RoleValueTailwindUsage
canvasBg#FFFFFFbg-whitePrimary Attio page canvas
surfaceElevated#F3F4F6bg-[#F3F4F6]Primary elevated card & bento surface
surfaceSecondary#FAFAFBbg-[#FAFAFB]Secondary interactive container / hover fill
borderPrimary#E4E7ECborder-[#E4E7EC]Primary structural divider (1px solid #E4E7EC)
borderSecondaryrgba(0, 0, 0, 0.05)border-black/[0.05]Secondary nested module or pill border
textPrimary#1C1D1Ftext-[#1C1D1F]Hero H1, section H2 & high-contrast foreground
textMuted#6F7988text-[#6F7988]Lead paragraphs, descriptions & muted labels
accentPrimary#1C1D1Fbg-[#1C1D1F]Primary interactive CTA & brand highlight (10px)
accentSecondary#101010text-[#101010]Secondary badge, syntax or telemetry highlight

Typography

Heading interDisplay · body Inter · mono JetBrains Mono

LevelComputed spec
Hero H164px | line-height 60.8px (leading-[0.95]) | letter-spacing -1.28px (tracking-[-0.02em]) | weight 600 (font-[600]) | color #1C1D1F (text-[#1C1D1F]) | font interDisplay
Section H2 (Primary)56px | line-height 56px (leading-[1]) | letter-spacing -0.84px (tracking-[-0.015em]) | weight 500 (font-[500]) | color #FFFFFF (text-white) | font interDisplay
Section H2 (Secondary)40px | line-height 44px (leading-[1.1]) | letter-spacing -0.4px (tracking-[-0.01em]) | weight 500 (font-[500]) | color #1C1D1F (text-[#1C1D1F]) | font interDisplay
Card / Feature H324px | line-height 27.6px (leading-[1.15]) | letter-spacing -0.24px (tracking-[-0.01em]) | weight 500 (font-[500]) | color #1C1D1F (text-[#1C1D1F]) | font interDisplay
Body Copy (Paragraph)18px | line-height 23.4px (leading-[1.3]) | letter-spacing -0.18px (tracking-[-0.01em]) | weight 500 (font-[500]) | color #6F7988 (text-[#6F7988]) | font inter
Monospace / Code Block10px | line-height 15px (leading-[1.5]) | letter-spacing -0.16px (tracking-[-0.016em]) | weight 500 (font-[500]) | color #1C1D1F (text-[#1C1D1F]) | font JetBrains Mono

Spacing, radius, depth and motion

Token familyMost frequent values (count on page)
Border radius8px ×43 · 6px ×24 · 10px ×23 · 5px ×21 · 9px ×17 · 7px ×16
Box shadowrgba(0, 0, 0, 0.04) 0px 1px 3px 0px, rgba(28, 40, 64, 0.18) 0px 0px 2px 0px ×8 · rgba(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, lab(99.9987 0.0337958 0.000309944) 0px 0px 0px 0.5px, rgba(0, 0, 0, 0) 0px 0px 0px 0px ×7 · rgba(11, 13, 24, 0.06) 0px 0px 0px 1px, rgba(11, 13, 24, 0.024) 0px 1px 2px 0px, rgba(11, 13, 24, 0.03) 0px 3px 6px 0px, rgba(11, 13, 24, 0.035) 0px 8px 14px 0px, rgba(11, 13, 24, 0.04) 0px 16px 28px 0px ×4
Grid / flex gap6px ×44 · 4px ×41 · 8px ×40 · 10px ×25 · normal 6px ×17 · 1px ×14
Container max-width1440px ×6 · 720px ×1 · 896px ×1
Section vertical padding112px / 80px ×3 · 96px / 0px ×1 · 116px / 80px ×1 · 152px / 80px ×1
Easingcubic-bezier(0, 0, 0, 1) ×18 · cubic-bezier(0.32, 0, 0.67, 0) ×17 · cubic-bezier(0.2, 0, 0, 1) ×16
Duration0.5s ×22 · 0.3s ×20 · 0.2s ×18 · 0.32s ×5

Component recipes

Buttons (7 distinct)

RenderedHeightPaddingRadiusBackground / TextBorderFont
Talk to sales36px0px 12px10px#FFFFFF
#2E3238
1px solid #CAD0D914px / 500
Talk to sales36px0px 12px10px#101010
#EDEFF3
1px solid #2E323814px / 500
Subscribe40px0px 12px10px#202124
#F3F4F6
1px solid #50596714px / 500
Continue36px0px 12px10px#202124
#F3F4F6
1px solid #50596714px / 500
See more32px0px 6px10px#101010
#EDEFF3
1px solid #2E323812px / 500

Cards (8 distinct)

#BackgroundBorderRadiusPaddingShadow
1#F3F4F6none16px0px 6pxrgba(11, 13, 24, 0.06) 0px 0px 0px 1px, rgba(11, 13, 24, 0.024) 0px 1px 2px 0px, rgba(11, 13, 24, 0.03) 0px 3px 6px 0px, rgba(11, 13, 24, 0.035) 0px 8px 14px 0px, rgba(11, 13, 24, 0.04) 0px 16px 28px 0px
2#FFFFFF1px solid rgba(0, 0, 0, 0.05)12px0px 0pxnone
3#FFFFFF1px solid #E5E7EB14px0px 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, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.04) 0px 12px 30px 0px
4#FFFFFFnone14px2px 2pxrgba(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, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px

Rules: what never to do in the Attio style

Copy-paste kit

CSS variables
:root {
  /* Attio style — extracted from attio.com by taste-skill */
  --canvas: #FFFFFF;
  --surface: #F3F4F6;
  --text: #1C1D1F;
  --text-muted: #6F7988;
  --accent: #1C1D1F;
  --border: #E4E7EC;
  --font-heading: interDisplay, Inter, system-ui, -apple-system, sans-serif;
  --font-body: Inter, Inter, system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'JetBrains Mono', ui-monospace, monospace;
  --h1-size: 64px;
  --h1-tracking: 0em;
  --h1-weight: 600;
  --radius-button: 10px;
  --radius-common: 8px;
  --shadow-common: rgba(0, 0, 0, 0.04) 0px 1px 3px 0px, rgba(28, 40, 64, 0.18) 0px 0px 2px 0px;
  --ease: cubic-bezier(0, 0, 0, 1);
  --duration: 0.5s;
}
tailwind.config.js
// tailwind.config.js — Attio style tokens (taste-skill)
module.exports = {
  theme: {
    extend: {
      colors: {
        canvas: "#FFFFFF",
        surface: "#F3F4F6",
        ink: "#1C1D1F",
        muted: "#6F7988",
        accent: "#1C1D1F",
        line: "#E4E7EC",
      },
      fontFamily: {
        heading: ["interDisplay", 'Inter', 'system-ui', 'sans-serif'],
        sans: ["Inter", 'Inter', 'system-ui', 'sans-serif'],
        mono: ["JetBrains Mono", 'ui-monospace', 'monospace'],
      },
      fontSize: { display: ["64px", { letterSpacing: "0em", fontWeight: "600" }] },
      borderRadius: { button: "10px", card: "8px" },
      boxShadow: { brand: "rgba(0, 0, 0, 0.04) 0px 1px 3px 0px, rgba(28, 40, 64, 0.18) 0px 0px 2px 0px" },
      transitionTimingFunction: { brand: "cubic-bezier(0, 0, 0, 1)" },
    },
  },
};
.cursor/skills/attio-style/SKILL.md
---
name: attio-style
description: Build UI in the Attio visual style (Next-Gen CRM Spreadsheet-Grid Precision & Inter Display). Use when the user asks for a Attio-like look.
---

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

## Tokens
- canvasBg: #FFFFFF — Primary Attio page canvas
- surfaceElevated: #F3F4F6 — Primary elevated card & bento surface
- surfaceSecondary: #FAFAFB — Secondary interactive container / hover fill
- borderPrimary: #E4E7EC — Primary structural divider (1px solid #E4E7EC)
- borderSecondary: rgba(0, 0, 0, 0.05) — Secondary nested module or pill border
- textPrimary: #1C1D1F — Hero H1, section H2 & high-contrast foreground
- textMuted: #6F7988 — Lead paragraphs, descriptions & muted labels
- accentPrimary: #1C1D1F — Primary interactive CTA & brand highlight (10px)
- accentSecondary: #101010 — Secondary badge, syntax or telemetry highlight

## Typography
- Heading font: interDisplay; body: Inter; mono: JetBrains Mono
- Hero H1: 64px | line-height 60.8px (leading-[0.95]) | letter-spacing -1.28px (tracking-[-0.02em]) | weight 600 (font-[600]) | color #1C1D1F (text-[#1C1D1F]) | font interDisplay
- Section H2 (Primary): 56px | line-height 56px (leading-[1]) | letter-spacing -0.84px (tracking-[-0.015em]) | weight 500 (font-[500]) | color #FFFFFF (text-white) | font interDisplay
- Section H2 (Secondary): 40px | line-height 44px (leading-[1.1]) | letter-spacing -0.4px (tracking-[-0.01em]) | weight 500 (font-[500]) | color #1C1D1F (text-[#1C1D1F]) | font interDisplay
- Card / Feature H3: 24px | line-height 27.6px (leading-[1.15]) | letter-spacing -0.24px (tracking-[-0.01em]) | weight 500 (font-[500]) | color #1C1D1F (text-[#1C1D1F]) | font interDisplay

## Components
- Primary button: height 36px, padding 0px 12px, radius 10px, bg #FFFFFF, text #2E3238, 14px / 500
- Card: bg #F3F4F6, border none, radius 16px, padding 0px 6px

## Never
- NEVER substitute generic uncalibrated gray backgrounds for Attio’s exact #FFFFFF canvas and #F3F4F6 surface pairing.
- NEVER replace interDisplay display typography or ignore its signature scale (64px / 0.95 (w600)).
- NEVER use thick opaque borders that clash with #E4E7EC (1px solid #E4E7EC).
- NEVER deviate from the signature button geometry (10px) or introduce off-brand saturated gradients.
- NEVER use default browser monospace when rendering code or telemetry—always pair with JetBrains Mono.

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

Related

Similar styles

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

See taste-skill Pro →