Design guide

Every city hides a game.

This is how we turn the visual language of metro maps into a growing collection of short city games. A living guide to our identity, voice, colour, type and product craft.

01 Identity

A collection, not a single game.

The identity starts with the same tension as a metro map: strict structure, immediate recognition and enough colour to make a complex place feel inviting.

Canonical lockup
The descriptor always travels with the name on public surfaces.
Name the StationCity games on real networks
Spectrum rail
Six editorial colours, always in the same order, form the master-brand signature.
InkCityPlay
02 Colour

Colour behaves like a line.

Six saturated inks form one fixed editorial spectrum. They organise the collection like a diagram without ever replacing the official colours of a real transport line.

  1. Network blue

    Explorer and orientation

    #0065BD
  2. Signal blue

    Signal Hunt and detection

    #00ADD0
  3. Station magenta

    Name the Station

    #DA39AF
  4. Connection orange

    Last Connection and urgency

    #FF6319
  5. Progress yellow

    Network Cascade and progression

    #F0AB00
  6. Play green

    Drop and placement

    #00AF3F

Colour tells you where you are in the product. Ink tells you what to do. Official operator colours remain untouched whenever the interface represents a real line.

03 Typography

One voice, several speeds.

One grotesque family carries both editorial headlines and practical interface copy. A mono face appears only when a value is truly data.

Primary family
Helvetica Neue where available, Archivo everywhere else, and Noto Sans JP for Japanese.

Aa 東京

Follow the lines. Catch the last train.

Data voice
Geist Mono is reserved for time, coordinates, codes and scores.

08:42

G0935.6762° NROUND 031,240 PTS
04 Game worlds

Each mechanic gets a line.

The master brand stays constant while each game owns one editorial accent and one specific verb. Colour creates recognition; the mechanic creates the personality.

The collection map
Stable roles make the collection legible across hubs, sessions, results and sharing.
  1. Explorer

    Read the true map behind every challenge.

  2. Name the Station

    Recognise the hidden station from the network around it.

  3. Drop

    Place a station from its name and the lines that serve it.

  4. Last Connection

    Trace a viable route before the last train leaves.

  5. Signal Hunt

    Follow sparse signals until the right station emerges.

  6. Network Cascade

    Watch one disruption ripple through the network.

05 How we made it

One map. Many games.

The interface is the last stop in a longer route. Official data becomes a frozen city world, that world feeds several mechanics, and each mechanic reveals a different way to read the same network.

01

Collect the real network

We begin with official operator and government datasets, with sources and licences recorded.

02

Freeze a city world

A versioned, immutable world keeps every game fair, reproducible and attributable.

03

Design the mechanic

Each game asks a genuinely different question of the same stations, lines and connections.

04

Return to the city

Maps, city pages and station stories make every answer feel connected to a real place.

Built as one connected system

A type-safe stack keeps the route from source data to screen explicit. The technology stays quiet so the city and the mechanic can do the talking.

TanStack Start
SSR, routing and the React product surface.
PostgreSQL + Drizzle
Versioned worlds and durable game state.
oRPC + TanStack Query
One typed contract from server procedure to interface.
MapLibre GL
Real networks rendered as responsive, interactive maps.

Now take the network for a spin.

The guide is only useful if the product feels like it. Follow a line, read the city, and see the system in motion.

Start playing