İçeriğe Geç
uxprintGaleri
Sponsor Ol

Stripe

White pages framed by faint vertical hairlines, light-weight (300) Sohne headlines in deep navy with a muted continuation, a single violet #533afd for actions, and a silk gradient ribbon sweeping across the hero.

  • Pazarlama Sitesi
  • Açık
  • light
  • fintech
  • saas
  • developer-tool
  • gradient
  • light-weight-type
  • framed-grid
  • bento
  • modal-auth

Canlı Referans

Benzerlik%90,6Orijinali AçTam Ekran Aç

Genel

İlkeler

  1. Build on white. Draw the page frame with two faint full-height vertical hairlines at the column edges and 1px rules between bands; let dark #0d1738 bands and the gradient ribbon run full bleed across that frame.
  2. Set headlines light: Sohne at weight 300 with tight negative tracking (-0.02em at 48px, -1.4px at 56px). Emphasis comes from colour, not weight.
  3. Write section headlines as one paragraph in two tones: a short sentence in #061b31, then the explanation in #64748d at the same size.
  4. Use one action colour on marketing pages: #533afd for the primary button, links and focus. Buttons are 4px-radius rectangles, 48px in content and 40px in the header, with a trailing chevron.
  5. Every focusable element gets a 3px solid #5452fbbf outline (offset 1px on buttons, 3px on text links). Hover darkens the violet; nothing scales or lifts.
  6. Animate colour over 0.3s with cubic-bezier(0.25, 1, 0.5, 1); the header uses 0.24s with cubic-bezier(0.45, 0.05, 0.55, 0.95).
  7. Show the product: live, animated UI mock-ups inside bento cards, bleeding off the card edge over pastel gradients, rather than icons or stock illustration.
  8. Dashboard and docs surfaces switch to the grey-blue system: 1px #d4dee9 box-shadow rings instead of borders, 6px to 8px radii, a 4px focus halo, and the system font on docs.

Kaçınılacaklar

  • Bold or semibold display headlines on marketing pages
  • Pill-shaped buttons outside the pricing page
  • More than one filled violet button in a group
  • Saturated backgrounds behind body text; colour lives in the ribbon, the dark bands and the mock-ups
  • Card drop shadows on the white canvas for ordinary content; shadows are kept for floating mock-ups, menus and the auth card
  • Centred body copy outside hero-like bands (the dark stats band and testimonials are the exceptions)

Kaynak

Sayfalar
  • home https://stripe.com
  • pricing https://stripe.com/pricing
  • docs https://docs.stripe.com
  • login https://dashboard.stripe.com/login
  • register https://dashboard.stripe.com/register
Kayıt Tarihi2026-11-13
Genişlikler1440, 768, 390
Moddeep
Araçcraft-anything 0.4.0 + playwright 1.65.0

Yerleşim Kalıpları

Announcement bar
36px tall full-width #0d1738 strip above the header: one centred 14px/400 white line ending in a bold link with a chevron, a close X 40px wide at the right edge. Its 4px corner squares off on scroll (announcement-bar-square keyframes).
Header
76px tall, white, 1px hairline below. Inside a 64px nav: logo at the left of the 1232px content column, then Products, Solutions, Developers, Resources (each with a small chevron), Pricing, a 1px vertical divider and an AI guide link with a sparkle icon. At the right, a 40px outlined Sign in and a 40px violet Contact sales with a chevron. The gradient ribbon passes behind it.
Framed column
The 1266px frame is drawn as two 1px vertical hairlines running the full page height at 87px from each edge at 1440. Bands are separated by 1px horizontal rules that meet the frame lines. Dark bands and the gradient ribbon run full bleed across the frame.
Hero
Text inset to 208px. A 14px label with a live, ticking figure, then a four-line 48px/300 headline whose first sentence is in heading navy and the rest in slate, then two 48px buttons 8px apart (violet primary with chevron, light secondary with a Google mark). A silk gradient ribbon (blue, violet, orange, pink) sweeps from the top centre to the right edge behind the text. A row of six customer logos sits in a ruled strip below.
Two-tone section intro
32px/300 headline, left aligned at the content edge, about 790px wide: one short sentence in #061b31 followed in the same paragraph by a longer sentence in #64748d.
Bento grid
Cards with a 1px border on white, 16px apart: a row of two (816px and 400px wide, 676px tall), a row of three, then one full-width card. Each card has a 26px/300 title at 24px inset top left, a small square expand button top right, and a live product mock-up bleeding off the bottom or right edge over a soft gradient. The whole card is a button that opens a large dialog over a blurred page.
Dark stats band
Full-bleed #0d1738 with a soft violet glow. Centred 56px/300 white headline on two lines, then a 1px-ruled row of four stats (48px/300 figure, 16px label); the active stat is white and the others #6480b2. Below, an animated starburst of lines and dots with a small day/night switch in the top right corner.
Split section intro
Headline (26px/300) and a violet button in a 504px left column; an 18px/300 slate paragraph in the right half. Followed by a feature list, a story list or three columns.
Customer story list
Rows separated by dashed hairlines: 40px logo tile, 22px/300 title, and at the right a 40px story button. The first row is open, showing a 1232px wide photo with three inline facts under it; the others are collapsed.
Three-up feature columns
Three columns each with a 40px outlined icon tile, a bold lead-in sentence followed by slate copy on the same line, and a violet text link with a chevron.
Pricing hero and plans
Pricing uses the older system: #f6f9fc page, a diagonal multicolour stripe crossing the page behind two plan cards (a white Standard card with a tinted price panel, a dark navy Custom card with four stacked option tiles), dashed vertical guide lines every 270px, and a floating pill sub-nav (Standard pricing, Custom pricing, FAQs) that becomes a sticky white bar with a gradient progress line on scroll.
Pricing table
A left index of product links (15px, active in violet, groups in bold) and a white card at the right whose rows are split in two: product name and description on the left, fee and footnotes on the right, separated by dashed hairlines.
Docs shell
Two header rows: logo with a DOCS wordmark at the left, a 200px search trigger and an Ask AI button centred, Create account and a small outlined Sign in at the right; a second row of 14px/600 tabs with two dropdowns at the right. Content in a 1008px column starting at 216px. A dotted gradient pattern fills the top left corner. The page scrolls inside the app shell (document height equals the viewport).
Footer
#f8fafd band, 16px/300 #50617a links in columns, a newsletter email field with a Continue button, and a locale switcher.
Floating chat card
Fixed at the bottom right: a white card with two overlapping avatars, a green dot, a bold availability line and a close X; a separate dark Chat now button below it. Present on home and pricing at every width.
Duyarlı Davranış
At 768 the announcement wraps to 47px, the header is 66px and the nav collapses into a menu button; the content column is 736px with 16px gutters and bento cards stack. At 390 the announcement wraps to three lines (67px), the header shows the logo and a square menu button, the hero headline shows only its first sentence, both hero buttons go full width and stack, every grid becomes one column, and the chat card overlaps the content. Pricing at 390 stacks the plan cards and moves the price panel under the description. On the sign up page the 1440 modal over a blurred dashboard becomes, at 390, a plain card on a tinted page with the gradient ribbon at the bottom and the Google button moved above the fields.

Renk

Zemin

  • canvas

    Page background, bento cards, mega menu, auth cards

  • subtle

    Footer (1299px tall at 1440) and the closing band above it; hover fill of white icon buttons

  • tint

    Pale blue-grey fill (19 elements on home); also the 1px border of outlined link cards and the end colour of the background-flash keyframe

  • pricing-canvas

    Pricing page header band and tinted page sections; the pricing page sits on #fafbfd and #f6f9fc instead of pure white

  • deep-navy

    Announcement bar and full-bleed dark sections (stats band, infrastructure section)

  • violet-wash

    Fill of square icon buttons (carousel next, bento expand)

  • violet-wash-strong

    Collapsed story button (40px square with a plus)

  • chat-navy

    Chat now button fill; on the pricing page also the heading colour and the Custom plan card

Metin

  • heading

    Headlines, first sentence of two-tone headings, nav triggers, footer link hover

  • body

    Body copy, footer links, underlined inline links

  • muted

    Continuation sentence of two-tone headings, legal text, captions

  • on-dark

    Text on #0d1738 bands and on violet buttons

  • on-dark-muted

    Inactive stats and inline links on dark bands

  • pricing-body

    Body copy on the pricing page (older palette)

Kenarlık

  • card-outline

    1px border of outlined link cards; hover #bac8da

  • card-outline-hover

    Hover border of outlined link cards

  • secondary-button

    1px border of the light secondary button

  • story-button

    1px border of the expanding story button; hover fill of violet-wash icon buttons

  • frame-hairline

    Vertical frame lines at the column edges and the rules between bands on home. Seen in screenshots; their computed colour was not measured, this is the closest measured pale border

Vurgu

  • violet

    Primary button fill, links, logo, mega menu item titles. The only action colour on home

  • violet-hover

    Hero primary button hover (header button hover is #4133cb, form button hover #4032c8)

  • link-hover

    Hover and active colour of violet text links and outlined buttons

  • focus-ring

    3px solid outline on every focusable element on the marketing site; offset 1px on buttons, 3px on text links

  • on-dark-link

    Text links on dark bands; hover #7e94ff, active #a8bfff

  • legacy-blurple

    Pricing page pill buttons and links, chat focus shadow, dashboard links. The older brand violet, still on pricing and the dashboard

  • cyan

    Contact sales pill on the dark Custom pricing card; hover #ffffff

  • orange

    Text accents inside product mock-ups (12 elements on home, e.g. a checkout button label)

Anlamsal

  • success

    Positive figures and status text inside product mock-ups

  • success-wash

    Green-tinted fill inside product mock-ups (7 elements); the exact component was not identified

Alternatif Palet: Dashboard and docs palette

docs.stripe.com and the dashboard log in and sign up screens, which use the dashboard's own grey-blue system instead of the marketing violet

  • canvas

    Page, auth card, input and outline button fill

  • surface

    Docs tile list background, unselected tiles

  • surface-pressed

    Active (pressed) fill of outline buttons and the docs search trigger

  • text

    Input text, outline button labels

  • text-body

    Docs headings and body

  • text-label

    Sign up labels and inputs

  • text-muted

    Docs top tabs, Ask AI button

  • text-hover

    Hover colour of docs tabs and outline buttons

  • link-hover

    Hover colour of docs and auth links

  • docs-link

    Docs links and the docs primary button fill

  • auth-primary

    Sign in button, checked checkbox

  • auth-link

    Forgot password link, links inside consent text

  • ring

    1px box-shadow ring on inputs, outline buttons, search trigger; dividers

  • ring-hover

    Ring colour on hover

  • focus-violet

    1px inner ring of a focused log in field (with a 4px #e0d9fb halo)

  • focus-violet-halo

    4px outer halo of a focused log in field or checkbox

  • focus-blue

    4px focus halo on sign up fields and docs buttons

  • code-string

    Green string tokens in the dark docs code panel

Tipografi

Aileler

AdStackYerine
sanssohne-var, "SF Pro Display", sans-serifÖzellikler: "ss01"Intergoogle-fonts · Sohne is a paid Klim face loaded as a variable font (weights 1 to 1000). Use the variable Inter for 300 and 425. The pricing page declares sohne-var, "Helvetica Neue", Arial, sans-serif and the dashboard declares sohne-var, sohne-woff, "Helvetica Neue", Arial, sans-serif
monoSourceCodePro, SFMono-Regular, monospaceSource Code Progoogle-fonts · same face, loaded at weight 500
sans-apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"system-uisystem · docs.stripe.com only; the docs load no web font. Docs code uses Menlo, Consolas, monospace

Ölçek

  1. Sessiz arayüzü yayına al

    display-dark56px300lh 57.68pxls -1.4pxCentred headline on the dark stats band

  2. Sessiz arayüzü yayına al

    display48px300lh 55.2pxls -0.96pxHome hero headline: first sentence in heading colour, continuation in muted slate

  3. Sessiz arayüzü yayına al

    stat48px300lh 48pxls -0.96pxLarge figures in the stats row

  4. Sessiz arayüzü yayına al

    title32px300lh 35.2pxls -0.64pxSection headlines, two-tone

  5. Sessiz arayüzü yayına al

    card-title26px300lh 29.12pxls -0.26pxBento card titles and split-section headlines

  6. Sessiz arayüzü yayına al

    row-title22px300lh 24.2pxls -0.22pxCustomer story rows, news titles

  7. Sessiz arayüzü yayına al

    lead20px300lh 28pxls -0.2pxIntro paragraph under a section headline

  8. Sessiz arayüzü yayına al

    body-large18px300lh 25.2pxls normalParagraph beside a split-section headline

  9. Sessiz arayüzü yayına al

    body16px300lh 22.4pxls normalBody copy and inline links

  10. Sessiz arayüzü yayına al

    button16px400lh 16pxls normal48px buttons and text links with a chevron

  11. Sessiz arayüzü yayına al

    nav14px400lh 14pxls normalHeader nav triggers and the 40px header buttons

  12. Sessiz arayüzü yayına al

    small14px300lh 19.6pxls normalAnnouncement bar text, legal copy

  13. Sessiz arayüzü yayına al

    caption12px300lh 17.4pxls normalFootnotes, unsubscribe line

  14. Sessiz arayüzü yayına al

    code12px500lh 24pxls normalCode samples on the marketing site

  15. Sessiz arayüzü yayına al

    pricing-hero56px500lh 68pxls -1.12pxPricing page title (older system: weight 500, no ss01)

  16. Sessiz arayüzü yayına al

    pricing-section38px500lh 48pxls -0.2pxPricing section titles

  17. Sessiz arayüzü yayına al

    pricing-label15px425lh 24pxls 0.2pxPricing headings, pill buttons and emphasised links

  18. Sessiz arayüzü yayına al

    pricing-body15px300lh 24pxls 0.2pxPricing body copy and checklist items

  19. Sessiz arayüzü yayına al

    docs-title32px700lh 40pxls normalDocs page title (system stack)

  20. Sessiz arayüzü yayına al

    docs-heading21px700lh normalls normalDocs group headings (system stack)

  21. Sessiz arayüzü yayına al

    docs-link16px500lh 26pxls normalDocs link lists (system stack)

  22. Sessiz arayüzü yayına al

    docs-tab14px600lh 20pxls normalDocs top tabs and auth field labels

  23. Sessiz arayüzü yayına al

    auth-input16px300lh 24pxls normalTyped text in auth fields

  24. Sessiz arayüzü yayına al

    auth-button16px500lh 24pxls normalAuth primary and social buttons

  25. Sessiz arayüzü yayına al

    auth-footnote13px400lh normalls normalSwitch-flow line under the auth form

Boşluk, Radius, Gölge

Boşluk

  • 2px
  • 4px
  • 6px
  • 8px
  • 12px
  • 16px
  • 24px
  • 32px
  • 40px
  • 48px
  • 64px
  • 96px
  • 112px
  • 128px
Birim4px
Kapsayıcı1266px with 16px inline padding (content 1232px). Pricing uses 1080px, docs content 1008px
Kenar BoşluğuMasaüstü: 87px at 1440 (the centred 1266px frame); content starts at 104px, hero text at 208px · Mobil: 16px
Bölüm AralığıBands stack edge to edge; each section headline box starts 93px below its band's top edge at 1440. Pricing declares 160px top and bottom padding

Radius

  • hairline1pxCorner of the focus outline on text links
  • control4pxEvery marketing button, nav trigger and icon button; sign up inputs. The most used radius on home (99)
  • card6pxSecond most used on home (81); bento cards and product frames read at this radius in the screenshots. Auth inputs and buttons
  • docs8pxDocs search trigger, Ask AI, try-it tiles; pricing cards
  • auth-card12pxThe single 12px radius on the log in page, where the card is the only large rounded surface
  • pricing-pill16.5pxPricing page pill buttons (33px tall)
  • pill999pxPricing newsletter email input
  • round50%Avatars and status dots

Gölge

  • framergba(50, 50, 93, 0.25) 0px 30px 45px -30px, rgba(0, 0, 0, 0.1) 0px 18px 36px -18pxProduct mock-up frames on home
  • softrgba(23, 23, 23, 0.08) 0px 15px 35px 0pxFloating cards on home (chat card, mock-up panels)
  • soft-smallrgba(23, 23, 23, 0.06) 0px 3px 6px 0pxSmall raised elements on home
  • float-buttonrgba(0, 0, 0, 0.1) 0px 4px 8px 0pxWhite 40px floating icon button
  • pricing-buttonrgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1pxPricing pill buttons and small cards (23 uses)
  • pricing-cardrgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8pxPricing plan cards and panels
  • auth-cardrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.12) 0px 5px 15px 0px, rgba(48, 49, 61, 0.08) 0px 15px 35px 0pxLog in card
  • ringrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(212, 222, 233) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0pxDocs and dashboard: 1px ring used instead of a border on inputs and outline buttons
  • search-triggerrgba(16, 17, 26, 0.16) 0px 1px 1px 0px, rgb(212, 222, 233) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0pxDocs search trigger at rest
  • selected-tilergba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(60, 66, 87, 0.08) 0px 2px 5px 0px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0pxSelected tile in the docs try-it list
  • checkboxrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(103, 93, 255) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0px, rgba(48, 49, 61, 0.08) 0px 2px 5px 0pxChecked checkbox on the log in page

Bileşenler

  • Button, primary

    Anatomi: Rectangle with a 4px radius, label and a small trailing chevron 8px after it.

    Ölçüler

    height40px in the header, 48px in heroes and forms, 32px small
    padding11.5px 20px 12.5px at 40px, 15.5px 24px 16.5px at 48px, 6px 16px at 32px
    radius4px
    background#533afd
    color#ffffff
    font14px/400 (line height 14px) at 40px and 32px, 16px/400 (line height 16px) at 48px
    gap8px
    transitionbackground-color, color, outline-color, border 0.3s cubic-bezier(0.25, 1, 0.5, 1); in the header color, background-color, border-color 0.24s cubic-bezier(0.45, 0.05, 0.55, 0.95)

    Durumlar

    hoverbackground #4936e1 (hero), #4133cb (header), #4032c8 (form Continue), #5d64fe (on a dark band)
    activebackground #4032c8 (hero and form), #533afc (header), #5d64fe (dark band)
    focus-visibleoutline 3px solid #5452fbbf, offset 1px; the hero button also darkens to #4434d3 with the outline at #5452fb27

    Never rounded into a pill on the current marketing pages. Usually paired with one secondary button 8px to its right.

  • Button, secondary

    Anatomi: Same 4px rectangle with a 1px lavender border, violet label, optional leading brand mark or trailing chevron.

    Ölçüler

    height48px (40px in the header)
    padding14.5px 24px 15.5px at 48px, 10.5px 20px 13.5px at 40px
    radius4px
    background#ffffffa6 in the hero, transparent elsewhere
    border1px solid #b9b9f9
    color#533afd
    font16px/400 at 48px, 14px/400 at 40px
    transitionbackground-color, color, outline-color, border 0.3s cubic-bezier(0.25, 1, 0.5, 1)

    Durumlar

    hovercolor #4b37e6, border #a09def (hero); color #2e2b8c, border #4032c8 (in content); color #322d9a, border #574bcf (header)
    activecolor #302c91, border #4538ca (hero); color #2f2b8e, border #4234c9 (content)
    focus-visibleoutline 3px solid #5452fb7a, offset 1px
  • Button on media

    Anatomi: White 4px rectangle with violet label and chevron, placed on a photo or a dark band. A ghost variant has a translucent violet border and white label.

    Ölçüler

    height48px
    padding15.5px 24px 16.5px
    radius4px
    background#ffffff (ghost: #ffffff00 with 1px #4834dbb2 border)
    color#533afd (ghost: #ffffff)
    font16px/400
    transitionbackground-color, color 0.3s cubic-bezier(0.25, 1, 0.5, 1)

    Durumlar

    hoverlabel #101139 (ghost: border #5d64fe)
    activelabel #131444 (ghost: border #5d64fe)
    focus-visiblelabel #5139f8, outline 3px solid #5452fbbf, offset 1px
  • Text link with chevron

    Anatomi: Violet label followed by a small chevron; no underline.

    Ölçüler

    color#533afd (on dark: #7389ff)
    font16px/400
    transitioncolor 0.3s cubic-bezier(0.25, 1, 0.5, 1)

    Durumlar

    hovercolor #2e2b8c (on dark: #7e94ff)
    activecolor #2e2b8c or #2f2b8e (on dark: #a8bfff)
    focus-visibleoutline 3px solid #5452fbbf, offset 3px, radius 1px
  • Inline link

    Anatomi: Underlined text inside body copy or legal lines.

    Ölçüler

    color#50617a in body, #64748d in legal lines
    font16px/300 line height 22.4px in body, 14px/300 in legal, 12px/300 in captions
    decorationunderline
    transitioncolor 0.3s cubic-bezier(0.25, 1, 0.5, 1)

    Durumlar

    hovercolor #061b31
    activecolor #061b31
    focus-visibleoutline 3px solid #5452fbbf, offset 3px, radius 1px
  • Header nav trigger

    Anatomi: Label and a small down chevron that flips up while open; opens the mega menu.

    Ölçüler

    height40px
    padding12px 0
    radius4px
    color#061b31
    font14px/400, line height 14px
    gap4px
    transitioncolor, background-color, border-color 0.24s cubic-bezier(0.45, 0.05, 0.55, 0.95)

    Durumlar

    hoverno computed difference measured on the trigger itself; inside the open menu an arrow slides in next to the hovered item (nav-hover-arrow-in)
    focus-visibleoutline 3px solid #5452fbbf, offset 1px
    openchevron points up, mega menu appears

    Triggers sit about 28px apart. The logo link fades to opacity 0.6 on hover and focus (opacity 0.24s cubic-bezier(0.45, 0.05, 0.55, 0.95)).

  • Mega menu

    Anatomi: White panel spanning the 1262px nav width directly under the header, with a shadow and the page dimmed behind it. Four columns of groups (16px/400 group title over a 1px rule, then items: violet 14px/400 title over a 14px/300 slate description). A fifth column on a tinted background holds more links and an event card with an image. A bottom row, separated by a rule, holds a question and two violet links with descriptions.

    Ölçüler

    width1262px
    item14px/400 #533afd title, 14px/300 #50617a description, line height 18px
    column-gapabout 40px
    background#ffffff, last column tinted

    Durumlar

    item hoveran arrow fades and slides in from 3px left (nav-hover-arrow-in), and fades out on leave (nav-hover-arrow-out)

    Opening and closing timing was not measured.

  • Icon button, square

    Anatomi: 40px square with a 4px radius and a centred 16px icon, measured on the story carousel arrows. The bento expand buttons look the same in screenshots but were not measured.

    Ölçüler

    size40px
    radius4px
    background#e8e9ff
    transitionbackground-color, outline-color 0.3s cubic-bezier(0.25, 1, 0.5, 1)

    Durumlar

    hoverbackground #d6d9fc
    activebackground #d6d9fc
    focus-visiblebackground #dfe1fe, outline 3px solid #5452fb64, offset 1px
    disabledtransparent fill, icon #1010104d
  • Expanding story button

    Anatomi: Collapsed: a 40px square with a plus on violet wash. Expanded (on the open row): a 166px outlined button with label and chevron.

    Ölçüler

    height40px
    radius4px
    background#e2e4ff collapsed, transparent expanded
    border1px solid #d6d9fc expanded
    color#533afd
    font16px/400
    transitionbackground, color, border, width 0.4s cubic-bezier(0.3, 0, 0.2, 1); the label fades with opacity 0.4s cubic-bezier(0.3, 0, 0.2, 1)

    Durumlar

    hovercolor #2e2b8c, border #4032c8
    activecolor #2e2b8c, border #4032c8
    focus-visibleoutline 3px solid #5452fbbf, offset 1px
  • Bento card

    Anatomi: White card with a 1px border: title top left, square expand button top right, live product mock-up below bleeding off an edge over a pastel gradient. The whole card is a button.

    Ölçüler

    padding24px to the title
    radius6px (read from screenshots)
    title26px/300 #061b31, line height 29.12px, tracking -0.26px
    gap16px between cards
    transitionz-index 0.1s steps(1); inner transform and clip-path 0.8s cubic-bezier(0.165, 0.84, 0.44, 1)

    Durumlar

    opena large dialog with the card's detail (heading, copy, two buttons, bigger mock-ups) opens over the page; the page behind turns pale blue-grey

    Hover and focus differences on the card were not observed.

  • Stat switcher

    Anatomi: Row of four buttons on the dark band, each a large figure over a two-line label, separated by 1px rules; a short bright line marks the active one.

    Ölçüler

    figure48px/300, line height 48px, tracking -0.96px
    label16px/300, line height 22.4px
    color#ffffff active, #6480b2 inactive
    transitioncolor 1.2s cubic-bezier(0.65, 0, 0.35, 1) when the band switches theme

    Durumlar

    activefigure and label turn white

    A 32px day/night switch (combobox, 1px #8586c2 border, radius 4px) sits in the corner of the band; focus-visible adds a box-shadow #635bff1a 0px 0px 0px 3px and its border colour changes over 1.2s cubic-bezier(0.65, 0, 0.35, 1).

  • Chat button and card

    Anatomi: Dark rectangular Chat now button fixed bottom right, with a white availability card above it.

    Ölçüler

    height40px
    padding0 24px
    radius4px
    background#0a2540
    border1px solid #ffffff1f
    color#ffffff
    font15px/400 (15px/500 on pricing)
    transitionbackground 0.2s ease-in-out

    Durumlar

    hoverbackground #1a3a5c (measured on pricing)
    activebackground #1a3a5c
    focus-visiblebrowser default outline (1px auto #005fcc)

    The card's close X is #9ca3af and turns #6b7280 on hover (color 0.15s ease-in-out). The card enters and leaves with the chat-cta keyframes.

  • Pricing pill button

    Anatomi: Older-system pill with label and chevron.

    Ölçüler

    height33px
    padding3px 12px 6px 16px
    radius16.5px
    background#635bff (on the dark card: #00d4ff with #0a2540 label)
    color#ffffff
    font15px/425, line height 24px
    shadowrgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px
    transitionbackground-color, opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); in the header opacity, color, background-color, border, fill, stroke 0.3s cubic-bezier(0.25, 1, 0.5, 1)

    Durumlar

    hoverbackground #0a2540 (cyan variant: #ffffff)
    activebackground #0a2540 (cyan variant: #ffffff)
    focus-visiblebox-shadow #4d90fe 0px 0px 0px 2px, #ffffffe6 0px 0px 0px 2px inset on the form button; others offset 1px only

    Pricing links are 15px/425 #635bff and turn #0a2540 on hover; grey links instead drop to opacity 0.6 or 0.65 (color, opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1)).

  • Pricing FAQ row

    Anatomi: Full-width white row with a 1px rule below, question at the left and a round violet chevron icon at the right. Open rows show the answer on a tinted strip.

    Ölçüler

    height60px
    padding17px 32px 19px 16px
    background#ffffff
    color#0a2540
    font15px/425, line height 24px
    gap16px
    transitionheight 0.3s cubic-bezier(0.65, 0, 0.35, 1); chevron transform 0.3s cubic-bezier(0.65, 0, 0.35, 1)

    Durumlar

    openchevron points up, answer (15px/300 slate with violet links) slides open below
    focus-visiblebrowser default outline (1px auto #005fcc)
  • Sticky section nav

    Anatomi: On pricing: a floating white pill bar with three anchor links that, once scrolled past, becomes a full-width white bar with the links at the left, a Contact sales pill at the right and a gradient progress line along its top edge.

    Ölçüler

    link15px/425 #0a2540, active #635bff
    transitiontransform, opacity 0.25s ease; enters from translateY(-100%)

    Durumlar

    hoverlink colour #635bff
    active linkcolour #635bff; hovering it then gives #0a2540 at opacity 0.6
  • Docs search trigger

    Anatomi: 200px button with a search icon, placeholder label and a slash key cap at the right. Opens a command dialog.

    Ölçüler

    height32px
    padding2px 8px
    radius8px
    background#ffffff
    shadowrgba(16, 17, 26, 0.16) 0px 1px 1px 0px, rgb(212, 222, 233) 0px 0px 0px 1px
    color#5469d4
    font14px/400
    gap4px
    transitionbox-shadow 0.15s ease

    Durumlar

    hovertext #273951, ring #95a4ba
    activebackground #f4f7fa, text #3c4f69, drop shadow flips to 0px -1px 1px

    The dialog is a 648px white panel pinned 16px from the top, centred, with a search field, a close X, and a Suggested list of icon rows; the page behind is covered by a blue-grey scrim.

  • Docs outline button

    Anatomi: White button drawn with a 1px box-shadow ring (Sign in, Ask AI).

    Ölçüler

    height28px (Sign in), 32px (Ask AI)
    padding4px 8px, 6px 12px
    radius6px, 8px
    background#ffffff
    ring#d4dee9 0px 0px 0px 1px
    color#273951 (Ask AI #50617a)
    font14px/600 (Ask AI 14px/400)
    transitionbackground-color, box-shadow 0.15s cubic-bezier(0, 0.09, 0.4, 1)

    Durumlar

    hoverring #95a4ba
    activebackground #f4f7fa, text #3c4f69
    focus-visibleadds a 4px #0196ed5c ring outside the 1px ring
  • Docs tab and link

    Anatomi: Top tabs are plain 14px/600 slate labels; content links are 16px/500 blue.

    Ölçüler

    tab36px tall, padding 8px 12px, #50617a, transition color 0.1s cubic-bezier(0, 0, 0.4, 1)
    link#5469d4, 16px/500 line height 26px (14px/500 in the header)

    Durumlar

    hovertab #1a2c44; link #1a1f36
    focus-visiblelink: radius 4px, box-shadow #3a97d447 0px 0px 0px 4px, #0759965c 0px 0px 1px 1px

    Header dropdowns (APIs & SDKs, Help) open a white menu right-aligned under the trigger, 14px items, a 1px divider between groups and external-link icons.

  • Docs try-it list

    Anatomi: Vertical list of tiles beside a dark code panel; the selected tile is white and raised, the others sit on the tinted list background.

    Ölçüler

    height48.86px per tile
    padding12px
    radius8px
    background#f7fafc, selected #ffffff
    color#414552, selected text blue
    font14px/400 system stack

    Durumlar

    hoverbackground #ffffff
    selectedbackground #ffffff, shadow rgba(60, 66, 87, 0.08) 0px 2px 5px 0px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0px

    Transitions on the tiles are 0s (instant).

  • Copy chip

    Anatomi: Monospace value with a copy icon, used for test card numbers.

    Ölçüler

    height24px
    padding2px
    radius6px
    border1px solid #ecf1f6
    color#50617a
    font12px/700 Source Code Pro, line height 20px
    transitionall 0.1s ease-in-out

    Durumlar

    hoverborder #d4dee9, text #1a2c44
    activebackground #ecf1f6
  • Auth field

    Anatomi: 14px/600 label above, then a white input drawn with a box-shadow ring. A link may sit at the right end of the label row.

    Ölçüler

    height44px
    padding8px 12px
    radius6px
    background#ffffff
    ring#d4dee9 0px 0px 0px 1px
    color#273951
    font16px/300, line height 24px
    label14px/600 line height 20px
    transitionbox-shadow 0.24s ease

    Durumlar

    focus (log in)box-shadow #a497fc 0px 0px 0px 1px, #e0d9fb 0px 0px 0px 4px
    focus (sign up)box-shadow #d4dee9 0px 0px 0px 1px, #0196ed5c 0px 0px 0px 4px

    Two sign up fields render their ring on a wrapper and use a 14px/300 inner input with 4px 8px padding and a 4px radius; they look the same. Hover was not measured.

  • Auth button

    Anatomi: Full-width primary in violet, and outline social buttons with a centred 16px icon and label.

    Ölçüler

    height44px primary on log in, 36px on sign up; 40px outline (36px on sign up)
    padding8px 16px
    radius6px
    background#675dff primary; transparent or #ffffff outline
    ring#675dff 0px 0px 0px 1px on primary; 1px #d4dee9 on outline
    color#ffffff primary, #273951 outline
    font16px/500, line height 24px
    gap8px
    transitionbackground-color, box-shadow 0.15s cubic-bezier(0, 0.09, 0.4, 1)

    Durumlar

    incomplete formthe primary renders pale lavender with cursor default until the fields are filled; the computed fill stays #675dff, so the paling comes from a wrapper that was not measured
    hover (outline)background #ffffff, ring #95a4ba
    active (outline)background #f4f7fa, text #3c4f69
    focus-visibleprimary: ring plus #e0d9fb75 halo; outline: background #ffffff8a on log in, 4px #0196ed5c ring on sign up
  • Auth checkbox

    Anatomi: 14px box with a 4px radius and a 14px label beside it.

    Ölçüler

    size14px
    radius4px
    background#675dff checked
    shadowrgb(103, 93, 255) 0px 0px 0px 1px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0px, rgba(48, 49, 61, 0.08) 0px 2px 5px 0px
    transitionbackground-color, box-shadow 0.24s ease

    Durumlar

    focus-visibleadds a #e0d9fb 0px 0px 0px 4px halo, outline offset 2px
  • Product sub-nav

    Anatomi: Bar under the older header: product name in accent on the left, section links on the right; the current link is accent coloured.

    Ölçüler

    heightnot observed
    name18px/425/28px, accent colour
    links15px/425/24px #0a2540; current link in accent

    Durumlar

    Kayıtlı etkileşim durumu yok.

  • Pricing card row

    Anatomi: Row inside a pricing card: copy on the left (title + body), price panel on the right.

    Ölçüler

    columns446px copy, 365px price panel
    border1px solid #e7ecf1 on top
    copy padding16px 24px 16px
    title15px/425/24px #0a2540
    body15px/300/24px #425466
    price panel#fafbfd, padding 15px 24px
    price15px/425/19px #0a2540
    unit15px/300/24px #3f4b66
    note13px/300/21px #707f98

    Durumlar

    Kayıtlı etkileşim durumu yok.

    Rows stack under 640px: the price panel goes full width under the copy.

  • Pricing accordion row

    Anatomi: Collapsed group of extra price rows inside a pricing card.

    Ölçüler

    height57px closed (1px rule + 56px)
    title15px/425/24px #0a2540 at 24px inset
    summary15px/425 at x 919
    iconround 20px accent with a plus

    Durumlar

    openprice rows appear below; icon turns 45 degrees
  • Mobile navigation sheet

    Anatomi: Burger button opens a full-screen sheet with section rows; each section drills in with a Back row; Start now and Contact sales stay pinned at the bottom.

    Ölçüler

    burger40px square, #e8e9ff wash (accent fill on the older system)
    rows50px, 18px
    pinned buttons48px

    Durumlar

    opensheet covers the page, burger becomes a close icon

Hareket

Süreler

AdDeğerKullanım
instant-docs0.1sDocs tab colour, copy chip
quick0.15sPricing links and pills; docs and dashboard outline buttons; opacity of menu list items on home
header0.24sHeader nav triggers, header buttons and logo; auth field focus ring
default0.3sThe default on home: links, buttons, icon buttons, svg fill and stroke
expand0.4sStory button width and label
reveal0.5sFade-in of blocks as they enter the viewport; diagram pieces
pricing-image0.6sPricing pictures and story overlays
bento0.8sTransform and clip-path inside bento cards
theme1.2sDay/night switch on the dark band: colour, border and opacity

Easing Eğrileri

  • defaultcubic-bezier(0.25, 1, 0.5, 1)

    Every hover on home links, buttons and icons; also the chat card

  • headercubic-bezier(0.45, 0.05, 0.55, 0.95)

    Header triggers, header buttons, logo

  • bentocubic-bezier(0.165, 0.84, 0.44, 1)

    Bento card transform and clip-path, one-off fades

  • revealcubic-bezier(0.33, 1, 0.68, 1)

    Scroll fade-ins and the hero digit roll

  • expandcubic-bezier(0.3, 0, 0.2, 1)

    Story button

  • in-outcubic-bezier(0.65, 0, 0.35, 1)

    Theme switch, accordion height, chevron rotation

  • pathcubic-bezier(0.16, 1, 0.3, 1)

    SVG path transforms in illustrations

  • cyclecubic-bezier(0.78, 0, 0.22, 1)

    Vertical text cycling inside product mock-ups

  • pricingcubic-bezier(0.215, 0.61, 0.355, 1)

    Pricing links, pills and icons

  • pricing-imagecubic-bezier(0.7, 0, 0, 1)

    Pricing pictures and overlays

  • dashboardcubic-bezier(0, 0.09, 0.4, 1)

    Dashboard and docs buttons

  • docs-tabcubic-bezier(0, 0, 0.4, 1)

    Docs tab colour

Geçişler

HedefÖzelliklerSüreEasing
Text link (home)color0.3scubic-bezier(0.25, 1, 0.5, 1)
Button (home)background-color, color, outline-color, border0.3scubic-bezier(0.25, 1, 0.5, 1)
Header trigger and header buttoncolor, background-color, border-color0.24scubic-bezier(0.45, 0.05, 0.55, 0.95)
Logo linkopacity0.24scubic-bezier(0.45, 0.05, 0.55, 0.95)
Icon buttonbackground-color, outline-color0.3scubic-bezier(0.25, 1, 0.5, 1)
Illustration svgfill, stroke, transform, opacity0.3scubic-bezier(0.25, 1, 0.5, 1)
Menu list itemopacity0.15slinear
Story buttonbackground, color, border, width0.4scubic-bezier(0.3, 0, 0.2, 1)
Bento card contenttransform, clip-path0.8scubic-bezier(0.165, 0.84, 0.44, 1)
Scroll revealopacity 0 to 10.5scubic-bezier(0.33, 1, 0.68, 1)
Dark band theme switchcolor, border-color, opacity1.2scubic-bezier(0.65, 0, 0.35, 1)
Announcement collapsegrid-template-rows0.4scubic-bezier(0.65, 0, 0.35, 1)
Chat cardgrid-template-rows, transform (to translateY(32px))0.3scubic-bezier(0.25, 1, 0.5, 1)
Outlined link cardborder-color, background-color0.2sease
Pricing link and pillcolor, opacity / background-color, opacity0.15scubic-bezier(0.215, 0.61, 0.355, 1)
Pricing FAQ rowheight; chevron transform0.3scubic-bezier(0.65, 0, 0.35, 1)
Pricing sticky navtransform (from translateY(-100%)), opacity0.25sease
Pricing carouseltransform (translateX -270px per step)0.35scubic-bezier(0.4, 0, 0.2, 1)
Docs and dashboard buttonbackground-color, box-shadow0.15scubic-bezier(0, 0.09, 0.4, 1)
Docs search triggerbox-shadow0.15sease
Docs tabcolor0.1scubic-bezier(0, 0, 0.4, 1)
Auth field and checkboxbox-shadow (checkbox also background-color)0.24sease
Sign up password blockheight0.3scubic-bezier(0.7, 0, 0.3, 1)

Keyframe'ler

  • nav-hover-arrow-inArrow next to a hovered mega menu item slides in from 3px left
    nav-hover-arrow-in
    @keyframes nav-hover-arrow-in{0%{opacity:0;transform:translateX(-3px)}to{opacity:1;transform:translateX(0)}}
  • nav-hover-arrow-outSame arrow fades out on leave; on pricing it ran for 150ms with cubic-bezier(0.25, 1, 0.5, 1)
    nav-hover-arrow-out
    @keyframes nav-hover-arrow-out{0%{opacity:1}to{opacity:0}}
  • navigation-menu-delay-resetResets a custom property that delays the mega menu between triggers
    navigation-menu-delay-reset
    @keyframes navigation-menu-delay-reset{0%,to{--navigation-menu-transition-delay:0s}}
  • detect-scrollScroll-driven trick on the header nav that sets a custom property when the page can scroll
    detect-scroll
    @keyframes detect-scroll{0%,to{--can-scroll: }}
  • announcement-bar-squareSquares the announcement bar's corners on scroll
    announcement-bar-square
    @keyframes announcement-bar-square{to{--announcement-bar-radius:0px}}
  • bento-dialog-reveal-fade-in-upBento detail dialog content rises 30px and fades in
    bento-dialog-reveal-fade-in-up
    @keyframes bento-dialog-reveal-fade-in-up{0%{opacity:0;transform:translate3d(0,30px,0)}to{opacity:1;transform:translateZ(0)}}
  • bento-overlay-gradient-opacity-animationGradient overlay behind the bento dialog fades in
    bento-overlay-gradient-opacity-animation
    @keyframes bento-overlay-gradient-opacity-animation{0%{opacity:0}to{opacity:1}}
  • agentic-commerce-graphic-border-spinA conic border spins around a card in an illustration
    agentic-commerce-graphic-border-spin
    @keyframes agentic-commerce-graphic-border-spin{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}
  • book-of-the-week-fade-inImage fade-in in the news section
    book-of-the-week-fade-in
    @keyframes book-of-the-week-fade-in{0%{opacity:0}to{opacity:1}}
  • background-flashBackground fades to a pale blue-grey; where it runs was not observed (original name opacityAnimation)
    background-flash
    @keyframes background-flash{0%{background-color:rgba(229,237,245,0)}to{background-color:rgba(229,237,245,.7)}}
  • chat-cta-card-entranceChat availability card rises 16px and fades in
    chat-cta-card-entrance
    @keyframes chat-cta-card-entrance{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
  • chat-cta-card-exitChat availability card drops 8px and fades out
    chat-cta-card-exit
    @keyframes chat-cta-card-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}
  • chat-cta-entranceChat button rises 20px from 95% scale
    chat-cta-entrance
    @keyframes chat-cta-entrance{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
  • chat-cta-exitChat button leaves in reverse
    chat-cta-exit
    @keyframes chat-cta-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(20px) scale(.95)}}
  • portal-tooltip-item-fade-inTooltip content fades in on pricing
    portal-tooltip-item-fade-in
    @keyframes portal-tooltip-item-fade-in{0%{opacity:0}}
  • skeleton-overlayDocs sidebar and content skeleton shimmer (original names SidebarSkeleton-Overlay-animation, ContentSkeleton-Overlay-animation)
    skeleton-overlay
    @keyframes skeleton-overlay{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
  • skeleton-fade-inDocs skeleton blocks fade in
    skeleton-fade-in
    @keyframes skeleton-fade-in{0%{opacity:0}100%{opacity:1}}
  • gradient-sweepBackground-position sweep across a gradient, on docs and dashboard (original generic name keyframes)
    gradient-sweep
    @keyframes gradient-sweep{0%{background-position:200% center}100%{background-position:0 center}}
  • spinner-showSpinner fades in (docs and dashboard)
    spinner-show
    @keyframes spinner-show{from{opacity:0}to{opacity:1}}
  • spinner-rotationSpinner rotation
    spinner-rotation
    @keyframes spinner-rotation{100%{transform:rotate(360deg)}}
  • highlight-lineDocs code panel: a highlighted line fades from green to the panel colour
    highlight-line
    @keyframes highlight-line{0%{background:var(--sail-color-green-800)}100%{background:#1a2652}}
  • auth-shakeLog in and sign up card shakes on a rejected submit (original names Login-shake, RegisterAndLoginLayout-shake). Present in the CSS, not triggered during capture
    auth-shake
    @keyframes auth-shake{0%,to{transform:translate(0)}20%{transform:translate(-15px)}40%{transform:translate(15px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}}
  • modal-panel-shakeDashboard modal panel shake with a slight 3D turn. Present in the CSS, not triggered
    modal-panel-shake
    @keyframes modal-panel-shake{0%{transform:translate(0)}12.5%{transform:translate(-6px) rotateY(-5deg)}37.5%{transform:translate(5px) rotateY(4deg)}62.5%{transform:translate(-3px) rotateY(-2deg)}87.5%{transform:translate(2px) rotateY(1deg)}to{transform:translate(0)}}
  • confirmation-button-spinner-rotationSpinner inside a submitting dashboard button
    confirmation-button-spinner-rotation
    @keyframes confirmation-button-spinner-rotation{to{transform:rotate(360deg)}}
  • strength-indicator-movementPassword strength meter while it is being computed: a 4px block slides along the track (original fetchingStrengthIndicatorMovement)
    strength-indicator-movement
    @keyframes strength-indicator-movement{0%{left:0%}to{left:calc(100% - 4px)}}
  • strength-indicator-widthPassword strength meter grows from 4px to 128px
    strength-indicator-width
    @keyframes strength-indicator-width{0%{width:4px}to{width:128px}}
  • loading-backgroundDashboard loading placeholder sweep (original LoadingBackground--animation)
    loading-background
    @keyframes loading-background{0%{background-position:0px top}to{background-position:-400px top}}

Ölçülemeyenler

  • The hero gradient ribbon (blue, violet, orange, pink silk folds) crossing the header and hero on home, and the same ribbon behind the log in card. On log in it is a static 3000 by 2500 image; on home it is rendered by script. The string THREE.WebGLRenderer is in the home and log in scripts, but whether the ribbon moves, and how, was not measured.
  • The hero headline: its computed colours read rgb(129, 184, 26) and rgba(0, 14, 255, 0.5) while the screenshot shows navy and slate text with parts of words tinted violet where the ribbon passes. The effect is script or blend driven and not specified here.
  • In the 1440 screenshot the header Sign in label is orange over the ribbon although its computed colour is #533afd; the mechanism was not measured.
  • The live counter in the hero label ticks; a span slides up by 100% over 325ms after a 450ms delay with cubic-bezier(0.33, 1, 0.68, 1), consistent with rolling digits.
  • Product mock-ups in the bento cards play scripted sequences: a 11.95s opacity timeline on an image (cubic-bezier(0.2, 0, 0, 1)), vertical text cycling over 1420ms after a 4000ms delay with cubic-bezier(0.78, 0, 0.22, 1), path draws with stroke-dashoffset over 1s. Full choreography is not specified.
  • A testimonial logo strip autoplays: a violet (#533afd) bar grows under the active logo (an svg rect animated in width), switching the quote. Its period was not measured.
  • The starburst of lines and dots on the dark band animates continuously; it is script driven and not specified.
  • Mega menu open and close timing, the bento dialog entrance (the capture caught the dialog blurred mid-opening), and the docs search dialog entrance: keyframes or transitions exist but their running duration was not measured.
  • Elements revealed by script translate up from 324px with no CSS transition (transition: all 0s), so the timing comes from script and was not measured.
  • Hover on the bento cards, on the header nav triggers themselves, and on auth fields showed no computed difference; any hover effect there is not recorded.

Sayfalar

Home page

1 sayfaCanlı Ekranı Aç

The main marketing page of the newer system: one long white page inside the framed 1266px column.

  1. Announcement bar above the 76px header (dismissible); header: wordmark, 4 mega menu triggers (40px, 14px/400), Pricing, divider, Help me link, Sign in (secondary 40px) and Contact sales (primary 40px, #533afd, 4px radius)
  2. Frame: 1266px column centred, 1px #e5edf5 vertical lines at x 87 and 1353 at 1440
  3. Hero 685px tall: 4-line display headline, lead 16px/300/22.4px, two 48px buttons; animated gradient ribbon drawn on canvas behind it (761px tall, starts 76px above the hero, offset 337px from the left)
  4. Bento of solution cards: rows of 816px + 400px cards, 676px tall, third row one 1232 x 450px card
  5. Event promo band 560px; stats band 977px on a #555d7d to #786cb6 gradient with tabbed stats
  6. Scale section: rule, split rows, customer story rows, expert band, wide media, quote and logo strip
  7. Developer band on #0d1738 with code media; news track of cards; closing CTA
  8. Full footer on #f8fafd, 1299px tall: 4 columns at x 104/416/728/1040, links 16px/300/20px #50617a with 24px pitch, newsletter, locale and copyright

Product page, older system

24 sayfaCanlı Ekranı Aç

Single-product pages still on the older system: pastel #f6f9fc page, 1080px container with dashed column guides, pill buttons in the product accent colour.

  1. Header 78px with pill Sign in and Contact sales (33px, 16.5px radius); sticky sub-nav with product name 18px/425 in accent and section links 15px/425
  2. Hero 663px: display 56px/500/68px (max 460px), lead 18px/300/28px, accent pill + ghost pill; diagonal colour ribbon on the right
  3. Feature row 755px: 4 columns of 270px, each a 40px icon, 15px/425 title with a 1px accent bar 16px to its left, body 15px/300/24px
  4. How it works: eyebrow 18px/500 accent, h2 38px/500/48px, numbered 4-column steps, product demo media, follow-up h2, lead and pill
  5. Quote card on #03293b with logo switcher of 4 marks
  6. CTA grid 540 + 270 + 270px with two side features, then legal small print 128px below
  7. Older footer, 1600px: brand column + 3 link columns of 270px, titles 15px/425, links pitch 28px, pill newsletter, copyright

Product page, newer system

13 sayfaCanlı Ekranı Aç

Product pages moved to the newer white system with a framed column, a product sub-nav and accordions.

  1. Header 76px (newer system); product sub-nav 81px with name and section links
  2. Hero 771px with large product art (1264 x 772px) behind the copy; logo strip 74px
  3. Opportunity band 460px on tint; 3 alternating text and media rows of 261px
  4. Feature accordion: one row open at a time, closed head 73px, open row 730px with media
  5. Scale stats, customer story cards 400 x 584px, analyst band
  6. Capabilities 2 x 2 grid (474 and 404px tall cards), optimise carousel of 4 cards 348px wide
  7. FAQ accordion with resources column, CTA band 319px, notes 366px, full footer

Use case and industry page

20 sayfaCanlı Ekranı Aç

Pages per use case or industry on the older system; bands of fixed height alternate white and #f6f9fc.

  1. Older header 78px; hero 604px on a tinted wedge: kicker 15px/425 accent, display 56px/500 over 2 lines (682px), lead, Contact sales pill + ghost Start now; product mockup on the right
  2. Logo band 663px: 8 logos 200 x 40px in 4 columns of 270px, 60px row gap
  3. Tint band 1145px: eyebrow, h2 38px/500/48px, link lead, 3 stacked features (476px) beside a tall media
  4. White band 1688px: cyan eyebrow #02bcf5, h2, lead, two 412px columns with h3 26px/500/36px and pills, two media, 4-column automation row
  5. Tint 496px and 429px callouts with a 412px text column and media on the right; white 948px band with 2 x 2 features
  6. Case study band 1166px: h2 492px wide, Challenge / Solution / Products blocks and a logo
  7. Tint expert services band 629px; CTA band 481px (540 + 270 + 270px); older footer on #f6f9fc

Audience landing page

4 sayfaCanlı Ekranı Aç

Landing pages for a company stage or the yearly event. Measured /startups: older legacy system (#f6f9fc tint bands, 1080px container, pill buttons), not the newer framed column.

  1. Legacy header (78px); hero 813px at 1440 with a 76/425 display headline (-3.04px tracking), 18/300 lead, two pills and a 350x208 promo card; a gradient canvas sits behind the hero (922px band at 390, canvas 430x1228)
  2. Bands at 1440 (390): business types 855 (815, tint), program card 1361 (2362; card has a 4px #ff9a6c top rule, 104px inner padding), stage rows with chips 1812 (2800, tint), tabbed product cards 1236 (1093; at 390 a 318x559 card carousel, 24px gap), growth rows 1808 (2801, tint), stat band 891 (988, #f6f5f6), partner band 441 (494), help grid 906 and closing CTA 385; legacy footer 1600 at 1440

Pricing page

1 sayfaCanlı Ekranı Aç

The pricing page: plan cards, a feature list, then a long product price list with a sticky side index.

  1. Older header 78px on #f6f9fc; h1 56px/500/68px at y 162 (2 lines)
  2. Plan cards at y 362, 532 x 287px, 8px radius, 16px apart: Standard (white, 262px #f6f9fc rate panel inset 4px, rate 26px/500) and Custom (#0c2e4e, 4 options 262 x 67px on #1f4468, 3px apart, 16px/300 white); Contact sales pill on #00d4ff
  3. Diagonal gradient ribbon behind the cards; floating section tabs 348 x 50px, 99px radius, white 70% with blur, 48px below the cards
  4. Features: h2 26px/500 at y 840, 4 x 2 grid of 270px columns, 40px icon, 15px/425 title, tick rows 15px/300/24px with 28px pitch (each opens a tooltip)
  5. Explore section on #f6f9fc from y 1532: eyebrow, h2 38px/500/48px, lead 18px/300/28px; sticky side index 222px wide (806px tall, group labels 15px/425, links 15px/300 with 27px pitch, Custom pricing pill pinned under a #e1e9ef rule) beside 810px cards
  6. Group heading 26px/500 + lead 15px/300, cards 24px apart, 64px between groups; card: 8px radius, shadow, padding 24, title 18px/425, lead, Start now pill top right, tick bullets 28px pitch; rows split 446px copy / 365px price panel on #fafbfd with a 1px #e7ecf1 top rule; price 15px/425, unit 15px/300 #3f4b66, notes 13px/300/21px #707f98, ghost pill links
  7. Accordion rows inside cards: closed head 57px (title 15px/425, optional summary at x 919, round plus icon), open shows more price rows; card footer row 66px with a ghost pill
  8. Custom pricing (white, 2160px): 412px copy column + 540 x 400px package card, 4 features, ROI card 1080 x 386px on #f6f9fc, story carousel with stats column and 810 x 410px story, 4 logo buttons 200 x 80px
  9. FAQ on #f6f9fc (706px): h2 38px, rows 60px on white with 1px #e7ecf1 rules, round chevron icon; open answer 15px/300/24px, 762px wide, 16px under the head
  10. CTA 709px (540 + 270 + 270px), older footer on #f6f9fc 1600px
  11. Sticky pricing bar after the tabs scroll away: 64px white, tabs left, Contact sales pill right, 2px gradient progress line on top

Company statement page

1 sayfaCanlı Ekranı Aç

Short text pages: one centred column of large body copy, a link list and the mini footer.

  1. Newer header 76px; centred art 298 x 299px at y 172
  2. Text column 608px at x 416, 19px/300/28.5px #50617a, paragraphs 32px apart, underlined inline links
  3. Link list 96px below: 3 rows of 56px with #e5edf5 rules, label 16px/300 left, link 16px/400 #000 with chevron right
  4. Mini footer 142px: locale button, copyright 16px/300, brand mark right

Careers page

1 sayfaCanlı Ekranı Aç

The careers sub-site with its own header and sections (newer system, white bands in the framed 1266px column).

  1. Own 76px header (66px at 390): wordmark plus 'careers' mark, three 14px links (38px tall, r4; current #061b31, others #533afd) and a 121x40 primary button; at 390 the links collapse into a 40px #e8e9ff menu button
  2. Bands at 1440 (390): hero 259 (140) with a 48/300 headline (-0.96px); full-bleed image 513 (294); mission 995 (1410) with a 32/300 two-tone title, 18/300 copy, two 608x432 images and three 400px value columns; AI band 782 (597) with a 1264x511 image; GDP line plus 142x34 logo marquee (172px pitch) 304 (242); scale band 778 (1337) with canvas and four 316px stat cells (48/300 gradient figures); news carousel 748 (702) with 28px #e8e9ff arrows and a 1232x460 video; FAQ 747 (955) with an 816px accordion (18/300 questions, 62px closed rows); three 400x480 cards 851 (678); newer full footer 1299 (3170)

Customer stories overview

1 sayfaCanlı Ekranı Aç

Overview of customer stories on the older system.

  1. Older header 78px and sub-nav 40px (Customers, Overview, All customer stories)
  2. Hero 606px: display 56px/500/68px (412px, 4 lines), lead 18px/300 (508px), dark #0a2540 pill + ghost pill; mosaic of 6 story cards 254 x 356px, 4px radius, in 3 staggered columns at x 720/990/1260
  3. Results band 707px: h2 38px/500 at 395px from its top, 4 stats 24px/500/32px + 15px/300 caption
  4. Logo band 360px on #f6f9fc: 8 logos 200 x 40px
  5. By size band 1125px: eyebrow, h2, segmented Startup/Enterprise toggle (32px), stats column 206px + story card 810 x 410px, logo switcher of 200 x 80px buttons
  6. Building together band 1311px on tint: case with Challenge/Solution/Products, phone mockup 264 x 533px (36px radius) and photo 267 x 406px
  7. By use case band 1748px: pill tabs, 2 columns of 548px story tiles (624 and 309px tall)
  8. By solution band 1493px on tint: 2 text columns of 492px, 8 links in 2 columns, product UI collage
  9. CTA band 618px, older footer 1600px

Article list

3 sayfaCanlı Ekranı Aç

Blog, newsroom and guide indexes: a header block and a list or grid of posts.

  1. Measured /blog (legacy system): 40px sub-nav with a ghost pill; hero 788 (1215 at 390) with a ribbon and a 460px featured card; category filters as tabs
  2. Post rows with meta/author column, title (min 72px, 470px max on narrow rows) and a 540px media; highlights band 725 (479 at 390) with five 254x409 colored cards; 'View all posts', subscribe band 460 (760 at 390), white legacy footer

Directory page

4 sayfaCanlı Ekranı Aç

Long link directories and catalogs (sitemap, product catalog, roadmap).

  1. Measured /sitemap: 438px tint hero with the title and decorative skew bars
  2. Groups of a label plus three link columns (links 18px line height + 2px, 20px row gap, 130px between groups, body padding 124/120); at 390 a single column with 50px label gap and 66px group gap; page 3486 at 1440, 5183 at 390

Legal and policy page

4 sayfaCanlı Ekranı Aç

Policies and legal lists: long text with headings and a side table of contents.

  1. Measured /privacy: logo-only white header (76px), white body, tint footer; 270px sticky side nav ('Legal' kicker, current link with an accent bar, 8 links) beside an 810px text column
  2. 221 blocks of h1-h4, paragraphs, an inline table of contents and boxed notes with measured top margins; page 36832 at 1440

Contact sales page

1 sayfaCanlı Ekranı Aç

The sales contact page: a lead form card over a gradient canvas.

  1. Measured /contact/sales: standalone newer page, 76px header with wordmark and an outline Sign up button; 824px framed main (768 at 390) with a gradient canvas behind a 608x427 card at left 328, top 167
  2. Card: three-step stepper, 26/300 title, lead, label + field rows (192 + 336px), native select, Continue button; 127px footer (185 at 390)

Akışlar

Log in

Giriş: /login

Yerleşim: dashboard.stripe.com. White page with a 76px top bar (logo at 105px from the left, 1px hairline below) and the gradient ribbon image filling the right two-thirds behind. Faint vertical frame lines at the column edges. One white card, 540px wide, centred horizontally, top at 138px of a 900px viewport, 12px radius, auth-card shadow, 64px side padding (412px content) and 48px top padding. A tinted strip at the bottom inside the card holds the switch link. Copyright and privacy links sit below the fold.

  1. Adım 1Credentials

    Ekranda

    1. Card title in slate ("Sign in to your account")
    2. Email field: type email, name email, required, no autocomplete attribute; focused on arrival with the violet ring
    3. Password field: type password, autocomplete current-password; the label row carries a "Forgot your password?" link at the right (14px/600 #635bff)
    4. Checkbox "Remember me on this device", checked by default
    5. Primary Sign in button, 44px full width, pale while the fields are empty
    6. Divider: 1px #d4dee9 line with a centred 13px label ("Or sign in with")
    7. Three 40px outline buttons stacked 10px apart: Google, Passkey, SSO, each with a 16px icon
    8. Tinted strip at the card's foot: 13px question with a violet link to create an account

    Eylemler

    • Sign in (a type=button control, submitted by script): not exercised
    • Forgot your password: goes to /reset
    • Create account: goes to /register
    • Google: continues with Google (id continue_with_google)
    • Passkey and SSO: their ids (toggle_passkey_mode, toggle_sso_mode) indicate the card switches mode in place; not exercised
    • Logo: goes to stripe.com

    Doğrulama

    Not observed: no submit was attempted on this page, and the measurement recorded no validation result. The CSS carries a horizontal shake (auth-shake) for a rejected attempt.

Kaydedilmedi

Everything after valid credentials (two-step verification, account picker, dashboard), the reset password screen, the passkey and SSO modes, and the Google hand-off.

Sign up

Giriş: /register

Yerleşim: dashboard.stripe.com. At 1440 a white modal card, about 540px wide with rounded corners and a soft shadow (its radius and shadow were not isolated), centred and starting 91px down, over a blurred, dimmed preview of the dashboard (240px sidebar, 60px search header, charts). About 48px inner padding around a 444px content column. At 390 there is no dashboard preview: a tinted top bar with the logo, the card full width with 16px margins, the gradient ribbon at the bottom of the page, and the Google button moved above the fields.

  1. Adım 1Account details

    Ekranda

    1. Card title in bold slate ("Create your Stripe account")
    2. Email field: type email, autocomplete email; focused on arrival with the blue 4px halo
    3. Full name field: type text, autocomplete name
    4. Password field: type password, autocomplete new-password
    5. Country: a 44px select-like button with a flag, the country name and an up-down chevron; an info icon next to its label opens a tooltip
    6. Marketing consent checkbox, unchecked, with a three-line label containing two links
    7. Primary Create account button, full width, pale while the form is incomplete
    8. Divider with a centred 13px label ("Or sign up with")
    9. Outline Google button
    10. 13px line with a question and a violet sign in link

    Eylemler

    • Create account: posts to /register (not exercised beyond an empty submit)
    • Google: continues with Google
    • Sign in: goes to /login
    • Country: opens a country list (not opened during capture)

    Doğrulama

    An empty submit stays on the page with no visible change: no native bubble, no inline message, the button stays pale. Field-level errors after typing were not observed. The CSS carries a password strength meter (strength-indicator keyframes, a 0.3s height transition on the password block) and the auth-shake keyframes.

Kaydedilmedi

Email verification, business details and activation steps, the password strength messages, and the country list, which all need input or an account.

Kütüphaneler

Kurulum Komutupnpm add lucide-react @fontsource-variable/inter

Tespit Edilenler

  • Reactreact

    UI runtime on the marketing site, docs and dashboard

    Kanıt: "react.element" in the marketing framework chunk, the docs react bundle and the dashboard login and account bundles

  • Next.jsnext

    Framework for stripe.com

    Kanıt: window.__NEXT_DATA__ and window.next defined on the home page; "__NEXT_DATA__" in a main chunk

  • Accessible primitives on docs and the dashboard auth screens

    Kanıt: ids starting with react-aria on rendered elements (the log in checkbox, among others); "react-aria-" in the docs frontend bundle

  • Motionmotion

    Script-driven animation: presence, reveals

    Kanıt: "framerAppearId" in a home chunk; "AnimatePresence" in the docs, log in and account bundles. Script strings only, weaker than an attribute

  • Popover and tooltip positioning

    Kanıt: the string "floating-ui" in home, docs, log in and account bundles. Weak evidence

  • three.jsthree

    WebGL rendering, likely for the hero graphics

    Kanıt: "THREE.WebGLRenderer" in a home chunk and a log in bundle

  • TanStack Query@tanstack/react-query

    Server state in the dashboard

    Kanıt: "No QueryClient set" in a log in bundle

  • Styling on docs and dashboard

    Kanıt: the string "@emotion/" in the docs and dashboard bundles. Weak evidence

  • Styling on docs and dashboard

    Kanıt: the bare word "stylex" in the docs and dashboard bundles. Weak evidence

  • Prismprismjs

    Code highlighting in docs

    Kanıt: "Prism.languages" in the docs common bundle

  • jQueryjquery

    Present on the dashboard auth pages; its role was not observed

    Kanıt: window.jQuery defined on /login and /register

  • Sohne

    Text face (paid Klim licence), variable 1 to 1000

    Kanıt: loaded font face "sohne-var 1 1000" on home, pricing, log in and sign up

  • Monospace face on the marketing site

    Kanıt: loaded font face "SourceCodePro 500" on home

Önerilenler

  • 16px line icons and chevrons; Stripe's own inline SVG icons are not a public package

  • Free variable stand-in for Sohne at weights 300, 400 and 425

Ajana Gönder

CLI İle Ekle

npx uxprint add stripe

İstem

Read DESIGN.md (the uxprint for Stripe, added with `npx uxprint add stripe`) before writing UI. Use its tokens, type scale, component specs and motion values exactly as written, follow its principles, and avoid everything in its Avoid list.

MCP Sunucusu

{
  "mcpServers": {
    "uxprint": {
      "command": "npx",
      "args": [
        "-y",
        "uxprint",
        "mcp"
      ]
    }
  }
}

DESIGN.md

# DESIGN.md: Stripe style

Build every screen in this project to this specification. It records the interface of Stripe (https://stripe.com),
captured 2026-11-13 at 1440, 768, 390 px. Reproduce the system, not the brand:
do not copy Stripe's logo, name, copy, illustrations or photos.

White pages framed by faint vertical hairlines, light-weight (300) Sohne headlines in deep navy with a muted continuation, a single violet #533afd for actions, and a silk gradient ribbon sweeping across the hero.

Theme: light. Category: marketing-site.

## Principles

- Build on white. Draw the page frame with two faint full-height vertical hairlines at the column edges and 1px rules between bands; let dark #0d1738 bands and the gradient ribbon run full bleed across that frame.
- Set headlines light: Sohne at weight 300 with tight negative tracking (-0.02em at 48px, -1.4px at 56px). Emphasis comes from colour, not weight.
- Write section headlines as one paragraph in two tones: a short sentence in #061b31, then the explanation in #64748d at the same size.
- Use one action colour on marketing pages: #533afd for the primary button, links and focus. Buttons are 4px-radius rectangles, 48px in content and 40px in the header, with a trailing chevron.
- Every focusable element gets a 3px solid #5452fbbf outline (offset 1px on buttons, 3px on text links). Hover darkens the violet; nothing scales or lifts.
- Animate colour over 0.3s with cubic-bezier(0.25, 1, 0.5, 1); the header uses 0.24s with cubic-bezier(0.45, 0.05, 0.55, 0.95).
- Show the product: live, animated UI mock-ups inside bento cards, bleeding off the card edge over pastel gradients, rather than icons or stock illustration.
- Dashboard and docs surfaces switch to the grey-blue system: 1px #d4dee9 box-shadow rings instead of borders, 6px to 8px radii, a 4px focus halo, and the system font on docs.

## Avoid

- Bold or semibold display headlines on marketing pages
- Pill-shaped buttons outside the pricing page
- More than one filled violet button in a group
- Saturated backgrounds behind body text; colour lives in the ribbon, the dark bands and the mock-ups
- Card drop shadows on the white canvas for ordinary content; shadows are kept for floating mock-ups, menus and the auth card
- Centred body copy outside hero-like bands (the dark stats band and testimonials are the exceptions)

## Color

### Background

| Name | Value | Use |
| --- | --- | --- |
| canvas | #ffffff | Page background, bento cards, mega menu, auth cards |
| subtle | #f8fafd | Footer (1299px tall at 1440) and the closing band above it; hover fill of white icon buttons |
| tint | #e5edf5 | Pale blue-grey fill (19 elements on home); also the 1px border of outlined link cards and the end colour of the background-flash keyframe |
| pricing-canvas | #f6f9fc | Pricing page header band and tinted page sections; the pricing page sits on #fafbfd and #f6f9fc instead of pure white |
| deep-navy | #0d1738 | Announcement bar and full-bleed dark sections (stats band, infrastructure section) |
| violet-wash | #e8e9ff | Fill of square icon buttons (carousel next, bento expand) |
| violet-wash-strong | #e2e4ff | Collapsed story button (40px square with a plus) |
| chat-navy | #0a2540 | Chat now button fill; on the pricing page also the heading colour and the Custom plan card |

### Text

| Name | Value | Use |
| --- | --- | --- |
| heading | #061b31 | Headlines, first sentence of two-tone headings, nav triggers, footer link hover |
| body | #50617a | Body copy, footer links, underlined inline links |
| muted | #64748d | Continuation sentence of two-tone headings, legal text, captions |
| on-dark | #ffffff | Text on #0d1738 bands and on violet buttons |
| on-dark-muted | #6480b2 | Inactive stats and inline links on dark bands |
| pricing-body | #425466 | Body copy on the pricing page (older palette) |

### Border

| Name | Value | Use |
| --- | --- | --- |
| card-outline | #e5edf5 | 1px border of outlined link cards; hover #bac8da |
| card-outline-hover | #bac8da | Hover border of outlined link cards |
| secondary-button | #b9b9f9 | 1px border of the light secondary button |
| story-button | #d6d9fc | 1px border of the expanding story button; hover fill of violet-wash icon buttons |
| frame-hairline | #e5edf5 | Vertical frame lines at the column edges and the rules between bands on home. Seen in screenshots; their computed colour was not measured, this is the closest measured pale border |

### Accent

| Name | Value | Use |
| --- | --- | --- |
| violet | #533afd | Primary button fill, links, logo, mega menu item titles. The only action colour on home |
| violet-hover | #4936e1 | Hero primary button hover (header button hover is #4133cb, form button hover #4032c8) |
| link-hover | #2e2b8c | Hover and active colour of violet text links and outlined buttons |
| focus-ring | #5452fbbf | 3px solid outline on every focusable element on the marketing site; offset 1px on buttons, 3px on text links |
| on-dark-link | #7389ff | Text links on dark bands; hover #7e94ff, active #a8bfff |
| legacy-blurple | #635bff | Pricing page pill buttons and links, chat focus shadow, dashboard links. The older brand violet, still on pricing and the dashboard |
| cyan | #00d4ff | Contact sales pill on the dark Custom pricing card; hover #ffffff |
| orange | #ff6118 | Text accents inside product mock-ups (12 elements on home, e.g. a checkout button label) |

### Semantic

| Name | Value | Use |
| --- | --- | --- |
| success | #108c3d | Positive figures and status text inside product mock-ups |
| success-wash | #15be5333 | Green-tinted fill inside product mock-ups (7 elements); the exact component was not identified |

### Dashboard and docs palette

Applies to: docs.stripe.com and the dashboard log in and sign up screens, which use the dashboard's own grey-blue system instead of the marketing violet

| Name | Value | Use |
| --- | --- | --- |
| canvas | #ffffff | Page, auth card, input and outline button fill |
| surface | #f7fafc | Docs tile list background, unselected tiles |
| surface-pressed | #f4f7fa | Active (pressed) fill of outline buttons and the docs search trigger |
| text | #273951 | Input text, outline button labels |
| text-body | #414552 | Docs headings and body |
| text-label | #3c4257 | Sign up labels and inputs |
| text-muted | #50617a | Docs top tabs, Ask AI button |
| text-hover | #1a2c44 | Hover colour of docs tabs and outline buttons |
| link-hover | #1a1f36 | Hover colour of docs and auth links |
| docs-link | #5469d4 | Docs links and the docs primary button fill |
| auth-primary | #675dff | Sign in button, checked checkbox |
| auth-link | #635bff | Forgot password link, links inside consent text |
| ring | #d4dee9 | 1px box-shadow ring on inputs, outline buttons, search trigger; dividers |
| ring-hover | #95a4ba | Ring colour on hover |
| focus-violet | #a497fc | 1px inner ring of a focused log in field (with a 4px #e0d9fb halo) |
| focus-violet-halo | #e0d9fb | 4px outer halo of a focused log in field or checkbox |
| focus-blue | #0196ed5c | 4px focus halo on sign up fields and docs buttons |
| code-string | #85d996 | Green string tokens in the dark docs code panel |

## Typography

| Role | Stack | Substitute | Source |
| --- | --- | --- | --- |
| sans | sohne-var, "SF Pro Display", sans-serif; font-feature-settings: "ss01" | Inter (Sohne is a paid Klim face loaded as a variable font (weights 1 to 1000). Use the variable Inter for 300 and 425. The pricing page declares sohne-var, "Helvetica Neue", Arial, sans-serif and the dashboard declares sohne-var, sohne-woff, "Helvetica Neue", Arial, sans-serif) | google-fonts |
| mono | SourceCodePro, SFMono-Regular, monospace | Source Code Pro (same face, loaded at weight 500) | google-fonts |
| sans | -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" | system-ui (docs.stripe.com only; the docs load no web font. Docs code uses Menlo, Consolas, monospace) | system |

| Name | Size | Weight | Line height | Tracking | Family | Use |
| --- | --- | --- | --- | --- | --- | --- |
| display-dark | 56px | 300 | 57.68px | -1.4px | sans | Centred headline on the dark stats band |
| display | 48px | 300 | 55.2px | -0.96px | sans | Home hero headline: first sentence in heading colour, continuation in muted slate |
| stat | 48px | 300 | 48px | -0.96px | sans | Large figures in the stats row |
| title | 32px | 300 | 35.2px | -0.64px | sans | Section headlines, two-tone |
| card-title | 26px | 300 | 29.12px | -0.26px | sans | Bento card titles and split-section headlines |
| row-title | 22px | 300 | 24.2px | -0.22px | sans | Customer story rows, news titles |
| lead | 20px | 300 | 28px | -0.2px | sans | Intro paragraph under a section headline |
| body-large | 18px | 300 | 25.2px |  | sans | Paragraph beside a split-section headline |
| body | 16px | 300 | 22.4px |  | sans | Body copy and inline links |
| button | 16px | 400 | 16px |  | sans | 48px buttons and text links with a chevron |
| nav | 14px | 400 | 14px |  | sans | Header nav triggers and the 40px header buttons |
| small | 14px | 300 | 19.6px |  | sans | Announcement bar text, legal copy |
| caption | 12px | 300 | 17.4px |  | sans | Footnotes, unsubscribe line |
| code | 12px | 500 | 24px |  | mono | Code samples on the marketing site |
| pricing-hero | 56px | 500 | 68px | -1.12px | sans | Pricing page title (older system: weight 500, no ss01) |
| pricing-section | 38px | 500 | 48px | -0.2px | sans | Pricing section titles |
| pricing-label | 15px | 425 | 24px | 0.2px | sans | Pricing headings, pill buttons and emphasised links |
| pricing-body | 15px | 300 | 24px | 0.2px | sans | Pricing body copy and checklist items |
| docs-title | 32px | 700 | 40px |  | sans | Docs page title (system stack) |
| docs-heading | 21px | 700 |  |  | sans | Docs group headings (system stack) |
| docs-link | 16px | 500 | 26px |  | sans | Docs link lists (system stack) |
| docs-tab | 14px | 600 | 20px |  | sans | Docs top tabs and auth field labels |
| auth-input | 16px | 300 | 24px |  | sans | Typed text in auth fields |
| auth-button | 16px | 500 | 24px |  | sans | Auth primary and social buttons |
| auth-footnote | 13px | 400 |  |  | sans | Switch-flow line under the auth form |

## Spacing

- Unit: 4px
- Scale: 2px, 4px, 6px, 8px, 12px, 16px, 24px, 32px, 40px, 48px, 64px, 96px, 112px, 128px
- Container max width: 1266px with 16px inline padding (content 1232px). Pricing uses 1080px, docs content 1008px
- Page gutter: 87px at 1440 (the centred 1266px frame); content starts at 104px, hero text at 208px desktop, 16px mobile
- Gap between sections: Bands stack edge to edge; each section headline box starts 93px below its band's top edge at 1440. Pricing declares 160px top and bottom padding

## Radius

| Name | Value | Use |
| --- | --- | --- |
| hairline | 1px | Corner of the focus outline on text links |
| control | 4px | Every marketing button, nav trigger and icon button; sign up inputs. The most used radius on home (99) |
| card | 6px | Second most used on home (81); bento cards and product frames read at this radius in the screenshots. Auth inputs and buttons |
| docs | 8px | Docs search trigger, Ask AI, try-it tiles; pricing cards |
| auth-card | 12px | The single 12px radius on the log in page, where the card is the only large rounded surface |
| pricing-pill | 16.5px | Pricing page pill buttons (33px tall) |
| pill | 999px | Pricing newsletter email input |
| round | 50% | Avatars and status dots |

## Shadow

| Name | Value | Use |
| --- | --- | --- |
| frame | rgba(50, 50, 93, 0.25) 0px 30px 45px -30px, rgba(0, 0, 0, 0.1) 0px 18px 36px -18px | Product mock-up frames on home |
| soft | rgba(23, 23, 23, 0.08) 0px 15px 35px 0px | Floating cards on home (chat card, mock-up panels) |
| soft-small | rgba(23, 23, 23, 0.06) 0px 3px 6px 0px | Small raised elements on home |
| float-button | rgba(0, 0, 0, 0.1) 0px 4px 8px 0px | White 40px floating icon button |
| pricing-button | rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px | Pricing pill buttons and small cards (23 uses) |
| pricing-card | rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px | Pricing plan cards and panels |
| auth-card | rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.12) 0px 5px 15px 0px, rgba(48, 49, 61, 0.08) 0px 15px 35px 0px | Log in card |
| ring | rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(212, 222, 233) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px | Docs and dashboard: 1px ring used instead of a border on inputs and outline buttons |
| search-trigger | rgba(16, 17, 26, 0.16) 0px 1px 1px 0px, rgb(212, 222, 233) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px | Docs search trigger at rest |
| selected-tile | rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(60, 66, 87, 0.08) 0px 2px 5px 0px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0px | Selected tile in the docs try-it list |
| checkbox | rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(103, 93, 255) 0px 0px 0px 1px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0px, rgba(48, 49, 61, 0.08) 0px 2px 5px 0px | Checked checkbox on the log in page |

## Layout

Breakpoints: pricing: 600px, 900px, 1112px, 1300px (min-width), login: 490px, 768px, 1040px, 1264px, 1440px (min-width), docs: 800px (max-width), 1000px (min-width), home: no media queries readable in the captured stylesheets

- **Announcement bar:** 36px tall full-width #0d1738 strip above the header: one centred 14px/400 white line ending in a bold link with a chevron, a close X 40px wide at the right edge. Its 4px corner squares off on scroll (announcement-bar-square keyframes).
- **Header:** 76px tall, white, 1px hairline below. Inside a 64px nav: logo at the left of the 1232px content column, then Products, Solutions, Developers, Resources (each with a small chevron), Pricing, a 1px vertical divider and an AI guide link with a sparkle icon. At the right, a 40px outlined Sign in and a 40px violet Contact sales with a chevron. The gradient ribbon passes behind it.
- **Framed column:** The 1266px frame is drawn as two 1px vertical hairlines running the full page height at 87px from each edge at 1440. Bands are separated by 1px horizontal rules that meet the frame lines. Dark bands and the gradient ribbon run full bleed across the frame.
- **Hero:** Text inset to 208px. A 14px label with a live, ticking figure, then a four-line 48px/300 headline whose first sentence is in heading navy and the rest in slate, then two 48px buttons 8px apart (violet primary with chevron, light secondary with a Google mark). A silk gradient ribbon (blue, violet, orange, pink) sweeps from the top centre to the right edge behind the text. A row of six customer logos sits in a ruled strip below.
- **Two-tone section intro:** 32px/300 headline, left aligned at the content edge, about 790px wide: one short sentence in #061b31 followed in the same paragraph by a longer sentence in #64748d.
- **Bento grid:** Cards with a 1px border on white, 16px apart: a row of two (816px and 400px wide, 676px tall), a row of three, then one full-width card. Each card has a 26px/300 title at 24px inset top left, a small square expand button top right, and a live product mock-up bleeding off the bottom or right edge over a soft gradient. The whole card is a button that opens a large dialog over a blurred page.
- **Dark stats band:** Full-bleed #0d1738 with a soft violet glow. Centred 56px/300 white headline on two lines, then a 1px-ruled row of four stats (48px/300 figure, 16px label); the active stat is white and the others #6480b2. Below, an animated starburst of lines and dots with a small day/night switch in the top right corner.
- **Split section intro:** Headline (26px/300) and a violet button in a 504px left column; an 18px/300 slate paragraph in the right half. Followed by a feature list, a story list or three columns.
- **Customer story list:** Rows separated by dashed hairlines: 40px logo tile, 22px/300 title, and at the right a 40px story button. The first row is open, showing a 1232px wide photo with three inline facts under it; the others are collapsed.
- **Three-up feature columns:** Three columns each with a 40px outlined icon tile, a bold lead-in sentence followed by slate copy on the same line, and a violet text link with a chevron.
- **Pricing hero and plans:** Pricing uses the older system: #f6f9fc page, a diagonal multicolour stripe crossing the page behind two plan cards (a white Standard card with a tinted price panel, a dark navy Custom card with four stacked option tiles), dashed vertical guide lines every 270px, and a floating pill sub-nav (Standard pricing, Custom pricing, FAQs) that becomes a sticky white bar with a gradient progress line on scroll.
- **Pricing table:** A left index of product links (15px, active in violet, groups in bold) and a white card at the right whose rows are split in two: product name and description on the left, fee and footnotes on the right, separated by dashed hairlines.
- **Docs shell:** Two header rows: logo with a DOCS wordmark at the left, a 200px search trigger and an Ask AI button centred, Create account and a small outlined Sign in at the right; a second row of 14px/600 tabs with two dropdowns at the right. Content in a 1008px column starting at 216px. A dotted gradient pattern fills the top left corner. The page scrolls inside the app shell (document height equals the viewport).
- **Footer:** #f8fafd band, 16px/300 #50617a links in columns, a newsletter email field with a Continue button, and a locale switcher.
- **Floating chat card:** Fixed at the bottom right: a white card with two overlapping avatars, a green dot, a bold availability line and a close X; a separate dark Chat now button below it. Present on home and pricing at every width.

Responsive: At 768 the announcement wraps to 47px, the header is 66px and the nav collapses into a menu button; the content column is 736px with 16px gutters and bento cards stack. At 390 the announcement wraps to three lines (67px), the header shows the logo and a square menu button, the hero headline shows only its first sentence, both hero buttons go full width and stack, every grid becomes one column, and the chat card overlaps the content. Pricing at 390 stacks the plan cards and moves the price panel under the description. On the sign up page the 1440 modal over a blurred dashboard becomes, at 390, a plain card on a tinted page with the gradient ribbon at the bottom and the Google button moved above the fields.

## Components

### Button, primary

Rectangle with a 4px radius, label and a small trailing chevron 8px after it.

- height: 40px in the header, 48px in heroes and forms, 32px small
- padding: 11.5px 20px 12.5px at 40px, 15.5px 24px 16.5px at 48px, 6px 16px at 32px
- radius: 4px
- background: #533afd
- color: #ffffff
- font: 14px/400 (line height 14px) at 40px and 32px, 16px/400 (line height 16px) at 48px
- gap: 8px
- transition: background-color, color, outline-color, border 0.3s cubic-bezier(0.25, 1, 0.5, 1); in the header color, background-color, border-color 0.24s cubic-bezier(0.45, 0.05, 0.55, 0.95)
- State hover: background #4936e1 (hero), #4133cb (header), #4032c8 (form Continue), #5d64fe (on a dark band)
- State active: background #4032c8 (hero and form), #533afc (header), #5d64fe (dark band)
- State focus-visible: outline 3px solid #5452fbbf, offset 1px; the hero button also darkens to #4434d3 with the outline at #5452fb27

Never rounded into a pill on the current marketing pages. Usually paired with one secondary button 8px to its right.

### Button, secondary

Same 4px rectangle with a 1px lavender border, violet label, optional leading brand mark or trailing chevron.

- height: 48px (40px in the header)
- padding: 14.5px 24px 15.5px at 48px, 10.5px 20px 13.5px at 40px
- radius: 4px
- background: #ffffffa6 in the hero, transparent elsewhere
- border: 1px solid #b9b9f9
- color: #533afd
- font: 16px/400 at 48px, 14px/400 at 40px
- transition: background-color, color, outline-color, border 0.3s cubic-bezier(0.25, 1, 0.5, 1)
- State hover: color #4b37e6, border #a09def (hero); color #2e2b8c, border #4032c8 (in content); color #322d9a, border #574bcf (header)
- State active: color #302c91, border #4538ca (hero); color #2f2b8e, border #4234c9 (content)
- State focus-visible: outline 3px solid #5452fb7a, offset 1px

### Button on media

White 4px rectangle with violet label and chevron, placed on a photo or a dark band. A ghost variant has a translucent violet border and white label.

- height: 48px
- padding: 15.5px 24px 16.5px
- radius: 4px
- background: #ffffff (ghost: #ffffff00 with 1px #4834dbb2 border)
- color: #533afd (ghost: #ffffff)
- font: 16px/400
- transition: background-color, color 0.3s cubic-bezier(0.25, 1, 0.5, 1)
- State hover: label #101139 (ghost: border #5d64fe)
- State active: label #131444 (ghost: border #5d64fe)
- State focus-visible: label #5139f8, outline 3px solid #5452fbbf, offset 1px

### Text link with chevron

Violet label followed by a small chevron; no underline.

- color: #533afd (on dark: #7389ff)
- font: 16px/400
- transition: color 0.3s cubic-bezier(0.25, 1, 0.5, 1)
- State hover: color #2e2b8c (on dark: #7e94ff)
- State active: color #2e2b8c or #2f2b8e (on dark: #a8bfff)
- State focus-visible: outline 3px solid #5452fbbf, offset 3px, radius 1px

### Inline link

Underlined text inside body copy or legal lines.

- color: #50617a in body, #64748d in legal lines
- font: 16px/300 line height 22.4px in body, 14px/300 in legal, 12px/300 in captions
- decoration: underline
- transition: color 0.3s cubic-bezier(0.25, 1, 0.5, 1)
- State hover: color #061b31
- State active: color #061b31
- State focus-visible: outline 3px solid #5452fbbf, offset 3px, radius 1px

### Header nav trigger

Label and a small down chevron that flips up while open; opens the mega menu.

- height: 40px
- padding: 12px 0
- radius: 4px
- color: #061b31
- font: 14px/400, line height 14px
- gap: 4px
- transition: color, background-color, border-color 0.24s cubic-bezier(0.45, 0.05, 0.55, 0.95)
- State hover: no computed difference measured on the trigger itself; inside the open menu an arrow slides in next to the hovered item (nav-hover-arrow-in)
- State focus-visible: outline 3px solid #5452fbbf, offset 1px
- State open: chevron points up, mega menu appears

Triggers sit about 28px apart. The logo link fades to opacity 0.6 on hover and focus (opacity 0.24s cubic-bezier(0.45, 0.05, 0.55, 0.95)).

### Mega menu

White panel spanning the 1262px nav width directly under the header, with a shadow and the page dimmed behind it. Four columns of groups (16px/400 group title over a 1px rule, then items: violet 14px/400 title over a 14px/300 slate description). A fifth column on a tinted background holds more links and an event card with an image. A bottom row, separated by a rule, holds a question and two violet links with descriptions.

- width: 1262px
- item: 14px/400 #533afd title, 14px/300 #50617a description, line height 18px
- column-gap: about 40px
- background: #ffffff, last column tinted
- State item hover: an arrow fades and slides in from 3px left (nav-hover-arrow-in), and fades out on leave (nav-hover-arrow-out)

Opening and closing timing was not measured.

### Icon button, square

40px square with a 4px radius and a centred 16px icon, measured on the story carousel arrows. The bento expand buttons look the same in screenshots but were not measured.

- size: 40px
- radius: 4px
- background: #e8e9ff
- transition: background-color, outline-color 0.3s cubic-bezier(0.25, 1, 0.5, 1)
- State hover: background #d6d9fc
- State active: background #d6d9fc
- State focus-visible: background #dfe1fe, outline 3px solid #5452fb64, offset 1px
- State disabled: transparent fill, icon #1010104d

### Expanding story button

Collapsed: a 40px square with a plus on violet wash. Expanded (on the open row): a 166px outlined button with label and chevron.

- height: 40px
- radius: 4px
- background: #e2e4ff collapsed, transparent expanded
- border: 1px solid #d6d9fc expanded
- color: #533afd
- font: 16px/400
- transition: background, color, border, width 0.4s cubic-bezier(0.3, 0, 0.2, 1); the label fades with opacity 0.4s cubic-bezier(0.3, 0, 0.2, 1)
- State hover: color #2e2b8c, border #4032c8
- State active: color #2e2b8c, border #4032c8
- State focus-visible: outline 3px solid #5452fbbf, offset 1px

### Bento card

White card with a 1px border: title top left, square expand button top right, live product mock-up below bleeding off an edge over a pastel gradient. The whole card is a button.

- padding: 24px to the title
- radius: 6px (read from screenshots)
- title: 26px/300 #061b31, line height 29.12px, tracking -0.26px
- gap: 16px between cards
- transition: z-index 0.1s steps(1); inner transform and clip-path 0.8s cubic-bezier(0.165, 0.84, 0.44, 1)
- State open: a large dialog with the card's detail (heading, copy, two buttons, bigger mock-ups) opens over the page; the page behind turns pale blue-grey

Hover and focus differences on the card were not observed.

### Stat switcher

Row of four buttons on the dark band, each a large figure over a two-line label, separated by 1px rules; a short bright line marks the active one.

- figure: 48px/300, line height 48px, tracking -0.96px
- label: 16px/300, line height 22.4px
- color: #ffffff active, #6480b2 inactive
- transition: color 1.2s cubic-bezier(0.65, 0, 0.35, 1) when the band switches theme
- State active: figure and label turn white

A 32px day/night switch (combobox, 1px #8586c2 border, radius 4px) sits in the corner of the band; focus-visible adds a box-shadow #635bff1a 0px 0px 0px 3px and its border colour changes over 1.2s cubic-bezier(0.65, 0, 0.35, 1).

### Chat button and card

Dark rectangular Chat now button fixed bottom right, with a white availability card above it.

- height: 40px
- padding: 0 24px
- radius: 4px
- background: #0a2540
- border: 1px solid #ffffff1f
- color: #ffffff
- font: 15px/400 (15px/500 on pricing)
- transition: background 0.2s ease-in-out
- State hover: background #1a3a5c (measured on pricing)
- State active: background #1a3a5c
- State focus-visible: browser default outline (1px auto #005fcc)

The card's close X is #9ca3af and turns #6b7280 on hover (color 0.15s ease-in-out). The card enters and leaves with the chat-cta keyframes.

### Pricing pill button

Older-system pill with label and chevron.

- height: 33px
- padding: 3px 12px 6px 16px
- radius: 16.5px
- background: #635bff (on the dark card: #00d4ff with #0a2540 label)
- color: #ffffff
- font: 15px/425, line height 24px
- shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px
- transition: background-color, opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); in the header opacity, color, background-color, border, fill, stroke 0.3s cubic-bezier(0.25, 1, 0.5, 1)
- State hover: background #0a2540 (cyan variant: #ffffff)
- State active: background #0a2540 (cyan variant: #ffffff)
- State focus-visible: box-shadow #4d90fe 0px 0px 0px 2px, #ffffffe6 0px 0px 0px 2px inset on the form button; others offset 1px only

Pricing links are 15px/425 #635bff and turn #0a2540 on hover; grey links instead drop to opacity 0.6 or 0.65 (color, opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1)).

### Pricing FAQ row

Full-width white row with a 1px rule below, question at the left and a round violet chevron icon at the right. Open rows show the answer on a tinted strip.

- height: 60px
- padding: 17px 32px 19px 16px
- background: #ffffff
- color: #0a2540
- font: 15px/425, line height 24px
- gap: 16px
- transition: height 0.3s cubic-bezier(0.65, 0, 0.35, 1); chevron transform 0.3s cubic-bezier(0.65, 0, 0.35, 1)
- State open: chevron points up, answer (15px/300 slate with violet links) slides open below
- State focus-visible: browser default outline (1px auto #005fcc)

### Sticky section nav

On pricing: a floating white pill bar with three anchor links that, once scrolled past, becomes a full-width white bar with the links at the left, a Contact sales pill at the right and a gradient progress line along its top edge.

- link: 15px/425 #0a2540, active #635bff
- transition: transform, opacity 0.25s ease; enters from translateY(-100%)
- State hover: link colour #635bff
- State active link: colour #635bff; hovering it then gives #0a2540 at opacity 0.6

### Docs search trigger

200px button with a search icon, placeholder label and a slash key cap at the right. Opens a command dialog.

- height: 32px
- padding: 2px 8px
- radius: 8px
- background: #ffffff
- shadow: rgba(16, 17, 26, 0.16) 0px 1px 1px 0px, rgb(212, 222, 233) 0px 0px 0px 1px
- color: #5469d4
- font: 14px/400
- gap: 4px
- transition: box-shadow 0.15s ease
- State hover: text #273951, ring #95a4ba
- State active: background #f4f7fa, text #3c4f69, drop shadow flips to 0px -1px 1px

The dialog is a 648px white panel pinned 16px from the top, centred, with a search field, a close X, and a Suggested list of icon rows; the page behind is covered by a blue-grey scrim.

### Docs outline button

White button drawn with a 1px box-shadow ring (Sign in, Ask AI).

- height: 28px (Sign in), 32px (Ask AI)
- padding: 4px 8px, 6px 12px
- radius: 6px, 8px
- background: #ffffff
- ring: #d4dee9 0px 0px 0px 1px
- color: #273951 (Ask AI #50617a)
- font: 14px/600 (Ask AI 14px/400)
- transition: background-color, box-shadow 0.15s cubic-bezier(0, 0.09, 0.4, 1)
- State hover: ring #95a4ba
- State active: background #f4f7fa, text #3c4f69
- State focus-visible: adds a 4px #0196ed5c ring outside the 1px ring

### Docs tab and link

Top tabs are plain 14px/600 slate labels; content links are 16px/500 blue.

- tab: 36px tall, padding 8px 12px, #50617a, transition color 0.1s cubic-bezier(0, 0, 0.4, 1)
- link: #5469d4, 16px/500 line height 26px (14px/500 in the header)
- State hover: tab #1a2c44; link #1a1f36
- State focus-visible: link: radius 4px, box-shadow #3a97d447 0px 0px 0px 4px, #0759965c 0px 0px 1px 1px

Header dropdowns (APIs & SDKs, Help) open a white menu right-aligned under the trigger, 14px items, a 1px divider between groups and external-link icons.

### Docs try-it list

Vertical list of tiles beside a dark code panel; the selected tile is white and raised, the others sit on the tinted list background.

- height: 48.86px per tile
- padding: 12px
- radius: 8px
- background: #f7fafc, selected #ffffff
- color: #414552, selected text blue
- font: 14px/400 system stack
- State hover: background #ffffff
- State selected: background #ffffff, shadow rgba(60, 66, 87, 0.08) 0px 2px 5px 0px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0px

Transitions on the tiles are 0s (instant).

### Copy chip

Monospace value with a copy icon, used for test card numbers.

- height: 24px
- padding: 2px
- radius: 6px
- border: 1px solid #ecf1f6
- color: #50617a
- font: 12px/700 Source Code Pro, line height 20px
- transition: all 0.1s ease-in-out
- State hover: border #d4dee9, text #1a2c44
- State active: background #ecf1f6

### Auth field

14px/600 label above, then a white input drawn with a box-shadow ring. A link may sit at the right end of the label row.

- height: 44px
- padding: 8px 12px
- radius: 6px
- background: #ffffff
- ring: #d4dee9 0px 0px 0px 1px
- color: #273951
- font: 16px/300, line height 24px
- label: 14px/600 line height 20px
- transition: box-shadow 0.24s ease
- State focus (log in): box-shadow #a497fc 0px 0px 0px 1px, #e0d9fb 0px 0px 0px 4px
- State focus (sign up): box-shadow #d4dee9 0px 0px 0px 1px, #0196ed5c 0px 0px 0px 4px

Two sign up fields render their ring on a wrapper and use a 14px/300 inner input with 4px 8px padding and a 4px radius; they look the same. Hover was not measured.

### Auth button

Full-width primary in violet, and outline social buttons with a centred 16px icon and label.

- height: 44px primary on log in, 36px on sign up; 40px outline (36px on sign up)
- padding: 8px 16px
- radius: 6px
- background: #675dff primary; transparent or #ffffff outline
- ring: #675dff 0px 0px 0px 1px on primary; 1px #d4dee9 on outline
- color: #ffffff primary, #273951 outline
- font: 16px/500, line height 24px
- gap: 8px
- transition: background-color, box-shadow 0.15s cubic-bezier(0, 0.09, 0.4, 1)
- State incomplete form: the primary renders pale lavender with cursor default until the fields are filled; the computed fill stays #675dff, so the paling comes from a wrapper that was not measured
- State hover (outline): background #ffffff, ring #95a4ba
- State active (outline): background #f4f7fa, text #3c4f69
- State focus-visible: primary: ring plus #e0d9fb75 halo; outline: background #ffffff8a on log in, 4px #0196ed5c ring on sign up

### Auth checkbox

14px box with a 4px radius and a 14px label beside it.

- size: 14px
- radius: 4px
- background: #675dff checked
- shadow: rgb(103, 93, 255) 0px 0px 0px 1px, rgba(0, 0, 0, 0.12) 0px 1px 1px 0px, rgba(48, 49, 61, 0.08) 0px 2px 5px 0px
- transition: background-color, box-shadow 0.24s ease
- State focus-visible: adds a #e0d9fb 0px 0px 0px 4px halo, outline offset 2px

### Product sub-nav

Bar under the older header: product name in accent on the left, section links on the right; the current link is accent coloured.

- height: not observed
- name: 18px/425/28px, accent colour
- links: 15px/425/24px #0a2540; current link in accent

### Pricing card row

Row inside a pricing card: copy on the left (title + body), price panel on the right.

- columns: 446px copy, 365px price panel
- border: 1px solid #e7ecf1 on top
- copy padding: 16px 24px 16px
- title: 15px/425/24px #0a2540
- body: 15px/300/24px #425466
- price panel: #fafbfd, padding 15px 24px
- price: 15px/425/19px #0a2540
- unit: 15px/300/24px #3f4b66
- note: 13px/300/21px #707f98

Rows stack under 640px: the price panel goes full width under the copy.

### Pricing accordion row

Collapsed group of extra price rows inside a pricing card.

- height: 57px closed (1px rule + 56px)
- title: 15px/425/24px #0a2540 at 24px inset
- summary: 15px/425 at x 919
- icon: round 20px accent with a plus
- State open: price rows appear below; icon turns 45 degrees

### Mobile navigation sheet

Burger button opens a full-screen sheet with section rows; each section drills in with a Back row; Start now and Contact sales stay pinned at the bottom.

- burger: 40px square, #e8e9ff wash (accent fill on the older system)
- rows: 50px, 18px
- pinned buttons: 48px
- State open: sheet covers the page, burger becomes a close icon

## Page templates

Every page of the site is built on one of these layouts. Pick the one that fits the page you are building.

### Home page

The main marketing page of the newer system: one long white page inside the framed 1266px column.

1. Announcement bar above the 76px header (dismissible); header: wordmark, 4 mega menu triggers (40px, 14px/400), Pricing, divider, Help me link, Sign in (secondary 40px) and Contact sales (primary 40px, #533afd, 4px radius)
2. Frame: 1266px column centred, 1px #e5edf5 vertical lines at x 87 and 1353 at 1440
3. Hero 685px tall: 4-line display headline, lead 16px/300/22.4px, two 48px buttons; animated gradient ribbon drawn on canvas behind it (761px tall, starts 76px above the hero, offset 337px from the left)
4. Bento of solution cards: rows of 816px + 400px cards, 676px tall, third row one 1232 x 450px card
5. Event promo band 560px; stats band 977px on a #555d7d to #786cb6 gradient with tabbed stats
6. Scale section: rule, split rows, customer story rows, expert band, wide media, quote and logo strip
7. Developer band on #0d1738 with code media; news track of cards; closing CTA
8. Full footer on #f8fafd, 1299px tall: 4 columns at x 104/416/728/1040, links 16px/300/20px #50617a with 24px pitch, newsletter, locale and copyright

Pages on this layout: /

### Product page, older system

Single-product pages still on the older system: pastel #f6f9fc page, 1080px container with dashed column guides, pill buttons in the product accent colour.

1. Header 78px with pill Sign in and Contact sales (33px, 16.5px radius); sticky sub-nav with product name 18px/425 in accent and section links 15px/425
2. Hero 663px: display 56px/500/68px (max 460px), lead 18px/300/28px, accent pill + ghost pill; diagonal colour ribbon on the right
3. Feature row 755px: 4 columns of 270px, each a 40px icon, 15px/425 title with a 1px accent bar 16px to its left, body 15px/300/24px
4. How it works: eyebrow 18px/500 accent, h2 38px/500/48px, numbered 4-column steps, product demo media, follow-up h2, lead and pill
5. Quote card on #03293b with logo switcher of 4 marks
6. CTA grid 540 + 270 + 270px with two side features, then legal small print 128px below
7. Older footer, 1600px: brand column + 3 link columns of 270px, titles 15px/425, links pitch 28px, pill newsletter, copyright

Pages on this layout: /tax, /apps, /sigma, /connect, /climate, /capital, /payouts, /identity, /partners, /payments, /data-pipeline, /support-plans, /payments/link, /capital/platforms, /payments/elements, /payments/checkout, /authorization-boost, /revenue-recognition, /financial-connections, /professional-services, /payments/payment-links, /payments/payment-methods, /partners/become-a-partner, /terminal

### Product page, newer system

Product pages moved to the newer white system with a framed column, a product sub-nav and accordions.

1. Header 76px (newer system); product sub-nav 81px with name and section links
2. Hero 771px with large product art (1264 x 772px) behind the copy; logo strip 74px
3. Opportunity band 460px on tint; 3 alternating text and media rows of 261px
4. Feature accordion: one row open at a time, closed head 73px, open row 730px with media
5. Scale stats, customer story cards 400 x 584px, analyst band
6. Capabilities 2 x 2 grid (474 and 404px tall cards), optimise carousel of 4 cards 348px wide
7. FAQ accordion with resources column, CTA band 319px, notes 366px, full footer

Pages on this layout: /radar, /issuing, /billing, /invoicing, /atlas, /treasury, /treasury/platforms, /billing/subscriptions, /billing/usage-based-billing, /managed-payments, /crypto-onramp, /money-management/availability, /use-cases/global-businesses

### Use case and industry page

Pages per use case or industry on the older system; bands of fixed height alternate white and #f6f9fc.

1. Older header 78px; hero 604px on a tinted wedge: kicker 15px/425 accent, display 56px/500 over 2 lines (682px), lead, Contact sales pill + ghost Start now; product mockup on the right
2. Logo band 663px: 8 logos 200 x 40px in 4 columns of 270px, 60px row gap
3. Tint band 1145px: eyebrow, h2 38px/500/48px, link lead, 3 stacked features (476px) beside a tall media
4. White band 1688px: cyan eyebrow #02bcf5, h2, lead, two 412px columns with h3 26px/500/36px and pills, two media, 4-column automation row
5. Tint 496px and 429px callouts with a 412px text column and media on the right; white 948px band with 2 x 2 features
6. Case study band 1166px: h2 492px wide, Challenge / Solution / Products blocks and a logo
7. Tint expert services band 629px; CTA band 481px (540 + 270 + 270px); older footer on #f6f9fc

Pages on this layout: /use-cases/ai, /use-cases/saas, /use-cases/crypto, /use-cases/ecommerce, /use-cases/platforms, /use-cases/marketplaces, /use-cases/creator-economy, /use-cases/agentic-commerce, /use-cases/in-app-payments, /use-cases/embedded-finance, /use-cases/finance-automation, /industries/gaming, /industries/retail, /industries/travel, /industries/fintech, /industries/insurance, /industries/nonprofits, /industries/public-sector, /industries/media-entertainment, /industries/professional-services

### Audience landing page

Landing pages for a company stage or the yearly event. Measured /startups: older legacy system (#f6f9fc tint bands, 1080px container, pill buttons), not the newer framed column.

1. Legacy header (78px); hero 813px at 1440 with a 76/425 display headline (-3.04px tracking), 18/300 lead, two pills and a 350x208 promo card; a gradient canvas sits behind the hero (922px band at 390, canvas 430x1228)
2. Bands at 1440 (390): business types 855 (815, tint), program card 1361 (2362; card has a 4px #ff9a6c top rule, 104px inner padding), stage rows with chips 1812 (2800, tint), tabbed product cards 1236 (1093; at 390 a 318x559 card carousel, 24px gap), growth rows 1808 (2801, tint), stat band 891 (988, #f6f5f6), partner band 441 (494), help grid 906 and closing CTA 385; legacy footer 1600 at 1440

Pages on this layout: /enterprise, /startups, /sessions, /sessions/2026

### Pricing page

The pricing page: plan cards, a feature list, then a long product price list with a sticky side index.

1. Older header 78px on #f6f9fc; h1 56px/500/68px at y 162 (2 lines)
2. Plan cards at y 362, 532 x 287px, 8px radius, 16px apart: Standard (white, 262px #f6f9fc rate panel inset 4px, rate 26px/500) and Custom (#0c2e4e, 4 options 262 x 67px on #1f4468, 3px apart, 16px/300 white); Contact sales pill on #00d4ff
3. Diagonal gradient ribbon behind the cards; floating section tabs 348 x 50px, 99px radius, white 70% with blur, 48px below the cards
4. Features: h2 26px/500 at y 840, 4 x 2 grid of 270px columns, 40px icon, 15px/425 title, tick rows 15px/300/24px with 28px pitch (each opens a tooltip)
5. Explore section on #f6f9fc from y 1532: eyebrow, h2 38px/500/48px, lead 18px/300/28px; sticky side index 222px wide (806px tall, group labels 15px/425, links 15px/300 with 27px pitch, Custom pricing pill pinned under a #e1e9ef rule) beside 810px cards
6. Group heading 26px/500 + lead 15px/300, cards 24px apart, 64px between groups; card: 8px radius, shadow, padding 24, title 18px/425, lead, Start now pill top right, tick bullets 28px pitch; rows split 446px copy / 365px price panel on #fafbfd with a 1px #e7ecf1 top rule; price 15px/425, unit 15px/300 #3f4b66, notes 13px/300/21px #707f98, ghost pill links
7. Accordion rows inside cards: closed head 57px (title 15px/425, optional summary at x 919, round plus icon), open shows more price rows; card footer row 66px with a ghost pill
8. Custom pricing (white, 2160px): 412px copy column + 540 x 400px package card, 4 features, ROI card 1080 x 386px on #f6f9fc, story carousel with stats column and 810 x 410px story, 4 logo buttons 200 x 80px
9. FAQ on #f6f9fc (706px): h2 38px, rows 60px on white with 1px #e7ecf1 rules, round chevron icon; open answer 15px/300/24px, 762px wide, 16px under the head
10. CTA 709px (540 + 270 + 270px), older footer on #f6f9fc 1600px
11. Sticky pricing bar after the tabs scroll away: 64px white, tabs left, Contact sales pill right, 2px gradient progress line on top

Pages on this layout: /pricing

### Company statement page

Short text pages: one centred column of large body copy, a link list and the mini footer.

1. Newer header 76px; centred art 298 x 299px at y 172
2. Text column 608px at x 416, 19px/300/28.5px #50617a, paragraphs 32px apart, underlined inline links
3. Link list 96px below: 3 rows of 56px with #e5edf5 rules, label 16px/300 left, link 16px/400 #000 with chevron right
4. Mini footer 142px: locale button, copyright 16px/300, brand mark right

Pages on this layout: /about

### Careers page

The careers sub-site with its own header and sections (newer system, white bands in the framed 1266px column).

1. Own 76px header (66px at 390): wordmark plus 'careers' mark, three 14px links (38px tall, r4; current #061b31, others #533afd) and a 121x40 primary button; at 390 the links collapse into a 40px #e8e9ff menu button
2. Bands at 1440 (390): hero 259 (140) with a 48/300 headline (-0.96px); full-bleed image 513 (294); mission 995 (1410) with a 32/300 two-tone title, 18/300 copy, two 608x432 images and three 400px value columns; AI band 782 (597) with a 1264x511 image; GDP line plus 142x34 logo marquee (172px pitch) 304 (242); scale band 778 (1337) with canvas and four 316px stat cells (48/300 gradient figures); news carousel 748 (702) with 28px #e8e9ff arrows and a 1232x460 video; FAQ 747 (955) with an 816px accordion (18/300 questions, 62px closed rows); three 400x480 cards 851 (678); newer full footer 1299 (3170)

Pages on this layout: /careers

### Customer stories overview

Overview of customer stories on the older system.

1. Older header 78px and sub-nav 40px (Customers, Overview, All customer stories)
2. Hero 606px: display 56px/500/68px (412px, 4 lines), lead 18px/300 (508px), dark #0a2540 pill + ghost pill; mosaic of 6 story cards 254 x 356px, 4px radius, in 3 staggered columns at x 720/990/1260
3. Results band 707px: h2 38px/500 at 395px from its top, 4 stats 24px/500/32px + 15px/300 caption
4. Logo band 360px on #f6f9fc: 8 logos 200 x 40px
5. By size band 1125px: eyebrow, h2, segmented Startup/Enterprise toggle (32px), stats column 206px + story card 810 x 410px, logo switcher of 200 x 80px buttons
6. Building together band 1311px on tint: case with Challenge/Solution/Products, phone mockup 264 x 533px (36px radius) and photo 267 x 406px
7. By use case band 1748px: pill tabs, 2 columns of 548px story tiles (624 and 309px tall)
8. By solution band 1493px on tint: 2 text columns of 492px, 8 links in 2 columns, product UI collage
9. CTA band 618px, older footer 1600px

Pages on this layout: /customers

### Article list

Blog, newsroom and guide indexes: a header block and a list or grid of posts.

1. Measured /blog (legacy system): 40px sub-nav with a ghost pill; hero 788 (1215 at 390) with a ribbon and a 460px featured card; category filters as tabs
2. Post rows with meta/author column, title (min 72px, 470px max on narrow rows) and a 540px media; highlights band 725 (479 at 390) with five 254x409 colored cards; 'View all posts', subscribe band 460 (760 at 390), white legacy footer

Pages on this layout: /blog, /newsroom, /guides

### Directory page

Long link directories and catalogs (sitemap, product catalog, roadmap).

1. Measured /sitemap: 438px tint hero with the title and decorative skew bars
2. Groups of a label plus three link columns (links 18px line height + 2px, 20px row gap, 130px between groups, body padding 124/120); at 390 a single column with 50px label gap and 66px group gap; page 3486 at 1440, 5183 at 390

Pages on this layout: /sitemap, /resources/more, /products, /roadmap

### Legal and policy page

Policies and legal lists: long text with headings and a side table of contents.

1. Measured /privacy: logo-only white header (76px), white body, tint footer; 270px sticky side nav ('Legal' kicker, current link with an accent bar, 8 links) beside an 810px text column
2. 221 blocks of h1-h4, paragraphs, an inline table of contents and boxed notes with measured top margins; page 36832 at 1440

Pages on this layout: /privacy, /spc/licenses, /legal/restricted-businesses, /cookie-settings

### Contact sales page

The sales contact page: a lead form card over a gradient canvas.

1. Measured /contact/sales: standalone newer page, 76px header with wordmark and an outline Sign up button; 824px framed main (768 at 390) with a gradient canvas behind a 608x427 card at left 328, top 167
2. Card: three-step stepper, 26/300 title, lead, label + field rows (192 + 336px), native select, Continue button; 127px footer (185 at 390)

Pages on this layout: /contact/sales

## Motion

Durations, easings and keyframes are measured values. Use them as written; honour `prefers-reduced-motion`.

### Durations

| Name | Value | Use |
| --- | --- | --- |
| instant-docs | 0.1s | Docs tab colour, copy chip |
| quick | 0.15s | Pricing links and pills; docs and dashboard outline buttons; opacity of menu list items on home |
| header | 0.24s | Header nav triggers, header buttons and logo; auth field focus ring |
| default | 0.3s | The default on home: links, buttons, icon buttons, svg fill and stroke |
| expand | 0.4s | Story button width and label |
| reveal | 0.5s | Fade-in of blocks as they enter the viewport; diagram pieces |
| pricing-image | 0.6s | Pricing pictures and story overlays |
| bento | 0.8s | Transform and clip-path inside bento cards |
| theme | 1.2s | Day/night switch on the dark band: colour, border and opacity |

### Easings

| Name | Value | Use |
| --- | --- | --- |
| default | cubic-bezier(0.25, 1, 0.5, 1) | Every hover on home links, buttons and icons; also the chat card |
| header | cubic-bezier(0.45, 0.05, 0.55, 0.95) | Header triggers, header buttons, logo |
| bento | cubic-bezier(0.165, 0.84, 0.44, 1) | Bento card transform and clip-path, one-off fades |
| reveal | cubic-bezier(0.33, 1, 0.68, 1) | Scroll fade-ins and the hero digit roll |
| expand | cubic-bezier(0.3, 0, 0.2, 1) | Story button |
| in-out | cubic-bezier(0.65, 0, 0.35, 1) | Theme switch, accordion height, chevron rotation |
| path | cubic-bezier(0.16, 1, 0.3, 1) | SVG path transforms in illustrations |
| cycle | cubic-bezier(0.78, 0, 0.22, 1) | Vertical text cycling inside product mock-ups |
| pricing | cubic-bezier(0.215, 0.61, 0.355, 1) | Pricing links, pills and icons |
| pricing-image | cubic-bezier(0.7, 0, 0, 1) | Pricing pictures and overlays |
| dashboard | cubic-bezier(0, 0.09, 0.4, 1) | Dashboard and docs buttons |
| docs-tab | cubic-bezier(0, 0, 0.4, 1) | Docs tab colour |

### Transitions

| Target | Properties | Duration | Easing |
| --- | --- | --- | --- |
| Text link (home) | color | 0.3s | cubic-bezier(0.25, 1, 0.5, 1) |
| Button (home) | background-color, color, outline-color, border | 0.3s | cubic-bezier(0.25, 1, 0.5, 1) |
| Header trigger and header button | color, background-color, border-color | 0.24s | cubic-bezier(0.45, 0.05, 0.55, 0.95) |
| Logo link | opacity | 0.24s | cubic-bezier(0.45, 0.05, 0.55, 0.95) |
| Icon button | background-color, outline-color | 0.3s | cubic-bezier(0.25, 1, 0.5, 1) |
| Illustration svg | fill, stroke, transform, opacity | 0.3s | cubic-bezier(0.25, 1, 0.5, 1) |
| Menu list item | opacity | 0.15s | linear |
| Story button | background, color, border, width | 0.4s | cubic-bezier(0.3, 0, 0.2, 1) |
| Bento card content | transform, clip-path | 0.8s | cubic-bezier(0.165, 0.84, 0.44, 1) |
| Scroll reveal | opacity 0 to 1 | 0.5s | cubic-bezier(0.33, 1, 0.68, 1) |
| Dark band theme switch | color, border-color, opacity | 1.2s | cubic-bezier(0.65, 0, 0.35, 1) |
| Announcement collapse | grid-template-rows | 0.4s | cubic-bezier(0.65, 0, 0.35, 1) |
| Chat card | grid-template-rows, transform (to translateY(32px)) | 0.3s | cubic-bezier(0.25, 1, 0.5, 1) |
| Outlined link card | border-color, background-color | 0.2s | ease |
| Pricing link and pill | color, opacity / background-color, opacity | 0.15s | cubic-bezier(0.215, 0.61, 0.355, 1) |
| Pricing FAQ row | height; chevron transform | 0.3s | cubic-bezier(0.65, 0, 0.35, 1) |
| Pricing sticky nav | transform (from translateY(-100%)), opacity | 0.25s | ease |
| Pricing carousel | transform (translateX -270px per step) | 0.35s | cubic-bezier(0.4, 0, 0.2, 1) |
| Docs and dashboard button | background-color, box-shadow | 0.15s | cubic-bezier(0, 0.09, 0.4, 1) |
| Docs search trigger | box-shadow | 0.15s | ease |
| Docs tab | color | 0.1s | cubic-bezier(0, 0, 0.4, 1) |
| Auth field and checkbox | box-shadow (checkbox also background-color) | 0.24s | ease |
| Sign up password block | height | 0.3s | cubic-bezier(0.7, 0, 0.3, 1) |

### Keyframes

**nav-hover-arrow-in:** Arrow next to a hovered mega menu item slides in from 3px left

```css
@keyframes nav-hover-arrow-in{0%{opacity:0;transform:translateX(-3px)}to{opacity:1;transform:translateX(0)}}
```

**nav-hover-arrow-out:** Same arrow fades out on leave; on pricing it ran for 150ms with cubic-bezier(0.25, 1, 0.5, 1) Timing: 150ms cubic-bezier(0.25, 1, 0.5, 1) forwards (measured on pricing's copy, refreshed-nav-hover-arrow-out).

```css
@keyframes nav-hover-arrow-out{0%{opacity:1}to{opacity:0}}
```

**navigation-menu-delay-reset:** Resets a custom property that delays the mega menu between triggers

```css
@keyframes navigation-menu-delay-reset{0%,to{--navigation-menu-transition-delay:0s}}
```

**detect-scroll:** Scroll-driven trick on the header nav that sets a custom property when the page can scroll

```css
@keyframes detect-scroll{0%,to{--can-scroll: }}
```

**announcement-bar-square:** Squares the announcement bar's corners on scroll

```css
@keyframes announcement-bar-square{to{--announcement-bar-radius:0px}}
```

**bento-dialog-reveal-fade-in-up:** Bento detail dialog content rises 30px and fades in

```css
@keyframes bento-dialog-reveal-fade-in-up{0%{opacity:0;transform:translate3d(0,30px,0)}to{opacity:1;transform:translateZ(0)}}
```

**bento-overlay-gradient-opacity-animation:** Gradient overlay behind the bento dialog fades in

```css
@keyframes bento-overlay-gradient-opacity-animation{0%{opacity:0}to{opacity:1}}
```

**agentic-commerce-graphic-border-spin:** A conic border spins around a card in an illustration

```css
@keyframes agentic-commerce-graphic-border-spin{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}
```

**book-of-the-week-fade-in:** Image fade-in in the news section Timing: 500ms, keyframe easing cubic-bezier(0.33, 1, 0.68, 1).

```css
@keyframes book-of-the-week-fade-in{0%{opacity:0}to{opacity:1}}
```

**background-flash:** Background fades to a pale blue-grey; where it runs was not observed (original name opacityAnimation)

```css
@keyframes background-flash{0%{background-color:rgba(229,237,245,0)}to{background-color:rgba(229,237,245,.7)}}
```

**chat-cta-card-entrance:** Chat availability card rises 16px and fades in

```css
@keyframes chat-cta-card-entrance{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
```

**chat-cta-card-exit:** Chat availability card drops 8px and fades out

```css
@keyframes chat-cta-card-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}
```

**chat-cta-entrance:** Chat button rises 20px from 95% scale

```css
@keyframes chat-cta-entrance{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
```

**chat-cta-exit:** Chat button leaves in reverse

```css
@keyframes chat-cta-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(20px) scale(.95)}}
```

**portal-tooltip-item-fade-in:** Tooltip content fades in on pricing

```css
@keyframes portal-tooltip-item-fade-in{0%{opacity:0}}
```

**skeleton-overlay:** Docs sidebar and content skeleton shimmer (original names SidebarSkeleton-Overlay-animation, ContentSkeleton-Overlay-animation)

```css
@keyframes skeleton-overlay{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
```

**skeleton-fade-in:** Docs skeleton blocks fade in

```css
@keyframes skeleton-fade-in{0%{opacity:0}100%{opacity:1}}
```

**gradient-sweep:** Background-position sweep across a gradient, on docs and dashboard (original generic name keyframes)

```css
@keyframes gradient-sweep{0%{background-position:200% center}100%{background-position:0 center}}
```

**spinner-show:** Spinner fades in (docs and dashboard)

```css
@keyframes spinner-show{from{opacity:0}to{opacity:1}}
```

**spinner-rotation:** Spinner rotation

```css
@keyframes spinner-rotation{100%{transform:rotate(360deg)}}
```

**highlight-line:** Docs code panel: a highlighted line fades from green to the panel colour

```css
@keyframes highlight-line{0%{background:var(--sail-color-green-800)}100%{background:#1a2652}}
```

**auth-shake:** Log in and sign up card shakes on a rejected submit (original names Login-shake, RegisterAndLoginLayout-shake). Present in the CSS, not triggered during capture

```css
@keyframes auth-shake{0%,to{transform:translate(0)}20%{transform:translate(-15px)}40%{transform:translate(15px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}}
```

**modal-panel-shake:** Dashboard modal panel shake with a slight 3D turn. Present in the CSS, not triggered

```css
@keyframes modal-panel-shake{0%{transform:translate(0)}12.5%{transform:translate(-6px) rotateY(-5deg)}37.5%{transform:translate(5px) rotateY(4deg)}62.5%{transform:translate(-3px) rotateY(-2deg)}87.5%{transform:translate(2px) rotateY(1deg)}to{transform:translate(0)}}
```

**confirmation-button-spinner-rotation:** Spinner inside a submitting dashboard button

```css
@keyframes confirmation-button-spinner-rotation{to{transform:rotate(360deg)}}
```

**strength-indicator-movement:** Password strength meter while it is being computed: a 4px block slides along the track (original fetchingStrengthIndicatorMovement)

```css
@keyframes strength-indicator-movement{0%{left:0%}to{left:calc(100% - 4px)}}
```

**strength-indicator-width:** Password strength meter grows from 4px to 128px

```css
@keyframes strength-indicator-width{0%{width:4px}to{width:128px}}
```

**loading-background:** Dashboard loading placeholder sweep (original LoadingBackground--animation)

```css
@keyframes loading-background{0%{background-position:0px top}to{background-position:-400px top}}
```

### Not measured

- The hero gradient ribbon (blue, violet, orange, pink silk folds) crossing the header and hero on home, and the same ribbon behind the log in card. On log in it is a static 3000 by 2500 image; on home it is rendered by script. The string THREE.WebGLRenderer is in the home and log in scripts, but whether the ribbon moves, and how, was not measured.
- The hero headline: its computed colours read rgb(129, 184, 26) and rgba(0, 14, 255, 0.5) while the screenshot shows navy and slate text with parts of words tinted violet where the ribbon passes. The effect is script or blend driven and not specified here.
- In the 1440 screenshot the header Sign in label is orange over the ribbon although its computed colour is #533afd; the mechanism was not measured.
- The live counter in the hero label ticks; a span slides up by 100% over 325ms after a 450ms delay with cubic-bezier(0.33, 1, 0.68, 1), consistent with rolling digits.
- Product mock-ups in the bento cards play scripted sequences: a 11.95s opacity timeline on an image (cubic-bezier(0.2, 0, 0, 1)), vertical text cycling over 1420ms after a 4000ms delay with cubic-bezier(0.78, 0, 0.22, 1), path draws with stroke-dashoffset over 1s. Full choreography is not specified.
- A testimonial logo strip autoplays: a violet (#533afd) bar grows under the active logo (an svg rect animated in width), switching the quote. Its period was not measured.
- The starburst of lines and dots on the dark band animates continuously; it is script driven and not specified.
- Mega menu open and close timing, the bento dialog entrance (the capture caught the dialog blurred mid-opening), and the docs search dialog entrance: keyframes or transitions exist but their running duration was not measured.
- Elements revealed by script translate up from 324px with no CSS transition (transition: all 0s), so the timing comes from script and was not measured.
- Hover on the bento cards, on the header nav triggers themselves, and on auth fields showed no computed difference; any hover effect there is not recorded.

## Flow: Log in

Starts at `/login`. dashboard.stripe.com. White page with a 76px top bar (logo at 105px from the left, 1px hairline below) and the gradient ribbon image filling the right two-thirds behind. Faint vertical frame lines at the column edges. One white card, 540px wide, centred horizontally, top at 138px of a 900px viewport, 12px radius, auth-card shadow, 64px side padding (412px content) and 48px top padding. A tinted strip at the bottom inside the card holds the switch link. Copyright and privacy links sit below the fold.

### 1. Credentials

- Card title in slate ("Sign in to your account")
- Email field: type email, name email, required, no autocomplete attribute; focused on arrival with the violet ring
- Password field: type password, autocomplete current-password; the label row carries a "Forgot your password?" link at the right (14px/600 #635bff)
- Checkbox "Remember me on this device", checked by default
- Primary Sign in button, 44px full width, pale while the fields are empty
- Divider: 1px #d4dee9 line with a centred 13px label ("Or sign in with")
- Three 40px outline buttons stacked 10px apart: Google, Passkey, SSO, each with a 16px icon
- Tinted strip at the card's foot: 13px question with a violet link to create an account
- Action: Sign in (a type=button control, submitted by script): not exercised
- Action: Forgot your password: goes to /reset
- Action: Create account: goes to /register
- Action: Google: continues with Google (id continue_with_google)
- Action: Passkey and SSO: their ids (toggle_passkey_mode, toggle_sso_mode) indicate the card switches mode in place; not exercised
- Action: Logo: goes to stripe.com
- Validation: Not observed: no submit was attempted on this page, and the measurement recorded no validation result. The CSS carries a horizontal shake (auth-shake) for a rejected attempt.

Not recorded: Everything after valid credentials (two-step verification, account picker, dashboard), the reset password screen, the passkey and SSO modes, and the Google hand-off.

## Flow: Sign up

Starts at `/register`. dashboard.stripe.com. At 1440 a white modal card, about 540px wide with rounded corners and a soft shadow (its radius and shadow were not isolated), centred and starting 91px down, over a blurred, dimmed preview of the dashboard (240px sidebar, 60px search header, charts). About 48px inner padding around a 444px content column. At 390 there is no dashboard preview: a tinted top bar with the logo, the card full width with 16px margins, the gradient ribbon at the bottom of the page, and the Google button moved above the fields.

### 1. Account details

- Card title in bold slate ("Create your Stripe account")
- Email field: type email, autocomplete email; focused on arrival with the blue 4px halo
- Full name field: type text, autocomplete name
- Password field: type password, autocomplete new-password
- Country: a 44px select-like button with a flag, the country name and an up-down chevron; an info icon next to its label opens a tooltip
- Marketing consent checkbox, unchecked, with a three-line label containing two links
- Primary Create account button, full width, pale while the form is incomplete
- Divider with a centred 13px label ("Or sign up with")
- Outline Google button
- 13px line with a question and a violet sign in link
- Action: Create account: posts to /register (not exercised beyond an empty submit)
- Action: Google: continues with Google
- Action: Sign in: goes to /login
- Action: Country: opens a country list (not opened during capture)
- Validation: An empty submit stays on the page with no visible change: no native bubble, no inline message, the button stays pale. Field-level errors after typing were not observed. The CSS carries a password strength meter (strength-indicator keyframes, a 0.3s height transition on the password block) and the auth-shake keyframes.

Not recorded: Email verification, business details and activation steps, the password strength messages, and the country list, which all need input or an account.

## Libraries

Detected in the pages Stripe serves. Use these before reaching for an alternative.

| Name | npm | Purpose | Evidence |
| --- | --- | --- | --- |
| React | react | UI runtime on the marketing site, docs and dashboard | "react.element" in the marketing framework chunk, the docs react bundle and the dashboard login and account bundles |
| Next.js | next | Framework for stripe.com | window.__NEXT_DATA__ and window.next defined on the home page; "__NEXT_DATA__" in a main chunk |
| React Aria | react-aria-components | Accessible primitives on docs and the dashboard auth screens | ids starting with react-aria on rendered elements (the log in checkbox, among others); "react-aria-" in the docs frontend bundle |
| Motion | motion | Script-driven animation: presence, reveals | "framerAppearId" in a home chunk; "AnimatePresence" in the docs, log in and account bundles. Script strings only, weaker than an attribute |
| Floating UI | @floating-ui/react | Popover and tooltip positioning | the string "floating-ui" in home, docs, log in and account bundles. Weak evidence |
| three.js | three | WebGL rendering, likely for the hero graphics | "THREE.WebGLRenderer" in a home chunk and a log in bundle |
| TanStack Query | @tanstack/react-query | Server state in the dashboard | "No QueryClient set" in a log in bundle |
| Emotion | @emotion/react | Styling on docs and dashboard | the string "@emotion/" in the docs and dashboard bundles. Weak evidence |
| StyleX | @stylexjs/stylex | Styling on docs and dashboard | the bare word "stylex" in the docs and dashboard bundles. Weak evidence |
| Prism | prismjs | Code highlighting in docs | "Prism.languages" in the docs common bundle |
| jQuery | jquery | Present on the dashboard auth pages; its role was not observed | window.jQuery defined on /login and /register |
| Sohne | (not on npm) | Text face (paid Klim licence), variable 1 to 1000 | loaded font face "sohne-var 1 1000" on home, pricing, log in and sign up |
| Source Code Pro | @fontsource/source-code-pro | Monospace face on the marketing site | loaded font face "SourceCodePro 500" on home |

Recommended for the parts that could not be identified:

| Name | npm | Purpose |
| --- | --- | --- |
| Lucide | lucide-react | 16px line icons and chevrons; Stripe's own inline SVG icons are not a public package |
| Inter | @fontsource-variable/inter | Free variable stand-in for Sohne at weights 300, 400 and 425 |