Install OKChroma Extended
A full accessibility-solved color system from one brand color — written into
your file as Figma variables. This build uses Figma's extended collections: one
theme base with light and dark modes, plus one extension
per brand that overrides only what differs. It takes about a minute to install.
Rebuilt automatically from the latest engine — this link is always current.
Two requirements: the Figma desktop app (the browser version can't
install plugins this way — free from figma.com/downloads), and a Figma Enterprise plan.
Extended collections are an Enterprise feature; on other plans the plugin says so and writes
nothing rather than half-applying.
- Unzip the download.
- Open any design file in Figma desktop.
- Import the plugin.
- Run it.
Good to know
• The plugin installs just for you, on this computer — teammates each do the four steps
once.
• To update later: download the zip again, replace the old folder's contents, done —
no re-import needed if the folder stays in the same place.
• It never touches the network and stores nothing outside your file.
• Applying to a file that already has an OKChroma base updates it in place. Existing
variables keep their ids, so anything bound to them stays bound.
If you applied this before July 2026
• The base's mode columns used to be
wcag · wcag-dark · apca · apca-dark.
They are now just light and dark. Applying once renames your
existing pair in place — the modes keep their ids, so bindings survive.
• The two APCA columns are left exactly as they are. The plugin no longer writes them
and will not recreate them; delete them whenever you like.
• The scale also changed shape: highlight-9 and on-highlight
are gone, and the pen stops renumbered down. The plugin migrates the renamed stops in place.
The two deleted ones are reported so you can remove them yourself — it never deletes a
variable you might still be using.
The other plugin
• The non-Enterprise OKChroma plugin is withdrawn for now. It does not yet carry
the rename table for the scale change above, so updating an installed copy would leave its
variables pointing at names that no longer exist. It will return once that migration is
written. Building from source still works — see the repo.