Paycraft Design System

Comprehensive reference extracted from . Covers the marketing website, dashboard/app, Paycraft Elements, and documentation patterns.

Website Colors

Paycraft's brushwork is anchored by a deep navy (#0a2540) and a vibrant purple accent (#533afd). The system uses subtle gray backgrounds and a sophisticated shadow brushwork with rgba(50,50,93) as the signature shadow color.

Primary & Accent

Accent Purple
#533afd
Accent Alt
#9966ff
Button Blue
#635bff
Link Hover
#2e2b8c

Navy Scale

Darkest
#031323
Dark
#061b31
Navy (Primary)
#0a2540
Medium
#0c2e4e
Light
#1f4468

Text Colors

Primary Text
#0a2540
Secondary Text
#425466
Tertiary Text
#667691
Muted Text
#3c4f69
On Dark
#adbdcc

Backgrounds

White
#ffffff
Off White
#f8fafd
Light Gray
#f6f9fb
Cool Gray
#eff3f9

Borders

Light Border
#e7ecf1
Medium Border
#e5edf5
Soft Border
#cbd6e0

Semantic Colors

Error
#ff5996
Success
#00d66f
Info
#5469d4
Focus Ring
#4d90fe

Gradients

Paycraft uses multicolor gradients extensively, especially for product suite differentiation and hero backgrounds. Their signature shadow color rgba(50,50,93) appears in every shadow definition.

Suite: #ff6118 to #fb76fa to #533afd
Revenue: #ffcc55 to #fb76fa to #533afd
Financial: #f44bcc to #ec8fff
Platform: #ea2261 to #da56ed
Orange: #e18638 to #e17a38
Hero Radial + Gradient

Product Suite Colors

Each Paycraft product suite has a distinct gradient identity used in the navigation menu, product pages, and marketing materials.

Suite Orange
#ff6118
Suite Pink
#fb76fa
Suite Yellow
#ffcc55
Suite Magenta
#f44bcc
Suite Red
#ea2261
Suite Lavender
#ec8fff
Suite Rose Purple
#da56ed
Developer Cyan
#00d4ff
Developer Gold
#ffd848
Developer Teal
#11efe3

Typography

Paycraft uses their custom variable font "sohne-var" (weight range 1-1000) with a restrained weight scale: 200 (light), 300 (normal), 425 (semibold), 500 (bold). The monospace font is SourceCodePro.

Superhero / 76px / fw-500 / -0.96px tracking
Financial infrastructure
Hero / 48px (mobile) 56px (desktop) / fw-500 / -0.02em tracking
Grow your revenue
Section / 34px (mobile) 38px (desktop) / fw-500 / -0.1px tracking
Accept payments globally
Subsection / 24px (mobile) 26-28px (desktop) / fw-500
Optimized for conversion
Caption / 18px / fw-300 / 1.555 line-height
Paycraft provides the most powerful and flexible tools for internet commerce. Whether you are building a subscription service, an on-demand marketplace, or an e-commerce store.
Body / 15px / fw-300 / 1.6 line-height
Millions of companies of all sizes use Paycraft online and in person to accept payments, send payouts, and manage their businesses. Paycraft's software and APIs are designed from the ground up to be the best.
Detail / 15px / fw-425 (semibold) / 1.6 line-height
Start now →
Code / SourceCodePro 14px / fw-500 / 1.714 line-height
Paycraft.paymentIntents.create({ amount: 2000 })
Token Value Usage
--fontFamily"sohne-var", "Helvetica Neue", Arial, sans-serifAll text
--fontWeightLight200Decorative, large display
--fontWeightNormal300Body text, descriptions
--fontWeightSemibold425CTAs, labels, nav items
--fontWeightBold500Headings, emphasis

Spacing Scale

Paycraft uses a 4px base unit with a scale that expands to 128px for section-level spacing. Row gaps and section padding use CSS custom properties with responsive fluid calculations.

4px (xxs)
8px (xs)
12px (sm)
16px (md)
20px (lg)
24px (xl)
32px (2xl)
48px (3xl)
64px (4xl)
96px (5xl)
128px (6xl)
CSS VariableValueUsage
--rowGapXSmall16pxTight element spacing
--rowGapSmall24pxRelated elements
--rowGapNormal32pxStandard content gaps
--rowGapMedium48pxContent group separation
--rowGapLarge64pxSection-level on desktop
--rowGapXLarge96pxMajor section breaks
--sectionPaddingMin72pxMin section padding (fluid)
--sectionPaddingMax128pxMax section padding (fluid)
--columnGap20pxGrid column gutter

Shadow System

Paycraft's signature shadow uses rgba(50,50,93) -- a muted paycraft-gray that complements their navy brushwork. Each shadow uses two layers: the primary spread and a darker, tighter secondary shadow.

XSmall
Small
Medium
Large
XLarge
Login Card
Focus Ring
Nav Sticky
TokenValue
--cardShadowXSmall0 2px 5px -1px rgba(50,50,93,0.25), 0 1px 3px -1px rgba(0,0,0,0.3)
--cardShadowSmall0 6px 12px -2px rgba(50,50,93,0.25), 0 3px 7px -3px rgba(0,0,0,0.3)
--cardShadowMedium0 13px 27px -5px rgba(50,50,93,0.25), 0 8px 16px -8px rgba(0,0,0,0.3)
--cardShadowLarge0 30px 60px -12px rgba(50,50,93,0.25), 0 18px 36px -18px rgba(0,0,0,0.3)
--cardShadowXLarge0 50px 100px -20px rgba(50,50,93,0.25), 0 30px 60px -30px rgba(0,0,0,0.3)

Border Radius

0 (none)
2px (xs)
4px (sm)
8px (md / card)
16.5px (pill / btn)
50% (full / avatar)
99px (jumbo / nav)

Buttons

Paycraft buttons use a 16.5px pill border-radius, 15px font at semibold (425) weight. The primary variant uses #635bff (Paycraft purple-blue), while the dark variant uses #0a2540 navy.

Primary Variants

Secondary Variants

Segmented Control

PropertyValue
Border Radius16.5px (pill)
Padding3px 16px 6px
Font425 15px/1.6 var(--fontFamily)
Primary BG#635bff
Primary Hover#031323
Accent BG#533afd
Segmented Active#533afd bg, #fff text

Cards

Cards use 8px border-radius and Paycraft's layered shadow system. Variants include bordered, shadowed, and accented (colored top border).

Border Card
Uses 1px solid border with var(--cardBorderColor). Clean, minimal appearance for lists and grids.
Shadow Small
Subtle elevation for interactive elements and hover states. Uses the signature rgba(50,50,93) shadow color.
Shadow Medium
Standard card elevation for content cards, product features, and standalone containers.
Shadow Large
Prominent elevation for hero cards, featured content, and modal-like containers.
Accented Card
Features a colored top border (3px) using the accent color. Used for highlighted or featured items.
Product Accented
Product-specific accent using suite gradient colors. Each product area has its own color identity.

Angled Sections

Paycraft's signature angled section backgrounds use CSS skewY transforms. The normal angle is -6deg and the strong angle is -12deg.

Angled Section (-6deg)

Background uses transform: skewY(var(--sectionAngle)) with the content remaining upright.

TokenValue
--angleNormal-6deg (sin: 0.106)
--angleStrong-12deg (sin: 0.212)
TransformskewY(var(--sectionAngle))
Applied to.Section__background

Blog Components

Patrick Collison
Mar 28, 2026

The future of internet payments

A look at how the global payments landscape is evolving and what it means for businesses building on the internet.

PropertyValue
Card Shadowvar(--cardShadowXLarge)
Title Size38px/48px, fw-500, -0.2px spacing
Author Font15px/1.6, fw-425, #0a2540
Date Font15px/1.6, fw-300, #425466
Date Separator1px wide, var(--accentColor)
Avatarborder-radius: 50%, margin-right: 16px

Pricing Cards

Integrated
2.9% + 30¢
per successful card charge
ADDITIONAL FEES
+ 0.5% for manually entered cards
+ 1.5% for international cards
Customized
Custom
volume pricing for large businesses
PropertyValue
Price Font26px/1.38, fw-500
Suffix Font15px/1.5, fw-300
Subcard BGvar(--subcardBackground) (usually #f8fafd)
Subcard Radius4px
Subcard Padding12px var(--columnPaddingNormal)
Min Height120px
Hero Navborder-radius: 99px, height: 50px

Animations & Easing

Paycraft uses six distinct easing curves for different interaction contexts. Hover over each demo to see the easing in action.

Standard
cubic-bezier(0.215, 0.61, 0.355, 1)
Menu
cubic-bezier(0.4, 0, 0.2, 1)
Navigation
cubic-bezier(0.45, 0.05, 0.55, 0.95)
Spring
cubic-bezier(0.22, 1, 0.36, 1)
Primary
cubic-bezier(0.65, 0, 0.35, 1)
Duration TokenValueUsage
--dur-fast150msHover effects, micro-interactions
--dur-medium240msMobile menu transitions
--dur-normal250msStandard transitions, menus
--dur-slow500msPage-level animations
(entrance)1500-2000msHero graphic animations, stroke reveals

Code Blocks

Code snippets use the navy (#0a2540) background with SourceCodePro font at 14px/1.714 line-height.

// Create a payment intent const paymentIntent = await Paycraft.paymentIntents.create({ amount: 2000, currency: 'usd', automatic_payment_methods: { enabled: true, }, });

Chat Button

Fixed bottom-right at 24px offset, 64px diameter circle with navy background and typing indicator animation.

Position: fixed, right: 24px, bottom: 24px

Size: 64px × 64px, border-radius: 50%

Background: #0a2540, z-index: 99

Animation: 0.2s cubic-bezier(0.16, 1, 0.3, 1)

Hover Arrow

Paycraft's signature CTA arrow animates 3px to the right on hover with a 150ms cubic-bezier transition.

Learn more Documentation
PropertyValue
Arrow Spacing5px (margin-left)
Hover OffsettranslateX(3px)
Transition150ms cubic-bezier(0.215, 0.61, 0.355, 1)
Stroke Width2px
Fillnone, stroke: currentColor

Dashboard Colors

The Paycraft Dashboard uses a different brushwork from the marketing site -- system fonts, a lighter blue accent (#5469d4), and a cool gray background (#e6ebf1).

Dash Accent
#5469d4
Dash Background
#e6ebf1
Dash Text
#697386
Dash Icon
#8792a2

Login Card (Dashboard)

The login page features a centered card on a cool gray background. Uses system fonts, not sohne-var.

PropertyValue
Page BG#e6ebf1
Card Max Width480px
Card Border Radius4px
Card Padding48px
Card Shadow0 7px 14px 0 rgba(60,66,87,0.1), 0 3px 6px 0 rgba(0,0,0,0.07)
Font Family-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Ubuntu, sans-serif
Title16px, fw-500, lh-24px
Body14px, fw-400, lh-20px
Link Color#5469d4

Form Fields

PropertyValue
Height38px
Padding0 12px
Border1px solid #e6ebf1
Border Radius6px
Font Size14px
Placeholder#8f9cb2
Focus Border#5469d4
Focus Shadow0 0 0 2px rgba(84,105,212,0.3)
Error Border#ff5996
Error Shadow0 0 0 2px rgba(255,89,150,0.3)

Paycraft Elements

Pre-built payment UI components with configurable themes. The default form uses a 384px max-width container with grouped fields sharing borders.

Pay with card
jenny@example.com
4242 4242 4242 4242
VISA
MM / YY     CVC

Elements Themes

Paycraft Elements supports multiple visual themes. Each can override colors, fonts, and border treatments.

Default
#e6ebf1 #0a2540 #fff

sohne-var font, white background, navy button

Baby Blue
#e3f5ff #00b2ff #007aae

Light blue bg, cyan borders, teal labels

Lakers
#afabff #fab000 #0a2540

Purple bg, gold borders, navy text

Tron
transparent #0de4e4

Roboto Mono font, transparent bg, cyan glow


CSS Variables Reference

/* === Paycraft Website CSS Custom Properties === */ /* Colors */ --accentColor: #533afd; --buttonColor: #635bff; --buttonHoverColor: #031323; --navColor: #0a2540; --textColor: #425466; --backgroundColor: #fff; --linkColor: #0a2540; --linkHoverColor: #2e2b8c; --knockoutColor: #fff; --menuBgColor: #eff3f9; --inputBackground: #f6f9fc; --inputErrorAccentColor: #ff5996; --cardBorderColor: #cbd6e0; /* Typography */ --fontFamily: "sohne-var", "Helvetica Neue", Arial, sans-serif; --fontWeightLight: 200; --fontWeightNormal: 300; --fontWeightSemibold: 425; --fontWeightBold: 500; /* Spacing */ --rowGapXSmall: 16px; --rowGapSmall: 24px; --rowGapNormal: 32px; --rowGapMedium: 48px; --rowGapLarge: 64px; --rowGapXLarge: 96px; --sectionPaddingMin: 72px; --sectionPaddingMax: 128px; /* Shadows */ --cardShadowXSmall: 0 2px 5px -1px rgba(50,50,93,0.25), 0 1px 3px -1px rgba(0,0,0,0.3); --cardShadowSmall: 0 6px 12px -2px rgba(50,50,93,0.25), 0 3px 7px -3px rgba(0,0,0,0.3); --cardShadowMedium: 0 13px 27px -5px rgba(50,50,93,0.25), 0 8px 16px -8px rgba(0,0,0,0.3); --cardShadowLarge: 0 30px 60px -12px rgba(50,50,93,0.25), 0 18px 36px -18px rgba(0,0,0,0.3); --cardShadowXLarge: 0 50px 100px -20px rgba(50,50,93,0.25), 0 30px 60px -30px rgba(0,0,0,0.3); /* Layout */ --cardBorderRadius: 8px; --angleNormal: -6deg; --angleStrong: -12deg;

Class Naming Convention

Paycraft uses a BEM-adjacent naming system with double underscores for elements, double dashes for modifiers, and specific prefix patterns for variants, themes, and states.

PatternExampleUsage
Component__element.SiteHeader__logoChild element of component
Component--modifier.Card--shadowMediumVisual variant
variant--Name.variant--HeroSemantic variant
theme--Name.theme--DarkColor theme
.isState.isActive, .isVisibleJavaScript-toggled state
[data-attr="value"][data-menu-state="open"]Attribute-based state
[data-columns="X,Y"][data-columns="2,1"]Responsive grid config

Responsive Breakpoints

NameValueUsage
Mobilemax-width: 599pxSingle column, stacked layout
Tabletmin-width: 600px2-column grids begin
Desktopmin-width: 900pxFull navigation, multi-column
Large Desktopmin-width: 1112pxWider content areas, pricing 2-up
Wide Desktopmin-width: 1264pxMax nav width
Extra Widemin-width: 1300pxProduct nav 4-column + sidebar

Layout Grid

Paycraft uses a 12-column CSS Grid system with configurable column patterns via data attributes. Column gap is 20px. Content max-width is 1080px with additional column padding.

PatternDesktop Behavior
data-columns="1,1,1"3 equal columns (4-span each)
data-columns="2,1"2:1 ratio (8-span + 4-span)
data-columns="3,2"3:2 ratio
data-columns="1,1,1,1"4 equal columns (3-span each)
Product Nav Grid4 columns + optional 226px sidebar
Content Max Width1080px + responsive padding
Nav Max Width1264px (refreshed)

Z-Index Scale

LayerValue
Content (base)1
Menu2
Chat Button99
Header100
Modal999999

Tailwind Mapping

The paired JSON export now includes a tailwind section with theme extensions and component recipes. Use these mappings instead of default Tailwind tokens when recreating this system.

// tailwind.config.js
import designSystem from './design-system.json';

export default {
  theme: {
    extend: designSystem.tailwind.website.theme.extend,
  },
};

// Swap to designSystem.tailwind.app.theme.extend for app/portal surfaces.
ScopePrimaryBody FontRadiusShadowBreakpoint
Website#533afd"sohne-var", "Helvetica Neue", Arial, sans-serif16.5px0 7px 14px 0 rgba(60,66,87,0.1), 0 3px 6px 0 rgba(0,0,0,0.07){'max': '599px'}
App / Portal#5469d4-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Ubuntu, sans-serif0 7px 14px 0 rgba(60,66,87,0.1), 0 3px 6px 0 rgba(0,0,0,0.07)
ScopeRecipeClass PatternNotes
WebsitebuttonPrimaryinline-flex items-center justify-center gap-2 rounded-button bg-brand-primary text-text-inverse shadow-sm px-4 py-2 text-detail font-semibold transition-colorsPrimary action button using exported brand, radius, and shadow tokens.
WebsitesurfaceCardrounded-card bg-surface-base text-text-primary border border-border-subtle shadow-sm p-6Default surface/card treatment for high-visibility content areas.
WebsiteinputFieldrounded-sm border border-border-subtle bg-surface-base text-text-primary px-3 py-2 text-detail focus:outline-none focus:ring-2 focus:ring-focus-ringBase text input treatment aligned to the exported radius, border, and focus tokens.
App / PortalbuttonPrimaryinline-flex items-center justify-center gap-2 rounded-md bg-brand-primary text-text-inverse shadow-sm px-4 py-2 text-body font-semibold transition-colorsPrimary action button using exported brand, radius, and shadow tokens.
App / PortalsurfaceCardrounded-md bg-surface-base text-text-primary border border-border-subtle shadow-sm p-6Default surface/card treatment for high-visibility content areas.
App / PortalinputFieldrounded-md border border-border-subtle bg-surface-base text-text-primary px-3 py-2 text-body focus:outline-none focus:ring-2 focus:ring-focus-ringBase text input treatment aligned to the exported radius, border, and focus tokens.