About Palette Extractor & Contrast Matrix
The matrix is the part worth reading twice. Each cell is drawn as that pairing — one colour as text on another as background — with the WCAG ratio, its AA/AAA grade, and the APCA Lc the next generation of the guidelines will use. A palette that looks harmonious and a palette whose text you can read are different things, and the matrix shows which you have.
Drop in a photograph, a logo or a screenshot and the tool samples it down to a thumbnail, groups the pixels by median cut, and hands back the handful of colours that account for most of the picture, ordered by how much of it each one covers. Median cut splits the colour space along whichever channel varies most, so it separates the distinct hues in an image rather than averaging everything into one beige. If you already have the colours, paste the hex values instead and skip the image entirely.
Under the swatches is a grid with every colour as text against every colour as background. Each cell is painted in that pairing, so the number in it is not an abstraction — you are looking at the exact combination it describes. The ratio is the WCAG 2 figure that accessibility audits cite, graded AAA at 7:1, AA at 4.5:1 and AA Large at 3:1. Below it sits the APCA lightness contrast, which the draft of WCAG 3 uses because it models how text is actually perceived: negative for light text on a dark ground, and honest about pairings the older ratio over- or under-rates.
Exports cover where palettes actually go. CSS custom properties for a stylesheet, a Tailwind colours block for a config file, plain JSON for a design-token pipeline, an SVG sheet of labelled swatches for a document, and an Adobe Swatch Exchange file that opens in Illustrator, Photoshop and the importers in Figma and Affinity. The .ase is written byte by byte in the page, which is why it downloads instantly.
Sampling happens on a copy of the image no larger than 160 pixels on its longest side. That is deliberate: a palette is a statement about the picture as a whole, and a thumbnail preserves that while turning a forty-megapixel export into something that can be quantised in a few milliseconds. Fine texture and single-pixel highlights disappear at that size, which for palette purposes is what you want.