ClickUp
A high-energy productivity-SaaS marketing system anchored on white canvas with ClickUp's signature violet primary (#7b68ee) and a vivid pink-to-violet gradient accent family. The surface reads as bold, friendly, and dense — saturated brand color, deep near-black sections for contrast, and a measured neutral gray ramp carrying body text and hairlines. Color is the load-bearing brand signal here; type, spacing, and radius were not captured in this measurement pass and are documented as derived.
---
version: alpha
name: ClickUp-design-analysis
description: A high-energy productivity-SaaS marketing system anchored on white canvas with ClickUp's signature violet primary (#7b68ee) and a vivid pink-to-violet gradient accent family. The surface reads as bold, friendly, and dense — saturated brand color, deep near-black sections for contrast, and a measured neutral gray ramp carrying body text and hairlines. Color is the load-bearing brand signal here; type, spacing, and radius were not captured in this measurement pass and are documented as derived.
colors:
primary: "#7b68ee"
primary-deep: "#6647f0"
primary-violet: "#7612fa"
accent-blue: "#0091ff"
accent-magenta: "#ff02f0"
accent-pink: "#fa12e3"
ink-strong: "#000000"
ink: "#202020"
ink-alt: "#111111"
slate: "#292d34"
body: "#646464"
muted: "#838383"
muted-soft: "#b4b4b4"
surface-strong: "#cfcfcf"
hairline: "#e8e8e8"
hairline-soft: "#eeeeee"
hairline-softer: "#f0f0f0"
canvas: "#ffffff"
surface-soft: "#f8f9fa"
surface-dark: "#202020"
surface-dark-elevated: "#2a2a2a"
on-primary: "#ffffff"
on-dark: "#ffffff"
typography:
display-xl:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 56px
fontWeight: 700
lineHeight: 1.1
letterSpacing: -1px
display-lg:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 44px
fontWeight: 700
lineHeight: 1.15
letterSpacing: -0.5px
display-md:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 32px
fontWeight: 700
lineHeight: 1.2
letterSpacing: -0.3px
title-lg:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 24px
fontWeight: 600
lineHeight: 1.3
letterSpacing: 0
title-md:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 18px
fontWeight: 600
lineHeight: 1.4
letterSpacing: 0
body-md:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0
body-sm:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 14px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0
caption:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 13px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0
button:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 15px
fontWeight: 600
lineHeight: 1
letterSpacing: 0
nav-link:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 15px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0
rounded:
xs: 4px
sm: 6px
md: 8px
lg: 12px
xl: 16px
pill: 9999px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 24px
xl: 32px
xxl: 48px
section: 96px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.button}"
rounded: "{rounded.md}"
padding: 14px 24px
height: 48px
button-primary-active:
backgroundColor: "{colors.primary-deep}"
textColor: "{colors.on-primary}"
rounded: "{rounded.md}"
button-secondary:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.button}"
rounded: "{rounded.md}"
padding: 14px 24px
height: 48px
button-dark:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.on-dark}"
typography: "{typography.button}"
rounded: "{rounded.md}"
padding: 14px 24px
height: 48px
button-text-link:
backgroundColor: transparent
textColor: "{colors.primary}"
typography: "{typography.button}"
top-nav:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.nav-link}"
height: 72px
hero-band:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.display-xl}"
padding: 96px
hero-band-dark:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.on-dark}"
typography: "{typography.display-xl}"
padding: 96px
feature-card:
backgroundColor: "{colors.surface-soft}"
textColor: "{colors.ink}"
typography: "{typography.title-md}"
rounded: "{rounded.lg}"
padding: 32px
product-mockup-card:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
rounded: "{rounded.lg}"
padding: 24px
pricing-tier-card:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.title-lg}"
rounded: "{rounded.lg}"
padding: 32px
pricing-tier-card-featured:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.on-dark}"
typography: "{typography.title-lg}"
rounded: "{rounded.lg}"
padding: 32px
text-input:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.body-md}"
rounded: "{rounded.md}"
padding: 12px 16px
height: 48px
text-input-focused:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
rounded: "{rounded.md}"
badge-pill:
backgroundColor: "{colors.surface-soft}"
textColor: "{colors.ink}"
typography: "{typography.caption}"
rounded: "{rounded.pill}"
padding: 4px 12px
badge-pill-accent:
backgroundColor: "{colors.accent-magenta}"
textColor: "{colors.on-primary}"
typography: "{typography.caption}"
rounded: "{rounded.pill}"
padding: 4px 12px
footer:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.muted-soft}"
typography: "{typography.body-sm}"
padding: 64px
---
## Overview
ClickUp's marketing surface is a bold, high-energy productivity-SaaS interface. The measured analysis returned a strong color signal and little else — so this entry treats **color as the documented, load-bearing brand layer** and flags type, spacing, radius, and shadow as derived (see Known Gaps).
The brand anchor is ClickUp's signature violet, `{colors.primary}` (#7b68ee) — the dominant action color across CTAs and brand moments. It sits inside a saturated accent family that powers the brand's pink-to-violet gradient look: `{colors.primary-violet}` (#7612fa), `{colors.accent-magenta}` (#ff02f0), `{colors.accent-pink}` (#fa12e3), and a cooler `{colors.accent-blue}` (#0091ff). These hues read as the vivid, almost neon brand voltage that distinguishes ClickUp from quieter SaaS peers.
Against that color, the structural surface is conventional: white canvas (`{colors.canvas}` — #ffffff), a measured neutral gray ramp from `{colors.surface-strong}` (#cfcfcf) down through `{colors.muted}` (#838383) and `{colors.body}` (#646464) to `{colors.ink}` (#202020), and deep near-black sections (`{colors.surface-dark}` — #202020 / `{colors.surface-dark-elevated}` — #2a2a2a) used for high-contrast bands and the footer.
The page rhythm alternates white feature bands, soft-gray cards, embedded product UI mockups, and occasional dark bands that flip the contrast. Brand color carries the energy; the neutral ramp keeps the dense content legible.
**Key Characteristics:**
- Signature violet primary `{colors.primary}` (#7b68ee) on white canvas; press/deep state shifts to `{colors.primary-deep}` (#6647f0).
- A vivid accent family — violet, magenta, pink, blue — used for gradient brand moments, badges, and highlight flourishes rather than as flat CTA fills.
- A full neutral gray ramp (#cfcfcf → #b4b4b4 → #838383 → #646464 → #202020 → #000000) carrying surfaces, hairlines, body text, and ink.
- Dark near-black bands (`{colors.surface-dark}` — #202020) used for high-contrast sections, featured pricing tiers, and the footer.
- Soft-gray feature cards (`{colors.surface-soft}` — #f8f9fa) holding product UI fragments.
- Type, radius, spacing, and shadow were not captured in this pass — all such values below are **derived** and must be re-measured before production use.
## Colors
### Brand & Accent
- **Primary** (`{colors.primary}` — #7b68ee): ClickUp's signature violet. The dominant action and brand color — primary CTAs, brand marks, key highlights.
- **Primary Deep** (`{colors.primary-deep}` — #6647f0): A deeper violet used for the pressed/active CTA state and denser brand fills.
- **Primary Violet** (`{colors.primary-violet}` — #7612fa): A saturated violet used within gradient brand moments and accent strokes.
- **Accent Blue** (`{colors.accent-blue}` — #0091ff): A cooler accent used for links, info highlights, and gradient endpoints.
- **Accent Magenta** (`{colors.accent-magenta}` — #ff02f0) and **Accent Pink** (`{colors.accent-pink}` — #fa12e3): The hot end of the brand gradient — used on badges, highlight flourishes, and gradient sweeps. These are the system's loudest hues and appear sparingly as emphasis, not as body fills.
### Surface
- **Canvas** (`{colors.canvas}` — #ffffff): Default page floor.
- **Surface Soft** (`{colors.surface-soft}` — #f8f9fa): Feature card and section-divider background.
- **Surface Strong** (`{colors.surface-strong}` — #cfcfcf): The highest-frequency neutral — borders, dividers, muted block fills, disabled tones.
- **Surface Dark** (`{colors.surface-dark}` — #202020): High-contrast dark bands, featured pricing tier, footer.
- **Surface Dark Elevated** (`{colors.surface-dark-elevated}` — #2a2a2a): Nested cards inside dark bands.
- **Hairline** (`{colors.hairline}` — #e8e8e8): 1px border tone on light surfaces.
- **Hairline Soft** (`{colors.hairline-soft}` — #eeeeee) / **Hairline Softer** (`{colors.hairline-softer}` — #f0f0f0): Barely-visible dividers between white-on-white sections.
### Text
- **Ink Strong** (`{colors.ink-strong}` — #000000): Maximum-contrast headlines and marks.
- **Ink** (`{colors.ink}` — #202020): Default headline + primary text color.
- **Ink Alt** (`{colors.ink-alt}` — #111111): A near-black variant observed on some text/UI.
- **Slate** (`{colors.slate}` — #292d34): A blue-tinged dark used on legacy product UI text and chrome.
- **Body** (`{colors.body}` — #646464): Default running-text color.
- **Muted** (`{colors.muted}` — #838383): Secondary text — sub-headings, captions.
- **Muted Soft** (`{colors.muted-soft}` — #b4b4b4): Tertiary text — fine-print, footer body.
- **On Primary / On Dark** (`{colors.on-primary}` / `{colors.on-dark}` — #ffffff): Text on violet CTAs and dark bands.
### Semantic
No dedicated success / warning / error tokens were captured in this pass — see Known Gaps.
## Typography
### Font Family
**The typography below is derived — no type tokens were captured in the measurement pass.** Font family, sizes, weights, line-heights, and letter-spacing are reasonable estimates from screenshot ground-truth and standard SaaS baselines, not measured values. They must be re-measured before use.
For the substitute, the entry specifies **Inter** with a system fallback stack (`-apple-system, BlinkMacSystemFont, sans-serif`). ClickUp's production marketing site uses a custom/branded display face; because no font was extracted and `fonts_licensed` was empty, Inter is documented here as an open, safe stand-in. If the real face is later confirmed to be licensed, document it with this same Inter substitution.
### Hierarchy
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
| `{typography.display-xl}` | 56px | 700 | 1.1 | -1px | Hero h1 (derived) |
| `{typography.display-lg}` | 44px | 700 | 1.15 | -0.5px | Section heads (derived) |
| `{typography.display-md}` | 32px | 700 | 1.2 | -0.3px | Sub-section heads, card titles (derived) |
| `{typography.title-lg}` | 24px | 600 | 1.3 | 0 | Pricing plan names (derived) |
| `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Feature card titles (derived) |
| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default running-text (derived) |
| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body, fine-print (derived) |
| `{typography.caption}` | 13px | 500 | 1.4 | 0 | Badge labels, captions (derived) |
| `{typography.button}` | 15px | 600 | 1.0 | 0 | Button labels (derived) |
| `{typography.nav-link}` | 15px | 500 | 1.4 | 0 | Top-nav items (derived) |
### Principles
Display type is bold (weight 700) with slight negative tracking — appropriate for a high-energy SaaS voice. Body text uses the neutral ramp (`{colors.body}` / `{colors.muted}`). Until real type tokens are measured, treat the entire hierarchy as a placeholder skeleton, not a faithful spec.
### Note on Font Substitutes
Inter is the documented open substitute. **Plus Jakarta Sans** (weight 700 display / 400 body) is a close alternative if a more geometric, slightly rounded character is preferred — but confirm against the real face before committing.
## Layout
### Spacing System
**The spacing scale below is derived — no spacing values were captured.** Treat as a default 4px-based skeleton pending re-measurement.
- **Base unit:** 4px (derived).
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px.
- **Section padding:** `{spacing.section}` (96px) between major bands (derived).
- **Card internal padding:** `{spacing.xl}` (32px) for feature and pricing cards; `{spacing.lg}` (24px) for product-mockup cards (derived).
### Grid & Container
- **Max content width:** ~1200px centered (derived from typical SaaS layout, not measured).
- **Feature card grids:** 3-up at desktop, 2-up at tablet, 1-up at mobile (derived).
- **Pricing grid:** up to 4-up at desktop, collapsing to 2-up then 1-up (derived).
### Whitespace Philosophy
ClickUp's marketing surface is denser than the typical minimal SaaS page — many feature claims, product fragments, and badges per band. The whitespace rhythm is therefore tighter than a luxury layout but still grid-aligned. Exact rhythm needs measurement.
## Elevation & Depth
**No shadow tokens were captured in this pass.** The treatments below are derived from screenshot ground-truth and must be re-measured.
| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow, no border | Body sections, top nav, hero bands |
| Soft hairline | 1px `{colors.hairline}` border | Inputs, dividers, card outlines |
| Card surface | `{colors.surface-soft}` background — no shadow | Feature cards |
| Subtle drop shadow | Faint low-alpha shadow (derived) | Product-mockup cards, elevated pricing cards |
| Dark inversion | `{colors.surface-dark}` background | Featured pricing tier, dark bands, footer — color contrast does the elevation work |
The elevation philosophy reads as **soft and modern** — light hairlines and faint shadows on light surfaces, with dark color-block inversion for the strongest emphasis. Exact shadow values are unknown.
## Shapes
### Border Radius Scale
**The radius scale below is derived — no radius values were captured.** Treat as a default skeleton pending re-measurement.
| Token | Value | Use |
|---|---|---|
| `{rounded.xs}` | 4px | Small accents (derived) |
| `{rounded.sm}` | 6px | Small inline controls (derived) |
| `{rounded.md}` | 8px | CTA buttons, text inputs (derived) |
| `{rounded.lg}` | 12px | Content cards (derived) |
| `{rounded.xl}` | 16px | Larger feature / mockup containers (derived) |
| `{rounded.pill}` | 9999px | Badge pills (derived) |
| `{rounded.full}` | 9999px | Avatars, icon buttons (derived) |
### Photography Geometry
Product UI fragments and mockups retain native chrome; container radii are derived (`{rounded.lg}` assumed). Not measured.
## Components
> All component dimensions (padding, height) below are **derived** — only the color references are anchored to measured tokens. Re-measure structural values before production use.
### Top Navigation
**`top-nav`** — White nav bar at the top of every page. Background `{colors.canvas}`, ink-color labels in `{typography.nav-link}`. Carries the ClickUp logo at left, primary horizontal menu center, and a right-side cluster with a sign-in text-link and a violet `{component.button-primary}`. Height derived at 72px.
### Buttons
**`button-primary`** — The signature CTA. Background `{colors.primary}` (#7b68ee), text `{colors.on-primary}`, type `{typography.button}`, rounded `{rounded.md}`. Active state `button-primary-active` shifts to `{colors.primary-deep}` (#6647f0). Padding + height derived.
**`button-secondary`** — White button with hairline outline. Background `{colors.canvas}`, text `{colors.ink}`, same radius and (derived) dimensions as primary.
**`button-dark`** — Dark CTA used inside light bands for secondary emphasis. Background `{colors.surface-dark}`, text `{colors.on-dark}`.
**`button-text-link`** — Inline text button, no background, text in `{colors.primary}`.
### Cards & Containers
**`hero-band`** — White-canvas hero with h1 in `{typography.display-xl}`, sub-headline, and a CTA row. Vertical padding `{spacing.section}` (derived).
**`hero-band-dark`** — The dark variant for high-contrast hero/feature bands. Background `{colors.surface-dark}`, text `{colors.on-dark}`.
**`feature-card`** — Soft-gray card used in feature grids. Background `{colors.surface-soft}` (#f8f9fa), text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (derived). Carries an icon, a `{typography.title-md}` title, and a `{typography.body-md}` description.
**`product-mockup-card`** — Card showing actual ClickUp product UI fragments (list views, board views, dashboards). Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg}` (derived).
**`pricing-tier-card`** — Standard pricing tier. Background `{colors.canvas}`, plan name in `{typography.title-lg}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (derived), with a `{component.button-primary}` at the bottom.
**`pricing-tier-card-featured`** — The featured tier flips to `{colors.surface-dark}` (#202020), text inverts to `{colors.on-dark}`. The dark surface is the featured signal.
### Inputs & Forms
**`text-input`** — Standard text input. Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, rounded `{rounded.md}`, 1px `{colors.hairline}` border. Padding + height derived.
**`text-input-focused`** — Focus state; border shifts to `{colors.primary}` for emphasis (derived).
### Tags / Badges
**`badge-pill`** — Neutral pill label. Background `{colors.surface-soft}`, text `{colors.ink}`, type `{typography.caption}`, rounded `{rounded.pill}`.
**`badge-pill-accent`** — The loud accent badge. Background `{colors.accent-magenta}` (#ff02f0), text `{colors.on-primary}`. Used for "New" / promotional flags — the brightest moment in the system.
### Footer
**`footer`** — Dark footer that closes every page. Background `{colors.surface-dark}` (#202020), text `{colors.muted-soft}` (#b4b4b4). Multi-column link list with the ClickUp wordmark at top-left in `{colors.on-dark}`. Vertical padding derived at 64px.
## Do's and Don'ts
### Do
- Reserve `{colors.primary}` (#7b68ee) for primary CTAs and core brand moments; press shifts to `{colors.primary-deep}` (#6647f0).
- Use the hot accents (`{colors.accent-magenta}`, `{colors.accent-pink}`, `{colors.primary-violet}`) sparingly — gradient sweeps, badges, and highlight flourishes, not body fills.
- Lean on the neutral ramp (`{colors.surface-strong}` → `{colors.muted}` → `{colors.body}` → `{colors.ink}`) for surfaces, dividers, and text to keep dense content legible.
- Use `{component.pricing-tier-card-featured}` (dark inversion) as the featured-tier signal — color contrast carries the emphasis.
- Use `{component.feature-card}` (soft gray) for feature claims and `{component.product-mockup-card}` (white) to show real product UI.
- End the page with the dark `{component.footer}`.
### Don't
- Don't fill large surfaces with the hot magenta/pink accents — they are emphasis hues, not backgrounds.
- Don't treat the derived type, spacing, radius, or shadow values as authoritative — they are placeholders pending measurement.
- Don't inline accent hex on components — always reference a `{colors.*}` token.
- Don't add hover-state styling beyond the documented default and active/pressed states.
- Don't introduce a second dark surface tone beyond `{colors.surface-dark}` / `{colors.surface-dark-elevated}`.
## Responsive Behavior
> Breakpoint behavior below is **derived** from standard SaaS patterns — no responsive measurements were captured.
### Breakpoints
| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Hamburger nav; hero h1 scales down; feature grids 1-up; pricing 1-up; footer columns collapse |
| Tablet | 768–1024px | Horizontal nav tightens; feature cards 2-up; pricing 2-up |
| Desktop | 1024–1440px | Full nav; 3-up feature cards; up to 4-up pricing tiers |
| Wide | > 1440px | Same as desktop with extra outer breathing room; content max ~1200px |
### Touch Targets
- `{component.button-primary}` derived at ≥48px height — comfortably above the 44px minimum.
- `{component.text-input}` derived at 48px height.
### Collapsing Strategy
- Top nav collapses to a hamburger at mobile.
- Feature and pricing grids reduce column count rather than shrinking cards.
- The featured-tier dark surface stays visually distinct at every breakpoint.
## Iteration Guide
1. **Re-measure first.** Type, spacing, radius, and shadow are all derived placeholders — running a proper capture is the highest-priority next step.
2. Focus on ONE component at a time, referencing its YAML key (`{component.feature-card}`, `{component.pricing-tier-card-featured}`).
3. Variants (`-active`, `-focused`, `-featured`) live as separate entries in `components:`.
4. Use `{token.refs}` everywhere — never inline hex.
5. Never document hover. Default and Active/Pressed states only.
6. Keep the hot accents scarce; the violet primary is the workhorse brand color.
7. The dark footer and featured tier are the only dark surfaces — don't add others casually.
## Known Gaps
- **Typography was not captured** — no font family, size, weight, line-height, or letter-spacing was measured. All typography tokens are derived estimates using Inter as an open substitute; the real ClickUp marketing face must be confirmed and re-measured.
- **Spacing scale was not captured** — the 4px-based scale is derived. Section padding, card padding, and gutters are estimates.
- **Border radius was not captured** — the entire radius scale is derived from typical SaaS values.
- **Shadows were not captured** — elevation treatments are inferred from screenshots; no shadow definitions exist.
- **Components were not captured** — all component structural values (padding, height, sizes) are derived; only color references are anchored to measured tokens.
- **Semantic colors (success / warning / error) were not captured** — the accent family is brand/gradient color, not a documented status set.
- `fonts_licensed` was empty in the measurement, so no licensed face is named; if the production display font is later confirmed as licensed, document it with the Inter substitution already specified.
- The role assignments in the source data flag several brand hues as "accent" and the gray ramp as "neutral"; the precise semantic role of `#0091ff` (link vs. gradient endpoint) and `#292d34` (legacy product slate vs. text) is inferred and should be confirmed.
- Animation, transition timings, and form validation states are out of scope for this pass.
<!-- Documented by duply · real-world design systems as ready-to-use DESIGN.md for AI coding agents · https://duply.ai/clickup/design-md -->
Color Palette
Accent
Neutrals
Typography
display-xl56px · 700 · 1.1
The quick brown fox jumpsdisplay-lg44px · 700 · 1.15
The quick brown fox jumpsdisplay-md32px · 700 · 1.2
The quick brown fox jumpstitle-lg24px · 600 · 1.3
The quick brown fox jumpstitle-md18px · 600 · 1.4
The quick brown fox jumpsbody-md16px · 400 · 1.5
The quick brown fox jumpsSpacing & Shape
Spacing
| Name | Value | Preview |
|---|---|---|
| xxs | 4px | |
| xs | 8px | |
| sm | 12px | |
| md | 16px | |
| lg | 24px | |
| xl | 32px | |
| xxl | 48px | |
| section | 96px |
Border Radius
| Name | Value | Preview |
|---|---|---|
| xs | 4px | |
| sm | 6px | |
| md | 8px | |
| lg | 12px | |
| xl | 16px | |
| pill | 9999px | |
| full | 9999px |
More like this
---
version: alpha
name: ClickUp-design-analysis
description: A high-energy productivity-SaaS marketing system anchored on white canvas with ClickUp's signature violet primary (#7b68ee) and a vivid pink-to-violet gradient accent family. The surface reads as bold, friendly, and dense — saturated brand color, deep near-black sections for contrast, and a measured neutral gray ramp carrying body text and hairlines. Color is the load-bearing brand signal here; type, spacing, and radius were not captured in this measurement pass and are documented as derived.
colors:
primary: "#7b68ee"
primary-deep: "#6647f0"
primary-violet: "#7612fa"
accent-blue: "#0091ff"
accent-magenta: "#ff02f0"
accent-pink: "#fa12e3"
ink-strong: "#000000"
ink: "#202020"
ink-alt: "#111111"
slate: "#292d34"
body: "#646464"
muted: "#838383"
muted-soft: "#b4b4b4"
surface-strong: "#cfcfcf"
hairline: "#e8e8e8"
hairline-soft: "#eeeeee"
hairline-softer: "#f0f0f0"
canvas: "#ffffff"
surface-soft: "#f8f9fa"
surface-dark: "#202020"
surface-dark-elevated: "#2a2a2a"
on-primary: "#ffffff"
on-dark: "#ffffff"
typography:
display-xl:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 56px
fontWeight: 700
lineHeight: 1.1
letterSpacing: -1px
display-lg:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 44px
fontWeight: 700
lineHeight: 1.15
letterSpacing: -0.5px
display-md:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 32px
fontWeight: 700
lineHeight: 1.2
letterSpacing: -0.3px
title-lg:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 24px
fontWeight: 600
lineHeight: 1.3
letterSpacing: 0
title-md:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 18px
fontWeight: 600
lineHeight: 1.4
letterSpacing: 0
body-md:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0
body-sm:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 14px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0
caption:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 13px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0
button:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 15px
fontWeight: 600
lineHeight: 1
letterSpacing: 0
nav-link:
fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
fontSize: 15px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0
rounded:
xs: 4px
sm: 6px
md: 8px
lg: 12px
xl: 16px
pill: 9999px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 24px
xl: 32px
xxl: 48px
section: 96px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.button}"
rounded: "{rounded.md}"
padding: 14px 24px
height: 48px
button-primary-active:
backgroundColor: "{colors.primary-deep}"
textColor: "{colors.on-primary}"
rounded: "{rounded.md}"
button-secondary:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.button}"
rounded: "{rounded.md}"
padding: 14px 24px
height: 48px
button-dark:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.on-dark}"
typography: "{typography.button}"
rounded: "{rounded.md}"
padding: 14px 24px
height: 48px
button-text-link:
backgroundColor: transparent
textColor: "{colors.primary}"
typography: "{typography.button}"
top-nav:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.nav-link}"
height: 72px
hero-band:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.display-xl}"
padding: 96px
hero-band-dark:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.on-dark}"
typography: "{typography.display-xl}"
padding: 96px
feature-card:
backgroundColor: "{colors.surface-soft}"
textColor: "{colors.ink}"
typography: "{typography.title-md}"
rounded: "{rounded.lg}"
padding: 32px
product-mockup-card:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
rounded: "{rounded.lg}"
padding: 24px
pricing-tier-card:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.title-lg}"
rounded: "{rounded.lg}"
padding: 32px
pricing-tier-card-featured:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.on-dark}"
typography: "{typography.title-lg}"
rounded: "{rounded.lg}"
padding: 32px
text-input:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.body-md}"
rounded: "{rounded.md}"
padding: 12px 16px
height: 48px
text-input-focused:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
rounded: "{rounded.md}"
badge-pill:
backgroundColor: "{colors.surface-soft}"
textColor: "{colors.ink}"
typography: "{typography.caption}"
rounded: "{rounded.pill}"
padding: 4px 12px
badge-pill-accent:
backgroundColor: "{colors.accent-magenta}"
textColor: "{colors.on-primary}"
typography: "{typography.caption}"
rounded: "{rounded.pill}"
padding: 4px 12px
footer:
backgroundColor: "{colors.surface-dark}"
textColor: "{colors.muted-soft}"
typography: "{typography.body-sm}"
padding: 64px
---
## Overview
ClickUp's marketing surface is a bold, high-energy productivity-SaaS interface. The measured analysis returned a strong color signal and little else — so this entry treats **color as the documented, load-bearing brand layer** and flags type, spacing, radius, and shadow as derived (see Known Gaps).
The brand anchor is ClickUp's signature violet, `{colors.primary}` (#7b68ee) — the dominant action color across CTAs and brand moments. It sits inside a saturated accent family that powers the brand's pink-to-violet gradient look: `{colors.primary-violet}` (#7612fa), `{colors.accent-magenta}` (#ff02f0), `{colors.accent-pink}` (#fa12e3), and a cooler `{colors.accent-blue}` (#0091ff). These hues read as the vivid, almost neon brand voltage that distinguishes ClickUp from quieter SaaS peers.
Against that color, the structural surface is conventional: white canvas (`{colors.canvas}` — #ffffff), a measured neutral gray ramp from `{colors.surface-strong}` (#cfcfcf) down through `{colors.muted}` (#838383) and `{colors.body}` (#646464) to `{colors.ink}` (#202020), and deep near-black sections (`{colors.surface-dark}` — #202020 / `{colors.surface-dark-elevated}` — #2a2a2a) used for high-contrast bands and the footer.
The page rhythm alternates white feature bands, soft-gray cards, embedded product UI mockups, and occasional dark bands that flip the contrast. Brand color carries the energy; the neutral ramp keeps the dense content legible.
**Key Characteristics:**
- Signature violet primary `{colors.primary}` (#7b68ee) on white canvas; press/deep state shifts to `{colors.primary-deep}` (#6647f0).
- A vivid accent family — violet, magenta, pink, blue — used for gradient brand moments, badges, and highlight flourishes rather than as flat CTA fills.
- A full neutral gray ramp (#cfcfcf → #b4b4b4 → #838383 → #646464 → #202020 → #000000) carrying surfaces, hairlines, body text, and ink.
- Dark near-black bands (`{colors.surface-dark}` — #202020) used for high-contrast sections, featured pricing tiers, and the footer.
- Soft-gray feature cards (`{colors.surface-soft}` — #f8f9fa) holding product UI fragments.
- Type, radius, spacing, and shadow were not captured in this pass — all such values below are **derived** and must be re-measured before production use.
## Colors
### Brand & Accent
- **Primary** (`{colors.primary}` — #7b68ee): ClickUp's signature violet. The dominant action and brand color — primary CTAs, brand marks, key highlights.
- **Primary Deep** (`{colors.primary-deep}` — #6647f0): A deeper violet used for the pressed/active CTA state and denser brand fills.
- **Primary Violet** (`{colors.primary-violet}` — #7612fa): A saturated violet used within gradient brand moments and accent strokes.
- **Accent Blue** (`{colors.accent-blue}` — #0091ff): A cooler accent used for links, info highlights, and gradient endpoints.
- **Accent Magenta** (`{colors.accent-magenta}` — #ff02f0) and **Accent Pink** (`{colors.accent-pink}` — #fa12e3): The hot end of the brand gradient — used on badges, highlight flourishes, and gradient sweeps. These are the system's loudest hues and appear sparingly as emphasis, not as body fills.
### Surface
- **Canvas** (`{colors.canvas}` — #ffffff): Default page floor.
- **Surface Soft** (`{colors.surface-soft}` — #f8f9fa): Feature card and section-divider background.
- **Surface Strong** (`{colors.surface-strong}` — #cfcfcf): The highest-frequency neutral — borders, dividers, muted block fills, disabled tones.
- **Surface Dark** (`{colors.surface-dark}` — #202020): High-contrast dark bands, featured pricing tier, footer.
- **Surface Dark Elevated** (`{colors.surface-dark-elevated}` — #2a2a2a): Nested cards inside dark bands.
- **Hairline** (`{colors.hairline}` — #e8e8e8): 1px border tone on light surfaces.
- **Hairline Soft** (`{colors.hairline-soft}` — #eeeeee) / **Hairline Softer** (`{colors.hairline-softer}` — #f0f0f0): Barely-visible dividers between white-on-white sections.
### Text
- **Ink Strong** (`{colors.ink-strong}` — #000000): Maximum-contrast headlines and marks.
- **Ink** (`{colors.ink}` — #202020): Default headline + primary text color.
- **Ink Alt** (`{colors.ink-alt}` — #111111): A near-black variant observed on some text/UI.
- **Slate** (`{colors.slate}` — #292d34): A blue-tinged dark used on legacy product UI text and chrome.
- **Body** (`{colors.body}` — #646464): Default running-text color.
- **Muted** (`{colors.muted}` — #838383): Secondary text — sub-headings, captions.
- **Muted Soft** (`{colors.muted-soft}` — #b4b4b4): Tertiary text — fine-print, footer body.
- **On Primary / On Dark** (`{colors.on-primary}` / `{colors.on-dark}` — #ffffff): Text on violet CTAs and dark bands.
### Semantic
No dedicated success / warning / error tokens were captured in this pass — see Known Gaps.
## Typography
### Font Family
**The typography below is derived — no type tokens were captured in the measurement pass.** Font family, sizes, weights, line-heights, and letter-spacing are reasonable estimates from screenshot ground-truth and standard SaaS baselines, not measured values. They must be re-measured before use.
For the substitute, the entry specifies **Inter** with a system fallback stack (`-apple-system, BlinkMacSystemFont, sans-serif`). ClickUp's production marketing site uses a custom/branded display face; because no font was extracted and `fonts_licensed` was empty, Inter is documented here as an open, safe stand-in. If the real face is later confirmed to be licensed, document it with this same Inter substitution.
### Hierarchy
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
| `{typography.display-xl}` | 56px | 700 | 1.1 | -1px | Hero h1 (derived) |
| `{typography.display-lg}` | 44px | 700 | 1.15 | -0.5px | Section heads (derived) |
| `{typography.display-md}` | 32px | 700 | 1.2 | -0.3px | Sub-section heads, card titles (derived) |
| `{typography.title-lg}` | 24px | 600 | 1.3 | 0 | Pricing plan names (derived) |
| `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Feature card titles (derived) |
| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default running-text (derived) |
| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body, fine-print (derived) |
| `{typography.caption}` | 13px | 500 | 1.4 | 0 | Badge labels, captions (derived) |
| `{typography.button}` | 15px | 600 | 1.0 | 0 | Button labels (derived) |
| `{typography.nav-link}` | 15px | 500 | 1.4 | 0 | Top-nav items (derived) |
### Principles
Display type is bold (weight 700) with slight negative tracking — appropriate for a high-energy SaaS voice. Body text uses the neutral ramp (`{colors.body}` / `{colors.muted}`). Until real type tokens are measured, treat the entire hierarchy as a placeholder skeleton, not a faithful spec.
### Note on Font Substitutes
Inter is the documented open substitute. **Plus Jakarta Sans** (weight 700 display / 400 body) is a close alternative if a more geometric, slightly rounded character is preferred — but confirm against the real face before committing.
## Layout
### Spacing System
**The spacing scale below is derived — no spacing values were captured.** Treat as a default 4px-based skeleton pending re-measurement.
- **Base unit:** 4px (derived).
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px.
- **Section padding:** `{spacing.section}` (96px) between major bands (derived).
- **Card internal padding:** `{spacing.xl}` (32px) for feature and pricing cards; `{spacing.lg}` (24px) for product-mockup cards (derived).
### Grid & Container
- **Max content width:** ~1200px centered (derived from typical SaaS layout, not measured).
- **Feature card grids:** 3-up at desktop, 2-up at tablet, 1-up at mobile (derived).
- **Pricing grid:** up to 4-up at desktop, collapsing to 2-up then 1-up (derived).
### Whitespace Philosophy
ClickUp's marketing surface is denser than the typical minimal SaaS page — many feature claims, product fragments, and badges per band. The whitespace rhythm is therefore tighter than a luxury layout but still grid-aligned. Exact rhythm needs measurement.
## Elevation & Depth
**No shadow tokens were captured in this pass.** The treatments below are derived from screenshot ground-truth and must be re-measured.
| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow, no border | Body sections, top nav, hero bands |
| Soft hairline | 1px `{colors.hairline}` border | Inputs, dividers, card outlines |
| Card surface | `{colors.surface-soft}` background — no shadow | Feature cards |
| Subtle drop shadow | Faint low-alpha shadow (derived) | Product-mockup cards, elevated pricing cards |
| Dark inversion | `{colors.surface-dark}` background | Featured pricing tier, dark bands, footer — color contrast does the elevation work |
The elevation philosophy reads as **soft and modern** — light hairlines and faint shadows on light surfaces, with dark color-block inversion for the strongest emphasis. Exact shadow values are unknown.
## Shapes
### Border Radius Scale
**The radius scale below is derived — no radius values were captured.** Treat as a default skeleton pending re-measurement.
| Token | Value | Use |
|---|---|---|
| `{rounded.xs}` | 4px | Small accents (derived) |
| `{rounded.sm}` | 6px | Small inline controls (derived) |
| `{rounded.md}` | 8px | CTA buttons, text inputs (derived) |
| `{rounded.lg}` | 12px | Content cards (derived) |
| `{rounded.xl}` | 16px | Larger feature / mockup containers (derived) |
| `{rounded.pill}` | 9999px | Badge pills (derived) |
| `{rounded.full}` | 9999px | Avatars, icon buttons (derived) |
### Photography Geometry
Product UI fragments and mockups retain native chrome; container radii are derived (`{rounded.lg}` assumed). Not measured.
## Components
> All component dimensions (padding, height) below are **derived** — only the color references are anchored to measured tokens. Re-measure structural values before production use.
### Top Navigation
**`top-nav`** — White nav bar at the top of every page. Background `{colors.canvas}`, ink-color labels in `{typography.nav-link}`. Carries the ClickUp logo at left, primary horizontal menu center, and a right-side cluster with a sign-in text-link and a violet `{component.button-primary}`. Height derived at 72px.
### Buttons
**`button-primary`** — The signature CTA. Background `{colors.primary}` (#7b68ee), text `{colors.on-primary}`, type `{typography.button}`, rounded `{rounded.md}`. Active state `button-primary-active` shifts to `{colors.primary-deep}` (#6647f0). Padding + height derived.
**`button-secondary`** — White button with hairline outline. Background `{colors.canvas}`, text `{colors.ink}`, same radius and (derived) dimensions as primary.
**`button-dark`** — Dark CTA used inside light bands for secondary emphasis. Background `{colors.surface-dark}`, text `{colors.on-dark}`.
**`button-text-link`** — Inline text button, no background, text in `{colors.primary}`.
### Cards & Containers
**`hero-band`** — White-canvas hero with h1 in `{typography.display-xl}`, sub-headline, and a CTA row. Vertical padding `{spacing.section}` (derived).
**`hero-band-dark`** — The dark variant for high-contrast hero/feature bands. Background `{colors.surface-dark}`, text `{colors.on-dark}`.
**`feature-card`** — Soft-gray card used in feature grids. Background `{colors.surface-soft}` (#f8f9fa), text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (derived). Carries an icon, a `{typography.title-md}` title, and a `{typography.body-md}` description.
**`product-mockup-card`** — Card showing actual ClickUp product UI fragments (list views, board views, dashboards). Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg}` (derived).
**`pricing-tier-card`** — Standard pricing tier. Background `{colors.canvas}`, plan name in `{typography.title-lg}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (derived), with a `{component.button-primary}` at the bottom.
**`pricing-tier-card-featured`** — The featured tier flips to `{colors.surface-dark}` (#202020), text inverts to `{colors.on-dark}`. The dark surface is the featured signal.
### Inputs & Forms
**`text-input`** — Standard text input. Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, rounded `{rounded.md}`, 1px `{colors.hairline}` border. Padding + height derived.
**`text-input-focused`** — Focus state; border shifts to `{colors.primary}` for emphasis (derived).
### Tags / Badges
**`badge-pill`** — Neutral pill label. Background `{colors.surface-soft}`, text `{colors.ink}`, type `{typography.caption}`, rounded `{rounded.pill}`.
**`badge-pill-accent`** — The loud accent badge. Background `{colors.accent-magenta}` (#ff02f0), text `{colors.on-primary}`. Used for "New" / promotional flags — the brightest moment in the system.
### Footer
**`footer`** — Dark footer that closes every page. Background `{colors.surface-dark}` (#202020), text `{colors.muted-soft}` (#b4b4b4). Multi-column link list with the ClickUp wordmark at top-left in `{colors.on-dark}`. Vertical padding derived at 64px.
## Do's and Don'ts
### Do
- Reserve `{colors.primary}` (#7b68ee) for primary CTAs and core brand moments; press shifts to `{colors.primary-deep}` (#6647f0).
- Use the hot accents (`{colors.accent-magenta}`, `{colors.accent-pink}`, `{colors.primary-violet}`) sparingly — gradient sweeps, badges, and highlight flourishes, not body fills.
- Lean on the neutral ramp (`{colors.surface-strong}` → `{colors.muted}` → `{colors.body}` → `{colors.ink}`) for surfaces, dividers, and text to keep dense content legible.
- Use `{component.pricing-tier-card-featured}` (dark inversion) as the featured-tier signal — color contrast carries the emphasis.
- Use `{component.feature-card}` (soft gray) for feature claims and `{component.product-mockup-card}` (white) to show real product UI.
- End the page with the dark `{component.footer}`.
### Don't
- Don't fill large surfaces with the hot magenta/pink accents — they are emphasis hues, not backgrounds.
- Don't treat the derived type, spacing, radius, or shadow values as authoritative — they are placeholders pending measurement.
- Don't inline accent hex on components — always reference a `{colors.*}` token.
- Don't add hover-state styling beyond the documented default and active/pressed states.
- Don't introduce a second dark surface tone beyond `{colors.surface-dark}` / `{colors.surface-dark-elevated}`.
## Responsive Behavior
> Breakpoint behavior below is **derived** from standard SaaS patterns — no responsive measurements were captured.
### Breakpoints
| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Hamburger nav; hero h1 scales down; feature grids 1-up; pricing 1-up; footer columns collapse |
| Tablet | 768–1024px | Horizontal nav tightens; feature cards 2-up; pricing 2-up |
| Desktop | 1024–1440px | Full nav; 3-up feature cards; up to 4-up pricing tiers |
| Wide | > 1440px | Same as desktop with extra outer breathing room; content max ~1200px |
### Touch Targets
- `{component.button-primary}` derived at ≥48px height — comfortably above the 44px minimum.
- `{component.text-input}` derived at 48px height.
### Collapsing Strategy
- Top nav collapses to a hamburger at mobile.
- Feature and pricing grids reduce column count rather than shrinking cards.
- The featured-tier dark surface stays visually distinct at every breakpoint.
## Iteration Guide
1. **Re-measure first.** Type, spacing, radius, and shadow are all derived placeholders — running a proper capture is the highest-priority next step.
2. Focus on ONE component at a time, referencing its YAML key (`{component.feature-card}`, `{component.pricing-tier-card-featured}`).
3. Variants (`-active`, `-focused`, `-featured`) live as separate entries in `components:`.
4. Use `{token.refs}` everywhere — never inline hex.
5. Never document hover. Default and Active/Pressed states only.
6. Keep the hot accents scarce; the violet primary is the workhorse brand color.
7. The dark footer and featured tier are the only dark surfaces — don't add others casually.
## Known Gaps
- **Typography was not captured** — no font family, size, weight, line-height, or letter-spacing was measured. All typography tokens are derived estimates using Inter as an open substitute; the real ClickUp marketing face must be confirmed and re-measured.
- **Spacing scale was not captured** — the 4px-based scale is derived. Section padding, card padding, and gutters are estimates.
- **Border radius was not captured** — the entire radius scale is derived from typical SaaS values.
- **Shadows were not captured** — elevation treatments are inferred from screenshots; no shadow definitions exist.
- **Components were not captured** — all component structural values (padding, height, sizes) are derived; only color references are anchored to measured tokens.
- **Semantic colors (success / warning / error) were not captured** — the accent family is brand/gradient color, not a documented status set.
- `fonts_licensed` was empty in the measurement, so no licensed face is named; if the production display font is later confirmed as licensed, document it with the Inter substitution already specified.
- The role assignments in the source data flag several brand hues as "accent" and the gray ramp as "neutral"; the precise semantic role of `#0091ff` (link vs. gradient endpoint) and `#292d34` (legacy product slate vs. text) is inferred and should be confirmed.
- Animation, transition timings, and form validation states are out of scope for this pass.
<!-- Documented by duply · real-world design systems as ready-to-use DESIGN.md for AI coding agents · https://duply.ai/clickup/design-md -->





