Palette
Four neon accents with jobs, a dark that isn't black, and a plain note about where the art comes from.
Every image on this wiki is AI-generated, and a lot of the prose was drafted that way too. The pictures are placeholders: something to look at while we play, not commissioned art and not anybody's portfolio. If a page reads like it was written by a machine, sometimes it was, and telling us is a favor. If anybody wants to replace an image with their own work, it goes straight in.
That's what the palette below is for. Generated images drift, and without a fixed set of colors and a named light source every prompt produces a different campaign.
Touchstone: Cyberpunk: Edgerunners. High-contrast neon accents against deep dark backgrounds: electric yellow, bright neon green, cyan blue, and vivid purple/magenta. That's the reference. What follows is our reading of it.
The touchstone governs color and light. It does not govern how the pictures are drawn.
Worth saying because it is an anime and the campaign takes its action vocabulary from anime
too, so the obvious inference is that the art should be cel-shaded, and it shouldn't. Every
image here is painterly realism, which is the house style in both templates and the only
style any prompt should ask for. Steal the palette, paint the picture. The argument is in
docs/decisions.md.
The accents have jobs#
Four neon accents with no assignments is a casino. Edgerunners gets away with a loud palette because each color means something, so give each one a job here and the dominant accent in a scene tells you what kind of scene it is:
| Accent | Reference | Ours | What it means in this campaign |
|---|---|---|---|
| Electric yellow | #fcee0a |
#e8d61c |
Hazard and enforcement. Cordon tape, plant lighting, checkpoint signage, the refinery belt, anything with a fence and a warning on it |
| Neon green | #39ff14 |
#4ee06a |
The Tide. Contaminated water, the sheen on standing water, growth gone wrong, and the weird that comes out of El Infierno |
| Cyan | #00e5ff |
#2ee6d6 |
Data and credentials. The Matrix, host interfaces, badge readers, the Corporate Court, corporate cool |
| Magenta / purple | #ff00a0 |
#ff2e88 |
Simsense and appetite. The Strip, the studios, the night market, BTL, the pier, anything selling you a feeling |
Deep dark is the city itself: wet concrete, night, rain, sodium. The background is
never black: it's #0b0e13, which is blue-dark, because pure black kills the neon.
Our values are slightly desaturated from the reference on purpose. Fully saturated neon on a dark ground halates (it vibrates, bleeds and becomes unreadable at text sizes), so the reference hexes are for art direction and ours are for screens.
Rules that keep it from becoming noise#
-
Accents are accents. Borders, labels, a single word, a hover state, one light source in a frame. Never a paragraph of body text, never two accents competing for the same element.
-
One dominant accent per scene, plus the dark. If a description or an image is using three, it isn't a palette any more.
-
People are lit warm and muted; the city is lit neon and dark. This is the reconciliation with the portrait house style in the person template, which bans neon-cyberpunk lighting on faces. Both rules are correct: faces read better warm, and the contrast between how we light people and how we light places is what stops the campaign looking like a lighting gel sampler. Places get the neon. Faces get a lamp.
This is a rule about light and it stops at the skin. What somebody is wearing is not muted and never was: see below.
-
Daylight exists, and it's most of the campaign. Los Angeles is a bright, smoggy, high-contrast city in the afternoon. The neon palette is for night, for interiors, and for anything glowing on its own, not a filter over everything.
-
Jobs govern signals, not decoration. The assignments above bind art direction and anything that carries meaning: a hazard marking, a Matrix interface, a contaminated surface. Site chrome is allowed to use a hue because it looks right: the cyan page taglines and the magenta card-hover aren't claiming to be data and appetite, they're furniture.
-
All four live in the site stylesheet as
--neonthrough--neon-4. Where the theme uses them:- magenta: active nav, link hover, card hover, blockquote rule
- cyan: links, taglines, focus rings
- yellow: all GM-copy chrome: the do-not-deploy banner, the boxes around withheld sections, the GM-only and Draft flags. A GM page is a hazard, so the warning color is the correct one, and it stops magenta doing two jobs at once
- green: reserved. Nothing in the wiki means the Tide, so it stays for art direction rather than being sprinkled on for completeness
People and clothing: not muted#
Muted is a lighting instruction. It was never a wardrobe instruction, and reading it as one produced a wiki full of people in canvas and gray. Shadowrun fashion is loud, and the corebook's own art says so: the Pregens plate on p. 87 has magenta curls and teal locs, a green brocade cloak with a white fur collar, a blue pinstripe suit with gold on the lapels and the shoes, red scale-patterned sleeves, camo with beadwork, face tattoos on half of them, and gold on nearly everybody. Nobody in that picture is wearing beige.
So the two rules sit on different things and neither one bends:
- The light stays muted and warm on people. Grade, source, and the way a face is lit are unchanged.
- The cloth is saturated. A desaturated grade is how a saturated coat reads. Put the color on the person and let the room stay dark.
The dye palette#
Deliberately offset from the four accents above, because those have jobs. A coat in
#4ee06a is claiming to be the Tide; a coat in emerald is just a good coat.
| Dye | Hex | Where it goes |
|---|---|---|
| Gold | #c8a02a |
Trim, lapels, shoe caps, and all the jewelry. The single most Shadowrun color on a person, and it reads warm under the practical lamp we already use |
| Oxblood | #8c2333 |
Leather, long coats, a lining that shows when they move |
| Emerald | #12795c |
Brocade, a cloak, the one good jacket |
| Plum | #6b2d7a |
Velvet, linings, and hair |
| Deep teal | #17707f |
Work shells, trim, hair |
| Hi-vis orange | #e2662a |
Trade wear, and the only dye here that is also a signal |
| Bone | #ded3c0 |
Shirts, wraps, contrast panels against all of the above |
Base neutrals to hang them on: charcoal #23262b and navy #1e2a45. Pinstripe both.
Three rules for a figure#
- Hair may use the neon accents at full strength.
#ff2e88and#2ee6d6are dye on a head, not a signal, so the jobs govern signals, not decoration rule already covers it. Hair is rarely just brown here. - Gold, and a lot of it. Hoops, a septum ring, stacked cuffs, a torc, a chain from a nose ring to an ear cuff.
- Pattern beats flat color. Pinstripe, brocade, scale mesh, geometric print, animal print, camo. A patterned garment survives a muted grade. A flat one goes to mud.
The six clothing tags that turn this into one clause per figure are in
docs/image-prompts.md.
Using it in image prompts#
Name the dominant accent and its source rather than the mood. "Sodium and hazard yellow from a checkpoint gantry, everything else wet dark" is directable. "Cyberpunk lighting" is not. And say what the light is coming from (a screen, a sign, a gantry, a cook fire), because a named source is what makes a frame look like a place instead of a color grade.
Say the genre with objects, and say it every time. A generator has no idea this is Shadowrun. Left alone it produces the present day, or a period pastiche, or somebody else's country: one attempt at the airport came back as a rural British airfield with a washing line and UK registrations, from a prompt that said "plateau", "back gardens" and "the bluff and the ocean beyond" and never once said Los Angeles, 2060 or cyberpunk. The word cyberpunk on its own does not fix that either, for the same reason "cyberpunk lighting" doesn't. Name the furniture: a drone on a charging cradle, a camera mast, hazard tape, a badge reader, a cable taped across a floor to a jackpoint in the wall, mismatched chrome on something cheap, corporate marks on something that used to be public, wet asphalt holding the light. Two or three of those in a frame do the work that the adjective can't.
Not floating glyphs. An augmented-reality overlay is the first thing a generator reaches for and it is 2070s technology: this is 2060, the Matrix is wired, and Archetypes says so outright. Notices are printed and layered on a board, prices are on a screen bracketed to a post, and the wire goes into somebody's head. A cable in frame dates a picture in a way a hologram cannot.
Put the place and the year in the first line, because everything after it inherits them.
The map's own palette#
The map needs more colors than a scene does, so it has its own set. Four accents are enough for a picture, where one thing is the subject and the rest is background. A map has a dozen kinds of ground in one frame and a reader has to name each one off the key without hesitating. So the sheets extend this palette rather than obeying it, and the extension is listed here so the two can be compared.
| On the map | Color | What it marks |
|---|---|---|
| Corporate ground | Cyan #0ad0ce |
Extraterritorial soil, the arrangement rather than a company: Century City, El Segundo, LAX, the port, Catalina, the interconnect blocks downtown |
| Ares | Crimson #d00a3f |
Orange County and the seventeen miles, which Ares polices under contract |
| Aztechnology | Ocher #aa5908 |
San Diego, behind the seal |
| Amalgamated Studios | Gold #e5a70b |
The studio belt, and Fun City |
| El Infierno | Green #4ee06a |
The cordon's two lobes. The same green as the Tide's own accent above, not the map-only mute it used to be: nobody had a documented reason for that one, unlike Pueblo and Amalgamated below, and it read that way |
| Its own city | Municipal blue #0d8aff |
A city that was never Los Angeles and still has somebody running it, whether that is a council or a parish network: Santa Monica, West Hollywood, Pasadena, Glendale, Torrance, the Palos Verdes towns, the Valley enclaves, and Inglewood, Compton and the rest of the southeast, whose city halls are shells and whose parishes are not |
| Sprawl | Dark magenta #521f5e |
Everywhere else people live, districts with a page included, since they had their own lighter violet until the boundary outline took over telling them apart; and the largest claim on the sheet. Dark on purpose: it is the ground everything else is read against, so it wants to sit back. It was a lighter blue-violet until 2026-08-17 and kept blurring into municipal blue, and darkened twice more on 2026-08-18 for the same reason and then simply to sit back further |
| Ash country | Olive #7c9307 |
The fire-hazard massif |
| Pueblo | Magenta-pink #e0499a |
The nation, north and east. Brightened from #045843 to a teal on 2026-08-18, then moved again the same day: the teal sat closest of any pair on the sheet to corporate cyan (ΔE 30), and Union Station's own dot, which carries this color on purpose, read as a Multi-Corp Sector marker in the wrong place |
| The cordon, and the seal | Hazard yellow #f5e60a |
Lines only, never a fill |
| The seventeen miles | Steel #9aa4b8 |
Lines only |
| Rivers | River blue #2a94b8 |
Not a claim, but it crosses most of them |
Two corporations get their own color and the rest share cyan, which is a judgment about what a reader is asking. Looking at Orange County or San Diego the question is whose is it, and "corporate" does not answer that. Looking at Century City the question is what kind of ground is this, and the answer is the arrangement rather than the tenant, because no single name owns enough of the basin to earn a row.
Three colors here disagree with the accents above, on purpose. Magenta means simsense in a picture and the studios are gold on the map, because the map already spends its magenta-adjacent range on the two violets and gold says money about a studio lot as well as magenta says appetite. Pueblo is slate rather than the hazard yellow it once shared with the wire, because the one line you may legally cross should not look like the two you may not. And Aztechnology is ocher rather than the crimson it had, because Ares needed a red more than it did.
Every pair is measured rather than eyeballed, by tools/maps/palette-distance.py, which prints the CIELAB
distance between all of them and fails anything under about ΔE 25: a floor set well above the
just-noticeable threshold, because these are large translucent washes over a dark base rather
than swatches side by side, and the opacity each one is drawn at pulls them back together.
Adjacency matters more than the number. Two colors that never share a border can sit closer than two that do: ash country and Aztechnology are at opposite ends of the frame and their distance is free, while Aztechnology and Pueblo run along the same line for a hundred miles. The pairs to keep honest are the ones that touch: the tide against everything it wraps, and Pueblo against Aztechnology.
One table feeds all three keys. The city sheet's panel, the region sheet's, and the
pan-and-zoom viewer at notes/assets/maps/ are all written from LEGEND in the generator, so
a color cannot mean one thing on one of them and something else on another.