Patina

About Patina

Every project drifts the same way. Someone picks a colour with the eyedropper instead of the style, a client asks for a bit darker, a section gets pasted in from another file — and a year later the same brand green exists seven times, one point apart.

Framer lets you make colour styles. It will never tell you where you are not using them. Patina will.

How it decides two colours are the same

Not by hex code. #ff0000 and #ff0a00 are ten apart in RGB and indistinguishable; #000000 and #0a0a0a are also ten apart and plainly different. So colours are compared in CIELAB with CIEDE2000, the metric built for this question, at the threshold where almost nobody can tell two shades apart.

What you get

• Groups of shades that are the same colour, with how far apart they really are

• The target is a style you already have, or the shade actually used most — never an average nobody chose

• One button: point every one of those layers at a single style, or make the style and apply it

• Colour styles nothing in the project uses

Honest about what it is

• It will not chain. Naive grouping merges A with B and B with C and hands you a group whose ends obviously differ. Every shade here is measured against the group's target, never its neighbour.

• A half-transparent black is not a dark grey, and is never merged into one.

• A colour it cannot read is listed, not guessed at.

• Text colour lives inside a text style, and rewriting those is a different and riskier job. Patina counts them and leaves them alone.

• Breakpoints are not de-duplicated: a colour on the tablet frame is a separate layer that has to be changed separately.

Free, and it stays free. The plugin makes no network requests at all and stores nothing in your project.