duply
Preview of Orb

Orb

A warm, editorial fintech interface for usage-based billing — a cream canvas (#fbf8f0) washed with soft green gradients, a low-weight ABC Marist serif for headlines, and ABC Diatype grotesque + semi-mono for body and labels. The system reads as precise-but-human: square-cornered near-black CTAs, large-radius (16px) content cards holding dark data-visualization media, mono uppercase eyebrow labels, and product-UI diagram fragments shown directly inline. Brand voltage comes from the serif/mono pairing and the green-tinted canvas rather than from saturated accent fills.

---
version: alpha
name: Orb-design-analysis
description: "A warm, editorial fintech interface for usage-based billing — a cream canvas (#fbf8f0) washed with soft green gradients, a low-weight ABC Marist serif for headlines, and ABC Diatype grotesque + semi-mono for body and labels. The system reads as precise-but-human: square-cornered near-black CTAs, large-radius (16px) content cards holding dark data-visualization media, mono uppercase eyebrow labels, and product-UI diagram fragments shown directly inline. Brand voltage comes from the serif/mono pairing and the green-tinted canvas rather than from saturated accent fills."
colors:
  ink: "#130f0b"
  canvas: "#fbf8f0"
  white: "#ffffff"
  black: "#000000"
  accent-green: "#baf289"
  accent-green-dark: "#375d33"
  muted: "#847e74"
  muted-soft: "#5b5448"
  hairline: "#e4e1d8"
  hairline-soft: "#d5d5d0"
  surface-slate: "#282c34"
  surface-light: "#f5f5f5"
  border-neutral: "#e5e5e5"
  neutral-mid: "#a1a1a1"
  cool-gray: "#d1d5dc"
  slate-blue: "#364153"
  accent-violet: "#7008e7"
  accent-blue: "#5b72fb"
  accent-blue-deep: "#2c2af8"
  accent-sky: "#effbff"
typography:
  display-xl:
    fontFamily: "ABC Marist, Newsreader, Georgia, serif"
    fontSize: 72px
    fontWeight: 350
    lineHeight: 1.0
    letterSpacing: -0.72px
  display-lg:
    fontFamily: "ABC Marist, Newsreader, Georgia, serif"
    fontSize: 52px
    fontWeight: 350
    lineHeight: 1.2
    letterSpacing: -0.52px
  eyebrow:
    fontFamily: "ABC Diatype Semi-Mono, Spline Sans Mono, ui-monospace, monospace"
    fontSize: 12px
    fontWeight: 400
    lineHeight: 1.25
    letterSpacing: 1.2px
  body:
    fontFamily: "ABC Diatype, Inter, sans-serif"
    fontSize: 22px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0
  button:
    fontFamily: "ABC Diatype, Inter, sans-serif"
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0
rounded:
  none: 0px
  sm: 8px
  md: 12px
  lg: 16px
spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 24px
  xl: 32px
  xxl: 48px
  section: 60px
components:
  announcement-bar:
    backgroundColor: "{colors.black}"
    textColor: "{colors.white}"
    typography: "{typography.button}"
    padding: 12px 16px
  top-nav:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.lg}"
    padding: 16px 32px
  nav-link:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
  button-primary:
    backgroundColor: "{colors.ink}"
    textColor: "{colors.white}"
    typography: "{typography.button}"
    rounded: "{rounded.none}"
    padding: 8px 16px
  button-secondary:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.none}"
    padding: 8px 16px
  hero-band:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.display-xl}"
    padding: 60px
  eyebrow-label:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.eyebrow}"
  feature-card:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    rounded: "{rounded.lg}"
    padding: 32px
  feature-card-media:
    backgroundColor: "{colors.surface-slate}"
    textColor: "{colors.white}"
    rounded: "{rounded.lg}"
  content-card:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    rounded: "{rounded.lg}"
    padding: 32px
  diagram-card:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    rounded: "{rounded.lg}"
    padding: 24px
  floating-label-pill:
    backgroundColor: "{colors.white}"
    textColor: "{colors.ink}"
    typography: "{typography.eyebrow}"
    rounded: "{rounded.sm}"
  solutions-tab:
    backgroundColor: transparent
    textColor: "{colors.muted}"
    typography: "{typography.button}"
    padding: 16px 24px
  solutions-tab-active:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    padding: 16px 24px
  testimonial:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.display-lg}"
    padding: 60px
---

## Overview

Orb's marketing surface is a warm, editorial fintech interface for usage-based billing. The page floor is a cream canvas (`{colors.canvas}`#fbf8f0) — not pure white — washed at the top with a soft green gradient drawn from `{colors.accent-green}` (#baf289) and `{colors.accent-green-dark}` (#375d33). Text and primary actions are near-black `{colors.ink}` (#130f0b), a warm off-black that ties to the cream rather than fighting it.

The type voice is the system's signature: a low-weight serif (**ABC Marist**, weight 350) carries every headline, while **ABC Diatype** (grotesque sans) handles body copy and buttons, and **ABC Diatype Semi-Mono** handles the small uppercase eyebrow labels ("GO USAGE-BASED", "EVOLVE PRICING"). The serif-display + mono-label pairing reads as precise-but-human — financial software with editorial confidence rather than dashboard coldness.

Component voltage comes from **product-UI diagram fragments shown directly inline** — the static-vs-active pricing diagrams, the "REAL TIME PRODUCT DATA" node graphs, and the dark data-visualization media tiles inside feature cards. Orb shows abstracted versions of its own pricing machinery as content. The dark media tiles (`{colors.surface-slate}`#282c34) and their glowing blue/green/violet data textures are the only saturated color in the system; the surrounding chrome stays cream and near-black.

**Key Characteristics:**
- Cream canvas (`{colors.canvas}`#fbf8f0) with a green top-gradient, not a white-and-blue SaaS look.
- Near-black square-cornered CTAs — `{component.button-primary}` uses `{rounded.none}` (0px radius, measured), `{colors.ink}` background, white label. The sharp corner is a deliberate editorial choice against the soft canvas.
- Low-weight ABC Marist serif headlines (weight 350) with tight negative tracking (-0.72px at 72px). Custom licensed face; substitutes documented below.
- Mono uppercase eyebrow labels in ABC Diatype Semi-Mono, 12px, +1.2px tracking.
- Content and feature cards use `{rounded.lg}` (16px) — the largest radius in the system; cards carry no shadow by default.
- Dark slate media tiles (`{colors.surface-slate}`#282c34) inside feature cards display glowing data-visualization textures (the only place saturated blues/violets appear).
- Floating white label pills with soft drop shadows annotate the inline pricing diagrams.
- Spacing rhythm centers on a 4px base, with `{spacing.section}` (60px) governing band separation.

## Colors

### Brand & Accent
- **Ink** (`{colors.ink}`#130f0b): The dominant warm near-black. All body text, headlines, and primary CTA fills. The most-measured color in the system (frequency 866 on text).
- **Accent Green** (`{colors.accent-green}`#baf289): The bright lime used in the hero's top gradient and small accent moments.
- **Accent Green Dark** (`{colors.accent-green-dark}`#375d33): The deep green that anchors the gradient and appears in glowing data-viz textures.
- **Product-UI accents** — A set of saturated tones that appear almost exclusively inside the dark media tiles and inline diagram fragments: `{colors.accent-blue}` (#5b72fb), `{colors.accent-blue-deep}` (#2c2af8), `{colors.accent-violet}` (#7008e7), `{colors.accent-sky}` (#effbff). These are content colors (data visualization), never applied to CTAs or chrome.

### Surface
- **Canvas** (`{colors.canvas}`#fbf8f0): The cream page floor and card background.
- **White** (`{colors.white}`#ffffff): Floating label pills over diagrams; text on dark surfaces.
- **Black** (`{colors.black}`#000000): The top announcement bar only.
- **Surface Slate** (`{colors.surface-slate}`#282c34): Dark media-tile background inside feature cards.
- **Surface Light** (`{colors.surface-light}`#f5f5f5): A lighter neutral panel tone.
- **Slate Blue** (`{colors.slate-blue}`#364153): A cool dark used in diagram chrome.

### Text & Neutral
- **Muted** (`{colors.muted}`#847e74): Secondary text — sub-headings, inactive tabs, captions.
- **Muted Soft** (`{colors.muted-soft}`#5b5448): Tertiary warm-gray text.
- **Neutral Mid** (`{colors.neutral-mid}`#a1a1a1): Fine print, disabled labels.
- **White** (`{colors.white}`#ffffff): Text on dark media tiles, the black bar, and primary buttons.

### Hairline & Border
- **Hairline** (`{colors.hairline}`#e4e1d8): The warm 1px divider/border tone on cream surfaces (e.g., the rules above eyebrow labels).
- **Hairline Soft** (`{colors.hairline-soft}`#d5d5d0): A softer divider variant.
- **Border Neutral** (`{colors.border-neutral}`#e5e5e5): Cool-neutral 1px borders.
- **Cool Gray** (`{colors.cool-gray}`#d1d5dc): Diagram and tab divider lines.

## Typography

### Font Family
The system runs three custom ABC faces from Dinamo:
- **ABC Marist** — a contemporary low-contrast serif used for all display headlines at weight 350. Tight negative tracking gives it editorial precision.
- **ABC Diatype** — a neutral grotesque sans used for body copy (22px) and button labels (16px).
- **ABC Diatype Semi-Mono** — a semi-monospaced variant used exclusively for the small uppercase eyebrow labels.

These are licensed commercial typefaces and are NOT shipped here; see substitutes below.

### Hierarchy

| Token | Family | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|---|
| `{typography.display-xl}` | ABC Marist | 72px | 350 | 1.0 | -0.72px | Hero h1 ("Billing, but better") |
| `{typography.display-lg}` | ABC Marist | 52px | 350 | 1.2 | -0.52px | Section heads, pull-quote testimonial |
| `{typography.eyebrow}` | ABC Diatype Semi-Mono | 12px | 400 | 1.25 | 1.2px | Uppercase section labels ("GO USAGE-BASED") |
| `{typography.body}` | ABC Diatype | 22px | 400 | 1.5 | 0 | Running text, sub-headlines |
| `{typography.button}` | ABC Diatype | 16px | 400 | 1.5 | 0 | Buttons, nav links, tabs |

### Principles
The serif/sans/mono split is strict: ABC Marist for headlines, ABC Diatype for prose and UI, ABC Diatype Semi-Mono for eyebrow labels. Display weight stays at the unusually low 350 — this thin serif is the brand's signature and must never be bolded into a heavier weight, which would erase the editorial lightness. Eyebrow labels are always uppercase with the +1.2px tracking.

### Note on Font Substitutes
ABC Marist, ABC Diatype, and ABC Diatype Semi-Mono are licensed and unavailable as open web fonts. Usable open-source substitutes:
- **ABC Marist → Newsreader** (Google Fonts) at a light weight, or **Fraunces** at low optical weight, preserves the low-contrast editorial serif character with thin display weight.
- **ABC Diatype → Inter** is the closest open grotesque for body and buttons.
- **ABC Diatype Semi-Mono → Spline Sans Mono** (or **JetBrains Mono** at lighter weight) approximates the semi-mono label voice.

## Layout

### Spacing System
- **Base unit:** 4px (the single most-frequent measured value alongside 8px).
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 60px.
- **Dominant rhythms:** 8px (frequency 147) governs tight internal gaps; 32px (frequency 40) governs card padding and grid gutters; 60px (frequency 14) governs vertical band separation.
- **Card internal padding:** `{spacing.xl}` (32px) for feature and content cards; `{spacing.lg}` (24px) for diagram cards.

### Grid & Container
- **Editorial body:** Centered single column for the hero (h1 + sub-head + button row), widening to multi-column card grids below.
- **Feature card grid:** 3-up at desktop (the "GO USAGE-BASED / EVOLVE PRICING / LAUNCH AI AGENTS" row).
- **Logo strip:** A single centered row of customer wordmarks beneath the hero.
- **Solutions tabs:** A full-width horizontal tab strip (Hybrid pricing / SaaS / PLG / Enterprise / Cloud infra / Gen AI) above a content panel.

### Whitespace Philosophy
Orb leans on generous vertical whitespace and a centered hero to let the thin serif headline breathe. Bands are separated at ~60px, and the cream canvas keeps long-scroll editorial sections feeling calm rather than dense.

## Elevation & Depth

| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow, no border | Hero band, content sections, most cards (`card` measured `shadow: none`) |
| Hairline | 1px `{colors.hairline}` rule | Dividers above eyebrow labels, tab underlines |
| Floating pill | `rgba(0,0,0,0.15) 0px 4px 16px 0px` | White label pills annotating inline diagrams |
| Inset toggle | `rgba(0,0,0,0.15) 2px 2px 9px 0px, rgba(0,0,0,0.15) 2px 2px 3px 0px inset` | Pressed/active node chips inside diagram fragments |
| Soft card lift | `rgba(0,0,0,0.08) 0px 12px 16px -4px, rgba(0,0,0,0.03) 0px 4px 6px -2px` | A single elevated card variant |

The elevation philosophy is **mostly flat** — content cards carry no shadow and rely on the cream/slate color contrast. Shadows appear only on the floating annotation pills and node chips inside the inline pricing diagrams, where they sell the "live UI" effect.

### Decorative Depth
- Dark media tiles (`{colors.surface-slate}`) carry their own glowing data-visualization textures (blue, green, red, violet point fields) — these are content imagery, not system shadow tokens.
- The hero's green gradient provides atmospheric depth at the top of the page without any shadow.

## Shapes

### Border Radius Scale

| Token | Value | Use |
|---|---|---|
| `{rounded.none}` | 0px | Buttons — `{component.button-primary}` and `{component.button-secondary}` are square-cornered (measured) |
| `{rounded.sm}` | 8px | Floating label pills, small chips (most-frequent radius, freq 43) |
| `{rounded.md}` | 12px | Occasional medium container (freq 1 — rare) |
| `{rounded.lg}` | 16px | Feature cards, content cards, media tiles, nav container (freq 15) |

The defining shape tension: **square-cornered buttons against soft 16px cards.** The sharp CTA corner is deliberate and signature — don't round it.

### Photography / Media Geometry
Feature-card media tiles are rounded at `{rounded.lg}` (16px) and contain dark abstract data-visualization renders. The inline pricing diagrams use rounded node chips and white floating pills at `{rounded.sm}` (8px).

## Components

### Top Navigation & Announcement

**`announcement-bar`** — A full-width black (`{colors.black}`) bar pinned above the nav ("Exciting news: Orb joins forces with Adyen · Learn more →"). White text in `{typography.button}`, padding ~12px.

**`top-nav`** — A floating rounded nav container on the cream canvas. Background `{colors.canvas}`, rounded `{rounded.lg}` (16px), carrying the lowercase "orb" wordmark at left, the primary menu (Products, Solutions, Resources, Docs, Careers, Pricing) center, and a `{component.button-secondary}` "Log in" + `{component.button-primary}` "Contact Sales" cluster at right.

**`nav-link`** — Menu items in `{typography.button}`, `{colors.ink}`, transparent background.

### Buttons

**`button-primary`** — The signature dark CTA ("Contact Sales"). Background `{colors.ink}` (#130f0b), white label, `{typography.button}`, padding 8px × 16px, rounded `{rounded.none}` (0px — measured square corners).

**`button-secondary`** — Outline button ("Explore demo", "Log in"). Transparent background, `{colors.ink}` text, 1px `{colors.hairline}` border, square corners `{rounded.none}`, same 8px × 16px padding.

### Hero & Editorial

**`hero-band`** — Centered hero on the green-gradient cream canvas. h1 in `{typography.display-xl}` (ABC Marist 72px / 350), sub-head in `{typography.body}`, and a two-button row beneath. Vertical padding ~`{spacing.section}` (60px).

**`eyebrow-label`** — Small uppercase mono section labels ("GO USAGE-BASED", "EVOLVE PRICING", "THE REVENUE DESIGN PLATFORM") in `{typography.eyebrow}`, `{colors.ink}`, usually sitting above a hairline rule.

**`testimonial`** — Large pull-quote ("Orb lets us move quickly when pricing needs to evolve...") set in `{typography.display-lg}` serif on the cream canvas, with attribution in small Diatype below.

### Cards & Containers

**`feature-card`** — The 3-up feature cards beneath the hero. Background `{colors.canvas}`, rounded `{rounded.lg}` (16px), padding `{spacing.xl}` (32px), no shadow. Carries an `{component.eyebrow-label}` at top, a `{component.feature-card-media}` tile, and a short description in `{typography.body}`.

**`feature-card-media`** — The dark visualization tile inside a feature card. Background `{colors.surface-slate}` (#282c34), rounded `{rounded.lg}`, displaying glowing abstract data textures (the blue/green/red/violet renders). A small circular arrow button sits at bottom-right.

**`content-card`** — General editorial cards in lower bands ("From brittle to bulletproof", "Contracting to collections", "Trust & transparency"). Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (32px), with a heading, body copy, and an inline text-link CTA.

**`diagram-card`** — Cards holding the inline pricing-machinery diagrams (static-pricing tree, "REAL TIME PRODUCT DATA / ACTIVE PRICING" node graph). Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg}` (24px). Internal nodes are chips and pills.

**`floating-label-pill`** — White annotation pills floating over the diagrams ("SPREADSHEETS & CONTRACTS", "VALUE", "MARGINS", "VISIBILITY"). Background `{colors.white}`, `{colors.ink}` text in `{typography.eyebrow}`, rounded `{rounded.sm}` (8px), with a soft `rgba(0,0,0,0.15) 0px 4px 16px` drop shadow.

### Tabs

**`solutions-tab`** + **`solutions-tab-active`** — The horizontal "Solutions for modern teams" tab strip (Hybrid pricing / SaaS / PLG / Enterprise / Cloud infra / Gen AI). Inactive: transparent background, `{colors.muted}` text. Active: `{colors.ink}` text with an underline indicator. Both in `{typography.button}`, padding ~16px × 24px.

## Do's and Don'ts

### Do
- Keep the page floor cream (`{colors.canvas}`#fbf8f0), not pure white. The warm tone is foundational.
- Use ABC Marist (substitute Newsreader) at weight 350 for every headline. The thin serif is the brand.
- Keep primary and secondary buttons square-cornered (`{rounded.none}`). The sharp CTA against soft cards is signature.
- Set eyebrow labels uppercase in the semi-mono face with +1.2px tracking.
- Confine saturated color (blue/violet/green data textures) to the dark media tiles and inline diagrams — they are content, not chrome.
- Use `{rounded.lg}` (16px) on cards and media tiles consistently.
- Annotate inline diagrams with white `{component.floating-label-pill}` shadows to sell the live-UI effect.

### Don't
- Don't bold the display serif beyond weight 350 — it erases the editorial lightness.
- Don't round the buttons. The square corner is deliberate.
- Don't paint CTAs or nav chrome in the saturated blues/violets/greens — those belong only inside data visualizations.
- Don't put body copy in ABC Marist or headlines in ABC Diatype; the serif/sans boundary is strict.
- Don't apply shadows to content cards — they stay flat (`shadow: none`).
- Don't document hover states — primary stays `{colors.ink}`; default and active only.

## Responsive Behavior

### Breakpoints
The capture covers desktop and a long full-page render; exact breakpoint widths were not measured. Inferred behavior (derived from layout structure):

| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Nav collapses to a menu trigger; hero h1 scales down from 72px; 3-up feature cards stack 1-up; solutions tabs scroll or wrap |
| Tablet | 768–1024px | Feature cards drop to 2-up; nav tightens; diagrams scale within their cards |
| Desktop | > 1024px | Full nav, 3-up feature grid, full-width tab strip |

### Touch Targets
- `{component.button-primary}` padding is 8px × 16px; on touch the effective tap area should be padded to a 44px minimum height (the measured padding alone is under it — derived guidance).
- Nav links and tabs rely on surrounding padding (~16–24px) to reach comfortable tap sizes.

### Collapsing Strategy
- Feature card grids reduce columns rather than shrinking cards.
- Inline diagram fragments scale proportionally inside their cards; floating label pills reposition.
- The solutions tab strip is the most likely candidate for horizontal scroll or wrapping on narrow viewports.

### Image Behavior
- Dark media tiles retain their 16px radius and aspect ratio while resizing with their cards.
- The hero's green gradient scales with the viewport.

## Iteration Guide

1. Focus on ONE component at a time. Reference its YAML key directly (`{component.feature-card}`, `{component.button-primary}`).
2. Variants (`-active`, `-secondary`, `-media`) live as separate entries in `components:`.
3. Use `{token.refs}` everywhere — never inline hex in components.
4. Never document hover. Default and active/pressed states only.
5. Headlines stay ABC Marist 350; body stays ABC Diatype 400; eyebrows stay Semi-Mono uppercase. The trinity does not blur.
6. Buttons stay square (`{rounded.none}`); cards stay 16px. Don't homogenize the radii.
7. Saturated color belongs inside data visualizations, never on chrome.

## Known Gaps

- ABC Marist, ABC Diatype, and ABC Diatype Semi-Mono are licensed commercial typefaces (the `fonts_licensed` array was empty in the capture, but these are known licensed Dinamo faces). Open-source substitutes are documented in the Typography section; the licensed fonts are not shipped.
- Footer styling was not captured in detail — its colors, columns, and padding are unknown.
- The pricing page was captured but no distinct pricing-tier component tokens (tier card backgrounds, featured-tier treatment) were measured; those need a dedicated extraction.
- The saturated product-UI accent colors (`{colors.accent-blue}`, `{colors.accent-blue-deep}`, `{colors.accent-violet}`, `{colors.accent-sky}`) were measured at low frequency and appear inside data-visualization media; their exact application rules inside the product chrome are out of scope.
- Hero background-gradient stops and angle are inferred from the green accent tokens; exact gradient geometry was not measured.
- Form inputs, validation states, and dropdown menus (Products/Solutions/Resources) were not extracted.
- Animation and transition timings (diagram reveals, tab switching) are not in scope.
- Responsive breakpoint widths and mobile nav behavior are inferred (derived), not measured.

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

Color Palette

Accent

Neutrals

Typography

display-xl72px · 350 · 1
The quick brown fox jumps
display-lg52px · 350 · 1.2
The quick brown fox jumps
eyebrow12px · 400 · 1.25
The quick brown fox jumps
body22px · 400 · 1.5
The quick brown fox jumps
button16px · 400 · 1.5
The quick brown fox jumps

Spacing & Shape

Spacing

NameValuePreview
xxs4px
xs8px
sm12px
md16px
lg24px
xl32px
xxl48px
section60px

Border Radius

NameValuePreview
none0px
sm8px
md12px
lg16px

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