Phase 01 / Style guide

The visual system,
laid bare.

A living reference for every token, component, and motion rule used across GymFlow. Toggle the theme in the header to inspect contextual styles; the static swatch grids below show both modes regardless of theme.

01 · Dual-mode palette

Color

Dark mode · Primary

Matte charcoal canvas + electric neon.

Dark
Background

Charcoal

#121212

Card

Carbon

#1C1C1C

Foreground

Off-White

#F5F5F7

Primary · Data

Electric Neon

#00FF9D

Destructive · PR

PR Red

#FF4D4D

Muted FG

Steel

#A0A0A0

Light mode · Secondary

Crisp off-white + midnight navy actions.

Light
Background

Off-White

#F5F5F7

Card

Paper

#FFFFFF

Foreground

Charcoal

#121212

Primary · Actions

Midnight Navy

#1A1F36

Destructive · PR

PR Red

#FF4D4D

Muted FG

Slate

#666666

02 · Manrope · JetBrains Mono

Typography

H1 / DisplayPush past failure.
H2 / SectionWorking sets
H3 / CardBarbell Bench Press
BodyLog every rep with intent. The numbers compound, the body adapts.
Mono / Stat127.5 kg × 5
Label / Mono capsREST · 01:45 · INCOMING
03 · 48px+ touch targets, tactile feedback

Buttons

04 · Mono-aware fields for numeric capture

Inputs

kg
x
05 · Completed · PR · Rest

Badges & status

Set completePersonal recordResting · 01:45Warm-upDeload week
06 · Glass over solid, tactile depth

Card system

Default

Glass card

bg-white/5 backdrop-blur-xl border border-white/10. Default container for exercises, summaries, and metrics.

Nested

Solid card

Carbon (#1C1C1C) / Paper (#FFFFFF). Use for nested content, forms, and modals where opacity stacking would muddy contrast.

Active

Accent card

A thin neon border + tinted background mark the active or highlighted item. Reserve for one focused element per view.

07 · The system, applied

Exercise card · in context

Exercise · 03 / 06

Barbell Bench Press

Working

70kg

Total

2,160kg

Rest

01:45
01
60kg
×
10reps
DONE
02
65kg
×
10reps
DONE
03
70kg
×
8reps
PR
04
70kg
×
6reps
REST
08 · Haptic-inspired feedback

Motion

Haptic pulse

Tap to mark a set complete.

A soft, expanding ring confirms the rep was logged — visual stand-in for haptic feedback on mobile. Uses animate-pulse-ring on the action target.