Skip to content
← Back

NOEMA

A full product for an aesthetic-medicine clinic — brand, catalogue, commerce, booking, account.

Type
Multi-surface web product, 21 routes
Role
Product design, design system, frontend
Year
2026
Visual showcase
NOEMA interface
static previewopen in a new tab ↗
Overview

A clinic where doctors are paid a flat rate per consultation rather than a percentage of what they prescribe. That single fact drives the whole product: a contraindications section used as an argument for trust, published reviews that are not all five stars, and a refusal to run laser treatments in summer.

Problem

Aesthetic-medicine sites sell procedures. A patient who does not yet know what they need has nowhere to start, and no reason to believe the recommendation.

Solution

Three entry paths for three patient states — first-time, informed, returning — that all converge on booking. Imagery runs on a material system rather than stock: every visual is a deterministic gradient composition with grain, keyed to its subject, so the catalogue stays visually coherent as it grows.

Technology
  • React 19
  • TypeScript
  • Vite
  • Tailwind 4
  • framer-motion
  • zustand
  • react-router
Key features
  • 21 routes across brand, services, commerce, booking and account
  • Living design-system page at /system with every component state
  • Working cart, favourites, promo codes, gift cards and loyalty points
  • Booking calendar with slots generated deterministically per specialist and date
  • Global search on ⌘K
  • Dark tone switched by a single data attribute — components never know the theme
NOEMA screen
NOEMA screen
NOEMA screen
Technical challenges

An art direction that survives its own photography

Every image is a deterministic composition of gradients and grain in a palette assigned to its subject — skin macro, interior, equipment, botanicals; products are illustrated vessels. The layout is built so a real photograph drops into the same slot without touching a line of markup.

A calendar that behaves like a real one

Slots are generated deterministically from the date and the specialist, so the calendar shows the same availability across reloads instead of reshuffling on every mount.

Accessibility on custom controls

Focus trapping and focus return in modals and drawers, keyboard navigation through tabs, calendar and the before/after comparison, role="slider" on the custom range control, and scroll locking that compensates for the scrollbar width.

Get in touch →