Vercel Design System

Frontend deployment platform · Pure black-and-white minimalist precision...
Back to Home
01

Visual Theme & Atmosphere

Vercel is a developer-platform brand — the page is a deployment dashboard's marketing surface, written for engineers who already know the syntax. It earns that posture with one of the cleanest stark systems on the web: near-white {colors.canvas-soft} body background, ink-near-black {colors.ink} text, a 200-step gray scale that gives every divider, border, and disabled state its own deliberate step. The only place the brand introduces colour at marketing scale is the multi-stop mesh gradient ({colors.gradient-develop-start}{colors.gradient-preview-end}{colors.gradient-ship-start} → cyan / magenta / amber) that floats in atmospheric backdrops, never miniaturised to a swatch. That gradient is the entire decoration system.

Type is the second decisive voice. The brand's own custom geometric sans (Geist) carries display, body, button — everything narrative — at weight 600 for display, 500 for buttons, 400 for body. A matching monospaced face (Geist Mono) carries technical labels: terminal mockups, code blocks, sometimes filename captions. Headlines are sentence-case with aggressive negative letter-spacing (-2.4px at 48 px hero) — the brand never letter-spaces positively, never goes uppercase outside of mono labels.

...

Key Characteristics:

  • A single black-ink primary CTA {colors.primary} carries every conversion target, paired with white-on-white button-secondary for the secondary action. The brand uses 100 px pill shape for marketing CTAs and a tight 6 px square shape for in-app nav buttons.
  • ...

Live Visual Theme Representation:

Visual Theme Example

02

Color Palette & Roles

Brand & Accent

  • Ink ({colors.primary}#171717): The single primary CTA color. Black-near-pure ink that carries every Sign Up pill, every footer CTA, the dark-band polarity-flip. Used as text color throughout the page on light surfaces. (Resolved from --ds-gray-1000.)
  • Cyan ({colors.cyan}#50e3c2): A signature mint-cyan used in the brand gradient and inside Geist-system spotlight tokens. Visible inside the hero gradient stops.
  • ...

Surface

  • Canvas ({colors.canvas}#ffffff): The pure-white card / dialog / modal surface.
  • Canvas Soft ({colors.canvas-soft}#fafafa): The default page background — 98 % white. Almost every section sits on this tone.
  • ...

Text

  • Ink ({colors.ink}#171717): Every heading and body paragraph on light surfaces.
  • Body ({colors.body}#4d4d4d): Secondary text — sub-headings, body captions, nav-link inactive text, footer column body.
  • ...

Semantic

  • Success / Link ({colors.success}#0070f3): The brand's legacy success indicator doubles as the primary link color. Visible underline-on-hover for inline body links.
  • Link Deep ({colors.link-deep}#0761d1): The pressed / visited tone for inline links.
  • ...

Brand Gradient

The brand's signature decoration is a three-pair gradient stack:
  • Develop ({colors.gradient-develop-start} #007cf0{colors.gradient-develop-end} #00dfd8) — the blue-to-teal pair used to mark the "deploy" / "develop" rhythm.
  • Preview ({colors.gradient-preview-start} #7928ca{colors.gradient-preview-end} #ff0080) — the violet-to-pink pair used for "preview" surfaces.
  • ...
The three pairs collapse into a single multi-color mesh gradient when used as the hero atmospheric backdrop. Treat the gradient as one unified object — do not crop down to a single colour, do not reorder the stops, and do not miniaturise. Used at hero scale only.
primary
#171717
on-primary
#ffffff
ink
#171717
body
#4d4d4d
mute
#888888
hairline
#ebebeb
hairline-strong
#a1a1a1
canvas
#ffffff
canvas-soft
#fafafa
canvas-soft-2
#f5f5f5
link
#0070f3
link-deep
#0761d1
link-bg-soft
#d3e5ff
success
#0070f3
error
#ee0000
error-soft
#f7d4d6
error-deep
#c50000
warning
#f5a623
warning-soft
#ffefcf
warning-deep
#ab570a
violet
#7928ca
violet-soft
#d8ccf1
violet-deep
#4c2889
cyan
#50e3c2
cyan-soft
#aaffec
cyan-deep
#29bc9b
highlight-pink
#ff0080
highlight-magenta
#eb367f
gradient-develop-start
#007cf0
gradient-develop-end
#00dfd8
gradient-preview-start
#7928ca
gradient-preview-end
#ff0080
gradient-ship-start
#ff4d4d
gradient-ship-end
#f9cb28
selection-bg
#171717
selection-fg
#f2f2f2
03

Typography Rules

Font Family

Two custom faces carry the entire system:

1. A custom geometric sans (extracted as Geist) for every display, body, button, link, and label. Weights 400 / 500 / 600 are the working set; the face never appears in 700 or heavier. Display sizes are tracked aggressively negative (-2.4 px at 48 px hero, -1.28 px at 32 px section); body stays at neutral or slightly-negative tracking. 2. A custom monospaced face (extracted as Geist Mono) for terminal mockups, code blocks, and small mono-caption labels — anything that wants to signal "technical." Weight 400 only at 12 – 13 px. Tracking neutral.

A condensed display sans (Space Grotesk) is loaded as a third face for occasional editorial moments but does not render as the primary face anywhere in the captured surfaces.

Hierarchy

TokenSizeWeightLine HeightLetter SpacingUse
..................

Principles

  • Negative tracking is part of the voice. Display sizes use aggressive -2.4 to -0.6 px tracking. Reverting to default tracking breaks the brand.
  • Sentence-case headlines, period-terminated. Headlines like "Build and deploy on the AI Cloud." end with a deliberate period — that punctuation is part of the brand's voice.
  • ...

Note on Font Substitutes

...
  • Geometric sansInter (400 / 500 / 600) is the closest stylistic match; font-feature-settings: "ss01", "ss02" enables the geometric alternates. Satoshi is a passable second choice.
  • MonospaceJetBrains Mono (400) at 12 – 13 px matches the technical voice. IBM Plex Mono is the second-best option.
Dynamic Preview:
display-xl size: 48px | weight: 600 | height: 48px | spacing: -2.4px
The quick brown fox jumps over the lazy dog
display-lg size: 32px | weight: 600 | height: 40px | spacing: -1.28px
The quick brown fox jumps over the lazy dog
display-md size: 24px | weight: 600 | height: 32px | spacing: -0.96px
The quick brown fox jumps over the lazy dog
display-sm size: 20px | weight: 600 | height: 28px | spacing: -0.6px
The quick brown fox jumps over the lazy dog
body-lg size: 18px | weight: 400 | height: 28px | spacing: 0px
The quick brown fox jumps over the lazy dog
body-md size: 16px | weight: 400 | height: 24px | spacing: 0
The quick brown fox jumps over the lazy dog
body-md-strong size: 16px | weight: 500 | height: 24px | spacing: 0
The quick brown fox jumps over the lazy dog
body-sm size: 14px | weight: 400 | height: 20px | spacing: -0.28px
The quick brown fox jumps over the lazy dog
body-sm-strong size: 14px | weight: 500 | height: 20px | spacing: -0.28px
The quick brown fox jumps over the lazy dog
caption size: 12px | weight: 400 | height: 16px | spacing: 0
The quick brown fox jumps over the lazy dog
caption-mono size: 12px | weight: 400 | height: 16px | spacing: 0
The quick brown fox jumps over the lazy dog
code size: 13px | weight: 400 | height: 20px | spacing: 0
The quick brown fox jumps over the lazy dog
button-md size: 14px | weight: 500 | height: 20px | spacing: 0
The quick brown fox jumps over the lazy dog
button-lg size: 16px | weight: 500 | height: 24px | spacing: 0
The quick brown fox jumps over the lazy dog
04

Layout Principles

Spacing System

  • Base unit: 4 px. The brand's --geist-space token is exactly 4 px and every captured value is a multiple of 4.
  • Tokens: {spacing.xxs} 4 px · {spacing.xs} 8 px · {spacing.sm} 12 px · {spacing.md} 16 px · {spacing.lg} 24 px · {spacing.xl} 32 px · {spacing.2xl} 40 px · {spacing.3xl} 48 px · {spacing.4xl} 64 px · {spacing.5xl} 96 px · {spacing.6xl} 128 px · {spacing.section} 192 px.
  • ...

Grid & Container

  • Max width: ~1400 px (--ds-page-width); the legacy --geist-page-width is 1200 px and still appears on some marketing surfaces. Content centres with horizontal gutters of {spacing.lg} 24 px on desktop, {spacing.md} 16 px on mobile.
  • Column patterns:
  • ...

Whitespace Philosophy

The mesh gradient does most of the heavy decorative lifting; whitespace separates the bands. Section spacing is generous — {spacing.4xl} to {spacing.5xl} between bands lets the gradient breathe. Inside a card, the headline/paragraph stack is tight ({spacing.xs} 8 px gap), then a wider gap before the CTA cluster. The page reads as engineered — large gaps + tight interior, never the other way around.

Responsive Strategy

Breakpoints

NameWidthKey Changes
.........

Touch Targets

The button-primary pill renders at ~32 px tall in nav and ~48 px tall in marketing contexts. Marketing CTAs comfortably meet WCAG AAA at all breakpoints; nav buttons inflate touch area through {spacing.xs} padding on mobile to meet the 44 × 44 px floor.

Collapsing Strategy

  • Nav: full link row + Ask AI / Log In / Sign Up pills at desktop. Collapses to logo + hamburger at mobile with the menu opening as a full-overlay.
  • Hero: mesh gradient stays centred; headline + body stack vertically at all breakpoints (the brand doesn't use a split-hero pattern).
  • ...

Image Behavior

  • Mesh gradient: rendered as inline SVG or canvas-painted gradient; scales fluidly with the hero container; never crops, never tiles.
  • Customer logos: rendered as monochrome SVGs in the logo strip; consistent 24 px height.
  • ...

Grid Layout Wireframe Mockup:

Layout Grid Example

Layout Wireframe blueprint
1
2
3
4
5
6
7
8
9
10
11
12
Gutter spacing: 16px / 24px
Side Margins: 24px (Mobile) / 48px (Desktop)
Max Container Width: 1200px
05

Depth & Elevation

LevelTreatmentUse
.........
The brand uses STACKED shadows — multiple small offsets layered to fake natural light — never a single 8-px-blur generic drop. Inset hairline rings are always added so the card edge stays crisp.

Decorative Depth

  • Mesh gradient as atmospheric depth: the hero's multi-stop gradient is the brand's only "atmospheric" effect — applied as a flat 2-D backdrop rather than a 3-D illustration.
  • Polarity-flipped dark band as section-depth: switching the surface from {colors.canvas-soft} to {colors.primary} (the deep ink) is the brand's chief depth cue between bands.
  • ...

Elevation Level Showcase:

Elevation Level Example

Flat Surface (Level 0)

Used for background layers, sidebar headers, or baseline borders.

Low Elevation (Level 1 / Card)

Used for floating product elements, cards, and hover states.

High Elevation (Level 2 / Popover & Dropdown)

Used for modals, select menus, code editor tooltips, and overlay headers.

Border Radius & Shape Scale:

radius-sm 4px
radius-md 6px
radius-lg 8px
radius-pill Pill / Tag
06

Component Stylings

Border Radius Scale

TokenValueUse
.........

Photography Geometry

  • Mesh gradient: full-bleed 2-D atmospheric backdrop, never cropped to a frame; treated as the page's wallpaper.
  • Customer logos: monochrome SVG, consistent 24 px height in a flex row.
  • ...

Buttons

button-primary — the canonical 100-px-radius black pill, marketing scale.

  • Background {colors.primary}, text {colors.on-primary}, label set in {typography.button-lg}, padding 0px {spacing.sm} 12 px, shape {rounded.pill} 100 px. Renders ~48 px tall when paired with the marketing flex layout.
button-secondary — the white pill paired with the black primary inside marketing bands.
  • Background {colors.canvas}, text {colors.ink}, same typography + padding as button-primary, shape {rounded.pill}.
button-primary-sm — the smaller-scale primary pill used inside nav and pricing-card CTAs.
  • Background {colors.primary}, text {colors.on-primary}, label set in {typography.button-md} (14 px / 500), shape {rounded.pill}.
button-secondary-sm — the smaller-scale white pill paired with button-primary-sm.
  • Background {colors.canvas}, text {colors.ink}, same typography + shape as button-primary-sm.
tab-ghost — the centred-row tab pill ("AI Apps / Web Apps / Ecommerce / Marketing / Platforms").
  • Background {colors.canvas}, text {colors.ink}, label set in {typography.body-sm}, padding 0px {spacing.md}, shape {rounded.pill-sm} 64 px.
icon-button-circular — the circular icon container (often a "?" or arrow inside).
  • Background {colors.canvas}, dark icon, 1 px solid hairline border, shape {rounded.full}.
Nav CTAs:

nav-cta-signup — the small black "Sign Up" button in the nav row.

  • Background {colors.primary}, text {colors.on-primary}, label {typography.body-sm-strong}, padding 0px {spacing.xs}, height 28 px, shape {rounded.sm} 6 px (the brand's --geist-radius).
nav-cta-login — the white "Log In" button in the nav.
  • Background {colors.canvas}, text {colors.ink}, same typography / height / shape as nav-cta-signup.
nav-cta-ask-ai — the small "Ask AI" button with a faint border.
  • Background {colors.canvas}, text {colors.ink}, 1 px solid {colors.hairline} border (extracted as 0px solid rgb(235, 235, 235)), same typography / height / shape.

Cards & Containers

card-marketing — the canonical marketing feature card (3-up section cards).

  • Background {colors.canvas}, text {colors.ink}, padding {spacing.lg} 24 px, shape {rounded.md} 8 px (the --geist-marketing-radius). Carries Level 3 soft-stack shadow.
card-marketing-large — the larger marketing card used for "compute model" / "AI Gateway" callouts.
  • Background {colors.canvas}, text {colors.ink}, padding {spacing.xl}, shape {rounded.lg} 12 px. Carries Level 4 float-stack shadow.
card-soft — the soft-tinted card used inside cluster groups (lighter than canvas-soft).
  • Background {colors.canvas-soft}, text {colors.ink}, padding {spacing.lg}, shape {rounded.md}.
template-card — the deploy-template card in the "Deploy your first app" grid.
  • Background {colors.canvas}, text {colors.ink}, padding {spacing.md} 16 px, shape {rounded.md} 8 px. Hosts a 16:9 thumbnail at the top.
code-editor-mockup — the dark code-preview surface inside marketing bands.
  • Background {colors.primary}, text {colors.on-primary}, body in {typography.code} (13 px / Geist Mono), padding {spacing.lg} 24 px, shape {rounded.md} 8 px.
pricing-card — the default pricing-tier card.
  • Background {colors.canvas}, text {colors.ink}, padding {spacing.xl} 32 px, shape {rounded.lg} 12 px. Inside: tier name in {typography.display-md}, price in {typography.display-xl}, feature list in {typography.body-md} rows, CTA at the bottom.
pricing-card-featured — the polarity-flipped "Pro" tier card.
  • Background {colors.primary}, text {colors.on-primary}, same shape + padding as pricing-card. CTA inverts to button-secondary-sm (white pill on black card).

Inputs & Forms

form-input — the canonical text input.

  • Background {colors.canvas}, text {colors.ink}, 1 px solid {colors.hairline} border, body in {typography.body-sm} (14 px), padding 0px {spacing.sm}, height 40 px (the brand's --geist-form-height), shape {rounded.sm} 6 px.
form-input-sm — small-height variant (32 px tall) for tight forms.
  • Same as form-input but height 32 px (the --geist-form-small-height).
form-input-lg — large-height variant (48 px tall) for hero CTAs.
  • Same as form-input but height 48 px (the --geist-form-large-height); body in {typography.body-md} 16 px.

Navigation

nav-bar — the sticky top nav.

  • Background {colors.canvas}, text {colors.ink}, height 64 px (the brand's --header-height), padding {spacing.sm} {spacing.lg}. Layout: logo left, link row centre, "Ask AI / Log In / Sign Up" cluster right.
nav-link — the centred link row inside nav-bar.
  • Text {colors.body}, set in {typography.body-sm}, padding {spacing.xs} {spacing.sm}, shape {rounded.full} (ghost pill — visible only on hover or active, but the radius is documented).
footer — the bottom 4-column nav.
  • Background {colors.canvas}, text {colors.body}, padding {spacing.4xl} {spacing.lg}. Eyebrow column labels in {typography.caption-mono} (uppercase mono effect); link rows in {typography.body-sm}.

Signature Components

hero-band — the white hero with the mesh gradient backdrop.

  • Background {colors.canvas} (or {colors.canvas-soft} on some surfaces), text {colors.ink}, padding {spacing.4xl} {spacing.lg}. Inside: a small mono badge above the headline, the headline in {typography.display-xl} (sentence-case, period-terminated), a body lead in {typography.body-lg}, then a CTA row with button-primary + button-secondary. The mesh gradient sits behind, scaled to occupy roughly the top half of the band.
feature-mesh-band — the secondary section that hosts a mesh-gradient atmospheric backdrop with feature copy on top.
  • Background {colors.canvas}, text {colors.ink}, padding {spacing.5xl} {spacing.lg}. Section headline in {typography.display-lg}; supporting body in {typography.body-md}.
showcase-band-light — a soft-canvas section ("Deploy your first app in seconds").
  • Background {colors.canvas-soft}, text {colors.ink}, padding {spacing.5xl} {spacing.lg}.
showcase-band-dark — the polarity-flipped dark band ("A compute model for all workloads").
  • Background {colors.primary}, text {colors.on-primary}, padding {spacing.5xl} {spacing.lg}. Section headline in {typography.display-lg} (white on black). Often contains a code-editor-mockup flush with the band.
logo-strip — the customer-logo wrapping row near the top of the page.
  • Background {colors.canvas}, text {colors.body}, padding {spacing.lg} {spacing.xl}. Logos rendered as monochrome SVGs at consistent height.
badge-secondary — the small inline metadata pill ("New", "Beta", "Live").
  • Background {colors.canvas-soft}, text {colors.body}, body in {typography.caption}, padding 0px {spacing.xs}, shape {rounded.full}.
banner-marketing — the "Introducing X" announcement pill at the top of pages.
  • Background {colors.canvas-soft}, text {colors.body}, body in {typography.body-sm}, padding {spacing.xs} {spacing.sm}, shape {rounded.full}.
link-inline — body-copy inline links.
  • Text {colors.link} (#0070f3), body in {typography.body-md}, underlined.

Examples (illustrative)

> Auto-derived kit-mirror demonstration surfaces (scripts/derive-examples-block.mjs). Each ex-* entry references brand-native primitives so downstream consumers (/preview-design, /generate-kit) re-skin the same 10 surfaces consistently. TO_FILL markers indicate missing primitives — resolve in the LLM judgment pass.

ex-pricing-tier — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.

  • Properties: backgroundColor, textColor, borderColor, rounded, padding
ex-pricing-tier-featured — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
  • Properties: backgroundColor, textColor, rounded, padding
ex-product-selector — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
  • Properties: backgroundColor, rounded, padding
ex-cart-drawer — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
  • Properties: backgroundColor, rounded, padding, item-divider
ex-app-shell-row — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
  • Properties: backgroundColor, activeIndicator, rounded, padding
ex-data-table-cell — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
  • Properties: headerBackground, headerTypography, bodyTypography, cellPadding, rowBorder
ex-auth-form-card — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
  • Properties: backgroundColor, rounded, padding
ex-modal-card — Modal dialog surface — same chrome as feature-card with elevated shadow.
  • Properties: backgroundColor, rounded, padding
ex-empty-state-card — Empty-state illustration frame.
  • Properties: backgroundColor, rounded, padding, captionTypography
ex-toast — Toast notification surface — feature-card shape + medium shadow.
  • Properties: backgroundColor, rounded, padding, typography

Interactive Component Demonstrations:

Component Interactive Example

07

Do's and Don'ts

Do

  • Reserve {colors.primary} (#171717) for primary CTAs across the page. Black ink IS the conversion target.
  • Use {rounded.pill} 100 px for every marketing-scale CTA and {rounded.sm} 6 px for nav-scale buttons. The two pill scales coexist deliberately.
  • Set every headline in {typography.display-*} weight 600, sentence-case, often period-terminated. Aggressive negative tracking is part of the voice.
  • Use the brand mesh gradient as atmospheric decoration at hero scale only — never miniaturise it to an icon, never reduce to a single colour.
  • Layer stacked shadows (multiple small offsets with inset hairline) rather than single heavy drops. The brand's elevation is calmer than Material.
  • Cycle page surfaces in {colors.canvas-soft}{colors.canvas}{colors.primary} polarity-flipped bands; the dark band IS the depth cue.
  • Set every code block and technical eyebrow in {typography.code} / {typography.caption-mono}. Mono is the voice of the platform.

Don't

  • Don't introduce a sixth accent colour. The brand operates with ink + gray + the four-pair gradient palette; new accents flatten the voice.
  • Don't render headlines in all-caps. Sentence-case + negative tracking is non-negotiable.
  • Don't drop a single heavy drop-shadow on cards. The brand's elevation is built from stacked small offsets + inset hairline rings.
  • Don't render the brand gradient at icon scale or in a single-colour reduced form. The gradient lives at hero scale only.
  • Don't promote the geometric sans to weight 700. The brand's display ceiling is 600.
  • Don't pair the marketing 100-px pill CTA shape with the 6-px nav radius on the same screen — pick a scale and stay there.
  • Don't set body paragraphs in the mono face. The mono is for code + technical labels only.
✅ Recommended / Do
  • Reserve {colors.primary} (#171717) for primary CTAs across the page. Black ink IS the conversion target.
  • Use {rounded.pill} 100 px for every marketing-scale CTA and {rounded.sm} 6 px for nav-scale buttons. The two pill scales coexist deliberately.
  • Set every headline in {typography.display-*} weight 600, sentence-case, often period-terminated. Aggressive negative tracking is part of the voice.
  • Use the brand mesh gradient as atmospheric decoration at hero scale only — never miniaturise it to an icon, never reduce to a single colour.
  • Layer stacked shadows (multiple small offsets with inset hairline) rather than single heavy drops. The brand's elevation is calmer than Material.
  • Cycle page surfaces in {colors.canvas-soft}{colors.canvas}{colors.primary} polarity-flipped bands; the dark band IS the depth cue.
  • Set every code block and technical eyebrow in {typography.code} / {typography.caption-mono}. Mono is the voice of the platform.
❌ Discouraged / Don't
  • Don't introduce a sixth accent colour. The brand operates with ink + gray + the four-pair gradient palette; new accents flatten the voice.
  • Don't render headlines in all-caps. Sentence-case + negative tracking is non-negotiable.
  • Don't drop a single heavy drop-shadow on cards. The brand's elevation is built from stacked small offsets + inset hairline rings.
  • Don't render the brand gradient at icon scale or in a single-colour reduced form. The gradient lives at hero scale only.
  • Don't promote the geometric sans to weight 700. The brand's display ceiling is 600.
  • Don't pair the marketing 100-px pill CTA shape with the 6-px nav radius on the same screen — pick a scale and stay there.
  • Don't set body paragraphs in the mono face. The mono is for code + technical labels only.
08

Responsive Behavior

Responsive Adaptation Note:

Responsive Behavior Example

Interactive Viewport Simulator
Width: 800px (Desktop Mode) Grid Container
Primary Column

Adjusts layout width

Secondary Column

Folds on viewport change

Sidebar Column

Stacks to bottom on mobile

09

Agent Prompt Guide

Copyable Agent Integration Prompt:

Prompt Guide Copy Box

10

Full System Design Tokens

The parsed design tokens extracted from the core stylesheet of this design system:

Design TokenHex ValueSystem Palette Role
--primary#171717System color representation for primary
--on-primary#ffffffSystem color representation for on-primary
--ink#171717System color representation for ink
--body#4d4d4dSystem color representation for body
--mute#888888System color representation for mute
--hairline#ebebebSystem color representation for hairline
--hairline-strong#a1a1a1System color representation for hairline-strong
--canvas#ffffffSystem color representation for canvas
--canvas-soft#fafafaSystem color representation for canvas-soft
--canvas-soft-2#f5f5f5System color representation for canvas-soft-2
--link#0070f3System color representation for link
--link-deep#0761d1System color representation for link-deep
--link-bg-soft#d3e5ffSystem color representation for link-bg-soft
--success#0070f3System color representation for success
--error#ee0000System color representation for error
--error-soft#f7d4d6System color representation for error-soft
--error-deep#c50000System color representation for error-deep
--warning#f5a623System color representation for warning
--warning-soft#ffefcfSystem color representation for warning-soft
--warning-deep#ab570aSystem color representation for warning-deep
--violet#7928caSystem color representation for violet
--violet-soft#d8ccf1System color representation for violet-soft
--violet-deep#4c2889System color representation for violet-deep
--cyan#50e3c2System color representation for cyan
--cyan-soft#aaffecSystem color representation for cyan-soft
--cyan-deep#29bc9bSystem color representation for cyan-deep
--highlight-pink#ff0080System color representation for highlight-pink
--highlight-magenta#eb367fSystem color representation for highlight-magenta
--gradient-develop-start#007cf0System color representation for gradient-develop-start
--gradient-develop-end#00dfd8System color representation for gradient-develop-end
--gradient-preview-start#7928caSystem color representation for gradient-preview-start
--gradient-preview-end#ff0080System color representation for gradient-preview-end
--gradient-ship-start#ff4d4dSystem color representation for gradient-ship-start
--gradient-ship-end#f9cb28System color representation for gradient-ship-end
--selection-bg#171717System color representation for selection-bg
--selection-fg#f2f2f2System color representation for selection-fg