Canonical design system

Uverus Design System v1

The production visual language for all Uverus products. Tokens, type scale, components, and layout patterns — extracted from live implementations and maintained as three composable CSS files.

tokens.css — colour + spacing + radii base.css — typography + layout utilities components.css — nav, buttons, cards, forms, footer

Colour

All v1 products use a warm neutral base. The brand accent colour is product-specific and overrides --brand and --brand-2 per product.

--ink
#111110
--ink-2
#2B2A26
--muted
#7C796F
--line
#E5E2DA
--stone
#D7D1C2
--bone
#FAFAF7
--bone-2
#F2F1ED
--paper
#FFFFFF
--green
#3C7D63
--brand
per-product
TokenValueUsage
--ink#111110Primary text, dark backgrounds, dark buttons
--ink-2#2B2A26Secondary text, hover states on dark elements
--muted#7C796FCaptions, labels, placeholder text, icons
--line#E5E2DABorders, dividers, input outlines
--bone#FAFAF7Page background, light button fill on dark surfaces
--bone-2#F2F1EDSubtle card surface, nav link hover
--paper#FFFFFFCard background, form fields, modals
--green#3C7D63Success states, positive indicators
--brandper-productPrimary accent — each product overrides this token

Brand overrides by product: Uverus (corporate), Banking, Pay, and Payments all use #FF3333. Uverus Health uses #D94040 (deeper crimson). Override --brand and --brand-2 in the product CSS root.

Typography

Three typefaces. Geist handles all UI text; Instrument Serif provides display-level serif accents; Geist Mono for mono labels and code.

--font-sans
Geist
The quick brown fox
--font-display
Instrument Serif
The quick brown fox
--font-mono
Geist Mono
The quick brown fox 01234
Hero
clamp(40–72px)
fw 600
Hero heading
H1
clamp(32–60px)
fw 600
Page heading
H2
clamp(24–40px)
fw 400
Section heading
Lead
clamp(16–18px)
Lead paragraph — slightly larger body text for subheadings and hero descriptions.
Body — 15px
Regular body copy. Default size across all products, line-height 1.65, font-sans.
Small — 14px
Small text for labels, captions, nav links, and secondary UI.
Mono label
Uppercase mono label
Serif italic accent
Build something great.

Layout

All products use a shared container and responsive padding. Max-width is the same across all sites.

Token / ClassValueNotes
--max-w1240pxMaximum content width — applies to .wrap and all constrained containers
--px (desktop)40pxHorizontal padding on .wrap at > 640px
--px (tablet)24pxOverride at max-width: 860px
--px (mobile)20pxOverride at max-width: 540px
.wrapmax-width: 1240px; margin: 0 auto; padding: 0 40pxStandard page content wrapper
--r-md8pxButton and input border-radius
--r-xl16pxCard border-radius
--r-2xl24pxLarge card / modal border-radius

Components

All components are pure CSS classes from components.css. No JavaScript dependencies.

Buttons — border-radius 8px, height 38px default

HTML

<!-- Primary -->
<a class="btn btn-dark" href="...">Get started</a>

<!-- On dark background -->
<a class="btn btn-bone" href="...">Get started</a>
<a class="btn btn-ghost-white" href="...">Learn more</a>

<!-- Size modifiers: .btn-sm, .btn-lg -->

Eyebrow — 28px line + uppercase mono text

For everyday life
Payment infrastructure

HTML

<!-- HTML / plain sites -->
<div class="section-eyebrow mono-label">For everyday life</div>

<!-- React / JSX -->
<div className="eyebrow">For everyday life</div>

<!-- CSS: ::before draws the 28px horizontal line -->

Cards

.card-border
Feature card
Bordered card on paper background. Default for features, pricing, content.
.card-elevated
Elevated card
Adds box-shadow. For testimonials, call-outs, highlights.

Dark section — full-bleed CTA pattern

Get started today
Ready to build on Uverus?

All products use this pattern for their bottom CTA and footer sections.

HTML pattern

<section style="background: var(--ink);">
  <div class="wrap">
    <!-- eyebrow, heading, description -->
    <a class="btn btn-bone btn-lg">Primary CTA</a>
    <a class="btn btn-ghost-white btn-lg">Secondary</a>
  </div>
</section>

Patterns

Recurring structural patterns shared across all Uverus product sites.

Navigation — sticky, 3-column grid, bone/88% backdrop

DetailValue
Height60px
Backgroundrgba(250,250,247,0.88) + backdrop-filter blur(14px)
Layout3-column grid: brand left · nav links center · CTAs right
Borderborder-bottom: 1px solid var(--line)
Nav link active/hovercolor var(--ink), background var(--bone-2), border-radius 6px

Footer — dark, 3-column grid + bottom bar

DetailValue
Backgroundvar(--ink)
Main gridgrid-template-columns: 2fr 1fr 1fr; padding: 56px 40px 40px
Brand text colourrgba(250,250,247,0.9)
Tagline colourrgba(250,250,247,0.35)
Column headingfont-mono 10px / rgba(250,250,247,0.3)
Link colourrgba(250,250,247,0.45) → rgba(250,250,247,0.9) on hover
Bottom bar dividerborder-top: 1px solid rgba(250,250,247,0.08)
Copyright + attributionfont-mono 11px / rgba(250,250,247,0.25)
Attribution formatUverus Technologies · Abuja, Nigeria — only "Uverus Technologies" is a link

Section eyebrow — line + mono label pattern

DetailValue
Line width28px
Line height1px
Line colourcurrentColor (inherits from text)
Textfont-mono, 11px, letter-spacing 0.1em, uppercase
Text colour (light bg)var(--muted)
Text colour (dark bg)rgba(250,250,247,0.45)
Gap between line and text12px

CSS files

Three files, composable. Import in order: tokens → base → components.

FileContents
tokens.css All CSS custom properties: colour tokens, typography variables, type scale (clamp values), spacing, radii, shadows, layout (--max-w, --px), easing
base.css Reset, body defaults, .wrap layout helper, section utilities (.section, .section-sm, .section-lg), type utilities (.text-hero, .text-h1, .text-h2, .text-h3, .text-lead, .mono-label, .serif-accent), eyebrow pattern (.eyebrow, .section-eyebrow)
components.css Navigation (.site-nav, .nav-inner, .brand, .nav-links, .nav-ctas, mobile drawer), buttons (.btn, .btn-dark, .btn-outline, .btn-ghost, .btn-brand, .btn-bone, .btn-ghost-white, size modifiers), cards (.card, .card-border, .card-elevated), tags (.page-tag, .badge), forms (.form-field, .form-input, .form-label, .form-textarea, .form-select, .form-submit), dark section (.section-dark), footer (.site-footer, .footer-main, .footer-bottom, .footer-copy)

Import order (HTML)

<link rel="stylesheet" href="tokens.css">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="components.css">
<!-- Then override --brand / --brand-2 for your product -->