duply

Delve

A high-contrast compliance-software interface anchored on white canvas with pure-black ink and a hot-orange brand accent. The system reads as confident, technical, and modern-SaaS — crisp black headlines, near-white panel surfaces (#f7f8fa /

---
version: alpha
name: Delve-design-analysis
description: A high-contrast compliance-software interface anchored on white canvas with pure-black ink and a hot-orange brand accent. The system reads as confident, technical, and modern-SaaS — crisp black headlines, near-white panel surfaces (#f7f8fa / #f0f1f5) for content blocks, faint cool-gray hairlines, and a small reserved set of saturated accents (orange, magenta, blue) used sparingly for emphasis, logos, and interactive cues against an otherwise monochrome editorial field.
colors:
  primary: "#000000"
  primary-active: "#0c0c0c"
  ink: "#000000"
  ink-soft: "#222222"
  body: "#444444"
  body-soft: "#333333"
  muted: "#666666"
  muted-violet: "#5f5a70"
  canvas: "#ffffff"
  surface-soft: "#f7f8fa"
  surface-soft-alt: "#fafafa"
  surface-card: "#f0f1f5"
  hairline-soft: "#eeeeee"
  hairline: "#dfe0e5"
  hairline-strong: "#dddddd"
  hairline-strongest: "#cccccc"
  brand-orange: "#ff4b0f"
  brand-orange-alt: "#fb4a02"
  brand-orange-active: "#e35b11"
  accent-magenta: "#bd35bd"
  accent-blue: "#3898ec"
  on-primary: "#ffffff"
typography:
  display-xl:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 64px
    fontWeight: 600
    lineHeight: 1.05
    letterSpacing: -1.5px
  display-lg:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 48px
    fontWeight: 600
    lineHeight: 1.1
    letterSpacing: -1px
  display-md:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 36px
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: -0.5px
  title-lg:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 24px
    fontWeight: 600
    lineHeight: 1.3
    letterSpacing: -0.3px
  title-md:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 18px
    fontWeight: 600
    lineHeight: 1.4
    letterSpacing: 0
  body-md:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0
  body-sm:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 14px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0
  caption:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 13px
    fontWeight: 500
    lineHeight: 1.4
    letterSpacing: 0
  button:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 14px
    fontWeight: 600
    lineHeight: 1
    letterSpacing: 0
  nav-link:
    fontFamily: "Inter, system-ui, sans-serif"
    fontSize: 14px
    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: 12px 20px
    height: 40px
  button-primary-active:
    backgroundColor: "{colors.primary-active}"
    textColor: "{colors.on-primary}"
    rounded: "{rounded.md}"
  button-secondary:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.md}"
    padding: 12px 20px
    height: 40px
  button-accent:
    backgroundColor: "{colors.brand-orange}"
    textColor: "{colors.on-primary}"
    typography: "{typography.button}"
    rounded: "{rounded.md}"
    padding: 12px 20px
    height: 40px
  button-accent-active:
    backgroundColor: "{colors.brand-orange-active}"
    textColor: "{colors.on-primary}"
    rounded: "{rounded.md}"
  text-link:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.body-md}"
  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
  feature-card:
    backgroundColor: "{colors.surface-soft}"
    textColor: "{colors.ink}"
    typography: "{typography.title-md}"
    rounded: "{rounded.lg}"
    padding: 32px
  panel-card:
    backgroundColor: "{colors.surface-card}"
    textColor: "{colors.ink}"
    typography: "{typography.body-md}"
    rounded: "{rounded.lg}"
    padding: 24px
  logo-strip:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.muted}"
    typography: "{typography.caption}"
    padding: 32px
  badge-pill:
    backgroundColor: "{colors.surface-card}"
    textColor: "{colors.ink}"
    typography: "{typography.caption}"
    rounded: "{rounded.pill}"
    padding: 4px 12px
  text-input:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.body-md}"
    rounded: "{rounded.md}"
    padding: 10px 14px
    height: 40px
    borderColor: "{colors.hairline}"
  cta-band:
    backgroundColor: "{colors.surface-soft}"
    textColor: "{colors.ink}"
    typography: "{typography.display-md}"
    rounded: "{rounded.lg}"
    padding: 48px
  footer:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.muted}"
    typography: "{typography.body-sm}"
    padding: 64px
---

## Overview

Delve's marketing surface is a high-contrast, technical modern-SaaS interface built on a strict monochrome spine — pure white canvas (`{colors.canvas}`#ffffff), pure black ink (`{colors.ink}`#000000), and a small reserved set of saturated accents used sparingly. The measured palette is dominated by neutrals (white, cool grays, blacks), with the only chromatic voltage coming from a hot brand-orange (`{colors.brand-orange}`#ff4b0f), a magenta (`{colors.accent-magenta}`#bd35bd), and a Webflow-blue interaction color (`{colors.accent-blue}`#3898ec).

The system reads as confident and engineering-minded: black headlines on white, near-white panel surfaces (`{colors.surface-soft}`#f7f8fa and `{colors.surface-card}`#f0f1f5) holding content blocks, and faint cool-gray hairlines (`{colors.hairline}`#dfe0e5) separating regions. There is no dark theme in the measured surfaces — the contrast comes entirely from black-on-white, not from inverted bands.

Brand voltage is rationed: the orange appears on a small number of accent CTAs, highlights, and logo marks rather than across every band. The magenta and blue are even rarer — they read as logo/diagram colors and interactive-state cues, not as a general accent system.

**Key Characteristics:**
- Pure black-on-white contrast spine (`{colors.ink}`#000000 on `{colors.canvas}`#ffffff). The system never softens its primary contrast.
- A reserved hot-orange accent (`{colors.brand-orange}`#ff4b0f) for emphasis CTAs and brand marks. Two near-identical oranges were measured (#ff4b0f and #fb4a02) plus a darker press tone (#e35b11).
- Near-white panel surfaces (`{colors.surface-soft}`#f7f8fa, `{colors.surface-card}`#f0f1f5, `{colors.surface-soft-alt}`#fafafa) carry content blocks against the white canvas — a quiet, layered light-gray system.
- A graduated cool-gray hairline family (`{colors.hairline-soft}`#eeeeee through `{colors.hairline-strongest}`#cccccc) for dividers and borders.
- A graduated ink family for text: black (`{colors.ink}`), #222222 (`{colors.ink-soft}`), #444444 (`{colors.body}`), #666666 (`{colors.muted}`), and a muted violet-gray (`{colors.muted-violet}`#5f5a70).
- Magenta (`{colors.accent-magenta}`#bd35bd) and blue (`{colors.accent-blue}`#3898ec) appear rarely — logo/diagram colors and interactive cues, never primary CTAs.

## Colors

### Brand & Accent
- **Brand Orange** (`{colors.brand-orange}`#ff4b0f): The single dominant accent. Used on emphasis CTAs, brand marks, and highlight moments against the monochrome field. A second near-identical orange (`{colors.brand-orange-alt}`#fb4a02) was measured — treat these as the same brand tone captured at slightly different rasterizations. Press/active state uses the darker `{colors.brand-orange-active}` (#e35b11).
- **Accent Magenta** (`{colors.accent-magenta}`#bd35bd): A rare chromatic accent — appears in logo/diagram marks and small highlights, never on primary actions.
- **Accent Blue** (`{colors.accent-blue}`#3898ec): A blue interaction color (the standard Webflow link/interaction blue). Used on inline interactive cues and small accents only.

### Surface
- **Canvas** (`{colors.canvas}`#ffffff): The default page floor — the most frequent color in the system.
- **Surface Soft** (`{colors.surface-soft}`#f7f8fa): The primary panel/section background — used to lift content blocks off the white canvas.
- **Surface Soft Alt** (`{colors.surface-soft-alt}`#fafafa): A barely-there alternate panel tone for subtle banding.
- **Surface Card** (`{colors.surface-card}`#f0f1f5): A slightly deeper cool-gray fill for cards, badges, and nested panels.

### Hairline / Border
- **Hairline Soft** (`{colors.hairline-soft}`#eeeeee): The faintest divider tone.
- **Hairline** (`{colors.hairline}`#dfe0e5): The default 1px border on inputs, cards, and section dividers.
- **Hairline Strong** (`{colors.hairline-strong}`#dddddd): A slightly more visible border.
- **Hairline Strongest** (`{colors.hairline-strongest}`#cccccc): The most visible neutral border tone — high frequency, used widely for outlines and dividers.

### Text
- **Ink** (`{colors.ink}`#000000): All headlines and primary text. Pure black.
- **Ink Soft** (`{colors.ink-soft}`#222222): Secondary headline / strong-body tone.
- **Body** (`{colors.body}`#444444): Default running-text color.
- **Body Soft** (`{colors.body-soft}`#333333): A slightly darker body alternate.
- **Muted** (`{colors.muted}`#666666): Secondary text — captions, footer body, sub-labels.
- **Muted Violet** (`{colors.muted-violet}`#5f5a70): A cool violet-gray tertiary tone used in fine print and supporting text.
- **On Primary** (`{colors.on-primary}`#ffffff): Text on black and orange buttons.

### Note on Semantic Colors
No dedicated success / warning / error tones were isolated in the measured palette beyond the brand accents. Semantic states are listed in Known Gaps.

## Typography

### Font Family
No typography was captured in the measured analysis (the `typography` array was empty). The roles below are **derived** from screenshot ground-truth and standard modern-SaaS / Webflow baselines, using a neutral grotesque sans stack (`Inter, system-ui, sans-serif`) as a faithful open-source stand-in. No licensed typeface was flagged, so Inter is documented as the working family rather than a substitute for a proprietary face.

The split is functional:
- Headlines: weight 600, negative letter-spacing on display sizes (derived) — black, crisp, technical.
- Body + UI: weight 400–500, 0 letter-spacing — quiet supporting type.

### Hierarchy

| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
| `{typography.display-xl}` | 64px | 600 | 1.05 | -1.5px | Homepage h1 (derived) |
| `{typography.display-lg}` | 48px | 600 | 1.1 | -1px | Section heads (derived) |
| `{typography.display-md}` | 36px | 600 | 1.15 | -0.5px | Sub-section heads, CTA-band heads (derived) |
| `{typography.title-lg}` | 24px | 600 | 1.3 | -0.3px | Card titles, feature heads (derived) |
| `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Small card titles, intro lines (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, logo-strip captions (derived) |
| `{typography.button}` | 14px | 600 | 1.0 | 0 | Button labels (derived) |
| `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu items (derived) |

### Principles
Headlines stay pure black and weight 600 — never lighter on a hero. Body copy steps down into the gray family (`{colors.body}``{colors.muted}`) rather than reducing weight. The whole type system rides the monochrome spine; color is never used to create type hierarchy.

### Note on Font Substitutes
No licensed/custom typeface was flagged in the measured analysis. If the production face differs from Inter, swap `fontFamily` across the typography roles — the size/weight/tracking scale above is the load-bearing contract, not the specific family.

## Layout

### Spacing System
No spacing tokens were measured (the `spacing` array was empty). The scale below is **derived** from a standard 4px base, the common rhythm for Webflow-built modern-SaaS marketing pages.

- **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 editorial bands (derived).
- **Card internal padding:** `{spacing.xl}` (32px) for feature cards; `{spacing.lg}` (24px) for panel cards (derived).

### Grid & Container
- **Max content width:** ~1200px centered (derived — typical for this layout class).
- **Hero:** single-column centered or left-aligned headline + supporting copy + CTA row (derived).
- **Feature grids:** 3-up at desktop, 2-up at tablet, 1-up at mobile (derived).

### Whitespace Philosophy
The monochrome system leans on whitespace and faint gray panels for structure rather than borders or color blocks. Generous section spacing keeps the high black-on-white contrast from feeling harsh.

## Elevation & Depth

No shadow tokens were measured (the `shadows` array was empty). The system reads as predominantly **flat** — depth comes from surface tone steps, not drop shadows.

| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow, no border | Body sections, top nav, hero bands |
| Soft hairline | 1px `{colors.hairline}` (#dfe0e5) or `{colors.hairline-strongest}` (#cccccc) border | Inputs, dividers, card outlines |
| Panel surface | `{colors.surface-soft}` / `{colors.surface-card}` background — no shadow | Feature cards, content panels |

### Decorative Depth
Layering is achieved by stacking surface tones (`{colors.canvas}``{colors.surface-soft}``{colors.surface-card}`) rather than shadows. Any product-UI chrome shown inside cards may carry its own internal shadows; those are content, not system tokens.

## Shapes

### Border Radius Scale
No radius tokens were measured (the `radius` array was empty). The scale below is **derived** from standard modern-SaaS conventions and should be confirmed against production.

| Token | Value | Use |
|---|---|---|
| `{rounded.xs}` | 4px | Small accents, inline chips (derived) |
| `{rounded.sm}` | 6px | Small buttons, dropdown items (derived) |
| `{rounded.md}` | 8px | Buttons, text inputs (derived) |
| `{rounded.lg}` | 12px | Content cards, panels, CTA bands (derived) |
| `{rounded.xl}` | 16px | Large feature / mockup containers (derived) |
| `{rounded.pill}` | 9999px | Badge pills (derived) |
| `{rounded.full}` | 9999px | Avatars, icon buttons (derived) |

### Photography Geometry
Image and avatar geometry was not measured; treat avatar circles as `{rounded.full}` and content-image corners as `{rounded.lg}` pending confirmation (derived).

## Components

> Note: No components were captured in the measured analysis (the `components` array was empty). The entries below are **derived** from the measured color palette plus screenshot ground-truth. Color refs are faithful to declared tokens; sizes/padding are derived defaults.

### Navigation

**`top-nav`** — White nav bar pinned to the top of every page. `{colors.canvas}` background, `{colors.ink}` wordmark + menu, menu items in `{typography.nav-link}`. Right-side cluster carries a `{component.button-secondary}` and an emphasis `{component.button-accent}` (derived).

### Buttons

**`button-primary`** — The default action. Background `{colors.primary}` (#000000), text `{colors.on-primary}`, type `{typography.button}`, rounded `{rounded.md}`, padding 12px × 20px, height 40px. Active state `button-primary-active` shifts to `{colors.primary-active}` (#0c0c0c).

**`button-accent`** — The emphasis CTA carrying the brand voltage. Background `{colors.brand-orange}` (#ff4b0f), text `{colors.on-primary}`, type `{typography.button}`, rounded `{rounded.md}`. Active state `button-accent-active` shifts to `{colors.brand-orange-active}` (#e35b11).

**`button-secondary`** — White button with hairline outline. Background `{colors.canvas}`, text `{colors.ink}`, 1px `{colors.hairline}` border, same padding + height + radius as primary.

**`text-link`** — Inline link in `{colors.ink}`; interactive states may pick up `{colors.accent-blue}` (the measured Webflow interaction blue).

### Cards & Containers

**`hero-band`** — White-canvas hero with the h1 in `{typography.display-xl}`, supporting copy in `{typography.body-md}`, and a CTA row. Vertical padding `{spacing.section}` (96px).

**`feature-card`** — Used in feature grids. Background `{colors.surface-soft}` (#f7f8fa), rounded `{rounded.lg}`, internal padding `{spacing.xl}` (32px). Title in `{typography.title-md}`, description in `{typography.body-md}`.

**`panel-card`** — A deeper cool-gray content panel. Background `{colors.surface-card}` (#f0f1f5), rounded `{rounded.lg}`, padding `{spacing.lg}` (24px). Used for nested content blocks and stat panels.

**`logo-strip`** — Customer / integration logo row. Background `{colors.canvas}`, caption label in `{typography.caption}` / `{colors.muted}`, padding `{spacing.xl}`.

### Inputs & Forms

**`text-input`** — Standard text input. Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, rounded `{rounded.md}`, padding 10px × 14px, height 40px, 1px `{colors.hairline}` border.

### Tags / Badges

**`badge-pill`** — Small pill label for category tags. Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.caption}`, rounded `{rounded.pill}`, padding 4px × 12px.

### CTA / Footer

**`cta-band`** — Pre-footer CTA panel. Background `{colors.surface-soft}`, rounded `{rounded.lg}`, padding `{spacing.xxl}` (48px). Heading in `{typography.display-md}`, plus a `{component.button-accent}` or `{component.button-primary}`.

**`footer`** — Light footer on white. Background `{colors.canvas}`, text `{colors.muted}`, link rows in `{typography.body-sm}`, vertical padding 64px. Unlike many SaaS sites, Delve's measured surfaces carry no dark footer — the footer stays on the monochrome light field.

## Do's and Don'ts

### Do
- Keep the black-on-white contrast spine intact — `{colors.ink}` (#000000) headlines on `{colors.canvas}` (#ffffff). It is the brand's core signal.
- Reserve `{colors.brand-orange}` (#ff4b0f) for emphasis CTAs and brand marks only. It is rationed accent voltage, not a general fill.
- Use the surface-tone steps (`{colors.canvas}``{colors.surface-soft}``{colors.surface-card}`) to create layering instead of shadows.
- Step text hierarchy through the gray family (`{colors.body}``{colors.muted}``{colors.muted-violet}`) rather than reducing font weight.
- Use `{colors.hairline}` (#dfe0e5) / `{colors.hairline-strongest}` (#cccccc) for borders and dividers — keep them faint.

### Don't
- Don't use `{colors.accent-magenta}` or `{colors.accent-blue}` on primary CTAs — they are logo/diagram and interactive-cue colors, used rarely.
- Don't introduce dark-theme bands; the measured system is uniformly light. A dark surface would be off-system.
- Don't soften the headline contrast — avoid gray headlines on hero bands.
- Don't multiply the orange into large fills; it works because it is scarce.
- Don't add hover-state styling beyond default + active/pressed (primary → #0c0c0c, accent → #e35b11).

## Responsive Behavior

> Breakpoint specifics were not measured; the strategy below is **derived** from the layout class.

### Breakpoints

| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Hamburger nav; hero h1 scales down; feature grids 1-up; CTA band padding tightens |
| Tablet | 768–1024px | Top nav tightens; feature cards 2-up |
| Desktop | 1024–1440px | Full top-nav; 3-up feature grids |
| Wide | > 1440px | Same as desktop with more outer breathing room; content caps ~1200px |

### Touch Targets
- `{component.button-primary}` and `{component.button-accent}` at minimum 40px height (derived).
- `{component.text-input}` height is 40px (derived).

### Collapsing Strategy
- Top nav collapses to hamburger at < 768px (derived).
- Feature grids reduce columns rather than scaling cards down (derived).
- Surface-tone panels keep their fills at every breakpoint so the layering reads consistently.

## Iteration Guide

1. Focus on ONE component at a time. Reference its YAML key directly (`{component.button-accent}`, `{component.feature-card}`).
2. Variants of an existing component (`-active`, `-secondary`) live as separate entries in `components:`.
3. Use `{token.refs}` everywhere — never inline hex.
4. Never document hover. Default and Active/Pressed states only.
5. Keep the monochrome spine: black ink, white canvas, gray panels — color is reserved accent only.
6. Confirm the **derived** typography, spacing, and radius scales against production before relying on exact values.
7. When in doubt about emphasis: bigger black headline before more orange.

## Known Gaps

- **Typography was not measured** (the `typography` array was empty). All type roles — family, sizes, weights, line-heights, letter-spacing — are derived from screenshot ground-truth and standard modern-SaaS baselines, using Inter as a neutral stand-in. The production face and scale must be confirmed.
- **Spacing was not measured** (the `spacing` array was empty). The 4px-based scale is derived and needs verification.
- **Radius was not measured** (the `radius` array was empty). The radius scale is derived; production corner values are unconfirmed.
- **Shadows were not measured** (the `shadows` array was empty). The system is documented as flat; any real elevation tokens are unknown.
- **Components were not measured** (the `components` array was empty). All component entries are derived from the measured palette plus screenshots; their dimensions, padding, and exact composition are inferred, not extracted.
- Two near-identical brand oranges were measured (`#ff4b0f` and `#fb4a02`); whether these are one intended tone captured at different rasterizations or two distinct values is unconfirmed.
- No dedicated semantic colors (success / warning / error) were isolated; form validation and status states would need a sign-up or product flow to confirm.
- The `#3898ec` blue is the standard Webflow interaction color, suggesting a Webflow-built site; its intended usage (link state vs. brand accent) should be confirmed against interaction behavior.
- Animation and transition timings are out of scope.

<!-- Documented by duply · real-world design systems as ready-to-use DESIGN.md for AI coding agents · https://duply.ai/delve/design-md -->

Color Palette

Accent

Neutrals

Typography

display-xl64px · 600 · 1.05
The quick brown fox jumps
display-lg48px · 600 · 1.1
The quick brown fox jumps
display-md36px · 600 · 1.15
The quick brown fox jumps
title-lg24px · 600 · 1.3
The quick brown fox jumps
title-md18px · 600 · 1.4
The quick brown fox jumps
body-md16px · 400 · 1.5
The quick brown fox jumps

Spacing & Shape

Spacing

NameValuePreview
xxs4px
xs8px
sm12px
md16px
lg24px
xl32px
xxl48px
section96px

Border Radius

NameValuePreview
xs4px
sm6px
md8px
lg12px
xl16px
pill9999px
full9999px

More like this

Build in any
design language

Free to browse. Real design systems, documented as DESIGN.md. New designs land weekly.

Browse the libraryHow it works