HolySN

Docs

Dark mode

A recolour of the platform's own design tokens, not a filter over the page.

Turning it on

Alt+Shift+D, or tt in the palette, or the toggle in the popup. It is off by default.

Flipping it retints every open tab immediately. There is no reload, and no flash of the light theme on the next page you open.

Why it is not an inversion

ServiceNow ships around 5,700 design tokens, and they are flattened RGB triples rather than a chain of references:

--now-card--background-color: 255,255,255;

Nothing cascades from anything, so a single override at the root changes nothing. Every token has to be recoloured on its own.

What makes that tractable is the naming convention. The token's name says what it is for, and the treatment follows from that:

The name saysTreatment
--background-color, _surface, _brandwhite and near-white collapse onto a dark ramp; chrome that was already dark is left alone
--border-color, _dividerlands between the surface and the text
--color used as inkdark text lightens; white text on a brand button stays white
neutral-0..21, primary-0..3the ramp is read backwards, so every step keeps a colour the platform designed

The result is a theme the platform's own designers could have shipped, rather than a hue rotation that turns every logo green.

The places it has to work

Three separate rendering worlds, each needing its own pass:

  • the Next Experience shell, including components that live inside shadow roots
  • classic lists and forms, including pages served with sysparm_use_polaris=false, where the CSS has no tokens at all and the colours are literals
  • Service Portal, where widget CSS is stored on the instance and beats a stylesheet on specificity, so it needs a JavaScript pass rather than a rule

Themes

Beyond dark and light there are full custom themes, built in the Themes panel of the manage page. A theme starts from a single colour: a generator derives eight anchors from it while respecting WCAG contrast targets, and all 5,731 tokens follow from there. You then override whatever you like across ten sections, each with up to four slots.

A slot you did not touch stays derived and is never saved, which is what lets Generate move everything you left alone and nothing you chose. A theme belongs to your account rather than to a profile, and while it is active it takes precedence over both dark and light mode.