Colour Memory reads the fill you selected and shows what the archive can actually prove about it — a named source, an evidence grade, the historical company that colour keeps, and the claims the evidence will not support. It never changes your hex.
Free to start · no credit card · works on any solid fill
There is no run button. Select a shape with a solid fill and the panel renders that colour's Passport card: the swatch, the archive record it resolves to, the citation, and an evidence grade. Change your selection and the card follows.
Every card carries a badge before you read anything else, so you know how much weight the record can take. The badge is a fast preview — the full grade letter and its label render on the card itself, never replaced by the badge.
Under the card, an expandable drawer splits the record three ways: What is documented, What is inferred, and What you must not claim. The third one is the part most colour tools do not have. A weak grade is displayed, not filtered out — the plugin will tell you a colour is Interpretive rather than quietly upgrade it.
A hex is not a colour's identity. Plenty of hexes are shared by records that have nothing to do with each other, and an algorithm ranking them cannot know which one you meant. So the plugin shows you that it is a collision, tells you the rule it ranked by, and lets you choose the record that is actually true for your file.
#DA291C is the honest example. Eight archive records share it exactly:
The choice is remembered — and remembered in the file, not on your machine. "In this document, #DA291C means Ferrari" is a fact about that file, so it is stored on the file and travels with it to collaborators. It will not follow you into an unrelated project and assert something false there.
Colour tools generate harmonies from arithmetic on the hue wheel. This does not do that. The "Historically paired with" section is drawn from real published colour systems, and it appears only where those sources actually have something to say about your colour:
Those are three different strengths of claim about three different things, so they are fetched independently, evaluated independently, and rendered as visibly different objects, strongest first. A weaker source never fills a gap left by a stronger one. A colour can have all three, one, or none — and none means the section stays silent rather than offering a consolation pairing.
Collisions apply here too. Where a paired partner's hex is itself shared by several records, the card says so and names the ranking rule, instead of presenting one candidate as the answer.
The archive's hex and your hex are two different facts, and the plugin refuses to conflate them. If you selected #DA291C, your shape's fill is still exactly #DA291C after the card renders — the record's own hex, where it differs, appears as a secondary note on the card and nowhere else. Accessibility contrast is computed against your input hex, not the archive's, because that is the colour that will ship.
The same restraint governs everything else it touches. These are the rules the plugin is built to:
When you do want the colour committed, Create & apply variable makes a Colour Memory variable and binds it to the fill — a deliberate action, with the record's evidence stored alongside it. And if the API cannot be reached, the panel says so plainly and tells you your file has not been changed.
Six records as the plugin presents them. Every claim below is the archive's own: the source, the grade, and where the evidence stops.
Install from Figma Community, open the panel, and paste a Colour Memory API key. Keys are free on the Explorer tier with no credit card — the same key works across the API, the MCP server and this plugin, so if you already have one you are already set up.
If the key is wrong, you get a sentence in plain English and another go, not an error code. The plugin talks to api.colourmemory.com and nowhere else; that restriction is declared in its manifest, which Figma enforces.
This one tells you exactly how much it means — and where the evidence runs out, it says that instead.