COMPLETE DISSEMINATION

Every element, component, style β€” and where the build stands

The living reference for Reps With Friends: design system, feature inventory, progress metrics, and system map. If it exists, it's on this page.

90+tests green
36elements catalogued
31components
2brand themes
9public pages
7systems
CI/CDpush β†’ live

01 Β· Design tokens

Single source of truth: design/tokens.css. Every page, app and bot card consumes these β€” nothing hardcodes colour.

Colour

Rule: lime is earned β€” it marks effort, verification, winning, action. Coral is heat (comeback, HR, down-states). Amber is pending. Sky is information. Contrast chips: WCAG ratio vs --bg.

Type

TRAIN TOGETHERdisplay Β· 700 Β· clamp 30–44px Β· βˆ’0.02em
Win on effortheading Β· 700 Β· 22–26px
Any reps, any order β€” first to 300 closes it.body Β· 400 Β· 14–15px
KX4T9C Β· 285.0 Β· 63.3%mono Β· tabular numerals Β· codes & scores
STANDINGSlabel Β· 700 Β· 11–12px Β· 0.14em tracking Β· uppercase

Space Β· radius Β· motion

4 / 8 / 12 / 16 / 22 / 30spacing scale (px)
9 / 14 / 999radius: sm / card / pill
160msease-out interactions
700msprogress-bar fills
44pxminimum touch target
reduced-motionall motion guarded

02 Β· Component library

18 primitives, rendered live. Every screen in the app, site, hub console and bot cards composes from these. The 13 Figma-adopted families live in section 03 below.

Buttons

Actions. Primary = one per view, lime, earned.

Tags & status dots

live idle down

System + match status. Dots carry glow when healthy.

Tier pills

couch Γ—1.5 casual Γ—1.25 fit Γ—1.0 athlete Γ—0.85

Handicap identity. Colour-coded, multiplier on the face.

Comeback badge

⚑ comeback Γ—1.2 armed

Appears when >30% behind leader. Pulses until used.

Progress bar

Raw-rep progress to target. 700ms fill, lime; coral when comeback-armed.

Standings row

πŸ₯‡
Davecouch Γ—1.5
285
190 raw Β· 63%

The core game surface β€” medals, tier, bar, adjusted vs raw.

Chat bubbles

Dave Β· log pushups 40!
πŸ’ͺ Dave logs 40 push-ups βœ…camera

Bot ↔ player surface (demo page, app feed). Bot bolds in lime.

Taunt card

😀 Dave is saving their reps for the off-season, apparently.

AI-generated with canned fallback. Cheeky, never mean.

Charity pot card

πŸ’° Charity pot$20.00Dave picks β€” Beyond Blue

Winner directs, never receives. Employer-fundable.

Ladder row

1DaveπŸ”₯ Γ—413 pts

Season standings: position, streak, points.

Command chips

newjoin couchlog pushups 25!s

The chat grammar β€” identical on WhatsApp and Slack.

Result card

match completeDave takes itadjusted 285 Β· Ben closed at 300 raw

Generated as branded 1200Γ—675 SVG/PNG β€” the shareable artefact.

Stat card

285adjusted score

Numbers with meaning. Mono numerals, lime emphasis.

Status pill

install pendingcomplete

Lifecycle states across hub console + matches.

QR connect

β–¨ scan β†’ link crew

wa.me deep link as QR β€” gym-floor onboarding.

Empty state

No matches yet β€” start one

Friendly copy + one action. Never a blank screen.

Toast

Reps logged β€” 40 push-ups counted
Camera lost the set β€” log it manually

Transient confirmations. Auto-dismiss 2.4s, stack bottom-up, max three on screen.

Confetti burst

match completeDave takes it πŸŽ‰adjusted 285 Β· Ben closed at 300 raw

Victory moments β€” match close, PRs, photo finish. Canvas particles at 60fps; reduced-motion β†’ single flash.

03 Β· From Figma β€” adopted craft

Ben's component language (figma/assets/, audited by lane F2) rebuilt on our tokens β€” every βœ…-adopt component-level row from docs/13 Β§7. No hex literals: his values are token values, alpha variants are color-mix(). Structural decisions (fairness, platform, rhythm, power-ups-in-MVP) are founder calls β€” these are visual components only. Full variant matrix + spec citations: /figma (local).

Brand theme:
re-points the core token slots β€” same components, two brands, zero forks. This is what decision #4 gets judged on.

Bottom nav + central LOG

from Figma — mapped #FFC821→--lime · #0B0A12→--bg · inactive #63637A→--faint (AA). §7/4 adopt: logging is the daily action → central 64px pill.

Quick-log sheet β€” ≀3 taps

Log reps

20 push-ups = 20 RUF Β· takes you to 92%

from Figma — mapped #14121F→--surface · r28→--radius-xl · RUF preview→--lime. §7/26 adopt: chips are live — conversion + CTA follow.

Battle card

LIVE5 mates Β· Day 3 of 7

The Sunday Showdown

BW SK JP AT

You're 2nd β€” 36 RUF behind Sam

from Figma — mapped gradient #2A1F4D→#0B0A12 = --energy-tint→--bg · avatars→--energy-tint/--energy-light · Anton 26→--font-display.

Leaderboard row β€” 400ms spring

1 SK
Sam K
88%
106 / 120 RUF
2 YT
You
71%
85 / 120 RUF

from Figma — mapped leader stroke→color-mix(--lime 70%) · you-row #8B5CF6→--energy · completion % primary (rides the fairness call). §7/16 adopt.

Countdown β€” dual clock

6:12:44
ends 9:00 PM AEST Β· 7:00 PM for you
0:28:10
30 min left β€” heartbeat pulse

from Figma — mapped DZ ramp→--lime/--urgency/--danger @80 · #2A1020→--dz3-surface. §7/28 adopt: group clock + local equivalent. Ticks live; DZ3 heartbeats the timer only.

Danger-zone banner β€” 3 levels

from Figma — mapped #FF4D5E→--danger, levels→--lime/--urgency/--danger. Click to cycle: icon+label at every level, layout never changes. §7/23 adopt.

Event banner

Thunder Hour
All reps count DOUBLE until 8 PM
23:41
Rep Storm
4 crew active β€” bonus unlocked
LIVE

from Figma — mapped Thunder→--lime · Storm #8B5CF6→--energy · CloseCall→--urgency · Charity→--success. V1.x events, components now.

Dialog β€” confirm / destructive / money

Use Lightning Round?

Your next 10 minutes of reps count 3Γ—. One per day β€” make it count.

Delete this entry?

25 squats (25 RUF) will be removed from today's total. This can't be undone after the edit window.

from Figma — mapped #1B1830→--surface-2 · destructive→--danger · r20→--radius-xl. Money variant drops all banter (§7/15).

Feed item β€” reactions

Sam K logged 25 squats
+25 RUF Β· 2 min ago
πŸ”₯ 3
Jordan P activated Lightning Round
Triple reps for 10 min Β· 5 min ago
⚑ 2

from Figma β€” mapped bubbles @15%β†’color-mix on --success/--lime/--energy/--urgency/--sky. Β§7/32 hybrid: bot taunts stay, reactions added.

Power-up card β€” rarity visual only

LEGENDARY

Lightning Round

Reps count 3Γ— for the next 10 minutes

EPIC

Rep Steal

Take 10% of an opponent's total (SAMPLE cap)

from Figma β€” mapped rare #4DA3FFβ†’--sky Β· epicβ†’--energy Β· legendaryβ†’--lime Β· activeβ†’--success. Β§7/24 is a ☎ call β€” no engine wiring.

Subscription card β€” Reps Pro

Reps Pro

FeatureFreePro
Active battles1Unlimited
Power-up inventory4 slots12 slots
Streak Freeze / monthβ€”1 free

from Figma — mapped selected plan→--energy-tint + --lime stroke · SAVE%→--urgency. Prices SAMPLE; paywall logic is F4/engine.

System state β€” 6 states

No battles yet

Create your first battle or join a mate's with an invite code.

Pro feature

Multiple battles need Reps Pro. Your first crew is always free.

from Figma — mapped error→--danger · locked→--lime · skeleton→--line. §7/17 adopt: superset — locked + restricted map to Pro + region gates.

Badge system β€” 5 types

7 DAY STREAK LIVE NOW DAY 3 WINNER REPS PRO 30 MIN LEFT

from Figma — mapped streak→--energy-tint + --urgency flame · premium→--ink-brand-tint + --energy crown · danger→--danger. Inter 600 11 kept.

04 Β· Feature families β€” all 36 elements

Full backlog with status. Families A–F approved and largely built; G is the proposed second wave.

05 Β· Progress & roadmap

Phase 0due diligence Β· research Β· plan
βœ“ complete
Prototypeengine Β· bots Β· app Β· site Β· hub Β· AI Β· live hosting
● you are here β€” feature-complete demo
MVPunified API wired to app + bots Β· auth Β· first real crews
next
PilotWhatsApp Cloud API Β· Stripe pots Β· Slack directory Β· legal opinion
gated
Publicnative apps Β· wearables v2 Β· corporate scale
gated

What's working today

Top blockers (full register: docs/15)

Slack app needs 5-min human creation β†’ then install link is permanent
WhatsApp Cloud API group support unverified β€” shapes pilot architecture
Charity-wager legal opinion before real money moves
Bots always-on: minirig kit ready, one SSH command to install
App ↔ API ↔ bots state unification (API built, wiring is mechanical)

06 Β· Systems map

CLIENTS

Site Three.js + AI guide
App PWA Β· localStorage
Hub console ops + corporate
Chat WhatsApp Β· Slack

EDGE

Cloudflare Pages rwf.qalarc.com Β· CI/CD
Pages Functions /api/ai Β· /api/state
Local serve :4173 Β· sim Β· cards

CORE

game-core pure TS Β· 44 tests
bot-core command bus Β· 22 tests
apps/api unified REST Β· 24 tests
Qalarc Hub WhatsApp session owner

Full detail: docs/11_SYSTEMS_OVERVIEW.md Β· hosting decision: docs/16_HOSTING.md