Brand.

The mark, the wordmark, the palette, the type and the voice. Files are at the bottom. Nothing here is decorative: every element names something the product does.

The mark. A switch faceplate reduced to a row of ports. The lit port is the uplink.

Full mark

Five ports, four dim and one lit. Use at 24 px tall and above.

Small mark

Three ports, two dim and one lit. This is the favicon. Use from 16 px to 24 px.

Smallest mark

One lit square. Use where only a 16 px glyph fits, such as a status dot or a tab icon.

The wordmark. Geist SemiBold, tight tracking, shipped as outlines. Never retype it.

UplinkSwitch wordmark on graphite
UplinkSwitch wordmark on paper
Clear space on every side is one port width. Minimum width is 120 px. The mark sits on the cap-height band of the text, never on the baseline.

Color. Two grounds and one accent. Green and red appear only where they show real status.

Graphite

#0E1116

Dark ground. The console, and this site in its dark theme.

Paper

#F4F2EC

Light ground. Docs, print, and this site in its light theme.

Signal amber

#FFB000

The one accent: the lit port, the glows and highlights on the site.

groundtextmutedborderpanel
graphite#EBEBEB#9B9B9B#242424#191919
paper#0A0A0A#737373#E5E5E5#F2F2F2

Type. Geist for words. Geist Mono, tabular figures, for every number, key prefix and model name.

Geist · 400 to 600

One key for Claude, GPT and Gemini.

Headlines at medium weight with tight tracking. Body at regular weight, relaxed leading, one idea per sentence.

Geist Mono · 400

sk-uplink-k7m2…c41f
claude-sonnet-4-6
1,204 in · 388 out · 1,024 cache read
$0.001 per request

Anything a customer might copy, compare or bill against is set in mono.

Voice. Datasheet voice. Numbers carry units. The host is named. Errors name the stage and the cause.

  • Paste one base URL into any of three SDKs.
  • Served by Anthropic on your key. 1,204 tokens in, 388 out, 1,024 read from cache.
  • Your key is valid. The upstream is not answering. Request ul_8f2c was not billed.
Left out on purpose: gradients, brains, sparkles, robots, stock photos, and any latency or throughput number that a load test has not produced.

Files. SVG where it can be vector. PNG for places that need raster.

fileuseformat
uplinkswitch-wordmark-dark.svgWordmark for graphite or any dark groundvector, text outlined
uplinkswitch-wordmark-light.svgWordmark for paper or any light groundvector, text outlined
uplinkswitch-wordmark-dark.pngSame, raster2048 px wide, transparent
uplinkswitch-wordmark-light.pngSame, raster2048 px wide, transparent
uplinkswitch-mark-dark.svgMark alone, dark groundvector
uplinkswitch-mark-light.svgMark alone, light groundvector
uplinkswitch-icon.svgApp icon, avatar, Whop store imagegraphite tile, vector
uplinkswitch-icon-1024.pngSame, raster1024 px square
uplinkswitch-icon-512.pngSame, raster512 px square
uplinkswitch-icon-paper.svgApp icon on papervector