palette
23 colours, three ways to look at the same city
Every flavour is dark by decision, not by omission. They differ in hue and chroma, never in
brightness — switch between them with the control in the header and the whole site follows.
Click any colour to copy the hex for the flavour you are looking at.
The city at 3 a.m. A blue-violet dark, with the sodium street lamp burning warm on top of it.
The same window, seen through the drizzle. Flat grey — the garoa does not cool the city down, it fades it out.
The same night, seen from the highest point in the city. Near-black surfaces, with the forest left to the accents — and the red-and-white tower lit at the summit.
Surfaces Five stacked planes, from the deepest recess to the wiring that divides it.
vao #0f101a #151719 #050806 the deepest recess — the free span under the MASP, a well of shadow
L 0.18 · C 0.021 1.06:1 on laje
L 0.20 · C 0.005 1.07:1 on laje
L 0.13 · C 0.009 1.05:1 on laje
copied laje #151723 #1c1e20 #0c100d the default surface — a concrete slab, the ground plane of everything
L 0.21 · C 0.024 1.00:1 on laje
L 0.23 · C 0.005 1.00:1 on laje
L 0.17 · C 0.009 1.00:1 on laje
copied concreto #1d1f2d #26282a #151a17 panels, cards and bars — exposed concrete
L 0.24 · C 0.027 1.09:1 on laje
L 0.28 · C 0.005 1.13:1 on laje
L 0.21 · C 0.010 1.09:1 on laje
copied vidro #272937 #313436 #202622 selection and elevation — glass reflecting the street
L 0.28 · C 0.026 1.24:1 on laje
L 0.32 · C 0.005 1.33:1 on laje
L 0.26 · C 0.011 1.24:1 on laje
copied fiacao #373943 #414346 #323733 borders and dividers — overhead wiring cutting across the sky
L 0.35 · C 0.018 1.55:1 on laje
L 0.38 · C 0.006 1.68:1 on laje
L 0.33 · C 0.010 1.58:1 on laje
copied
Text Four levels of foreground, each holding AA contrast on the surfaces it is used over. fg_vivo is the bright end: bold default text, and the terminal’s bright white.
fg_vivo #e7ebff #dae1ea #e7eee9 lit text — terminal bright white, bold text
L 0.94 · C 0.027 15.04:1 on laje
L 0.91 · C 0.014 12.69:1 on laje
L 0.94 · C 0.010 16.25:1 on laje
copied fg #d3d7eb #c7cdd6 #d3dad5 primary text
L 0.88 · C 0.028 12.46:1 on laje
L 0.85 · C 0.014 10.46:1 on laje
L 0.88 · C 0.010 13.47:1 on laje
copied fg_dim #868999 #8d949f #868b87 secondary text and comments
L 0.63 · C 0.024 5.13:1 on laje
L 0.66 · C 0.018 5.47:1 on laje
L 0.63 · C 0.008 5.53:1 on laje
copied fg_muted #707380 #767d88 #707471 disabled text, ornaments
L 0.56 · C 0.020 3.78:1 on laje
L 0.59 · C 0.019 4.03:1 on laje
L 0.56 · C 0.007 4.04:1 on laje
copied
Accents Eight signature colours. Hue and chroma carry the identity — never brightness.
brasa #ea5d5d #d87676 #ea5d5d red — the MASP, brake lights on Avenida Paulista
L 0.66 · C 0.175 5.28:1 on laje
L 0.68 · C 0.123 5.39:1 on laje
L 0.66 · C 0.175 5.68:1 on laje
copied sodio #f2984a #e3a068 #f2984a orange — the sodium street lamp that turns the whole city this colour
L 0.76 · C 0.142 7.95:1 on laje
L 0.76 · C 0.108 7.56:1 on laje
L 0.76 · C 0.142 8.55:1 on laje
copied taxi #f5c66b #e7cb8a #f5c66b yellow — traffic lights, taxis, a worn-out crosswalk
L 0.85 · C 0.122 11.18:1 on laje
L 0.85 · C 0.089 10.60:1 on laje
L 0.85 · C 0.122 12.02:1 on laje
copied ibira #89d093 #9acaa2 #79d488 green — Ibirapuera park, a green light
L 0.80 · C 0.112 9.76:1 on laje
L 0.79 · C 0.076 9.03:1 on laje
L 0.79 · C 0.138 10.58:1 on laje
copied estaiada #38b59e #56b19f #05b89e turquoise — the Ponte Estaiada lit above the Pinheiros river
L 0.70 · C 0.113 7.02:1 on laje
L 0.70 · C 0.092 6.52:1 on laje
L 0.70 · C 0.129 7.63:1 on laje
copied sereno #5dbec4 #77babf #60bfb8 cyan — the small hours’ damp air, a cold neon sign
L 0.74 · C 0.091 8.17:1 on laje
L 0.75 · C 0.068 7.61:1 on laje
L 0.74 · C 0.091 8.80:1 on laje
copied marginal #6e92de #7993cb #6e92de blue — the Marginal expressway, the metro, the highway sign
L 0.67 · C 0.121 5.79:1 on laje
L 0.67 · C 0.089 5.45:1 on laje
L 0.67 · C 0.121 6.23:1 on laje
copied temporal #b094e2 #af97d3 #b094e2 purple — the sky right before the storm breaks
L 0.72 · C 0.114 6.94:1 on laje
L 0.72 · C 0.089 6.52:1 on laje
L 0.72 · C 0.114 7.47:1 on laje
copied
Bright pairs The terminal bright set: same hue and chroma, lifted 0.06 in OKLCH lightness.
brasa_vivo #ff716f #ed8988 #ff716f live ember — terminal bright red, bold text
L 0.72 · C 0.174 6.65:1 on laje
L 0.74 · C 0.122 6.80:1 on laje
L 0.72 · C 0.174 7.16:1 on laje
copied taxi_vivo #ffdc9c #fbdf9d #ffdc9c lit taxi — terminal bright yellow
L 0.91 · C 0.090 13.55:1 on laje
L 0.91 · C 0.089 12.85:1 on laje
L 0.91 · C 0.090 14.58:1 on laje
copied ibira_vivo #9ce4a6 #addeb5 #8ce99b green light — terminal bright green
L 0.85 · C 0.112 11.93:1 on laje
L 0.85 · C 0.076 11.06:1 on laje
L 0.86 · C 0.140 13.00:1 on laje
copied sereno_vivo #71d1d7 #8acdd2 #73d2cb lit sign — terminal bright cyan
L 0.80 · C 0.091 10.01:1 on laje
L 0.81 · C 0.068 9.35:1 on laje
L 0.80 · C 0.091 10.78:1 on laje
copied marginal_vivo #80a5f2 #8ba6df #80a5f2 lit sign — terminal bright blue
L 0.73 · C 0.120 7.28:1 on laje
L 0.73 · C 0.089 6.86:1 on laje
L 0.73 · C 0.120 7.83:1 on laje
copied temporal_vivo #c3a7f6 #c2aae7 #c3a7f6 lightning — terminal bright magenta
L 0.78 · C 0.114 8.64:1 on laje
L 0.78 · C 0.089 8.12:1 on laje
L 0.78 · C 0.114 9.29:1 on laje
copied
Terminal mapping
The sixteen ANSI slots, resolved through the semantic role layer. Note that
sodio and estaiada deliberately have no ANSI slot — they are
identity colours, not terminal colours.
black vao
red brasa
green ibira
yellow taxi
blue marginal
magenta temporal
cyan sereno
white fg_dim
bright_black fg_muted
bright_red brasa_vivo
bright_green ibira_vivo
bright_yellow taxi_vivo
bright_blue marginal_vivo
bright_magenta temporal_vivo
bright_cyan sereno_vivo
bright_white fg_vivo