ebbDesign system v1.0 · Sep 10, 2026
ebb

Pain has an ebb and flow. Learn yours.

Ebb helps people living with chronic pain log a flare in ten seconds, see what drives it, learn what actually helps, and walk into every appointment with a report their clinician can use.

“Denise is on the sofa at 10pm, one lamp on, phone at 30% brightness, logging with her thumb because her wrist hurts too. Nine days later Dr. Mehta reads the same record on a clinic monitor, with 90 seconds before the next patient.” The whole system is designed for both of those moments.

How we chose the colour: cold compress

Not by avoiding what healthcare uses, but by asking why. Three findings from pain-perception research set the rules; the palette follows from them.

Red raises pain ratings

In controlled studies, pain shown after red was rated most intense. Nothing warm or red goes near the scale; red is kept for safety alerts only.

White reads as relief

White produced the lowest pain ratings and is the colour people link with relief. The ground is true white.

Blue calms

Blue is associated with calm and serenity. A cool glacier blue carries the brand, clear of Curable’s teal and the category’s navy.

Saturated trust-blue and teal

Loud, generic and already owned by the category. Our design database suggested exactly this, with a children’s font.

Plum and wine

The usual “health that isn’t blue” escape. It reads as femtech to clinic buyers, and its dark end sits next to red on the scale.

The traffic-light scale

Judges pain as good or bad, primes higher ratings at the red end, and fails colour-blind users.

Ebb: cold compress

True white, a glacier blue for calm, night ink for text and the evening check-in, and a neutral cool scale where lightness does the work.

Colour

Restrained in the product (glacier blue ≤10% of any screen, true white everywhere else), committed on the website, drenched only in the evening check-in. Every ratio below is measured live from the token file, not typed in.

Ground and ink

Brand

Pain intensity: a neutral cool ramp, never red, never a traffic light

Text is ink on 0–6 and white on 7–10. Both pass 4.5:1 at every step.

Status (states only, always with an icon and a label)

Evening mode (scoped to the check-in, never a global dark theme)

Status vocabulary

The exact pill for every state in the product. One word per state, used everywhere.

Typography

Literata for display, built for long reading on screens. Atkinson Hyperlegible Next for everything you tap or scan, designed by the Braille Institute for low-vision readers. Body text is 17px on patient surfaces and 15px in the clinic.

Website scale (fluid)

--fs-display

Pain has an ebb and flow.

--fs-h1

Ten seconds on a bad day

--fs-h2

Your clinician sees it too

--fs-h3

Short sleep, sharper pain the next day

--fs-lead

A flare plan you write with your clinic, one step at a time, so the worst nights have a first move.

--fs-body · 17px

Pain is your nervous system’s alarm. With chronic pain, the alarm can stay sensitive long after tissues have healed, the way a smoke detector goes off for toast. That doesn’t make the pain imaginary. It means there are more ways to turn it down than rest alone.

Product scale (fixed)

--t-32 · display

How’s the pain right now?

--t-22 · display

What Ebb noticed this week

--t-18 · UI bold

Denise Okafor · PEG 6.3

--t-15 · UI

Last log 10:04 PM · lower back, burning · synced from iPhone

--t-13 · meta

Reviewed by Dr. Laura Chen, PhD · Mar 4, 2026

Why Atkinson: medication blurs reading

A common UI sans

Il1 O0 · Take 1 tablet (10 mg)

Atkinson Hyperlegible Next

Il1 O0 · Take 1 tablet (10 mg)

Tabular figures where numbers align

WeekAvg painPEGLogs
Aug 174.14.77
Aug 245.86.06
Aug 316.46.811

Space, form and motion

Form archetype: Sheet. Surfaces are full-bleed tone bands, not cards. The rule is round what you touch, square what you read: fewer boxes to parse on a brain-fog day, and every touchable thing is obviously touchable.

Spacing (4px base)

Shape: three radii, never a fourth

--r-ctl · 12px · things you touch
Burning
--r-card · 0 · things you read
Sleep and pain

A square tone band. No border, no shadow, no card.

--r-lg · 24px · things that float

Density: patient vs clinic

Patient · control 56px · row 64px
Clinic · control 40px · row 44px

Elevation: flat, with one shadow for floating layers

Flat band · tone carries hierarchy
Deeper band · still no shadow
Floating layer · --elev-pop

Motion

press

Buttons and chips scale to 0.97 in 160ms, so the interface visibly heard the tap.

--ease-out

cubic-bezier(.23, 1, .32, 1) for anything entering. Popovers 180ms, from their trigger.

--ease-drawer

cubic-bezier(.32, .72, 0, 1) for sheets and drawers, 280ms.

evening

A 400ms crossfade when the log dims itself at night. The only other orchestrated motion is the breathing pacer.

reduced motion

Movement becomes a crossfade or an instant change; the pacer becomes a text count.

Controls

Every control in every state. Focus rings are always visible; every touch target is at least 44px.

Buttons

Fields

Placeholder text passes 4.5:1 too.

Choices

Checkbox (native, branded)
Radio
Switch
Segmented
Chips (descriptors)
File upload

Surfaces and data

Bands, rows and tables do the containing. Layers float with the one shadow.

Rows

    Table with sort, selection and a bulk bar

    ConditionPEGData daysStatus

    Tabs, accordion, banners

    What counts as a flare?
    A flare is pain clearly worse than your usual range for more than a few hours. Ebb marks days at 8 or above.
    Who can see my logs?
    Only you, and any clinic you choose to share with. You can pause sharing at any time.

    Layers

    Built for pain

    The components that exist because of this product. Each one is the real renderer the phone, web, desktop and clinic screens call.

    Pain scale · 52px targets, tap once
    Body map · tap where it hurts

    Nothing selected

    Tide line and calendar: 90 days of pain

    Insight and outlook: the AI shows its working

    Flare outlook · Thursday

    Clinic components

    RTM monitoring days
    PEG sparkline and change
    Clinical review badge

    Breathing pacer and evening mode

    Ready when you are
    Evening check-in · auto after 9 PM

    Device frames

    Phone · 390 × 844, full-bleed on a real phone
    Thursday, Sep 10

    How’s the pain right now?

    Feels like
    Ebb · Denise OkaforSynced

    Your last 30 days

    Feedback and states

    The unhappy paths are designed, not left to chance. Each appears on real screens in the product.

    Iconography

    One family, one 1.75 stroke on a 24px grid, inlined as SVG. Never emoji, never a sparkle for “AI”.

    Bans

    Written down so they are enforced, not remembered.

      Pause sharing with your clinic?

      Scioto Valley Pain & Spine will stop seeing new logs until you turn sharing back on. What they already have stays in your chart.