"I went to asda's, the manager was brilliant. He helped me find the blue moon. I only needed…"
Colours
Production token values from Ray's spec (May 2026). Brand yellow and off-black are the primary signal colours. Sentiment palette is reserved exclusively for data visualisation — never for UI states.
--wn-brand-yellow#FAB316--wn-off-black#222222--wn-brand-blue#39B8E1--wn-dark-grey#444444--wn-menu-grey#555555--wn-mid-grey#707070--wn-light-mid-grey#7A7A7A--wn-border-grey#B9B9B9--wn-off-black-muted#BFBFBF--wn-background-grey#EEEEEE--wn-light-grey#EAF0F4--wn-lighter-grey#F8F8F8--wn-white#FFFFFF--wn-section-yellow-tint#FEF4DC--wn-section-blue-tint#E1F4FB--wn-sent-very-happy#6BB32D--wn-sent-happy#95C11F--wn-sent-neutral#CFD9DF--wn-sent-sad#EA752B--wn-sent-angry#E94C1E--wn-blue-0 / #EEEEEE--wn-blue-1 / #A1E2F8--wn-blue-2 / #39B8E1--wn-blue-3 / #2B59C3--wn-blue-4 / #001545Typography
Two typefaces. Museo Sans for body and UI text. Museo Sans Rounded reserved for display only: headings, sidebar labels, card headers. Never swap them.
'Museo Sans', 'Museo Sans Rounded', 'Nunito', system-ui, sans-serif
'Museo Sans Rounded', 'Museo Sans', 'Nunito', 'Quicksand', system-ui, sans-serif
Spacing & Radii
6px1rem1.5rem2rem3rem999pxLogos
All logos use brand yellow (#FAB316). SVG is the preferred format for all digital and web use — it scales without loss and is smaller than PNG for vector artwork. Use PNG only where SVG is unsupported (email clients, some slide tools).
logos/logo-on-white.svg
logos/logo-on-white.png
logos/logo-on-black.svg
logos/logo-on-black.png
logos/logo-on-yellow.svg
logos/logo-on-yellow.png
logo-on-white. On dark or black: logo-on-black. On brand yellow: logo-on-yellow. Never place a logo intended for one background type on a different one.marque-black on yellow backgrounds. The yellow marque is invisible on yellow — this is the one case where the black variant is required.design-system/brand-assets/logos/
logo-on-white.svg ← SVG preferred; .png available
logo-on-black.svg ← SVG preferred; .png available
logo-on-yellow.svg ← SVG preferred; .png available
marque-yellow.svg ← icon on light or dark bg; .png available
marque-black.svg ← icon on yellow bg only; .png available
marque-white.svg ← icon on dark bg when yellow unavailable; .png available
favicon.png ← 32×32 browser tab / app icon
Dropdown
.wn-dropdownPill-shaped selector with sort icon and caret. Selected option shown with a yellow underline when the menu is closed.
Tooltip
.wn-tooltipCircular "?" glyph. Very muted inactive; hover darkens the ring; active renders the bubble above.
Text link
.wn-linkDark grey with underline, weight 500. Hover deepens colour and thickens the underline stroke — no colour change needed.
Chart row
.wn-chart-rowDiverging sentiment bar with label and count. Hover washes cool; active inverts to black. The only valid in-product use of the sentiment colour palette.
Theme / topic lozenge
.wn-lozengePill tags for theme/topic selection. Quiet inactive state; active fills brand yellow. Close glyph on active inverts on hover to signal destructive intent.
Table styles
.wn-cellThree cell rendering modes. Text for plain values; wheel (donut) for percentage scores defaulting to brand yellow; bar for volume comparisons defaulting to brand blue.
Verbatim card
.wn-verbatimSocial post card with white body on a cool-grey surround. Supports closed/open text, theme tag pills, and an emoji sentiment picker. Always shown against the grey page background.
"I went to asda's, the manager was brilliant. He helped me find the blue moon. I only needed…"
"I went to asda's, the manager was brilliant. He helped me find the blue moon. I only needed Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus quis interdum."
Form inputs
.wn-form-*Marketing site form components — text/email input, textarea, and CTA button. Pill radius on inputs; card radius on textarea and buttons. Focus ring uses brand yellow. Error state signals via dark border + icon badge (sentiment red is reserved for data viz — never used here).
<div class="wn-form-group">
<label class="wn-form-label" for="id">Label</label>
<input class="wn-form-input" id="id" type="text" placeholder="…">
<span class="wn-form-hint">Helper text</span>
</div>
Error: add .wn-form-input--error to input + <span class="wn-form-error">message</span>
Button: <button class="wn-btn wn-btn--primary">Book a demo</button>
Variants: --primary · --secondary · --ghost | Modifiers: --lg · --full