Precision
Typography, grid, logo, core colors, hierarchy, data, UI. Structured. Editorial. Slightly aggressive.
Brand — web v2
Sport taken seriously. Everything after, less so. The system is precise, structured and editorial. The photography is energetic, human, distorted and unpredictable. That contrast is the brand.
01 — Manifesto
Brick & Brew is a social endurance club. Friends who train hard, then drink well. It is not a fitness SaaS, not a craft beer label, not a Strava clone. The work should feel like an endurance magazine collided with a post-session cooler.
Typography, grid, logo, core colors, hierarchy, data, UI. Structured. Editorial. Slightly aggressive.
People, photography, movement, distortion, expressions, beer, celebration. Wide-angle. Direct flash. Lived-in.
02 — Three principles
01
Candid, immediate, lived-in. Sweat, wet hair, cycling shoes still on, someone reaching into a cooler. Shot from inside the group.
02
Fisheye, oversized hands and bottles, people leaning into the lens, subjects escaping the frame. The viewer is in the round, not watching it.
03
Loudness comes from photography, type, scale, color and data — never from tape, torn paper, doodles or decoration. Keep the grid.
04
Type respects a 12-column grid. Photography is allowed to break it. Quiet, active and loud sections must alternate.
03 — Lockup
No shields, no illustrations, no extra icons. Compact form is B&B. The existing architectural B stays on the app icon only.
Brick & Brew™
B&B
Primary wordmark on ink. Compact B&B on paper. Do not redraw it.
04 — Photography
Use the supplied stills as photography, not as decoration inside cards. Full bleed. Sharp edges. These frames already carry the wordmark and slogans — do not set type on top of them, and do not crop the lockups off.
05 — Color
Do not make the whole website orange. Additional color should come from beer amber, pool blue, race red and sportswear inside the photos.
06 — Type
Barlow Condensed carries the club voice. IBM Plex Sans runs the product. IBM Plex Mono is the index — pace, km, pts, kickers.
Training scores.
A private scoreboard for people who run, ride, and swim.
05:12 /KM · 07:42 AM · BCN / ES · +142 PTS
07 — Space, radius, motion
none 0
pack 2
tile 4
Motion is 120 / 200 / 320ms on a sport ease. Type slides. Images crop-reveal. Numbers stay tabular. Respect prefers-reduced-motion. Touch targets are 44px minimum.
08 — Components
Button
Chip
Rank row
Weights as data, not cards
09 — States
Never leave a list, board, or calculator blank. The copy is human. The control is obvious.
Syncing the crew catalog. This should resolve in a couple of seconds.
Empty
Log the first beer or wait for a teammate to sync a brick. The season starts when the crew does.
Error
The crew catalog did not load. Check the connection and try again.
10 — Voice
Train hard. Log the day. Concrete, ranked, a little dry.
Crush your goals. Next-level hydration. Lifestyle hustle. The visual identity does most of the talking.
11 — Contract
Web is the source of token names. Swift maps the same names; it does not invent a parallel palette.
docs/css/tokens.css before writing a new visual value. Primitive first if the raw value is new; semantic if it has meaning; component recipe if it is a control measurement.--touch-min (44px). Focus uses --color-border-focus. Respect prefers-reduced-motion.data-surface="paper" so nested components invert through tokens.