DESIGN.md · Analysis

Woojer

woojer.com · 25 Aug 2026 · 47 colors · Montserrat

Woojer

Woojer is a haptic wellness technology brand that transforms audio into full-body vibrations for immersive experiences. The design system balances scientific credibility with accessible, warm minimalism—emphasizing clarity, trust, and the physical sensation of sound.

Colors

surface#ffffff
surface-dim#f4f4f4
surface-bright#ffffff
surface-container-lowest#fafafa
surface-container-low#f4f5f4
surface-container#eeeeee
surface-container-high#e8e8e8
surface-container-highest#e0e0e0
on-surface#303030
on-surface-variant#8a8d8c
inverse-surface#1a1a1a
inverse-on-surface#f4f4f4
outline#cccccc
outline-variant#dbdbdb
surface-tint#0f63d1
primary#0f63d1
on-primary#ffffff
primary-container#a9cbff
on-primary-container#001d4d
inverse-primary#1460d8
secondary#3fae6a
on-secondary#ffffff
secondary-container#bfe6cf
on-secondary-container#0d3d1f
tertiary#1fb6a6
on-tertiary#ffffff
tertiary-container#a0ebe3
on-tertiary-container#003d38
error#8b0000
on-error#ffffff
error-container#ffb4ab
on-error-container#3d0000
primary-fixed#a9cbff
primary-fixed-dim#7ba3ff
on-primary-fixed#001d4d
on-primary-fixed-variant#0f63d1
secondary-fixed#bfe6cf
secondary-fixed-dim#a0d4b5
on-secondary-fixed#0d3d1f
on-secondary-fixed-variant#3fae6a
tertiary-fixed#a0ebe3
tertiary-fixed-dim#7dd9cc
on-tertiary-fixed#003d38
on-tertiary-fixed-variant#1fb6a6
background#ffffff
on-background#303030
surface-variant#e8e8e8

Typography

display
fontFamily: Montserrat · fontSize: 72px · fontWeight: 900 · lineHeight: 80px · letterSpacing: -0.02em
headline-lg
fontFamily: Montserrat · fontSize: 40px · fontWeight: 900 · lineHeight: 48px · letterSpacing: -0.01em
headline-md
fontFamily: Montserrat · fontSize: 28px · fontWeight: 700 · lineHeight: 36px · letterSpacing: 0em
title-lg
fontFamily: Montserrat · fontSize: 20px · fontWeight: 700 · lineHeight: 28px · letterSpacing: 0.01em
body-lg
fontFamily: Montserrat · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Montserrat · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Montserrat · fontSize: 15px · fontWeight: 700 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Montserrat · fontSize: 12px · fontWeight: 600 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

Woojer is a haptic wellness technology brand that translates audio frequencies into full-body vibrations, creating immersive experiences for sleep, stress relief, and recovery. The design system embraces 'Accessible Scientific Minimalism'—a philosophy that combines rigorous credibility (backed by published research) with warm, approachable interfaces that demystify complex bioacoustic technology. The brand personality is confident yet grounded: precise without being clinical, innovative without being pretentious. The UI prioritizes clarity and trust through generous whitespace (surface: #ffffff, on-surface: #303030), a vibrant primary blue (#0f63d1) reserved for high-intent CTAs, and supporting greens (#3fae6a, #1fb6a6) that evoke wellness and vitality. The emotional response is one of calm empowerment—users feel they're accessing cutting-edge science in a space designed for their wellbeing, not their overwhelm.

Voice and tone reflect this balance: sentences are direct and benefit-driven ('The Woojer MAT delivers 1–250 Hz therapeutic vibrations'), never breathless or overclaimed. Vocabulary leans technical when warranted ('vibroacoustic therapy', 'transducers', 'Hz frequency range') but always paired with accessible language ('felt through your whole body', 'stress relief'). Example sentence in brand voice: 'Science-backed, high-fidelity vibroacoustic wellness mat, felt through your whole body. For stress relief, deeper sleep, fast recovery, and lasting physical ease.'

Colors

The color system is anchored in trust and clarity. Primary (#0f63d1, rgb(15, 99, 209)) is the signature accent—used exclusively on high-intent CTAs ('Try It Risk-Free'), key interactive states, and brand-critical moments. Its inverse variant (#1460d8, rgb(20, 96, 216)) provides hover depth without jarring shifts. The primary container (#a9cbff) and on-primary-container (#001d4d) create a secondary tier for supporting UI like badges or disabled states. Secondary (#3fae6a, rgb(63, 174, 106)) and tertiary (#1fb6a6, rgb(31, 182, 166)) are wellness-forward greens that signal positive actions, in-stock status, and recovery-oriented messaging. The surface stack is deliberately minimal: surface (#ffffff) and surface-dim (#f4f4f4) provide the breathing room essential to wellness design, while surfa

Typography

The type system is built on Montserrat—a geometric sans-serif that conveys modern precision while remaining warm and accessible. Display (72px, weight 900, line-height 80px, letter-spacing -0.02em) anchors hero sections and product names with commanding presence; headline-lg (40px, weight 900, line-height 48px) is reserved for major section breaks. Headline-md (28px, weight 700) and title-lg (20px, weight 700) handle subsections and card titles, maintaining visual hierarchy without excessive scale jumps. Body-lg (18px, weight 400, line-height 28px) and body-md (16px, weight 400, line-height 24px) are the workhorses for product descriptions and supporting copy—their generous line-height (1.4–1.75) aids readability on wellness-focused content. Label-md (15px, weight 700, line-height 20px, le

Layout

The layout follows a 12-column grid with a max-width of 1280px, ensuring content remains scannable on all viewports. The spacing scale is semantic: unit (8px) is the baseline; xs (4px) and sm (12px) are used for tight component spacing; md (24px) is the default gutter between sections; lg (40px) and xl (64px) create breathing room between major content blocks. Sections are separated by lg spacing (40px) on desktop, scaling down to md (24px) on mobile, preventing visual fatigue in wellness-focused contexts. Cards and containers use md padding (24px) internally, with sm (12px) gaps between nested elements. The container max-width (1280px) prevents lines of body text from exceeding ~65 characters, a critical readability metric for longer-form wellness content. White-space is intentional and a

Elevation & Depth

Depth is conveyed through subtle shadows and layering, never through color darkening. The elevation system uses three tiers: sm (0 1px 3px rgba(0, 0, 0, 0.08)) for base cards and inputs, creating minimal separation from the surface; md (0 3px 8px rgba(0, 0, 0, 0.15)) for elevated cards, modals, and hover states, introducing gentle depth; lg (0 8px 24px rgba(0, 0, 0, 0.12)) for floating elements like sticky headers or prominent overlays. All shadows use black at 8–15% opacity, never pure black, to maintain the warm, approachable aesthetic. Cards transition from sm to md on hover (200ms ease-in-

Shapes

The shape philosophy is 'Geometric Warmth'—sharp enough to convey precision and modernity, rounded enough to feel approachable and wellness-focused. Buttons use full (50% border-radius, equivalent to 100px on 48px-tall buttons) to create pill-shaped CTAs that feel inviting and clickable; this is applied to both primary and secondary buttons. Cards and containers use DEFAULT (8px) for most surfaces, balancing definition with softness. Input fields also use DEFAULT (8px) to match card styling and create visual cohesion. Larger containers and modals use lg (16px) to introduce subtle hierarchy. Ba

Components

Action Elements Buttons are the primary interaction pattern. Button-primary uses primary (#0f63d1) background with on-primary (#ffffff) text, label-md typography (15px, weight 700), 50% border-radius, and 13px 30px padding, resulting in a 48px height. On hover, the background shifts to inverse-primary (#1460d8) with a 200ms ease-in-out transition, providing clear feedback without color inversion. Button-secondary uses surface-container-high (#e8e8e8) background with on-surface (#303030) text, a 1px outline border (#cccccc), and the same padding and radius as primary, ensuring visual consistency. Secondary hover shifts to surface-container-highest (#e0e0e0). Both button variants use label-md typography to maintain hierarchy. Avoid using primary buttons for secondary actions; reserve pri

Do's and Don'ts

**Do**

  • Do use primary (#0f63d1) exclusively for high-intent CTAs and critical interactive states; it's the brand's signature accent and loses impact if overused.
  • Do maintain md (24px) gutter spacing between major sections and lg (40px) spacing between content blocks to preserve the wellness-focused, breathing aesthetic.
  • Do apply label-md (15px, weight 700) to all button text and form labels to maintain consistent visual hierarchy across interactive elements.
  • Do use the full surface stack (surface, surface-dim, surface-container variants) to create subtle depth; avoid introducing new grays or neutrals outside this palette.
  • Do transition all interactive states (hover, focus, active) over 200ms ease-in-out to provide smooth, non-jarring feedback.
  • Do apply 1px borders in outline (#cccccc) to cards, inputs, and containers; this creates definition without visual harshness.

**Don't**

  • Don't use primary (#0f63d1) for body text, backgrounds, or non-interactive elements; reserve it for CTAs and focus states only.
  • Don't mix border-radius values within a single component—use DEFAULT (8px) for cards and inputs, full (50%) for buttons and badges, and lg (16px) only for large modals.
  • Don't apply shadows darker than md (0 3px 8px rgba(0, 0, 0, 0.15)) on standard cards; excessive shadow depth contradicts the accessible, approachable aesthetic.
  • Don't use secondary (#3fae6a) or tertiary (#1fb6a6) as primary CTAs; these are wellness-supporting colors, not brand-signature accents.
  • Don't reduce line-height below 1.4 for body text; the generous spacing aids readability and reflects the wellness-focused design philosophy.
  • Don't introduce new colors outside the defined palette (primary, secondary, tertiary, surface stack, error); consistency reinforces brand recognition and system coherence.