Skip to Content
Nio DBP Design System
Nio DBP · Design System · v1.0

The single source of truth for every Nio DBP experience.

A practical design system for the Nio Digital Business Platform — principles, brand, tokens, and components that let designers, developers, and partners ship consistent products fast.

4
Design principles
12
Core components
WCAG 2.2 AA
Accessibility
CSS · JSON
Token formats
01 · Get started

Design principles

Four commitments that guide every decision. When guidance is unclear or two patterns compete, the principles decide.

01

Simplicity first

Remove before you add. Every element earns its place; the shortest path to the task wins over the cleverest interface.

02

Accessibility by default

Designed for everyone from the start — AA contrast, full keyboard support, and clear focus are requirements, not options.

03

Consistent interactions

The same action behaves the same way everywhere. Shared components, states, and motion build trust and muscle memory.

04

Mobile-friendly

Layouts respond from 360px up. Touch targets stay at least 44px, and content reflows gracefully on every screen.

02 · Brand assets

Logos

The Nio DBP logo pairs the Primary “nio” with the Secondary “DBP” and the Digital Business Platform descriptor. Download the approved artwork and use the version that matches the background.

Nio DBP logo, full colour
Full colour · light backgroundsPNG
Nio DBP logo, white
Reversed · dark backgroundsPNG

Variations

One colour · Deep Navysingle-ink print, embossing
PNG
Reversed on Primarycampaign & hero surfaces
Reversed on Deep Navyfooters, dark mode

Clear space & minimum size

xxxx
RuleValue
Clear space (x)Height of the “n” on every side
Min. width · digital160 px
Min. width · print35 mm
Favicon / avatarUse “nio” only, 32 px+

Usage

✓ Do
Use full colour on white or light neutral backgrounds.
✓ Do
Use the reversed logo on Deep Navy, Primary, or photography.
✕ Don't
Don't place the full-colour logo on brand colours.
✕ Don't
Don't stretch, rotate, recolour, or add effects.

Partner co-brand & “Powered by Nio”

Nio DBP Credit Unions
Co-brand · lightpartner vertical example
PNG
Co-brand · dark
PNG
Powered by Nio
Powered by Niorequired in partner apps
PNG
Powered by Nio · dark
PNG
03 · Brand assets

Colors

Three brand colours carry the identity. Primary and Secondary drive calls to action; Deep Navy anchors text and dark surfaces. Neutrals do the rest.

Primary
Nio Violet
HEX
#3A2EAF
RGB
58 · 46 · 175
CMYK
88 · 89 · 0 · 0
Secondary
DBP Blue
HEX
#007FC4
RGB
0 · 127 · 196
CMYK
84 · 42 · 0 · 0
Deep Navy
Deep Navy
HEX
#0A1F44
RGB
10 · 31 · 68
CMYK
100 · 89 · 41 · 48

Interaction states

ColourDefaultHoverPressedSoft fillUsed for
Primary#3A2EAF#2F2491#261D78#ECEBFAMain CTA, links, focus, selection
Secondary#007FC4#006AA3#00507D#E3F1FASecond CTA, info, highlights
Deep Navy#0A1F44#142B57#061430#EEF1F6Headings, footers, dark surfaces

Neutrals

Ink
#0F1B33
--fg
Slate
#5B6478
--fg-muted
Border strong
#A0A8B8
--border-strong
Light Grey
#D7DBDE
--grey-200
Grey 50
#F7F8FA
--grey-50
White
#FFFFFF
--white

Status

Success
Solid#079455
Text#067647
Soft#ECFDF3
Payment sent
Warning
Solid#DC6803
Text#B54708
Soft#FFFAEB
Review needed
Error
Solid#D92D20
Text#B42318
Soft#FEF3F2
Failed
Info
Solid#007FC4
Text#00609A
Soft#E8F4FB
New update

Light & dark mode

Light modeDefault
Account overview

Balances update in real time. Review pending transfers before the 4 PM cut-off.

Primary CTASecondary CTAText link
Page #F7F8FASurface #FFFHeading #0A1F44Body #5B6478Primary #3A2EAFSecondary #007FC4
Dark modeNavy base
Account overview

Balances update in real time. Review pending transfers before the 4 PM cut-off.

Primary CTASecondary CTAText link
Page #0A1F44Surface #142B57Heading #FFFFFFBody #B4BDD0Primary #5B50D6Secondary #5FB3E2

In dark mode the brand colours shift one step lighter so buttons and links keep AA contrast against Deep Navy. Secondary CTAs switch to navy labels.

04 · Brand assets

Typography

Inter is the Nio DBP typeface for product, web, and print. JetBrains Mono is reserved for code, data, and labels.

Aa
InterPrimary typeface · Google Fonts · OFL
Regular 400 · body
Medium 500 · captions, labels
SemiBold 600 · H2–H5, buttons
Bold 700 · H1, emphasis
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 $€£ % & @ ( ) ? !
JetBrains MonoSecondary typeface for code snippets, token names, and tabular data.
Get JetBrains Mono

Type scale

H1 · Display36px / 700
line-height 1.1
Build once, ship everywhere
H228px / 600
line-height 1.15
Unified platform, consistent UX
H322px / 600
line-height 1.25
Components with documented states
H418px / 600
line-height 1.3
Section heading for dense forms
H516px / 600
line-height 1.4
Card title and list group label
H614px / 700 · caps
letter-spacing .06em
Overline / eyebrow
Body16px / 400
line-height 1.5
The body style carries the bulk of the interface. It stays at 16px for comfortable reading and meets contrast at AA on every surface in the palette.
Body · small14px / 400
line-height 1.5
Secondary copy, helper text, and table cells use the small body size.
Caption12px / 500
line-height 1.4
Captions, timestamps, and metadata
Mono13px / 500
JetBrains Mono
--token-name: value · $1,284.00
StyleSizeWeightLine heightLetter spacing
H136px700 Bold1.1−0.02em
H228px600 SemiBold1.15−0.01em
H322px600 SemiBold1.25−0.01em
H418px600 SemiBold1.30
H516px600 SemiBold1.40
H6 / Overline14px700 Bold1.40.06em
Body16px400 Regular1.50
Body small14px400 Regular1.50
Caption12px500 Medium1.40
05 · Brand assets

Icons

One line-icon set for the website and product, drawn on a 24 px grid with a 1.75 px stroke and rounded joins. Icons support labels; they never replace them.

Home
Search
User
Settings
Notifications
Mail
Phone
Calendar
Analytics
Payments
Security
Compliance
Download
Upload
Global
Documents12
Business
Approved
Menu
Next

Icon treatments

Line · defaultDeep Navy on light surfaces

Tinted tileFeature lists, cards

Solid PrimaryHero and campaign use

ReversedDark mode, footers

ContextSizeStrokeColour
Inline with text16 px1.75 pxInherit text colour
Buttons & inputs20 px1.75 pxInherit label colour
Navigation & standalone24 px1.75 pxDeep Navy / Slate
Feature tiles28 px in 64 px tile1.75 pxPrimary or Secondary on soft fill
06 · Brand assets

Marketing materials

Presentations, letterhead, and printed collateral follow the same tokens as the product UI. Use these page specs so every document reads as one brand.

Presentation 16:9 · 1920×1080px

Deep Navy section dividers, white content slides. Title 44px Bold, body 18px minimum.

Letterhead A4 & US Letter

Logo top-left at 42mm, 20mm margins. Footer rule in Light Grey with contact details at 9pt.

Report & one-pager A4 portrait

Full-bleed navy cover, 12-column body grid, 11pt body copy at 1.5 line height.

Business card 85×55mm · 3mm bleed

Navy reverse with the dark-background logo; front stays white with Indigo name type.

Email signature Max 320px wide

Logo at 140px, Arial fallback at 12px, Cool Gray details. No images beyond the logo.

Social & banners 1200×630px · 1080×1080px

Logo in one corner with clear space intact. Never place type over the mark.

DocumentPage sizeMarginsBody typeLogo
Presentation1920×1080px96px safe area18px minBottom-right, 180px
LetterheadA4 / Letter20mm10pt / 1.5Top-left, 42mm
ReportA4 portrait18mm11pt / 1.5Cover + footer
Business card85×55mm5mm8ptReverse, 30mm
Email signature320px wide—12px140px
✓ Do
  • Start from the approved template rather than a blank file.
  • Keep one accent colour per document.
  • Embed Inter, or fall back to Arial for external files.
  • Export print work as CMYK PDF/X-1a.
✕ Don't
  • Restyle headers or footers per document.
  • Stretch the logo to fill a corner.
  • Mix decorative fonts into brand documents.
  • Screenshot slides in place of vector exports.
07 · Foundations

Spacing system

A 4px base scale governs all padding, margins, and gaps. Sticking to the scale keeps vertical rhythm and component density consistent.

--sp-1 · 4px
--sp-2 · 8px
--sp-3 · 12px
--sp-4 · 16px
--sp-6 · 24px
--sp-7 · 32px
--sp-9 · 48px
--sp-10 · 64px

Inside components

8–16px between related controls; 4px for tight icon/label pairs.

Between sections

24–48px to separate groups; 64px+ for major page sections.

Radius

4 / 8 / 12 / 16px. Inputs & buttons use 12px; cards 16px; pills 999px.

01 · Foundations

Layout & grid

A responsive 12-column grid structures every page. Columns flex; gutters and page margins stay fixed to the spacing scale.

1
2
3
4
5
6
7
8
9
10
11
12
BreakpointMin widthColumnsGutterMargin
Mobile · sm0–639px416px16px
Tablet · md640px820px24px
Desktop · lg1024px1224px32px
Wide · xl1440px1224pxauto · max container 1200px
09 · Components

Core components

The building blocks of every Nio DBP screen. Each is shown live with its variants — copy the markup and the scoped classes below.

Buttons

Six variants × three sizes. Primary for the main action, one per view.

Text input & textarea

Recipient *We'll never share this address.
Notes

Dropdown & choices

Account

Badges

Default Active Paid Pending Failed

Tooltip & navigation

Send by 4 PM ET to clear today

Alerts

i
Heads upStatements for April are now available.
✓
Wire sent$12,400.00 to Northwind Ltd. cleared.
!
Cut-off approachingSame-day wires close in 35 minutes.
✕
Payment failedInsufficient funds in the operating account.

Card & table

PayeeStatusAmount
Northwind Ltd.Paid$12,400.00
Atlas FreightPending$3,275.50
Civic Power Co.Failed$842.10

Modal

Confirm wire transfer
You're sending $12,400.00 to Northwind Ltd. This action can't be undone after 4 PM ET.
ComponentVariantsAccessibility requirement
ButtonPrimary, secondary, tertiary, danger, ghost, sizes sm/md/lgReal ‹button›; visible focus ring; label or aria-label.
Text inputDefault, with icon, prefix, error, disabledBound ‹label›; aria-invalid + described error.
SelectNative, sizesNative control or full ARIA listbox + keyboard.
Checkbox / radioDefault, checked, indeterminate, disabledGrouped with fieldset/legend.
SwitchOn, off, disabledrole="switch" + aria-checked.
ModalDialog, confirm, sheetFocus trap; Esc closes; aria-modal; return focus.
TooltipTop / bottom / left / rightKeyboard-reachable; aria-describedby.
AlertInfo, success, warning, dangerrole="status" or alert for urgency.
08 · Components

Component states

Every interactive element ships the same set of states so behaviour is predictable across the platform.

Button

Default
Hover
Focus
Active
Disabled
Loading

Text input

Default
Focus
Error
Disabled
11 · Reference

Accessibility

Nio DBP targets WCAG 2.2 AA. Accessibility is a requirement for every component and every release.

Color contrast

Text ≥ 4.5:1, large text & UI ≥ 3:1. Never rely on color alone — pair with text or an icon.

Keyboard

Every action reachable and operable by keyboard, in a logical order, with no traps.

Focus indicators

A visible 4px focus ring on every interactive element. Never remove outlines without a replacement.

Screen readers

Semantic HTML first; ARIA only to fill gaps. Label every control and announce state changes.

Touch targets

Minimum 44×44px hit area on touch, with at least 8px between adjacent targets.

Motion

Respect prefers-reduced-motion; keep essential motion under 5s and non-looping.

PairRatioResult
Deep Navy #0A1F44 on White16.3:1AAA
Primary #3A2EAF on White9.6:1AAA
White on Primary #3A2EAF9.6:1AAA
Secondary #007FC4 on White4.3:1Large / bold text, UI
White on Secondary #007FC44.3:1Bold labels 14 pt+
Secondary 600 #006AA3 on White5.8:1AA text
Dark mode · #A9A2F0 link on Deep Navy7.1:1AAA
Dark mode · Navy on #5FB3E27.0:1AAA
12 · Reference

Design tokens

Design decisions stored as reusable values, shared one-to-one between design and code. CSS custom properties are the runtime source of truth; JSON feeds the build.

CSS custom properties

:root {
  --color-primary:        #3A2EAF;
  --color-primary-hover:  #2F2491;
  --color-secondary:      #007FC4;
  --color-secondary-hover:#006AA3;
  --color-navy:           #0A1F44;
  --color-success:        #079455;
  --color-warning:        #DC6803;
  --color-error:          #D92D20;
  --color-info:           #007FC4;
  --color-bg:             #F7F8FA;
  --color-text:           #0F1B33;
  --space-md:             16px;
  --radius:               8px;
  --font-family:          'Inter', sans-serif;
}
[data-theme="dark"] {
  --color-bg:        #0A1F44;
  --color-surface:   #142B57;
  --color-text:      #FFFFFF;
  --color-primary:   #5B50D6;
  --color-secondary: #5FB3E2;
}

tokens.json

{
  "color-primary":   "#3A2EAF",
  "color-secondary": "#007FC4",
  "color-navy":      "#0A1F44",
  "color-success":   "#079455",
  "color-warning":   "#DC6803",
  "color-error":     "#D92D20",
  "color-info":      "#007FC4",
  "color-bg":        "#F7F8FA",
  "color-text":      "#0F1B33",
  "spacing-md":      "16px",
  "border-radius":   "8px",
  "font-size-body":  "16px"
}
TokenValuePurpose
color-primary#3A2EAFMain CTA, links, focus, selection.
color-secondary#007FC4Second CTA, info, highlights.
color-navy#0A1F44Headings, footers, dark surfaces.
color-success / warning / error#079455 · #DC6803 · #D92D20Status only, never decoration.
spacing-md16pxDefault gap between elements.
border-radius8pxBase corner radius.
font-size-body16pxDefault body text size.
font-familyInterPrimary typeface.
12 · Documentation

For developers

How to consume the system in the Nio DBP React app and elsewhere. Reference tokens by name, lean on semantic HTML, and never fork a component.

Use the tokens & classes

import "@nio/tokens/css";

.card {
  background: var(--color-bg);
  color:      var(--color-text);
  padding:    var(--space-md);
  border-radius: var(--radius);
}

React component

import { Button, Input } from "@nio/react";

export function Pay() {
  return (
    ‹form›
      ‹Input label="Amount" prefix="$" /›
      ‹Button variant="primary"›Send‹/Button›
    ‹/form›
  );
}
✓ Do
  • Reference tokens by name — never a raw hex or px.
  • Use semantic HTML: ‹button›, ‹a›, ‹table›.
  • Run an accessibility check in CI.
  • Use tabular numerals for money.
✕ Don't
  • Fork or copy-paste a component to tweak it.
  • Hard-code colors, spacing, or font sizes.
  • Remove focus outlines without a replacement.
  • Build a new pattern when one already exists.
Design System·v1.0·© 2026 Nio DBP
Powered by Nio