Sofi

SoFi's iOS app is a premium one-stop financial command center — banking, investing, borrowing, and rewards under a single membership.

Back to all styles

A live page in this style is not built yet — the CSS variables and the prompt below are enough to reproduce it.

At a glance

22tokens
11type steps
1radius steps
12pxspacing base

Sofi, in one page

SoFi's iOS app is a premium one-stop financial command center — banking, investing, borrowing, and rewards under a single membership. The visual language signals "modern, ambitious, all-in-one wealth platform" rather than a single-purpose budgeting app, so the design leans confident and dark-native: an electric SoFi Blue (#00A0DF) sitting on a deep navy (#0A0E27) ground. This blue-on-navy pairing is so core to SoFi's marketing that the app reads like it was *designed for dark mode first* — the navy is the canonical brand canvas in both themes, and electric blue is the energy that cuts through it.

The signature screen is the member home dashboard. It opens with a full-bleed member hero — a #00A0DF → #1B53C4 → #0A0E27 diagonal gradient panel carrying a friendly greeting, the member's net worth rendered huge in white (40pt 800), and a green pill showing the month's change ("+$1,840.22 this month"). Below the gradient sits the account/product tile grid: a 2-column set of rounded cards — Checking & Savings (with APY), Invest (with today's %), Loans (with the next payment due), Credit Card (with cash-back) — each a small blue-soft icon chip, a label, a big value, and a colored sub-stat. Below that, a "Recent activity" relay list. The dashboard's job is to make a multi-product financial life feel unified and in-control on one screen — that consolidated net-worth-plus-tiles view is the heart of SoFi.

The other SoFi-defining moment is the product tile / cross-sell card — SoFi's whole business is one member using many products, so the home and the Invest/Borrow tabs surface rounded cards ("Active Invest — Stocks, ETFs & crypto", "Loan in minutes — check your rate, no credit impact") with a blue-soft icon, a title, and a one-line value prop. The second fixture is the performance treatment: gains in green (#2FD08A), losses in coral (#FF6B6B), rewards in gold (#F2C14E) — applied consistently to investment %s, account deltas, and the rewards points loop.

Typography is a clean, confident geometric sans — production SoFi uses a brand-tuned face; Manrope is the faithful free stand-in (semibold-forward, modern, tight tracking at display sizes). Hierarchy is wealth-dashboard: the net-worth hero is huge (40pt 800), screen titles 32pt, section headers 22pt, tile values 18-19pt, body 16pt, row titles 15pt, meta 14pt, captions 12pt. Numbers are always 700-800 — net worth, balances, and percentages are the data the member came for. The tone is bold, confident, dark, and consolidated.

Key Characteristics:

Do's and don'ts

Do

  • Treat SoFi as dark-native — electric blue #00A0DF on deep navy #0A0E27; navy is the canonical canvas
  • Open the member home with the #00A0DF → #1B53C4 → #0A0E27 gradient hero carrying net worth in white
  • Show the consolidated 2-column account/product tile grid below the hero
  • Brighten blue to #29C2FF for accents, links, and active tabs so it pops on navy
  • Color performance: gains green #2FD08A, losses coral #FF6B6B, rewards gold #F2C14E
  • Use the green/coral month-change pill on the hero — it's a signature
  • Make every button a full pill (500pt radius) — premium, never boxy
  • Surface cross-sell product cards ("one member, many products" is the business)
  • Set net worth, balances, and percentages in heavy tabular figures (700-800)
  • Lift tiles off navy with a 1pt #252C55 border + soft dark shadow

Don't

  • Don't use a neutral or light gray ground — the brand is navy #0A0E27 even where light mode lifts surfaces
  • Don't render the member hero as a flat solid — the blue→navy gradient is the signature
  • Don't use boxy/sharp buttons — SoFi buttons are fully pill-shaped
  • Don't make blue dull on navy — accents brighten to #29C2FF
  • Don't make performance neutral — gains/losses are green/coral; that's the point of a wealth app
  • Don't bury net worth — it's the loudest element, 40pt 800 white on the gradient
  • Don't render amounts in proportional figures — use tabular so columns align
  • Don't hide cross-sell — multi-product membership is SoFi's core model
  • Don't use a Material tint pill on tabs — active is just bright-blue color + filled icon
  • Don't drop the rewards-gold accent — the points/cash-back loop is a brand pillar
  • Don't animate harshly — motion is smooth ease-outs and snaps, haptics measured

Copy this into your AI builder

Paste it as-is. Every value below was measured from the original site, not guessed.

Assembled from the measured tokens — the source document has no prompt block.

Build a page in the Sofi design language. Follow the measured tokens below — do not substitute your own palette.

Colors:
- SoFi Blue: #00a0df
- navy: #0a0e27
- Blue Bright: #29c2ff
- Blue Pressed: #0086bc
- Blue Soft Fill: #e6f4fb
- Navy Canvas: #0a0e27
- Surface 1: #121736
- Surface 2: #1b2147
- Divider: #252c55
- Light Canvas: #f4f7fb

Type:
- families: Manrope, Fallback Stack, Numeric, Monospace
- scale: 10, 12, 13, 14, 15, 16, 18, 19, 22
- weights: 400, 600, 700, 800

Shape:
- radius: 14
- elevation: Lift tiles off navy with a 1pt `#252C55` border + soft dark shadow

Spacing: 12, 14

Rules:
- Treat SoFi as dark-native — electric blue `#00A0DF` on deep navy `#0A0E27`; navy is the canonical canvas
- Open the member home with the `#00A0DF → #1B53C4 → #0A0E27` gradient hero carrying net worth in white
- Show the consolidated 2-column account/product tile grid below the hero
- Brighten blue to `#29C2FF` for accents, links, and active tabs so it pops on navy
- Color performance: gains green `#2FD08A`, losses coral `#FF6B6B`, rewards gold `#F2C14E`
- Use the green/coral month-change pill on the hero — it's a signature

Avoid:
- Don't use a neutral or light gray ground — the brand is navy `#0A0E27` even where light mode lifts surfaces
- Don't render the member hero as a flat solid — the blue→navy gradient is the signature
- Don't use boxy/sharp buttons — SoFi buttons are fully pill-shaped
- Don't make blue dull on navy — accents brighten to `#29C2FF`
- Don't make performance neutral — gains/losses are green/coral; that's the point of a wealth app
- Don't bury net worth — it's the loudest element, 40pt 800 white on the gradient

Keep every value literal. If a token is given, use that exact value.

The specification

Colour paletteRead the full spec

Primary (Interactive)

  • SoFi Blue (#00A0DF): Primary brand + interactive color — member-hero gradient base, primary pill buttons, logomark.
  • Blue Bright (#29C2FF): Brighter blue for accents, links, "See all", active tabs, icon glyphs on navy.
  • Blue Pressed (#0086BC): Pressed state on blue buttons.
  • Blue Soft Fill (#E6F4FB light / #0E2A44 dark): Tinted backgrounds for soft buttons, tile icon chips.

Canvas & Surfaces (Dark-Native — canonical)

  • Navy Canvas (#0A0E27): The canonical brand canvas — deep navy, used in dark mode and as the marketing ground.
  • Surface 1 (#121736): Cards, tiles, list containers on navy.
  • Surface 2 (#1B2147): Elevated cards, sheets, pressed rows.
  • Divider (#252C55): Hairline between rows and tile borders.

Canvas & Surfaces (Light Mode)

  • Light Canvas (#F4F7FB): The light-mode ground — a cool off-white (the brand identity still stays navy + blue).
  • Light Surface 1 (#FFFFFF): Cards, tiles in light mode.
  • Light Surface 2 (#EEF2F8): Pressed rows, secondary fills.
  • Light Divider (#E2E7F0): Hairline dividers in light mode.

Text (on navy / dark-native)

  • Text Primary (#E8EBF7): Primary body, tile values, row titles.
  • Text Secondary (#9BA3C7): Metadata, labels, captions.
  • Text Tertiary (#6B7299): Disabled, low emphasis.
  • On-Gradient White (#FFFFFF): All text over the member hero gradient.
  • On-Blue Ink (#042235): Near-black blue ink on solid #00A0DF buttons for contrast.

Text (Light Mode)

  • Text Primary Light (#0C1330): Primary body in light mode.
  • Text Secondary Light (#5A6286): Metadata in light mode.

Semantic

RoleDark-NativeLight ModeUse
Positive / Gain#2FD08A#0FA968Investment gains, "+$" deltas, "+%", APY uplift
Negative / Loss#FF6B6B#E0484DInvestment losses, "-%", payment-due warnings
Rewards Gold#F2C14E#C8920FRewards points, cash-back, member perks
Info / Link#29C2FF#0086BCLinks, "See all", informational accents
Success#2FD08A#0FA968Transfer/success confirmation
Attention#FF6B6B#E0484DErrors, due dates, alerts

Performance is color-coded, not neutral. Unlike a pure spending app, SoFi *does* color money movement — investment and net-worth changes use green/coral because performance is the point. The green month-change pill on the hero is a signature.

Type scaleRead the full spec

Font Family

  • Primary: A confident geometric sans. Production SoFi uses a brand-tuned face; Manrope (by Mikhail Sharanda / Mirko Velimirovic, SIL OFL) is the faithful free stand-in — semibold-forward, modern, tight at display sizes, excellent number legibility.
  • Fallback Stack: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif
  • Numeric: Use tabular/lining figures for net worth, balances, and amounts (font-variant-numeric: tabular-nums).
  • Monospace: not used in product UI.

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
Net Worth HeroManrope40pt8001.05-1.2ptThe net-worth figure on the member gradient
Screen TitleManrope32pt8001.15-0.6ptLarge nav title ("Invest", "Borrow")
Section HeaderManrope22pt7001.2-0.3pt"Recent activity", "Your accounts"
Tile ValueManrope18pt7001.25-0.4ptAccount/product tile balance (19pt on large devices)
Card TitleManrope16pt7001.3-0.1ptCross-sell card title
BodyManrope16pt4001.50ptDescriptions, value props
Row TitleManrope15pt7001.30ptActivity row name
AmountManrope15pt8001.20ptActivity amount (tabular)
MetaManrope14pt4001.40pt"Today · Auto-invest"
Caption / Sub-statManrope12pt6001.40.1pt"3.80% APY", "+2.4% today", chip text
ButtonManrope16pt7001.00ptPrimary / secondary pill buttons
Tab LabelManrope10pt6001.00.1ptBottom tab labels
ChipManrope12pt7001.00.1ptStatus chip text
LinkManrope13pt7001.30pt"See all", inline links

Principles

  • Net worth is the loudest thing: 40pt 800 in white on the gradient, tracking -1.2pt — the consolidated number is the headline.
  • Numbers are always 700-800: net worth, tile values, balances, percentages — all heavy and tabular so the wealth picture is instantly scannable and aligned.
  • Confident weights: 400 body, 600 captions, 700 row titles/headers/buttons, 800 hero/screen titles. Semibold-forward — modern and assured, never thin.
  • Consolidated hierarchy: the eye goes net worth → account tiles → activity; the multi-product life is organized, not chaotic.
  • Dynamic Type first-class: hero, titles, headers, body, row titles, meta scale; tab labels and chip text stay fixed.
Components and layoutRead the full spec

Buttons

Primary Button ("Transfer money", "Invest now", "Continue")

  • Shape: Full pill, 500pt corner radius (SoFi is pill-shaped, not boxy)
  • Background: #00A0DF (SoFi Blue)
  • Text: #042235 (near-black blue ink), Manrope 16pt weight 700
  • Padding: 14pt vertical, 28pt horizontal; min height 52pt
  • Pressed: background #0086BC + scale 0.98
  • Disabled: background #00A0DF 35% / text #042235 50%

Secondary / Outline Button ("Invest now", "Learn more")

  • Background: transparent
  • Text: #29C2FF (Blue Bright), Manrope 15pt weight 700
  • Border: 1.5pt #00A0DF
  • Shape: full pill, 500pt radius
  • Padding: 12pt vertical, 24pt horizontal
  • Pressed: background #0E2A44 (Blue Soft)

Soft Button ("Add account", quick actions)

  • Background: #E6F4FB light / #0E2A44 dark (Blue Soft Fill)
  • Text: #0086BC light / #29C2FF dark, Manrope 14pt weight 700
  • Shape: full pill, 500pt radius; no border
  • Padding: 12pt vertical, 20pt horizontal

Text Button ("See all activity")

  • Font: Manrope 13-14pt weight 700
  • Color: #29C2FF (dark) / #0086BC (light)
  • No background, no border, no underline

Member Hero (the signature surface)

  • Container: full-bleed, extends into the top safe area; rounded only at the bottom is optional (often full-bleed top, content padded)
  • Background: linear gradient #00A0DF → #1B53C4 → #0A0E27 (≈165°) — blends into the navy canvas at the bottom
  • Top row: greeting ("Good morning, Alex") Manrope 18pt 700 white + notification/profile icons (22pt white)
  • Net-worth label: "Net worth" Manrope 13pt 600 rgba(255,255,255,0.75)
  • Net-worth value: Manrope 40pt 800 white, tracking -1.2pt, tabular
  • Change pill: "+$1,840.22 this month" Manrope 13pt 700, green #6EF0B6 on rgba(47,208,138,0.18), 500pt pill, with an up-arrow glyph

Account / Product Tile (core atom)

  • Layout: 2-column grid, 12pt gap, each tile 18pt corner radius
  • Container: Surface 1, 1pt divider border
  • Icon chip: 36pt rounded (11pt) #0E2A44/#E6F4FB with an 18pt #29C2FF/#0086BC stroked glyph
  • Label: Manrope 12pt 600 #9BA3C7
  • Value: Manrope 18-19pt 800 #E8EBF7, tracking -0.4pt, tabular
  • Sub-stat: Manrope 11-12pt 600 — green (#2FD08A gain/APY), coral (#FF6B6B due/loss), or gold (#F2C14E rewards)
  • Tappable → product detail screen

Cross-Sell Product Card (distinctive component)

  • Container: Surface 2, 1pt divider, 18pt radius, 16pt padding
  • Icon chip: 36pt rounded (11pt) #0E2A44 with an 18pt #29C2FF glyph
  • Title: Manrope 14-16pt 700 #E8EBF7
  • Value prop: Manrope 12pt 400 #9BA3C7, 1-2 lines ("Stocks, ETFs & crypto, no commissions")
  • Often in a horizontal carousel of products on the home / Invest / Borrow tabs

Activity (Relay) Row

  • Layout: 40pt rounded (13pt) icon tile + name/meta column + right-aligned amount
  • Icon tile: gradient or blue-soft, glyph tinted by product (blue for invest/banking, gold for rewards)
  • Name: Manrope 15pt 700 #E8EBF7
  • Meta: Manrope 14pt 400 #9BA3C7 — "Today · Auto-invest"
  • Amount: Manrope 15pt 800, tabular; positive green (#2FD08A, "+$2,140.55"), negative neutral ink (#E8EBF7, "-$250.00") — investment buys are neutral, gains/income are green
  • Separator: 1pt #252C55 divider; no card border

Navigation

Bottom Tab Bar

  • Height: 49pt + safe area
  • Background: Navy / blurred, 0.5pt top divider #252C55
  • Tabs (5): Home, Invest, Banking, Borrow, Me
  • Icon size: 22pt; active #29C2FF (icon fills solid); inactive #6B7299
  • Labels: Manrope 10pt weight 600, always shown
  • No tint pill — just bright-blue color + filled icon swap

Top of Member Home

  • The gradient hero *is* the top — no separate nav bar; greeting + icons live inside the gradient

Top Nav (sub-screens)

  • Height: 44pt + safe area
  • Leading back chevron (white on gradient screens, primary text elsewhere)
  • Centered compact title; optional trailing action

Input Fields

Amount Entry (Transfer / Invest)

  • Large centered amount, Manrope 40pt 800, blue cursor; "$" prefix #9BA3C7
  • Funding-source row below (account + balance)
  • Numeric keypad sheet

Text Field

  • Height: 52pt
  • Background: Surface 1 / Light Surface 1
  • Corner radius: 14pt
  • Floating label on focus; focus ring 1.5pt #00A0DF
  • Placeholder Manrope 16pt 400 #6B7299
Responsive behaviourRead the full spec

Device Sizes

DeviceWidthKey Changes
iPhone SE (3rd gen)375ptNet worth 34pt; gradient hero shorter; tiles slightly tighter
iPhone 13/14/15390ptStandard layout; net worth 40pt
iPhone 15/16 Pro393ptDynamic Island clears the in-gradient top row
iPhone 15/16 Pro Max430ptNet worth 44pt; larger tiles; more gradient height
iPad (portrait)768ptContent centered max 680pt; tile grid 3-col; hero scales
iPad (landscape)1024pt+Two-pane: dashboard + product detail; hero in the left column

Dynamic Type

  • Net worth, screen titles, section headers, tile values, body, row titles, meta: full scale
  • Tab labels, chip text, the change-pill ratio: FIXED (layout-sensitive)
  • Amounts scale but stay tabular so columns keep aligning

Orientation

  • All screens rotate
  • iPad landscape pins a master dashboard beside a detail pane
  • The gradient hero re-fits and re-centers on rotation

Touch Targets

  • Tab bar icons: 22pt glyph, 49pt bar, 44pt hit
  • Tile: full-tile tappable, ≥ 96pt tall
  • Cross-sell card: full-card tap
  • Primary pill buttons: 52pt min height
  • Performance chips (if interactive): 44pt hit

Safe Area Handling

  • Top: the gradient hero extends into the top safe area; the in-gradient top row insets below the Dynamic Island
  • Bottom: tab bar + home indicator respected; sheet CTAs sit above the home indicator
  • Keyboard: amount keypad is a sheet; content scrolls above it
  • Sides: 16pt tile inset, 20pt header/gradient-content inset

Drop-in CSS variables

The same values as a theme block. Add the class to <body> and the site repaints.

body.theme-sofi {--page-bg: #ffffff;
  --page-bg-gradient: none;
  --text-color: #374da4;
  --heading-color: #374da4;
  --link-color: #0074a3;
  --link-hover-color: #005070;
  --border-color: #dbdfef;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 2px rgba(55,77,164,0.06);
  --card-hover-shadow: 0 6px 18px rgba(55,77,164,0.12);
  --header-bg: #374da4;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #ffffff;
  --footer-text-color: #6171b8;
  --button-bg: #00a0df;
  --button-text-color: #000000;
  --button-hover-bg: #007bac;
  --button-border: none;
  --button-border-radius: 14px;
  --button-secondary-bg: #f3f4fa;
  --button-secondary-text-color: #374da4;
  --button-secondary-hover-bg: #e7eaf4;
  --button-secondary-border: 1px solid #dbdfef;
  --prompt-bg: #f5f6fa;
  --prompt-text-color: #374da4;
  --base-font: var(--font-mono);
  --heading-font: var(--font-mono);
  --card-border-radius: 14px;
}

Download theme.css

Visually close to

Measured with a deterministic colour + geometry comparison across 958 styles. Not a hand-picked list.

Where this came from

Source document
ios/design-md/finance/sofi/DESIGN.md · 25.0 KB
Repository
Meliwat/awesome-ios-design-md
Licence
MIT

Source text is reproduced under its original licence. Tokens, similarity scores and page structure are ours.