Skip to main content
Back to Gallery

Ramp · Full Page

Ramp

A finance product that treats confidence as design discipline, not marketing tone — solar-lime CTA, smolder-green dark sections, TWK Lausanne. Brex's bolder rival.

ramp.com/Added
Ramp Full Page — desktop screenshot

Editorial disclaimer

Editorial noteThis entry documents observable design-language patterns for educational transfer and AI-agent briefing. Screenshots and trademarks are property of their respective owners. AI2 Design is not affiliated with or endorsed by the featured brand. Inspiration here is about language and rhythm — do not reproduce brand identity, logo, product copy, or proprietary features.

Curator verdict

Why we catalogued it?

Ramp is what happens when a finance product decides confidence is a design discipline, not a marketing tone. We catalogued it because it solves the hardest problem in fintech landing pages — making spend management feel fast, premium, and inevitable — using almost nothing but a single typeface, a kerosene-bright lime accent, and a near-monochrome warm-neutral skeleton. If you are selling efficiency to operators who measure their day in basis points, this is the page to keep open in the next tab: it argues with restraint and wins on rhythm.

Design decisions observed

  • Accent as a single high-voltage signal — Ramp commits to one electric lime (#e4f222) and refuses to dilute it. It appears on the thing you must click and nowhere else, so the eye is trained in one glance.
  • A warm-neutral skeleton, not a cold one — text and borders ride a brown-black axis (#0c0a08 ink, #d2cecb hairlines, #f4f2f0 panels) instead of the default blue-gray. The page feels like premium stationery, not a SaaS template.
  • Typographic authority from one family — TWK Lausanne carries the entire voice across a 300/350/400/700 ladder. No second display face, no decorative serif rescue; the hierarchy is weight and negative tracking alone.
  • Negative tracking that binds the big type — display headings pull in with px-based letter-spacing (-0.01px at 64px, -0.005px at 40px) so the largest words read as a single confident block rather than loose letters.
  • Motion that stays out of the way — a tight ladder of cubic-bezier curves anchored on cubic-bezier(0.4, 0, 0.2, 1) at 0.3s. Framer Motion is present but disciplined; the page feels quick because nothing performs for you.
  • Deep-green and dusk gradients reserved for atmosphere — the #17332d smolder and oklab dusk/midnight gradients appear as sectional mood, never as button fills, keeping the lime the only true call to action.

What to study

  • How a single accent earns the whole page — Ramp proves you don't need a palette, you need one color used with conviction. Study where the lime appears (and the 98% of surface where it deliberately doesn't).
  • The warm-neutral discipline — the brown-black ink and pinkish-gray borders are what separate this from generic fintech blue. Steal the temperature decision, not the exact hex.
  • Weight-and-tracking hierarchy on one family — TWK Lausanne does display, UI, and caption work through weight stepping (300→700) and px tracking. Learn how far one typeface can carry before you reach for a second.
  • Restraint in motion — the easing palette is small and the durations short (0.15–0.3s). Watch how a constrained curve set becomes a brand signature more than any single animation.

What to avoid

  • Don't paste Ramp's oklab gradients (--dusk, --midnight, --daylight) into a broad-audience page without testing — `in oklab` linear gradients assume a modern browser baseline and degrade unevenly. Adapt, don't photocopy.
  • Don't spread the lime accent across multiple elements thinking more is bolder — the entire effect collapses the moment a second thing competes for it. One signal per view.
  • Don't reach for a cold blue-gray neutral to 'modernize' it — the warm brown-black axis is load-bearing. Swapping it for #64748b-style grays erases the premium-stationery feel that makes Ramp read as expensive.

Taste notes

The page reads like a well-run treasury desk — every value is deliberate, nothing is loud for the sake of it, and the one bright thing in the room is the thing you're meant to act on. TWK Lausanne's warm geometry against the brown-ink neutrals gives it the texture of premium paper stock, while the lime accent behaves like a market ticker flashing the only number that matters. You are not being dazzled; you are being shown that someone competent already did the work.

Lineage & references

  • The aggressive challenger in the corporate-card and spend-management cohort — Ramp positioned itself as the efficiency-obsessed answer to the incumbents, and the landing page wears that thesis as a design constraint, not a slogan.
  • Sits shoulder-to-shoulder with the modern-fintech peers (Brex, Mercury) — the neighborhood of finance products that traded banking-blue and stock photography for confident type, restrained accent, and product-as-marketing screenshots.
  • Part of the 2024+ 'serious-but-fast' B2B wave (Stripe, Plaid, Modern Treasury) — companies that treat a marketing page with the same rigor they apply to a ledger, where typographic discipline signals operational trust.

Design language brief

Paste-ready for your agent.

A typed design system transfer brief — philosophy, tokens, rules, techniques, and fitness checks. Your agent reads the whole language, not just the pixels.

Philosophy

Light-first warm-neutral canvas with one high-voltage signal. The surface is near-white (#fff) over a pinkish-gray panel system (#f4f2f0 / #d2cecb), text rides a warm brown-black axis (#0c0a08 ink → #6e6a68 secondary), and a single electric lime accent (#e4f222) carries every primary call to action — used homeopathically, under ~3% of surface. TWK Lausanne ('lausanne') is the sole family, carrying voice across a 300/350/400/700 weight ladder; display headings bind with px-based negative tracking (-0.01px at 64px, -0.005px at 40px). Elevation is delivered through 1px hairline borders and soft low-opacity shadows, not bloom. Discipline over decoration; one accent, used with conviction.

Main prompt

Use this capture as a design language transfer brief for my project. Adopt the palette (light-first near-white canvas + warm brown-black ink #0c0a08 + pinkish-gray neutrals #f4f2f0/#d2cecb + a single electric lime accent #e4f222 reserved for primary CTAs), typographic system (TWK Lausanne as the only family with a 300/350/400/700 weight ladder and px-based negative tracking on display sizes), the 4/8/12/16/24/64px spacing rhythm, hairline-border-first elevation (1px #d2cecb + low-opacity soft shadow), cubic-bezier(0.4, 0, 0.2, 1) @ 0.3s motion curve, and image-lazy-by-default strategy across every page and component I ship. Treat this as my project's constitution — any new component should pass as if crafted in the same studio. Apply the language, not the source brand's specific copy or identity. Keep the lime as the single signal color; never let a second element compete for it. When I ask you to build a page or component, enforce these rules by default and call out any decision that deviates.

Overview

Layout
Grid
Content width
Bounded
Framing
Flat
Grid strength
Soft

Color philosophy

Light-first warm-neutral system — #fff canvas with #f4f2f0 / #d2cecb pinkish-gray panels and hairlines doing the structural work, all text on a warm brown-black axis (#0c0a08 primary → #6e6a68 secondary). The brand layer is a single electric lime (#e4f222, with #f5ff78 light variant), backed by a #17332d deep-green smolder and a #e96516 blaze used only for sectional atmosphere — never as competing CTAs.

Mode strategylight-first
  • Warm brown-black ink #0c0a08 (text-primary, weight 400) is the dominant reading layer; #0c0a0899 (text-hushed, ~60% alpha) and #6e6a68 (grayDark) descend for captions, metadata, de-emphasized labels.
  • Neutral skeleton #fff canvas + #f4f2f0 (grayLight) panel + #d2cecb (grayMedium / border-primary) hairlines — a pinkish-warm gray family, never cold blue-gray.
  • Electric lime #e4f222 (--solar) is the single signal color, reserved for the primary CTA and key emphasis — surface area under ~3%. #f5ff78 (--solarLight) is its hover/tint variant.
  • Deep green #17332d (--smolder) and blaze orange #e96516 (--blaze) appear only as sectional background/atmosphere; spring blue #5683d2 (--spring) and #e4ebf6 (--springLight) for illustrative accents — none ever read as a button.
  • Black-on-white panel alternation uses #1a1919 (--black) / #212121 background-black for dark sections, maintaining 4.5+ contrast with #fff foreground.

Gradients (paste-ready)

linear-gradient(in oklab to top, #e4ebf6 8%, #c3d3ef 20%, #5683d2 48%, #001b4a 100%)
linear-gradient(in oklab to bottom, #000 0%, #112d5b 100%)
linear-gradient(in oklab to bottom, #d2dff3 22%, #f2f5f9 93%)
linear-gradient(rgba(23, 18, 14, 0.2) 0%, rgba(23, 18, 14, 0.6) 60%, rgba(23, 18, 14, 0.82) 100%)

Typography rules

  • Single family: TWK Lausanne (self-hosted as 'lausanne', preloaded woff2 from /_next/static/media/). No second display face, no serif rescue — the entire hierarchy is one family.
  • Weight ladder: 300 / 350 / 400 / 700. 400 is the reading default; 700 carries bold emphasis and primary headings; 300/350 handle large light display moments. Do not introduce 500/600.
  • Display tracking is px-based and negative: -0.01px on the 64px hero (heading-1), -0.005px on 40px (heading-2). Smaller headings (28/24px) and body sit at normal tracking; the 10px caption variant uses +0.5px positive tracking.
  • Heading line-height runs tight: 64/64px (1.0) on hero, 40/42px on heading-2, 28/32 and 24/28 on sub-heads. Body 16/24px (1.5), small 14/20–21px, caption 10/15px.
  • Type scale (observed): hero 64px, 40px, 28px, 24px headings; 18px lead; 16px body; 14/13px small UI; 12px small; 10px caption. Material Icons Outlined for iconography at 12/16px.
  • No italic for emphasis — Lausanne carries through weight shift (400→700). Reserve italic for genuinely quoted editorial content.
  • Paragraph measure 45–60 ch at 16px body; dense UI rows may run tighter at 13–14px with 20–21px line-height.

Spacing rules

  • 4px base unit. Scale (observed): 1 / 4 / 6 / 8 / 12 / 16 / 20 / 24 / 32 / 48 / 64 px. The 24px and 8px steps dominate (highest frequency); 6/12px handle dense padding.
  • Named macro spacers: --spacer-m 40px, --spacer-l 80px for section-level vertical rhythm.
  • Container max-width 1440px (--container-md); narrow content clusters bound at 500px (--container-sm).
  • Card / surface padding: 24px desktop (dominant), 12–16px on dense or mobile contexts. Always pick from the scale; no magic numbers.
  • Flex/grid gutters: 8px (dominant) and 16px. Section vertical rhythm: 64px blocks (--space-11) stacked with 40/80px macro spacers.
  • Nav height calc(62px + var(--nav-banner-height)); banner 40px when present — reserve this offset in sticky-header layouts.

Design tokens

Palette, type, and space — all agent-readable.

6 colors · hex / rgb / hsl / oklch

Save PNG
  • foregroundfides-overlay-skeleton-gradient-to-color
    74%
    • HEX#000000
    • RGBrgb(0, 0, 0)
    • HSLhsl(0, 0%, 0%)
    • OKLCHoklch(0.00% 0.0000 0.00)
  • backgroundtext-hushed
    15%
    • HEX#0C0A08
    • RGBrgb(12, 10, 8)
    • HSLhsl(30, 20%, 4%)
    • OKLCHoklch(14.65% 0.0057 69.20)
  • backgroundgrayDark
    9%
    • HEX#6E6A68
    • RGBrgb(110, 106, 104)
    • HSLhsl(20, 3%, 42%)
    • OKLCHoklch(52.73% 0.0059 48.61)
  • foreground
    1%
    • HEX#212121
    • RGBrgb(33, 33, 33)
    • HSLhsl(0, 0%, 13%)
    • OKLCHoklch(24.78% 0.0000 89.76)
  • neutral
    1%
    • HEX#D2CDCA
    • RGBrgb(210, 205, 202)
    • HSLhsl(23, 8%, 81%)
    • OKLCHoklch(85.15% 0.0069 53.43)
  • backgroundfides-overlay-primary-button-text-color
    0%
    • HEX#FFFFFF
    • RGBrgb(255, 255, 255)
    • HSLhsl(0, 0%, 100%)
    • OKLCHoklch(100.00% 0.0000 89.76)

Inspector

Tab through the captured artifacts.

Six observable layers — page structure, fonts, breakpoints, z-index, gradients, motion — kept paste-ready alongside the tokens above.

Page structure

Semantic hierarchy at a glance.

Depth-first walk of meaningful sections — header, navigation, main regions, articles, footer. 13 nodes captured; depth capped at 6 for readability.

  • body
  • ├─ Nav
  • │ └─ Header
  • ├─ Main
  • │ ├─ Section
  • │ │ └─ div
  • │ │ └─ div
  • │ │ └─ div
  • │ │ └─ Form
  • │ └─ div
  • │ └─ Section (×6)
  • ├─ Footer
  • └─ iframe (×2)

Accessibility

WCAG contrast matrix.

24 combinations · 14 pass AA · 12 pass AAA · APCA Lc shown alongside WCAG 2.1 ratio for draft WCAG 3 awareness.

PreviewfgbgRatioNormalLargeAPCA LcContext
Aa
#000000#FFFFFF21.00AAAAAA+106foreground on background
Aa
#FFFFFF#00000021.00AAAAAA-108background on foreground
Aa
#0C0A08#FFFFFF19.76AAAAAA+106background on background
Aa
#FFFFFF#0C0A0819.76AAAAAA-108background on background
Aa
#212121#FFFFFF16.10AAAAAA+103foreground on background
Aa
#FFFFFF#21212116.10AAAAAA-106background on foreground
Aa
#000000#D2CDCA13.33AAAAAA+78foreground on neutral
Aa
#D2CDCA#00000013.33AAAAAA-77neutral on foreground
Aa
#0C0A08#D2CDCA12.54AAAAAA+77background on neutral
Aa
#D2CDCA#0C0A0812.54AAAAAA-77neutral on background

Image strategy

Asset loading & format policy.

Observable image posture — total count, lazy-loading ratio, and format mix. Hero image is measured above the fold.

Total30Lazy loaded40%svg24unknown6

Hero image

https://ramp.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fplatform-treasury-card-mobile.0wu50bih6oc8f.webp&w=3840&q=75&dpl=dpl_CnX3y3FEjXXeAX5T7aRPGsuvYpdQ
Format
UNKNOWN
Dimensions
0×0
Loading
lazy
srcset
yes
srcset descriptor
/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fplatform-treasury-card-mobile.0wu50bih6oc8f.webp&w=1080&q=75&dpl=dpl_CnX3y3FEjXXeAX5T7aRPGsuvYpdQ 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fplatform-treasury-card-mobile.0wu50bih6oc8f.webp&w=3840&q=75&dpl=dpl_CnX3y3FEjXXeAX5T7aRPGsuvYpdQ 2x
Page type
  • Full Page
Industry
  • fintech
  • saas
Theme
  • both
Added
  • 2026-06-23

Editorial credit

Featured Sponsor slot — your brand here

Dedicated logo placement — no rotation, on every export.

Become a sponsor

COMPARE THIS WITH

See also

Adjacent patterns worth studying.

AI2 Design counts anonymous traffic always — no cookies, no identifiers, no fingerprinting. For optional session insights (PostHog, EU region) — page funnel, performance — turn on opt-in analytics below. Cookie policy.