SOSU Component Library
Colour Tokens
All colours are CSS custom properties. Never hardcode a hex. Reference the token name in every component and section.
Typography Scale
Display headings use Cormorant Garamond (--font-heading). Body, labels, buttons, and all UI copy use Montserrat (--font-body). Sizes are fluid — they scale between mobile and desktop breakpoints.
Spacing Scale
4/8 base scale. Touch targets never below 44px on mobile.
section
section-lg
Border Radius
button
card
drawer
modal
badge/pill
Shadow Scale
Button System
Three variants × three sizes × all states. Every CTA on the site uses exactly one of these. No exceptions.
Badge System
Single base class, variant modifiers. All badges are pill-shaped. One badge maximum per product card.
Price Atom
Consistent price formatting across product cards, PDP, and cart. Sale prices use error red.
.sosu-price__was — 13px strikethrough · muted
.sosu-price--sale .sosu-price__current — error red
Star Rating
Used on product cards, PDP, and reviews. Gold filled stars, muted empty stars, review count in muted text.
Form Inputs
Minimum height 44px. Gold focus ring. Consistent across all templates.
Please enter a valid email address.
Select / Dropdown
Used for shade selectors, variant pickers, and filter dropdowns. Same height and focus ring as text inputs.
Checkbox & Radio
Used in forms, filters, and cart options. Gold accent colour on checked state.
Link Styles
Gold for primary links, dark for body copy links. Consistent underline offset and hover behaviour.
Icon System
SVG icons at 4 standard sizes. Inherit colour from parent. Used in trust strip, cart, navigation, and badges.
--icon-size-sm: 20px · --icon-size-md: 24px · --icon-size-lg: 32px
Section Dividers
Tags / Filter Chips
Used in collection filters and search results. Active state uses dark bark fill.
.sosu-tag--active — bark bg / cream text (selected filter state)
Free Shipping Progress Bar
Cart drawer atom. One Liquid variable as source of truth. Currently absent from live site — critical conversion fix.
Trust Micro-Strip
Announcement Bar
Sub-Brand Overrides
Add [data-brand="dripping-gold"] to any section wrapper. All child atoms inherit the brand colour automatically. Zero duplicate CSS.
Product Card
Built from badge + price + star + typography atoms. One badge maximum. Descriptor below name (Rhode pattern).
Cart Drawer Atoms
A composition of atomic pieces. Progress bar · line items · pair-and-save · points balance · checkout CTA.
Phase 1 · Task 1 · Shopify Plus Foundation
Files: sosu-tokens.css · sosu-components.css
Staging: Joel - 15th May · All downstream tickets inherit from this foundation.