The palette
Twenty-six roles, six flavors.
Every port is written against these roles, not raw hex, so each flavor fills the same slots — and the role keeps its own name in each city. Rows show the flavors of the city you're riding, with each color's contrast on that flavor's base. Pick any value to copy it.
| Swatch | Role | Walnut | Tunnel | Enamel | Moquette | Deep Level | Portland | Guimard | Catacombes | Carrelage | Used for |
|---|---|---|---|---|---|---|---|---|---|---|---|
BlackoutRunning tunnelBallastcrust | grooves and borders between panes | ||||||||||
EspressoConcourseFontemantle | chrome: sidebars, title and status bars | ||||||||||
PanelingMoquetteGuimardbase | the editor and terminal ground | ||||||||||
CoppertoneArmrestBanquettesurface0 | the current line, inputs, popovers | ||||||||||
SaddleGrab railRambardesurface1 | raised controls, terminal black | ||||||||||
CorduroyIronworkFerronneriesurface2 | selection | ||||||||||
PecanHoardingArdoiseoverlay0 | gutters, whitespace, indent guides | ||||||||||
CardboardEtched glassZincoverlay1 | comments, line numbers, bright black | ||||||||||
BurlapFrostedBrumeoverlay2 | punctuation, muted labels |
| Swatch | Role | Walnut | Tunnel | Enamel | Moquette | Deep Level | Portland | Guimard | Catacombes | Carrelage | Used for |
|---|---|---|---|---|---|---|---|---|---|---|---|
KhakiChalkCalcairesubtext0 | 6.8:1 · AA | 7.7:1 · AAA | 6.7:1 · AA | 6.8:1 · AA | 7.8:1 · AAA | 6.6:1 · AA | 6.7:1 · AA | 7.7:1 · AAA | 6.7:1 · AA | placeholders, quiet labels | |
AlmondVitreousCraiesubtext1 | 8.7:1 · AAA | 10.0:1 · AAA | 8.6:1 · AAA | 8.7:1 · AAA | 10.1:1 · AAA | 8.4:1 · AAA | 8.6:1 · AAA | 10.0:1 · AAA | 8.6:1 · AAA | sidebar and secondary text | |
ParchmentJohnston whiteFaiencetext | 10.7:1 · AAA | 12.3:1 · AAA | 11.6:1 · AAA | 10.7:1 · AAA | 12.4:1 · AAA | 11.5:1 · AAA | 10.7:1 · AAA | 12.3:1 · AAA | 11.5:1 · AAA | body text, variables | |
IvoryTile whitePorcelainetextHi | 12.4:1 · AAA | 14.5:1 · AAA | 14.3:1 · AAA | 12.4:1 · AAA | 14.5:1 · AAA | 14.2:1 · AAA | 12.1:1 · AAA | 14.3:1 · AAA | 14.4:1 · AAA | headings, the active line number, bold |
| Swatch | Role | Walnut | Tunnel | Enamel | Moquette | Deep Level | Portland | Guimard | Catacombes | Carrelage | Used for |
|---|---|---|---|---|---|---|---|---|---|---|---|
Harvest goldHazard lineLaitonyellow | 8.5:1 · AAA | 10.2:1 · AAA | 4.4:1 · large | 8.6:1 · AAA | 10.2:1 · AAA | 4.3:1 · large | 8.3:1 · AAA | 10.0:1 · AAA | 4.2:1 · large | functions, commands, the cursor | |
Broadway yellowHazard brightLaiton clairyellowHi | 10.2:1 · AAA | 12.2:1 · AAA | 3.6:1 · large | 10.2:1 · AAA | 12.2:1 · AAA | 3.6:1 · large | 10.2:1 · AAA | 12.3:1 · AAA | 3.5:1 · large | bright yellow, emphasis on gold | |
Burnt orangeLondon brickBronzeorange | 5.3:1 · AA | 6.3:1 · AA | 5.4:1 · AA | 5.4:1 · AA | 6.4:1 · AA | 5.4:1 · AA | 5.2:1 · AA | 6.3:1 · AA | 6.6:1 · AA | keywords, tags, the Claude spinner | |
Sixth AvenueBrick brightBronze clairorangeHi | 7.0:1 · AAA | 8.4:1 · AAA | 4.4:1 · large | 7.2:1 · AAA | 8.6:1 · AAA | 4.3:1 · large | 6.8:1 · AA | 8.2:1 · AAA | 5.3:1 · AA | bright magenta, the Claude spinner shimmer | |
RedbirdCorporate redTerre cuitered | 4.0:1 · large | 4.8:1 · AA | 7.0:1 · AAA | 4.0:1 · large | 4.8:1 · AA | 7.0:1 · AA | 3.7:1 · large | 4.5:1 · large | 8.0:1 · AAA | errors, terminal red | |
Redbird brightCorporate brightTerre cuite claireredHi | 6.0:1 · AA | 7.2:1 · AAA | 4.6:1 · AA | 6.1:1 · AA | 7.2:1 · AAA | 4.6:1 · AA | 5.5:1 · AA | 6.7:1 · AA | 5.4:1 · AA | numbers, constants, deletions | |
AvocadoDistrict greenPatinegreen | 6.8:1 · AA | 8.1:1 · AAA | 4.5:1 · AA | 7.0:1 · AA | 8.3:1 · AAA | 4.4:1 · large | 7.3:1 · AAA | 8.7:1 · AAA | 4.1:1 · large | strings, additions | |
Avocado brightDistrict brightPatine clairegreenHi | 8.2:1 · AAA | 9.8:1 · AAA | 4.3:1 · large | 8.4:1 · AAA | 10.0:1 · AAA | 4.1:1 · large | 9.0:1 · AAA | 10.8:1 · AAA | 3.6:1 · large | bright green | |
Seafoam tileDockland tealVert-de-grissage | 5.8:1 · AA | 7.0:1 · AA | 5.0:1 · AA | 5.9:1 · AA | 7.1:1 · AAA | 4.9:1 · AA | 4.5:1 · large | 5.4:1 · AA | 6.3:1 · AA | types, classes, options | |
Seafoam brightDockland brightVert-de-gris clairsageHi | 8.0:1 · AAA | 9.6:1 · AAA | 3.9:1 · large | 8.1:1 · AAA | 9.7:1 · AAA | 3.8:1 · large | 6.1:1 · AA | 7.3:1 · AAA | 4.9:1 · AA | bright cyan | |
Faded denimCorporate blueEmaildenim | 5.0:1 · AA | 5.9:1 · AA | 5.5:1 · AA | 4.9:1 · AA | 5.8:1 · AA | 10.8:1 · AAA | 4.9:1 · AA | 5.9:1 · AA | 5.6:1 · AA | links and info, the only cool color | |
Denim brightCornflowerEmail clairdenimHi | 6.9:1 · AA | 8.2:1 · AAA | 4.2:1 · large | 6.7:1 · AA | 8.1:1 · AAA | 4.3:1 · large | 6.7:1 · AA | 8.1:1 · AAA | 4.3:1 · large | bright blue | |
TerracottaElizabeth violetBriqueclay | 7.4:1 · AAA | 8.9:1 · AAA | 7.2:1 · AAA | 6.0:1 · AA | 7.2:1 · AAA | 4.6:1 · AA | 8.2:1 · AAA | 9.9:1 · AAA | 3.6:1 · large | escapes, regex, decorators |
Take it with you
For your design tools.
The palette as files, in the flavor you're riding. Each one has its own page under Palettes & formats.
Side by side
The same code, three ways.
One file, highlighted by each flavor's own generated theme. The roles stay put; only the light changes.
# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None# The next northbound F
from dataclasses import dataclass
@dataclass(frozen=True)
class Seat:
car: str
row: int = 7
window: bool = True
def find(seats, line="F"):
"""A window seat, facing forward."""
free = [s for s in seats if s.window]
return free[0] if free else None