← 返回全部设计

Wise

Wise金融科技与加密货币

国际转账。明亮绿色点缀,友好清晰

实时预览

配色 Colors · 22

primary
#9fe870
on-primary
#0e0f0c
primary-active
#cdffad
primary-neutral
#c5edab
primary-pale
#e2f6d5
ink
#0e0f0c
ink-deep
#163300
body
#454745
mute
#868685
canvas
#ffffff
canvas-soft
#e8ebe6
positive
#2ead4b
positive-deep
#054d28
warning
#ffd11a
warning-deep
#b86700
warning-content
#4a3b1c
negative
#d03238
negative-deep
#a72027
negative-darkest
#a7000d
negative-bg
#320707
accent-orange
#ffc091
accent-cyan
#38c8ff

字体阶梯 Typography · 14

display-mega
126px · 900
永远相信美好的事情即将发生 Ag
display-xxl
96px · 900
永远相信美好的事情即将发生 Ag
display-xl
64px · 900
永远相信美好的事情即将发生 Ag
display-lg
47px · 400
永远相信美好的事情即将发生 Ag
display-md
40px · 900
永远相信美好的事情即将发生 Ag
display-sm
32px · 600
永远相信美好的事情即将发生 Ag
display-xs
24px · 600
永远相信美好的事情即将发生 Ag
body-lg
20px · 400
永远相信美好的事情即将发生 Ag
body-md
16px · 400
永远相信美好的事情即将发生 Ag
body-md-strong
16px · 600
永远相信美好的事情即将发生 Ag
body-sm
14px · 400
永远相信美好的事情即将发生 Ag
body-sm-strong
14px · 600
永远相信美好的事情即将发生 Ag
caption
12px · 400
永远相信美好的事情即将发生 Ag
button-md
16px · 600
永远相信美好的事情即将发生 Ag

圆角 Radius · 7

none
0px
sm
8px
md
12px
lg
16px
xl
24px
pill
9999px
full
9999px

间距 Spacing · 8

xxs
2px
xs
4px
sm
8px
md
12px
lg
16px
xl
24px
2xl
32px
3xl
48px

按钮预览 Buttons

标签 Badge

组件规范 Components · 28

nav-bar
backgroundColor
#ffffff
textColor
#0e0f0c
typography
{typography.body-sm-strong}
padding
{spacing.md} {spacing.xl}
nav-link
textColor
#0e0f0c
typography
{typography.body-sm-strong}
button-primary
backgroundColor
#9fe870
textColor
#0e0f0c
typography
{typography.button-md}
rounded
24px
padding
{spacing.md} {spacing.xl}
button-secondary
backgroundColor
#e8ebe6
textColor
#0e0f0c
typography
{typography.button-md}
rounded
24px
padding
{spacing.md} {spacing.xl}
button-tertiary
backgroundColor
#ffffff
textColor
#0e0f0c
borderColor
#0e0f0c
typography
{typography.button-md}
rounded
24px
padding
{spacing.md} {spacing.xl}
button-icon-circular
backgroundColor
#ffffff
textColor
#0e0f0c
rounded
9999px
padding
8px
text-input
backgroundColor
#ffffff
textColor
#0e0f0c
borderColor
#0e0f0c
typography
{typography.body-md}
rounded
12px
padding
{spacing.md} {spacing.lg}
card-content
backgroundColor
#ffffff
textColor
#0e0f0c
typography
{typography.body-md}
rounded
24px
padding
24px
card-feature-sage
backgroundColor
#e8ebe6
textColor
#0e0f0c
typography
{typography.body-md}
rounded
24px
padding
24px
card-feature-green
backgroundColor
#e2f6d5
textColor
#0e0f0c
typography
{typography.body-md}
rounded
24px
padding
24px
card-feature-dark
backgroundColor
#0e0f0c
textColor
#9fe870
typography
{typography.body-md}
rounded
24px
padding
24px
hero-band
backgroundColor
#e8ebe6
textColor
#0e0f0c
typography
{typography.display-mega}
padding
{spacing.3xl} {spacing.xl}
hero-band-dark
backgroundColor
#0e0f0c
textColor
#9fe870
typography
{typography.display-mega}
padding
{spacing.3xl} {spacing.xl}
content-band
backgroundColor
#ffffff
textColor
#0e0f0c
typography
{typography.display-md}
padding
{spacing.3xl} {spacing.xl}
currency-converter-card
backgroundColor
#ffffff
textColor
#0e0f0c
borderColor
#0e0f0c
typography
{typography.body-md}
rounded
24px
padding
24px
badge-positive
backgroundColor
#e2f6d5
textColor
#054d28
typography
{typography.body-sm-strong}
rounded
9999px
padding
{spacing.xs} {spacing.md}
badge-negative
backgroundColor
#320707
textColor
#0e0f0c
typography
{typography.body-sm-strong}
rounded
9999px
padding
{spacing.xs} {spacing.md}
footer
backgroundColor
#0e0f0c
textColor
#e8ebe6
typography
{typography.body-sm}
padding
{spacing.3xl} {spacing.xl}
ex-pricing-tier
description
Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
backgroundColor
#e8ebe6
textColor
#0e0f0c
borderColor
#868685
rounded
24px
padding
24px
ex-pricing-tier-featured
description
Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
backgroundColor
#0e0f0c
textColor
#0e0f0c
rounded
24px
padding
24px
ex-product-selector
description
What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
backgroundColor
#e8ebe6
rounded
24px
padding
24px
ex-cart-drawer
description
Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
backgroundColor
#ffffff
rounded
24px
padding
24px
item-divider
#e8ebe6
ex-app-shell-row
description
Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
backgroundColor
#ffffff
activeIndicator
#9fe870
rounded
8px
padding
{spacing.md} {spacing.lg}
ex-data-table-cell
description
Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
headerBackground
#e8ebe6
headerTypography
{typography.caption}
bodyTypography
{typography.body-sm}
cellPadding
{spacing.md} {spacing.lg}
rowBorder
#e8ebe6
ex-auth-form-card
description
Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
backgroundColor
#e8ebe6
rounded
24px
padding
24px
ex-modal-card
description
Modal dialog surface — same chrome as feature-card with elevated shadow.
backgroundColor
#ffffff
rounded
24px
padding
24px
ex-empty-state-card
description
Empty-state illustration frame.
backgroundColor
#e8ebe6
rounded
24px
padding
48px
captionTypography
{typography.body-md}
ex-toast
description
Toast notification surface — feature-card shape + medium shadow.
backgroundColor
#ffffff
rounded
24px
padding
{spacing.md} {spacing.lg}
typography
{typography.body-sm}

设计规范


version: alpha name: Wise-Inspired-design-analysis description: An inspired interpretation of Wise's design language — a global money-transfer brand whose surface combines an unusually heavy near-black display sans (weight 900 at 64–126 px) with a vivid lime-green brand accent, sage-tinted surface neutrals, and rounded white cards on a pale green-tinted canvas; the whole system reads more like a Scandinavian fintech magazine than a bank.

colors: primary: "#9fe870" on-primary: "#0e0f0c" primary-active: "#cdffad" primary-neutral: "#c5edab" primary-pale: "#e2f6d5" ink: "#0e0f0c" ink-deep: "#163300" body: "#454745" mute: "#868685" canvas: "#ffffff" canvas-soft: "#e8ebe6" positive: "#2ead4b" positive-deep: "#054d28" warning: "#ffd11a" warning-deep: "#b86700" warning-content: "#4a3b1c" negative: "#d03238" negative-deep: "#a72027" negative-darkest: "#a7000d" negative-bg: "#320707" accent-orange: "#ffc091" accent-cyan: "#38c8ff"

typography: display-mega: fontFamily: Wise Sans, Inter, system-ui, -apple-system, sans-serif fontSize: 126px fontWeight: 900 lineHeight: 107.1px display-xxl: fontFamily: Wise Sans, Inter, system-ui, sans-serif fontSize: 96px fontWeight: 900 lineHeight: 81.6px display-xl: fontFamily: Wise Sans, Inter, system-ui, sans-serif fontSize: 64px fontWeight: 900 lineHeight: 54.4px display-lg: fontFamily: Wise Sans, Inter, system-ui, sans-serif fontSize: 47px fontWeight: 400 lineHeight: 70.5px letterSpacing: -0.108px display-md: fontFamily: Wise Sans, Inter, system-ui, sans-serif fontSize: 40px fontWeight: 900 lineHeight: 34px display-sm: fontFamily: Inter, system-ui, sans-serif fontSize: 32px fontWeight: 600 lineHeight: 38.4px letterSpacing: -0.96px display-xs: fontFamily: Inter, system-ui, sans-serif fontSize: 24px fontWeight: 600 lineHeight: 31.2px letterSpacing: -0.48px body-lg: fontFamily: Inter, system-ui, sans-serif fontSize: 20px fontWeight: 400 lineHeight: 30px body-md: fontFamily: Inter, system-ui, sans-serif fontSize: 16px fontWeight: 400 lineHeight: 24px body-md-strong: fontFamily: Inter, system-ui, sans-serif fontSize: 16px fontWeight: 600 lineHeight: 24px body-sm: fontFamily: Inter, system-ui, sans-serif fontSize: 14px fontWeight: 400 lineHeight: 20px body-sm-strong: fontFamily: Inter, system-ui, sans-serif fontSize: 14px fontWeight: 600 lineHeight: 20px caption: fontFamily: Inter, system-ui, sans-serif fontSize: 12px fontWeight: 400 lineHeight: 16px button-md: fontFamily: Inter, system-ui, sans-serif fontSize: 16px fontWeight: 600 lineHeight: 24px

rounded: none: 0px sm: 8px md: 12px lg: 16px xl: 24px pill: 9999px full: 9999px

spacing: xxs: 2px xs: 4px sm: 8px md: 12px lg: 16px xl: 24px 2xl: 32px 3xl: 48px

components: nav-bar: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" typography: "{typography.body-sm-strong}" padding: "{spacing.md} {spacing.xl}" nav-link: textColor: "{colors.ink}" typography: "{typography.body-sm-strong}" button-primary: backgroundColor: "{colors.primary}" textColor: "{colors.on-primary}" typography: "{typography.button-md}" rounded: "{rounded.xl}" padding: "{spacing.md} {spacing.xl}" button-secondary: backgroundColor: "{colors.canvas-soft}" textColor: "{colors.ink}" typography: "{typography.button-md}" rounded: "{rounded.xl}" padding: "{spacing.md} {spacing.xl}" button-tertiary: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" borderColor: "{colors.ink}" typography: "{typography.button-md}" rounded: "{rounded.xl}" padding: "{spacing.md} {spacing.xl}" button-icon-circular: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" rounded: "{rounded.full}" padding: "{spacing.sm}" text-input: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" borderColor: "{colors.ink}" typography: "{typography.body-md}" rounded: "{rounded.md}" padding: "{spacing.md} {spacing.lg}" card-content: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" typography: "{typography.body-md}" rounded: "{rounded.xl}" padding: "{spacing.xl}" card-feature-sage: backgroundColor: "{colors.canvas-soft}" textColor: "{colors.ink}" typography: "{typography.body-md}" rounded: "{rounded.xl}" padding: "{spacing.xl}" card-feature-green: backgroundColor: "{colors.primary-pale}" textColor: "{colors.ink}" typography: "{typography.body-md}" rounded: "{rounded.xl}" padding: "{spacing.xl}" card-feature-dark: backgroundColor: "{colors.ink}" textColor: "{colors.primary}" typography: "{typography.body-md}" rounded: "{rounded.xl}" padding: "{spacing.xl}" hero-band: backgroundColor: "{colors.canvas-soft}" textColor: "{colors.ink}" typography: "{typography.display-mega}" padding: "{spacing.3xl} {spacing.xl}" hero-band-dark: backgroundColor: "{colors.ink}" textColor: "{colors.primary}" typography: "{typography.display-mega}" padding: "{spacing.3xl} {spacing.xl}" content-band: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" typography: "{typography.display-md}" padding: "{spacing.3xl} {spacing.xl}" currency-converter-card: backgroundColor: "{colors.canvas}" textColor: "{colors.ink}" borderColor: "{colors.ink}" typography: "{typography.body-md}" rounded: "{rounded.xl}" padding: "{spacing.xl}" badge-positive: backgroundColor: "{colors.primary-pale}" textColor: "{colors.positive-deep}" typography: "{typography.body-sm-strong}" rounded: "{rounded.pill}" padding: "{spacing.xs} {spacing.md}" badge-negative: backgroundColor: "{colors.negative-bg}" textColor: "{colors.on-primary}" typography: "{typography.body-sm-strong}" rounded: "{rounded.pill}" padding: "{spacing.xs} {spacing.md}" footer: backgroundColor: "{colors.ink}" textColor: "{colors.canvas-soft}" typography: "{typography.body-sm}" padding: "{spacing.3xl} {spacing.xl}"

─── Examples (illustrative) — auto-derived; resolve any TO_FILL markers below ───

ex-pricing-tier: description: "Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface." backgroundColor: "{colors.canvas-soft}" textColor: "{colors.ink}" borderColor: "{colors.mute}" rounded: "{rounded.xl}" padding: "{spacing.xl}" ex-pricing-tier-featured: description: "Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode)." backgroundColor: "{colors.ink}" textColor: "{colors.on-primary}" rounded: "{rounded.xl}" padding: "{spacing.xl}" ex-product-selector: description: "What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery)." backgroundColor: "{colors.canvas-soft}" rounded: "{rounded.xl}" padding: "{spacing.xl}" ex-cart-drawer: description: "Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart)." backgroundColor: "{colors.canvas}" rounded: "{rounded.xl}" padding: "{spacing.xl}" item-divider: "{colors.canvas-soft}" ex-app-shell-row: description: "Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator." backgroundColor: "{colors.canvas}" activeIndicator: "{colors.primary}" rounded: "{rounded.sm}" padding: "{spacing.md} {spacing.lg}" ex-data-table-cell: description: "Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm." headerBackground: "{colors.canvas-soft}" headerTypography: "{typography.caption}" bodyTypography: "{typography.body-sm}" cellPadding: "{spacing.md} {spacing.lg}" rowBorder: "{colors.canvas-soft}" ex-auth-form-card: description: "Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside." backgroundColor: "{colors.canvas-soft}" rounded: "{rounded.xl}" padding: "{spacing.xl}" ex-modal-card: description: "Modal dialog surface — same chrome as feature-card with elevated shadow." backgroundColor: "{colors.canvas}" rounded: "{rounded.xl}" padding: "{spacing.xl}" ex-empty-state-card: description: "Empty-state illustration frame." backgroundColor: "{colors.canvas-soft}" rounded: "{rounded.xl}" padding: "{spacing.3xl}" captionTypography: "{typography.body-md}" ex-toast: description: "Toast notification surface — feature-card shape + medium shadow." backgroundColor: "{colors.canvas}" rounded: "{rounded.xl}" padding: "{spacing.md} {spacing.lg}" typography: "{typography.body-sm}"


Overview

Wise — the global money-transfer brand — wears its identity in a single signature pairing: a vivid lime-green {colors.primary} (#9fe870) used as the CTA pill and brand accent, set against a pale sage-tinted canvas {colors.canvas-soft} (#e8ebe6) that runs across the hero band, and a near-black ink {colors.ink} (#0e0f0c) with a hint of warmth from the brand's underlying olive cast. The brand reads more like a calm Scandinavian magazine than a bank — generous whitespace, large rounded cards, and an unusually heavy display sans set at weight 900 carrying every hero headline.

Display typography is the second decisive voice. The proprietary Wise Sans family carries hero displays at weight 900 in scales from 64 px up to 126 px on the largest hero. The brand pairs Wise Sans 900 with Inter at weight 600 for sub-displays — the contrast between the chunky proprietary face and Inter's neutrality creates a particular hierarchy: Wise Sans for the brand moment, Inter for everything else.

Cards are universally pill-rounded — {rounded.xl} 24 px is the brand's signature card radius. Buttons take the same 24 px pill-rectangle shape. The brand never uses sharp corners on UI elements; the visual softness is part of the friendly fintech voice.

Key Characteristics:

  • A single lime-green CTA accent {colors.primary} (#9fe870) — the brand's universal primary action color. No second accent.
  • Two-face display typography — Wise Sans (proprietary, weight 900, hero scale) + Inter (weight 600, sub-display scale). The contrast is the brand's typographic story.
  • {rounded.xl} 24 px is the canonical card and button radius. Generous, friendly.
  • Sage-tinted canvas {colors.canvas-soft} (#e8ebe6) is the brand's hero surface; white {colors.canvas} is reserved for cards within the sage band.
  • A full semantic palette: positive green family, warning yellow family, negative red family — each documented with content / hover / active variants for in-product use.
  • Currency-converter card on the hero — the brand's signature interactive component, hosting from/to amount inputs.

Colors

Brand & Accent

  • Wise Green ({colors.primary}#9fe870): The brand's universal CTA color. Every primary button, every "Send money" pill, the brand's logo accent.
  • Wise Green Hover ({colors.primary-active}#cdffad): The lighter green for active state.
  • Wise Green Neutral ({colors.primary-neutral}#c5edab): A mid-saturation green used as a neutral active fill.
  • Wise Green Pale ({colors.primary-pale}#e2f6d5): The lightest green for soft surface tints / badge backgrounds.

Surface

  • Canvas ({colors.canvas}#ffffff): Pure white for card interiors.
  • Canvas Soft ({colors.canvas-soft}#e8ebe6): The sage-tinted page background. Defining mood of the brand.

Text

  • Ink ({colors.ink}#0e0f0c): Near-black with a hint of olive warmth — the brand's default text and headings color.
  • Ink Deep ({colors.ink-deep}#163300): A deep forest-green ink used on positive-state surfaces.
  • Body ({colors.body}#454745): Secondary body text.
  • Mute ({colors.mute}#868685): Lowest-priority text — captions, placeholder, fine print.

Semantic

  • Positive ({colors.positive}#2ead4b): Success indicator.
  • Positive Deep ({colors.positive-deep}#054d28): Pressed positive state.
  • Warning ({colors.warning}#ffd11a): Caution indicator.
  • Warning Deep ({colors.warning-deep}#b86700): Pressed warning.
  • Warning Content ({colors.warning-content}#4a3b1c): Text on warning surfaces.
  • Negative ({colors.negative}#d03238): Destructive / error red.
  • Negative Deep ({colors.negative-deep}#a72027): Pressed destructive.
  • Negative Darkest ({colors.negative-darkest}#a7000d): Highest-emphasis destructive text.
  • Negative Bg ({colors.negative-bg}#320707): Dark maroon for destructive callout backgrounds.

Brand Accent — Tertiary

  • Accent Orange ({colors.accent-orange}#ffc091): Bright peach used inside illustrative content / pricing cards.
  • Accent Cyan ({colors.accent-cyan}#38c8ff): Bright sky-blue used as a tertiary illustration accent.

Typography

Font Family

Two faces ladder the system:

  1. Wise Sans — proprietary geometric sans with an unusually heavy weight 900 used for all hero displays. The face is the brand's typographic signature. Always at weight 900, never lighter on the marketing surface.
  2. Inter — used for sub-displays (weight 600), all body, and form labels. Loaded with font-feature-settings: "calt" for contextual alternates.

Hierarchy

TokenSizeWeightLine HeightLetter SpacingUse
{typography.display-mega}126px900107.1px0Hero stencil at maximum scale.
{typography.display-xxl}96px90081.6px0Sub-hero scale.
{typography.display-xl}64px90054.4px0Standard hero headline.
{typography.display-lg}47px40070.5px-0.108pxLighter sub-display.
{typography.display-md}40px90034px0Section / card headlines.
{typography.display-sm}32px60038.4px-0.96pxInter-rendered section headings.
{typography.display-xs}24px60031.2px-0.48pxSub-section displays.
{typography.body-lg}20px40030px0Lead paragraphs.
{typography.body-md}16px40024px0Default body.
{typography.body-md-strong}16px60024px0Bold inline body.
{typography.body-sm}14px40020px0Secondary body.
{typography.body-sm-strong}14px60020px0Bold caption / nav-link.
{typography.caption}12px40016px0Fine print.
{typography.button-md}16px60024px0Button label.

Principles

  • Weight 900 for hero, weight 600 for everything else. The brand's display ceiling is full-black weight; everything below is semibold.
  • Wise Sans for the brand voice, Inter for utility. Strict role separation.

Note on Font Substitutes

Wise Sans is proprietary. Open-source substitutes:

  • DisplayInter at weight 900 or Manrope at weight 800 / 900 captures the geometric heaviness. Geist weight 800 is a passable second choice.
  • Sub-display + bodyInter is the brand's actual second face.

Layout

Spacing System

  • Base unit: 4 px.
  • Tokens: {spacing.xxs} 2 px · {spacing.xs} 4 px · {spacing.sm} 8 px · {spacing.md} 12 px · {spacing.lg} 16 px · {spacing.xl} 24 px · {spacing.2xl} 32 px · {spacing.3xl} 48 px.
  • Section padding: bands use {spacing.3xl} 48 px top/bottom on desktop.
  • Card interior: cards at {spacing.xl} 24 px.

Grid & Container

  • Marketing container centres at ~1200 px.
  • Hero: split layout (headline left, currency-converter card right) at desktop; stacked at mobile.
  • Feature grids: 2-up / 3-up at desktop.

Responsive Strategy

Breakpoints

NameWidthKey Changes
Mobile< 768pxHero stacks; converter card full-width below headline; grids 1-up.
Tablet768–1023pxGrids 2-up.
Desktop≥ 1024pxHero split; full grids.

Touch Targets

Buttons render ~48 px tall (12 vertical padding + 24 line). WCAG AAA at all widths.

Image Behavior

Photography is sparse; the brand prefers illustrative SVGs and product mockups inside cards. Country flag thumbnails appear inside currency rows.

Elevation & Depth

LevelTreatmentUse
Level 0 — FlatNo shadow, no border.Default.
Level 1 — Hairline on Dark1 px solid {colors.ink} border.Tertiary outline buttons, form inputs.
Level 2 — Soft CardImplicit Level 0 white card sitting on sage canvas — the surface contrast IS the elevation.Cards on the sage hero band.

The brand uses surface contrast ({colors.canvas-soft} background vs {colors.canvas} cards) as the primary elevation cue.

Shapes

Border Radius Scale

TokenValueUse
{rounded.none}0pxFull-bleed bands.
{rounded.sm}8pxInline pills, small badges.
{rounded.md}12pxForm inputs, smaller chrome.
{rounded.lg}16pxMid-size cards.
{rounded.xl}24pxThe brand's canonical button + card radius.
{rounded.pill}9999pxStatus pills and full-radius accents.
{rounded.full}9999pxCircular icon containers.

Components

Buttons

button-primary — the lime-green CTA pill.

  • Background {colors.primary}, text {colors.on-primary}, label {typography.button-md}, padding {spacing.md} {spacing.xl}, shape {rounded.xl} 24 px.

button-secondary — the sage-tinted secondary.

  • Background {colors.canvas-soft}, text {colors.ink}, same typography / padding / shape.

button-tertiary — the white outline tertiary.

  • Background {colors.canvas}, text {colors.ink}, 1 px solid {colors.ink} border, same typography / padding / shape.

button-icon-circular — the circular icon button.

  • Background {colors.canvas}, ink icon, shape {rounded.full}.

Cards & Containers

card-content — the default white card.

  • Background {colors.canvas}, text {colors.ink}, padding {spacing.xl}, shape {rounded.xl}. No border, sits on sage canvas.

card-feature-sage — the sage-tinted feature card.

  • Background {colors.canvas-soft}, text {colors.ink}, padding {spacing.xl}, shape {rounded.xl}.

card-feature-green — the soft-green feature card.

  • Background {colors.primary-pale}, text {colors.ink}, padding {spacing.xl}, shape {rounded.xl}.

card-feature-dark — the polarity-flipped dark card with green text.

  • Background {colors.ink}, text {colors.primary} (Wise green!), padding {spacing.xl}, shape {rounded.xl}. Used for promotional moments.

currency-converter-card — the brand's signature interactive widget.

  • Background {colors.canvas}, text {colors.ink}, 1 px solid {colors.ink} border, padding {spacing.xl}, shape {rounded.xl}. Hosts from/to amount inputs + currency selectors.

Inputs & Forms

text-input — the canonical text input.

  • Background {colors.canvas}, text {colors.ink}, 1 px solid {colors.ink} border, body in {typography.body-md}, padding {spacing.md} {spacing.lg}, shape {rounded.md}.

Navigation

nav-bar — the sticky top nav.

  • Background {colors.canvas}, text {colors.ink}, padding {spacing.md} {spacing.xl}.

nav-link — link items inside nav.

  • Text {colors.ink}, set in {typography.body-sm-strong}.

footer — the dark footer band.

  • Background {colors.ink}, text {colors.canvas-soft}, padding {spacing.3xl} {spacing.xl}. Body in {typography.body-sm}.

Signature Components

hero-band — the sage-canvas hero band.

  • Background {colors.canvas-soft}, text {colors.ink}, padding {spacing.3xl} {spacing.xl}. Headline in {typography.display-mega} (Wise Sans weight 900).

hero-band-dark — the polarity-flipped dark hero.

  • Background {colors.ink}, text {colors.primary} (Wise green headline on near-black!), same padding / scale.

content-band — the white content band that follows hero.

  • Background {colors.canvas}, text {colors.ink}, padding {spacing.3xl} {spacing.xl}. Section headline in {typography.display-md}.

badge-positive — the positive status pill.

  • Background {colors.primary-pale}, text {colors.positive-deep}, body in {typography.body-sm-strong}, padding {spacing.xs} {spacing.md}, shape {rounded.pill}.

badge-negative — the negative status pill.

  • Background {colors.negative-bg}, text white, body in {typography.body-sm-strong}, padding {spacing.xs} {spacing.md}, shape {rounded.pill}.

Examples (illustrative)

Auto-derived kit-mirror demonstration surfaces (scripts/derive-examples-block.mjs). Each ex-* entry references brand-native primitives so downstream consumers (/preview-design, /generate-kit) re-skin the same 10 surfaces consistently. TO_FILL markers indicate missing primitives — resolve in the LLM judgment pass.

ex-pricing-tier — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.

  • Properties: backgroundColor, textColor, borderColor, rounded, padding

ex-pricing-tier-featured — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).

  • Properties: backgroundColor, textColor, rounded, padding

ex-product-selector — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).

  • Properties: backgroundColor, rounded, padding

ex-cart-drawer — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).

  • Properties: backgroundColor, rounded, padding, item-divider

ex-app-shell-row — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.

  • Properties: backgroundColor, activeIndicator, rounded, padding

ex-data-table-cell — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.

  • Properties: headerBackground, headerTypography, bodyTypography, cellPadding, rowBorder

ex-auth-form-card — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.

  • Properties: backgroundColor, rounded, padding

ex-modal-card — Modal dialog surface — same chrome as feature-card with elevated shadow.

  • Properties: backgroundColor, rounded, padding

ex-empty-state-card — Empty-state illustration frame.

  • Properties: backgroundColor, rounded, padding, captionTypography

ex-toast — Toast notification surface — feature-card shape + medium shadow.

  • Properties: backgroundColor, rounded, padding, typography

Do's and Don'ts

Do

  • Reserve {colors.primary} Wise green for every primary CTA. The lime-green pill IS the brand's conversion signature.
  • Set hero headlines in {typography.display-mega} / {typography.display-xl} Wise Sans weight 900. Never lighter.
  • Use {rounded.xl} 24 px for buttons and cards. The generous radius is the brand's friendliness signature.
  • Cycle page surfaces in {colors.canvas-soft} sage canvas → {colors.canvas} white cards. Surface contrast carries elevation.
  • Use the full semantic palette (positive / warning / negative) for in-product status — never repurpose Wise green as success indicator since it IS the brand CTA.

Don't

  • Don't introduce a second brand accent. Wise green is the sole identity colour.
  • Don't render the hero in weight 700 or lighter. The brand's display weight is 900.
  • Don't render CTAs as sharp rectangles. The 24 px pill geometry is non-negotiable.
  • Don't pair the green CTA with a green background. The brand always sits Wise green on neutral surfaces (sage / white / ink).
  • Don't replace Wise Sans with a generic geometric sans for hero typography — the proprietary face IS the brand's voice.