brewbuds logobrewbuds

brewbuds design

Every cup, place, and reaction in the app is drawn by hand on the same 48-unit grid. This page is the grid.

palette

core

the core brand palette used for type, borders, dividers, surfaces, and states. this is what the mobile app code and web reach for, and it is the only palette allowed to move if the ui is ever rethemed.

illustration

buds#c8862awork#d4574acafe#bd2b3chome#7d2f28

colours baked directly into the svg artwork. on dark surfaces, artwork sits on a fixed milk panel rather than being inverted. places share one red separated by lightness — the value each place gets is set by how much outline its artwork carries; silhouette carries the category.

citrus is the core brand orange. it appears on the logo and the reactions, and nowhere else. milk, dark roast, and citrus appear in both palettes. same colour doing different jobs.

temperature

hot and cold are semantic ui tokens, not artwork constants. temperature badges always sit beside a brew illustration.

component

states
neutral ramp
accents & utilities

functional colour the apps reach for by role, secondary to the brand palette. the neutral ramp is darkroast flattened over milk at 5, 10, and 15 percent (citrus tint is the same move with citrus). shadow and white exist so no component ships a raw hex.

tokens

spacing

xs · 2
sm · 4
md · 8
lg · 12
xl · 16
xxl · 24

six values, no in-betweens. each pair of tiles above is separated by the literal token, what you see is the actual gap the apps use.

radius

none · 0
sm · 6
md · 8
pill · 999

sharp edges are the default language (cards, sheets, tiles sit at none); sm and md soften interactive chrome; pill is reserved for counts, badges, and toggles.

type

caption · 11/14the perfect cup, poured twice
small · 13/18the perfect cup, poured twice
body · 15/20the perfect cup, poured twice
subtitle · 17/22the perfect cup, poured twice
title · 20/26the perfect cup, poured twice
display · 24/30the perfect cup, poured twice

every variant carries fontSize and lineHeight together. skeletons size to the lineHeight, never the fontSize, so loading bones can't shift real text. the bar below body's specimen is a skeleton at exactly its lineHeight:

skeleton · 20

weights

brewbudsregular · 400brewbudsmedium · 500brewbudssemibold · 600brewbudsbold · 700

icons

filled states

ui icons are lucide with 2px stroke and 24 to 28px in place.

three things are never library icons: the apple and google logos (brand marks), the capture “+” in the tab bar, and finally the illustrations.

the grid

the baseline case, the cup stands at y=42.

every icon is drawn on a 48-unit canvas with a 40-unit live area and four units of margin on every side. nothing draws outside it.

grounded icons (cups, buildings, etc) stand on a baseline at y=42. reactions are the exception; they float centred on the canvas.

size means importance. an espresso is not drawn smaller than a latte. proportion and detail carry the difference, not scale.

beverages

hover or tap a card for the three sizes the app actually renders: list, picker, detail.

americano illustrationamericano
cappuccino illustrationcappuccino
chai illustrationchai
coffee illustrationcoffee
cortado illustrationcortado
dirty chai illustrationdirty chai
espresso illustrationespresso
flat white illustrationflat white
french press illustrationfrench press
latte illustrationlatte
london fog illustrationlondon fog
macchiato illustrationmacchiato
matcha latte illustrationmatcha latte
pour over illustrationpour over
tea illustrationtea
yerba mate illustrationyerba mate

locations

home illustrationhome
work illustrationwork
cafe illustrationcafe
buds illustrationbuds

colour here is a ladder plus one outlier. the three reds aren't category-coding: the office block's nine window frames put more dark outline against its fill than the house or the storefront do, so work takes the lightest value and home, mostly open roof, takes the darkest. buds steps off the ladder into honey — home, work and cafe are your places, buds is other people's, and the semantic odd-one-out gets the visual odd-one-out.

reactions

reactions float. they're the only illustrations that keep citrus. the brand orange they share with the logo.

rules of the set

one grid.

48 canvas, 40 live, nothing outside it.

one baseline.

grounded things stand at y=42; floating things center.

size is importance, not physics.

an espresso is not drawn smaller than a latte. proportion and detail carry the difference, not scale.

nine colours.

no additions without a palette review.

one mark per drink.

every beverage gets one distinguishing mark, never two.