DESIGN.md · Analysis

Column

column.com · 15 Jun 2026 · 47 colors · SuisseIntl

Column

A nationally chartered bank platform built for developers and builders to create new financial services at scale. The design system emphasizes clarity, precision, and institutional trust through a refined minimalist aesthetic.

Colors

surface#ffffff
surface-dim#f5f7fa
surface-bright#ffffff
surface-container-lowest#f9fafb
surface-container-low#f3f5f8
surface-container#eff1f5
surface-container-high#e9ecef
surface-container-highest#e3e9f2
on-surface#000000
on-surface-variant#5a5f68
inverse-surface#111a2e
inverse-on-surface#f0f4f9
outline#a9acb6
outline-variant#c5c8d0
surface-tint#0c6997
primary#0c6997
on-primary#ffffff
primary-container#d4e6f5
on-primary-container#0c3d5c
inverse-primary#7ec8ff
secondary#0b1b34
on-secondary#ffffff
secondary-container#d9e3f0
on-secondary-container#0a1420
tertiary#d80027
on-tertiary#ffffff
tertiary-container#ffe6eb
on-tertiary-container#8b0015
error#d80027
on-error#ffffff
error-container#ffe6eb
on-error-container#8b0015
primary-fixed#d4e6f5
primary-fixed-dim#b8d9ed
on-primary-fixed#001d35
on-primary-fixed-variant#0a4d72
secondary-fixed#d9e3f0
secondary-fixed-dim#bccde0
on-secondary-fixed#000b15
on-secondary-fixed-variant#081428
tertiary-fixed#ffe6eb
tertiary-fixed-dim#ffc9d5
on-tertiary-fixed#3d0009
on-tertiary-fixed-variant#a00020
background#ffffff
on-background#000000
surface-variant#e9ecef

Typography

display
fontFamily: SuisseIntl · fontSize: 60px · fontWeight: 600 · lineHeight: 68px · letterSpacing: -0.02em
headline-lg
fontFamily: SuisseIntl · fontSize: 52px · fontWeight: 600 · lineHeight: 60px · letterSpacing: -0.015em
headline-md
fontFamily: SuisseIntl · fontSize: 36px · fontWeight: 600 · lineHeight: 44px · letterSpacing: -0.01em
title-lg
fontFamily: SuisseIntl · fontSize: 24px · fontWeight: 600 · lineHeight: 32px · letterSpacing: 0em
body-lg
fontFamily: SuisseIntl · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: SuisseIntl · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: SuisseIntl · fontSize: 14px · fontWeight: 500 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: SuisseIntl · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

Column is a nationally chartered bank platform engineered for developers and builders to create new financial services at scale. The design system embodies **Institutional Minimalism**—a refined aesthetic that marries the precision of fintech with the gravitas of traditional banking. The visual language prioritizes clarity over decoration: clean typography, restrained color palette (navy, white, and strategic accent blue), and generous whitespace create an environment where complex financial operations feel approachable and trustworthy. The brand personality is direct, competent, and human-centered; it speaks to builders with respect for their intelligence and time. Voice example: "Move, hold, and lend the dollar at scale—no legacy friction, no hidden complexity."

The UI philosophy rejects both the cold austerity of enterprise software and the playful informality of consumer apps. Instead, Column adopts a **precision-first** approach: every pixel serves a function, every interaction is predictable, and every color choice signals intent. The design system is built for extensibility—developers must be able to compose reliable, consistent interfaces across dozens of financial products without reinventing the wheel. Tone is confident but never arrogant; helpful but never patronizing. The system communicates through restraint: a single accent blue (#0c6997) on CTAs, a dark navy (#0b1b34) for secondary actions, and a red (#d80027) reserved exclusively for errors and critical warnings.

Colors

Column's color system operates on a principle of **semantic clarity**: every color carries institutional meaning. The primary accent blue (#0c6997) appears exclusively on primary call-to-action buttons, active states, and brand-critical interactive elements—it signals "this is the main action." The secondary navy (#0b1b34) grounds the interface with authority and is used for secondary buttons, headers, and structural elements that establish hierarchy. The error red (#d80027) is reserved strictly for destructive actions, validation failures, and critical alerts; it must never appear in decorative contexts. The surface stack (white #ffffff down to #e3e9f2) provides subtle depth without visual noise: use surface-container-lowest (#f9fafb) for card backgrounds, surface-container (#eff1f5) for

Typography

The type system uses SuisseIntl as the primary typeface—a geometric sans-serif that conveys both precision and approachability. Display (60px, 600 weight, -0.02em tracking) is reserved for hero headlines and major page titles; it must never be used in body copy or UI labels. Headline-lg (52px, 600 weight) anchors major sections; headline-md (36px, 600 weight) breaks up content hierarchically. Title-lg (24px, 600 weight) is the workhorse for card titles and subsection headers. Body-lg (18px, 400 weight) and body-md (16px, 400 weight) carry all narrative content; use body-lg for introductory paragraphs and body-md for standard body text. Label-md (14px, 500 weight, 0.01em tracking) is mandatory for button text, form labels, and UI microcopy; label-sm (12px, 500 weight, 0.02em tracking) for h

Layout

Column uses a 12-column grid system with a maximum container width of 1280px; this allows flexible layouts that scale from mobile (single column) to desktop (multi-column) without awkward breakpoints. The gutter between grid columns is 24px; maintain this spacing consistently across all breakpoints. Whitespace is semantic: use lg spacing (40px) to separate major sections, md spacing (24px) for component padding and section margins, sm spacing (12px) for internal component spacing, and xs spacing (4px) for micro-interactions like icon-to-text gaps. The page rhythm follows a 8px baseline grid—all measurements should be multiples of 8px (8, 16, 24, 32, 40, 48, 56, 64, etc.). Cards and containers use md spacing (24px) for internal padding; buttons use 12px vertical and 24px horizontal padding.

Elevation & Depth

Depth in Column is achieved through subtle shadows and strategic layering, never through color darkening or blur effects. The elevation system has three tiers: Level 1 (sm shadow: 0 1px 2px rgba(0, 0, 0, 0.06)) is used for cards, input fields, and subtle surface separation—it's barely perceptible and used for the majority of UI elements. Level 2 (md shadow: 0 3px 8px rgba(0, 0, 0, 0.15)) is applied to modals, dropdowns, and elevated cards that need to feel distinctly above the base surface; use this sparingly. Level 3 (lg shadow: 0 8px 24px rgba(0, 0, 0, 0.12)) is reserved for full-page overla

Shapes

Column adopts **Architectural Precision** as its shape philosophy: rounded corners are minimal and functional, never decorative. Buttons use lg radius (1rem / 16px) to signal interactivity and create a subtle softness that feels approachable without sacrificing professionalism. Cards and containers use md radius (0.75rem / 12px) for a slightly sharper appearance that reinforces structure and hierarchy. Input fields use DEFAULT radius (0.5rem / 8px) to feel compact and form-like. Badges and pills use full radius (9999px) to create a distinct visual category separate from structural elements. Th

Components

Action Elements Buttons are the primary interaction mechanism and must be immediately recognizable. Primary buttons (button-primary) use the accent blue (#0c6997) background with white text, 48px height, 12px vertical and 24px horizontal padding, and lg radius (16px). On hover, the background darkens to #0a5278 with a 200ms ease-out transition; on active/pressed, it darkens further to #083d56. Secondary buttons (button-secondary) use the navy background (#0b1b34) with the same dimensions and padding; hover state is #081428. Ghost buttons (button-ghost) use a semi-transparent white background (rgba(255, 255, 255, 0.5)) with dark text (#232730), useful for tertiary actions or light backgrounds; hover state increases opacity to rgba(255, 255, 255, 0.7). All buttons must have a minimum tou

Do's and Don'ts

**Do**

  • Do use the primary blue (#0c6997) exclusively for primary CTAs, active states, and focus indicators—never use it for decorative elements or secondary actions.
  • Do maintain the 8px baseline grid for all spacing measurements; every margin, padding, and dimension should be a multiple of 8px (8, 16, 24, 32, 40, 48, 56, 64, etc.).
  • Do apply sm elevation shadow (0 1px 2px rgba(0, 0, 0, 0.06)) to cards and surfaces by default; reserve md and lg shadows for modals and critical overlays only.
  • Do use SuisseIntl at 600 weight for all headlines and titles; never use 400 weight for headings—it reads as body text and breaks hierarchy.
  • Do ensure all interactive elements have a minimum touch target of 48×48px and a clear focus state with 3px box-shadow using primary color at 10% opacity.
  • Do left-align all body text and paragraph content; center alignment is forbidden except for hero headlines and single-line labels.
  • Do transition all color and shadow changes over 200ms using ease-out timing to create smooth, predictable interactions.
  • Do reserve the error red (#d80027) strictly for destructive actions, validation errors, and critical alerts; never use it for informational or success states.

**Don't**

  • Don't use gradients, blur effects, or glassmorphism—Column's aesthetic is flat, precise, and institutional; visual depth comes from shadows and layering only.
  • Don't mix font families within a single component or section; SuisseIntl is the primary typeface for all UI and body text.
  • Don't create custom button styles or colors; all buttons must use one of the defined button components (primary, secondary, or ghost) with their exact specifications.
  • Don't apply border-radius greater than 50% of an element's smallest dimension; a 40px-tall button should never have more than 20px radius.
  • Don't use center-aligned body text or paragraph content; it reduces readability and violates the institutional minimalism aesthetic.
  • Don't apply multiple shadows to a single element; each component should have exactly one shadow value from the elevation scale.
  • Don't use the secondary navy (#0b1b34) for primary CTAs or interactive highlights; it is reserved for secondary actions and structural elements only.
  • Don't forget to include focus states with 3px box-shadow on all interactive elements; keyboard navigation must be fully supported and visually distinct.