Design System

Wordnerds — Platform UI Styling Spec


1. Scope

This is the styling reference for the Wordnerds platform UI (the product application) — its SCSS variables, fixed type and spacing scales, layout chrome, and product components (data tables, charts, the rule builder, the login screen).

The shared brand identity, colour values, radii, shadows and design rationale are documented once in the design system (and tokens.css) — the platform and the marketing site both build on them. The marketing site additionally uses fluid type/spacing tokens, also documented there. This document covers only what is specific to the platform; where it restates a colour or value, the design system is the source of truth.

Brand identity (shared): a high-contrast dark chrome (off-black nav/sidebar) punctuated by the signature amber/yellow primary accent, with neutral greys as the content canvas. See the design system for the full rationale.


2. Colour Palette

Primary Brand

Name Variable Hex Usage
Brand Yellow $brand-yellow #FAB316 Primary action colour, active states, CTAs, highlights, scrollbars, icons
Off Black $off-black #222222 Navbar, sidebar, dark footers, keyword submit bars

Sentiment Scale

Name Variable Hex Usage
Very Happy Green $very-happy-green #6BB32D Positive sentiment, success states
Happy Green $happy-green #95C11F Mildly positive sentiment
Neutral Grey $neutral-grey #CFD9DF Neutral sentiment, rule rows, volume bars
Sad Orange $sad-orange #EA752B Mildly negative sentiment
Angry Red $angry-red #E94C1E Negative sentiment, errors, danger states

Grey Scale

Name Variable Hex Usage
Dark Grey $dark-grey #444444 Body text, icons, hover states
Mid Grey $mid-grey #707070 Secondary text
Light Mid Grey $light-mid-grey #7A7A7A Muted labels, placeholder text
Menu Grey $menu-grey #555555 Sidebar separators
Border Grey $border-grey #b9b9b9 Borders, dividers
Off Black Muted $off-black-muted #bfbfbf Dividers on dark backgrounds
Background Grey $background-grey #EEEEEE Page background
Light Grey $light-grey #EAF0F4 Card footers, form backgrounds
Lighter Grey $lighter-grey #f8f8f8 Card backgrounds
Lightest Grey $lightest-grey #fafafa Elevated surfaces, modals

Social / Functional

Name Variable Hex
Facebook Blue $facebook-blue #3b5998
Twitter Blue $twitter-blue #1DA1F2
Automated Cluster Blue $automated-cluster-blue #39B8E1

Semantic Mappings

Role Resolves to
$primary $brand-yellow (#FAB316)
$link $brand-yellow (#FAB316)
$grey-dark $dark-grey (#444444)
$grey-light $light-grey (#EAF0F4)

3. Typography

Typefaces

Role Font Stack Variable
Primary sans-serif museo-sans, sans-serif $family-sans-serif
Rounded / display museo-sans-rounded, sans-serif $family-sans-serif-rounded

Museo Sans Rounded is reserved for display use: headings, sidebar labels, login screen hero text, error pages, card headers.

Type Scale

Token Size Usage
$size-1 2.35rem Large display headings (sidebar h1)
$size-3 2rem Card header titles
$size-4 1.31rem Sidebar section labels
$size-5 1.125rem Body copy, topic text, league table rows
$size-6 1rem Base body size, main content
$size-7 0.85rem Fine print, card footers, metadata

Base font size: 16px at widescreen+, scales to 14px at widescreen-only, 12px below widescreen.


4. Spacing System

A utility spacing scale ($spacers) maps to CSS margin/padding helpers (m-{n}, p-{n}, mt-{n}, etc.):

Token Value
0 0
1 0.125rem
2 0.25rem
3 0.5rem
4 1rem
5 1.5rem
6 2rem
7 2.5rem
8 3rem
9 3.5rem
10 4rem

The global content gap is $gap: 30px, used for sidebar margins and content wrapper padding.


5. Layout

Navigation

Sidebar

Main Content


6. Component Patterns

Cards

Buttons

Class Style
.button.callout $brand-yellow background, white text, border-radius: 1.5rem, uppercase, padding: 1.3rem 2rem
.button.secondary-callout White background, $brand-yellow border + text, border-radius: 1.5rem, uppercase
.button.is-primary $brand-yellow background, white text
.explore-button $off-black background, #fab316 border; inverts on hover

Rounded buttons use min-width: 80px. Input radii typically 2rem3rem for pill style.

Scrollbars

Custom scrollbars via addScrollBar mixin — consistent pattern across modals and panels:

Sentiment Indicators

Colours map directly to the sentiment scale:

State Colour
Very Happy $very-happy-green #6BB32D
Happy $happy-green #95C11F
Neutral $neutral-grey #CFD9DF
Sad $sad-orange #EA752B
Angry $angry-red #E94C1E

Used in satisfaction bars, sentiment faces (SVG icons), graph keys, and mention counts.

Data Visualisation Colours

16-colour sequential palette for graphs (toggle switches, series):

#e6194B · #3cb44b · #ffe119 · #4363d8 · #f58231 · #42d4f4 · #f032e6 · #fabebe · #469990 · #e6beff · #9A6324 · #b5ae6d · #800000 · #aaffc3 · #000075 · #a9a9a9

Rule Builder

Logic Pills

Beta Badge

Help Button


7. Form Elements


8. Login Screen


9. Motion

Use Value
Sidebar expand/collapse 0.5s ease-in-out
Sidebar link transitions 0.4s ease-in-out
Explore card hover lift transform: translateY(-10px), 0.3s
Project card hover scale transform: scale(1.1), 0.3s ease-in-out
Loading blink opacity animation, 1s linear infinite, 50% → 0.25
Disclosure chevron rotate 0.5s ease-in-out, 0° → -180°

10. Design Principles Summary

  1. Dark chrome, amber accent — navigation and structural chrome are near-black; the brand yellow (#FAB316) provides all interactive affordance and active-state signalling.
  2. Sentiment is colour-coded consistently — the green→grey→red scale is used everywhere sentiment appears; never repurpose these colours for other meanings.
  3. Rounded everything — pill inputs, rounded cards, circular badges; hard corners are rare and deliberate.
  4. Typography hierarchy via family — body copy in Museo Sans; display/brand moments in Museo Sans Rounded.
  5. Subtle elevation — shadows are soft and low-opacity (rgba(0,0,0,0.1)); depth is indicated by shadow, not hard borders.