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
#010133
RGB
1 · 1 · 51
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#010133#14145C#000020#ECECF5Headings, 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 #010133 on White19.9: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 Navy8.7:1AAA
Dark mode · Navy on #5FB3E28.6: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#010133Headings, 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›
  );
}

The prompt

Copy everything in the box below.

# Nio DBP design system: instructions for any interface or document
You are designing or building something that carries the Nio DBP brand (Nio
Digital Business Platform). Apply every rule below unless the task explicitly
overrides one. If a rule can't be met in the target format, use the closest
equivalent and say which rule you adapted. Never invent brand values; if you
need one that isn't here, ask.
## 1. Brand in one line
Nio DBP is a business platform for small and mid-sized organizations in
Trinidad and Tobago and the Caribbean. It should feel calm, precise and
trustworthy: dark, quiet grounds; one violet accent; clear type; nothing
loud.
## 2. Colour
Use only these values. Never sample colours from reference images or other
brands.
Core
- Nio Violet #3A2EAF: primary accent. Buttons, links on light grounds, active
states, icons on light grounds.
- DBP Blue #007FC4: secondary accent. Data, secondary highlights, the "DBP"
in the logo. Never compete with violet in the same component.
- Deep Navy #010133: headings and dark text on light grounds; dark brand
surfaces.
- Black #04060E: the darkest ground (hero, footer-level bands).
Supporting
- Violet light #5B50D6 (glows and hover tints only), Sky #5FB3E2 (eyebrow
labels and focus rings on dark), Lavender #A9A2F0 (icon glow on dark).
- Light ground #F7F8FA, White #FFFFFF.
- Text on dark: #FFFFFF headings, #B4BDD0 body. Text on light: #010133
headings, #5B6478 body.
- Lines: rgba(255,255,255,.09) on dark; rgba(1,1,51,.10) on light.
- Status (product UI only): use your framework's success, warning and danger
colours, tuned to pass contrast. Never use violet or blue for an error.
Balance
- Marketing surfaces (website, landing pages, decks): about 70% dark grounds,
20% mid-dark bands, 10% light.
- Product UI and working documents (dashboards, forms, reports, letters):
light-led. White or #F7F8FA grounds, navy text, violet for actions. A dark
theme, if offered, follows the dark-ground rules.
- Violet is a tint, never a flood. No full-violet or full-blue page
backgrounds.
## 3. Gradients (dark grounds)
Four families. Each must read as blackish or deep navy overall, never as
purple or bright blue.
- G1 Night: #04060E with a soft violet glow, rgba(91,80,214,.16), from the
top centre. Heroes and calls to action.
- G2 Deep: #04060E to #00001F, with faint violet glows in opposite corners.
Problem, risk and control content.
- G3 Ocean: medium-dark DBP blue (#0A4C8C to #13226A) with a violet tint in
one corner. Lighter than G2, used sparingly for proof and benefits.
- G4 Light: flat #F7F8FA. Feature lists, forms, logos, dense reading.
Don't put two bands of the same family next to each other. In documents and
slides, use the flat base colour where gradients aren't supported.
## 4. Typography
- Typeface: Inter for everything. Fallback: system-ui, -apple-system, Segoe
UI, Roboto, Arial, sans-serif. In Office documents where Inter isn't
installed, use Arial.
- Weights: 500 for display, 600 to 700 for headings, 400 body, 500 buttons
and labels.
- Minimum size 16px for any readable text on screen (11pt in print). Never go
smaller for captions, labels or legal lines.
- Headings: tight tracking (-0.02em), sentence case, usually ending with a
full stop on marketing pages ("Three ways to partner.").
- Eyebrows: 16px, 700, uppercase, +0.06em tracking. Sky on dark, violet on
light.
- Body: line-height 1.5 to 1.65, line length 60 to 75 characters.
## 5. Layout and shape
- 8px spacing grid. Section padding 96 to 128px on desktop, 64px on mobile.
- Radius: 10px buttons and inputs, 20 to 22px cards and panels, fully round
pills and badges.
- Content width 1140 to 1320px; text blocks under 44rem.
- Mobile first: every layout works at 390px wide with no horizontal scroll.
- Prefer left/right splits and centred feature visuals over grids of
identical cards. Use cards only when items are truly parallel.
## 6. Components
- Primary button on dark: violet glow. Translucent violet fill,
rgba(201,196,250,.42) border, soft inner glow. On light: solid #3A2EAF with
white text.
- Secondary button: transparent with a faint white border on dark; navy
outline on light.
- Text link: violet on light, white with an arrow on dark.
- Badge: pill with a small glowing sky dot, lavender text, faint violet fill.
- Feature cards (Reflect style): no box at rest, thin divider lines between
items. On hover, a soft violet glow rises behind the item and the icon glows
brighter.
- Forms: a white card on any ground, navy labels, 10px inputs, required
fields marked with *, a violet submit button.
- Tables: navy header text, hairline rows, no zebra stripes on dark, numbers
right-aligned.
- Focus: a visible 4px sky ring (rgba(95,179,226,.55)) on every interactive
element.
## 7. Icons
- Line icons only, 1.5px stroke, rounded caps and joins, on a 24 or 40px
grid. Lucide is the base set.
- On dark: white with a soft lavender glow. On light: Nio Violet, no glow.
- Pick an icon that means the specific idea. Never a generic one used for
decoration.
- No filled, duotone, emoji or 3D icons.
## 8. Logo
- Use only the supplied logo files: the indigo "nio" wordmark with a blue
"DBP". Never redraw, recolour, stretch, outline, shadow or animate it.
- Use the reversed (white) version on dark grounds.
- Keep clear space around it of at least the height of the "n".
## 9. Imagery
- Real people and real Caribbean businesses: shops, warehouses, credit
unions, field technicians, offices. Natural light, warm skin tones, no staged
handshakes.
- Product visuals: clean, cropped UI on a dark ground with a soft violet glow
behind it.
- Every image must be replaceable by the content team without a developer.
- Always give images alt text that says what they show.
## 10. Motion
- Subtle and purposeful. Slow orbits, a sweep, a gentle glow, content that
types or fades in. 4 to 10 second loops; 150 to 250ms for hover states.
- Use CSS or the platform's native animation. No heavy libraries for
decoration.
- Never repeat the same animated visual on one page or screen.
- Don't use constellation, polygon or network-mesh effects.
- Respect prefers-reduced-motion: show a still, finished state.
## 11. Accessibility
- WCAG 2.2 AA at minimum: 4.5:1 for text, 3:1 for large text and UI parts.
Check text over gradients at its worst point.
- 16px minimum text, 44px minimum touch targets.
- Decorative graphics are hidden from screen readers; meaningful ones are
labelled.
- Never use colour alone to carry meaning.
## 12. Voice and copy
- English (UK) is the default language. Spanish is a supported second
language, never the default.
- Plain, short and specific. Lead with what the reader gets. Sentences under
25 words.
- No hype words (revolutionary, seamless, cutting-edge), no exclamation
marks, no emoji.
- Use approved copy word for word when it's supplied. Never invent client
names, statistics, prices or quotes; mark gaps as [To confirm].
- Product names: Nio DBP, Nio Insight, Nio Cloud, Nio Transform, SME
Essentials.
## 13. Before you hand anything over, check
1. Only the colours above, and no background reads as purple or bright blue.
2. Inter (or the stated fallback), nothing under 16px.
3. Contrast passes AA everywhere, including over gradients and images.
4. Line icons only, each one meaningful.
5. It works at 390px wide and with reduced motion.
6. The logo is a supplied file, untouched.
7. Copy is UK English, matches approved text, and has no invented facts.
8. Images can be swapped by a non-developer and have alt text.
✓ 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