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.

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.
- 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
- foregroundfides-overlay-skeleton-gradient-to-color74%
- HEX
#000000 - RGB
rgb(0, 0, 0) - HSL
hsl(0, 0%, 0%) - OKLCH
oklch(0.00% 0.0000 0.00)
- HEX
- backgroundtext-hushed15%
- HEX
#0C0A08 - RGB
rgb(12, 10, 8) - HSL
hsl(30, 20%, 4%) - OKLCH
oklch(14.65% 0.0057 69.20)
- HEX
- backgroundgrayDark9%
- HEX
#6E6A68 - RGB
rgb(110, 106, 104) - HSL
hsl(20, 3%, 42%) - OKLCH
oklch(52.73% 0.0059 48.61)
- HEX
- foreground1%
- HEX
#212121 - RGB
rgb(33, 33, 33) - HSL
hsl(0, 0%, 13%) - OKLCH
oklch(24.78% 0.0000 89.76)
- HEX
- neutral1%
- HEX
#D2CDCA - RGB
rgb(210, 205, 202) - HSL
hsl(23, 8%, 81%) - OKLCH
oklch(85.15% 0.0069 53.43)
- HEX
- backgroundfides-overlay-primary-button-text-color0%
- HEX
#FFFFFF - RGB
rgb(255, 255, 255) - HSL
hsl(0, 0%, 100%) - OKLCH
oklch(100.00% 0.0000 89.76)
- HEX
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.
| Preview | fg | bg | Ratio | Normal | Large | APCA Lc | Context |
|---|---|---|---|---|---|---|---|
Aa | #000000 | #FFFFFF | 21.00 | AAA | AAA | +106 | foreground on background |
Aa | #FFFFFF | #000000 | 21.00 | AAA | AAA | -108 | background on foreground |
Aa | #0C0A08 | #FFFFFF | 19.76 | AAA | AAA | +106 | background on background |
Aa | #FFFFFF | #0C0A08 | 19.76 | AAA | AAA | -108 | background on background |
Aa | #212121 | #FFFFFF | 16.10 | AAA | AAA | +103 | foreground on background |
Aa | #FFFFFF | #212121 | 16.10 | AAA | AAA | -106 | background on foreground |
Aa | #000000 | #D2CDCA | 13.33 | AAA | AAA | +78 | foreground on neutral |
Aa | #D2CDCA | #000000 | 13.33 | AAA | AAA | -77 | neutral on foreground |
Aa | #0C0A08 | #D2CDCA | 12.54 | AAA | AAA | +77 | background on neutral |
Aa | #D2CDCA | #0C0A08 | 12.54 | AAA | AAA | -77 | neutral 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.
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
- Full Page
- fintech
- saas
- both
- 2026-06-23
Editorial credit
Featured Sponsor slot — your brand here
Dedicated logo placement — no rotation, on every export.
COMPARE THIS WITH
Side-by-side reads sharing this design signal.
See also


