Brand
The PurpletGo brand
Logo
A door, and the way out through it
The mark is a door frame with an exit arrow, on a violet tile with corners at 29 percent of its side. The wordmark is Plus Jakarta Sans at weight 800 with tight tracking. They sit together as a lockup, or the mark stands alone.
The lockup is built from the tile
Call the tile's side T. The wordmark is set at 0.6 T, the gap between them is 0.3 T, and the wordmark sits on the tile's centre line. So a 32 px tile takes a 19 px wordmark with a 10 px gap, and a 56 px tile a 34 px wordmark with a 17 px gap. Weight 800, tracking minus 2 percent, always.
T 24 · text 14 · gap 7T 32 · text 19 · gap 10T 48 · text 29 · gap 14Clear space and minimum size
Keep half the tile's width clear on every side. Do not set the tile below 16 px, or the lockup below 24 px tall; under that the door closes up. The SVG draws its own corners, at 29 percent of the tile's side; never round it again with CSS, which clips it at a different ratio.
16 px24 pxPlease don't
Downloads
SVG for anything on a screen or in print; PNG where SVG is not accepted. The wordmark in the lockups uses the font stack, so open them in a browser or an editor with Plus Jakarta Sans installed.
Lockup
Mark and wordmark, for light grounds.
Lockup, white
Mark and wordmark, for dark grounds.
Glyph, ink
The door alone, for one-colour print.
Glyph, white
The door alone, reversed.
Colour
One violet, and everything else is ink
The brand violet is #5f31dd, a royal violet of our own rather than a stock one. It is the tile, the primary button and the accent word in a headline, and nothing else. Surfaces are white and the palest tints; text is a violet-black ink, never pure black.
#f4f0ff#ece5ff#ded2fe#c5b1fc#a284f5#815aed#5f31dd#4d22c3#401e9f#361c7d600 is the brand violet. 50 to 200 tint surfaces; 300 to 500 draw lines, halos and illustration; 700 to 900 are text on light and the deep end of gradients.
#12101cHeadings and body text.#565273Secondary copy and lede text.#6e6a88Labels, captions and eyebrows.#2a2150The station sign and the departure board.#1f1838The train's chassis and the board's rules.#16112bTerminals and the darkest ground.#130f1aThe app's dark theme background.Status: one hue per meaning
A fill carries white text. The ink variant is for words on a light ground, because the fills do not reach 4.5:1 there. Revocation and danger share crimson, so nothing else on a screen is ever red.
success
fill #14714cink #0f5a3csoft #e3f5ec
Revoked
warning
fill #f59e0bink #9a5b0bsoft #fbf0dc
Needs manual action
info
fill #0ea5e9ink #0b5f82soft #e2f3fb
Scheduled
danger
fill #d9344fink #a71b2esoft #fde8ec
Failed
Type
Plus Jakarta Sans, and a mono for what a machine said
One family for everything people read, from the poster headline to a caption. JetBrains Mono is for the things a system produced: timestamps, hashes, identifiers, code. Headlines are weight 800 with negative tracking; body is 400 at a generous line height.
48px / 1.06 / -0.035em / 80040px / 1.08 / -0.03em / 80030px / 1.15 / -0.02em / 80020px / 1.3 / -0.01em / 70018px / 1.6 / 0em / 40015px / 1.6 / 0em / 40013px / 1.5 / 0em / 40011px / 1.2 / 0.14em / 60013px / 1.2 / 0.22em / 800JetBrains Mono 400The station world
A departure is a train leaving
This is the one picture that belongs to us. The person leaving boards a train; each connected system is a wagon coupled to it; the sign on the platform reads Departure; the board shows each system reporting back. Every illustration is built from these pieces, drawn in the violet ramp with brass for the train's fittings.
April 2018An engineer resigns from Cisco.
- Flat colour and simple shapes, lit from the upper left: a lit side and a shaded side, no gradients heavier than a sheen.
- Brass and the headlamp's amber belong to the train only. They never appear in the interface.
- A new scene is composed from these objects, not redrawn. If it needs a new object, it is added here first.
- The world is a metaphor, not a product screenshot. It shows the idea of a case; the real board shows the case.
Voice
We would rather tell you what broke
PurpletGo's whole argument is that it does not overclaim, so the writing cannot either. Plain words, specific numbers, and a failure named as a failure.
- 01Say what the system did, not what the tool did. A system is revoked only when the vendor confirms it.
- 02Name failures plainly. A 403 is a 403, in the log, until it is resolved.
- 03Sentence case everywhere, including buttons and menu labels. Product names and acronyms keep their capitals.
- 04Hyphens, never em dashes.
- 05No certifications are claimed. The product produces evidence for audits; it does not hold the certificate.
- 06Sample data is labelled as a sample and uses a fictional name.
- 07Plans are Starter, Team and Enterprise, written with a capital. Features not on every plan say which plan has them.
Yes
“Jira Cloud: failed. The vendor returned 403. Retry re-runs only this system, and the case stays open until it is resolved.”
No
“Offboarding complete! All access has been successfully removed across your entire stack.”
Yes
“Six connectors are Live. The other twenty-seven are Beta until a real revoke passes.”
No
“SOC 2 ready, with 200+ integrations.”
For builders
One file, read everywhere
Every value on this page comes from one JSON file in the repository. The marketing site's Tailwind config reads it, the app's theme matches it, and this page renders it. To change a colour, change it there.
brand/tokens.json in the repository