Skip to main content
WizTools123
WizTools123
Free Online Tools

Tool Categories


Developer Tools New Tool

Free Online Website Colour Extractor from Any Page

Give it a URL and it reads the page and every same-site stylesheet, then lists each colour with a usage count and the properties it was used on. Near-identical shades are grouped, the likely text and background pairs are measured for contrast, and the palette exports as CSS, SCSS, Tailwind or JSON.

Free Forever Nothing Uploaded Counted by usage WCAG contrast pairs
Free Online Website Colour Extractor from Any Page
Share this tool
Advertisement Slot (Top Banner) Google AdSense Unit • Responsive Banner
Website Colour Extractor Everything happens in this tab. Nothing you paste is sent anywhere.
Palette

Give it a URL, or paste CSS below.

Likely text and background pairs, with the measured contrast ratio

Sample Text Background Ratio WCAG
Export
When you give this page a URL, the address is sent to this site’s own server, which fetches the page and its stylesheets and hands the CSS back. This is the one exception on WizTools123: every other tool here works entirely inside your browser. It exists because a browser is not permitted to read another site’s CSS, so this job cannot be done any other way. No cookies are sent, so a page behind a login cannot be read. If you would rather send nothing, switch the source to Paste CSS or HTML below and the server is never contacted.
Source
Grouping 0, exact only
Export

Buy Us A Coffee

Enjoying WizTools123? Help keep our server infrastructure 100% free and open for everyone.

Buy Us A Coffee
Sponsored Content (Below Tool) Google AdSense Placement

Why the Usage Count Is the Useful Part

A list of colours is easy. Knowing which ones matter is not.

Run any real site through a colour extractor and you get between forty and four hundred distinct values. Most of them are noise: a one-off border on a legacy component, three near-identical greys from three different designers, a shadow colour nobody chose on purpose. A flat list of those is almost useless, because the thing you actually want to know is which four or five colours the site is built from.

Frequency answers most of that. A brand colour is declared dozens of times, on buttons, links, focus rings and headings; a mistake is declared once. The property matters too. A colour that appears almost entirely on background is a surface; one that appears on color is ink; one that only ever turns up inside box-shadow is not part of the palette at all and should not be exported as though it were. That is why each swatch here carries both a count and the list of properties it was used on.

The grouping slider handles the near-duplicates. Set it above zero and colours within that distance of each other are merged, with the most frequently used member kept as the representative and the counts added together. On a site with a long history this usually turns nine greys into two, which is a much more honest description of what the design actually uses.

How to Extract a Website’s Colours

A few steps, and nothing is uploaded.

1
Choose how the CSS gets here A URL is fetched by this site’s server, which is stated in the panel above the field. Paste CSS or HTML instead and nothing is sent anywhere.
2
Fetch or paste With a URL, the page is fetched first and then every same-site stylesheet it links. With pasted text, style blocks, style attributes and plain CSS are all read.
3
Group and sort Raise the merge slider to fold near-identical shades together. Sort by frequency to find the brand colours, or by hue to see the palette as a spectrum.
4
Check contrast, then export The pair table measures the likely text and background combinations. Then take the palette as CSS custom properties, SCSS, a Tailwind fragment or JSON.

What to Know About Extracted Colours

Including what declared CSS cannot tell you, and why a URL goes to our server.

This reads declared CSS, so it misses colours set by JavaScript or hidden inside images. A theme switcher that writes styles at runtime, a chart that paints on a canvas, a colour baked into a logo PNG or an SVG loaded as an image: none of those appear in any stylesheet, so none of them appear here. What you get is the palette the site has written down, which is usually the palette its designers agreed on, but it is not everything a screenshot would show you.
Giving this page a URL sends that URL to our server. A browser is not allowed to read another site’s CSS, so a fetcher on our side is the only way this works, and it is the one exception on WizTools123. Cookies are never sent, so anything behind a login cannot be fetched. The Paste CSS or HTML mode exists for exactly this reason and contacts no server at all.
A stylesheet on another domain is not fetched. Only stylesheets served from the same host as the page are followed, so a framework or icon set loaded from a CDN is skipped and its colours are missing from the count. That is deliberate: following every third-party link would turn one request into a dozen against sites that never asked for the traffic. The summary says how many sheets were read and how many were skipped.
Modern colour functions are reported as found, not converted. oklch(), oklab(), color-mix() and color() are listed separately with the declaration they came from, and they are not turned into hex. Converting them properly needs the full colour-space maths and, for color-mix() with a var() inside, the resolved value of that variable, which a text file does not contain. Guessing a nearby hex would be a quiet lie, so they are shown as they were written.

Key Features & Capabilities

What this tool does, and what it deliberately does not.

Page and stylesheets Fetches the page, then every same-site stylesheet it links.
Every colour syntax Hex in all four lengths, rgb, hsl, named, and the modern ones noted.
Counted by property Background, text, border or shadow, so surfaces and ink separate.
Adjustable grouping Merge near-identical shades with a tolerance you set yourself.
Real contrast ratios The likely text and background pairs, measured with a WCAG verdict.
A no-server mode Paste your CSS and the whole extraction runs in your browser.

About the Website Colour Extractor

Getting the colours out of a website is one of those jobs that looks trivial until you try it. Picking them off a screenshot with an eyedropper gives you values that have been through the screen’s colour profile, any opacity the element had, and whatever compression the image went through, so the hex you read is rarely the hex that was written. The only reliable source is the CSS itself.

So this reads the CSS. Given a URL, it fetches the page, finds every stylesheet served from the same host, fetches those too, and adds in any inline style block or style attribute it finds. Then it walks the declarations, pulling out every colour value and recording which property each one appeared on. The result is not just a list of colours but a description of how the site uses them, which is the difference between a palette and a pile of hex codes.

Two things were harder than expected. The first was the modern colour functions: oklch() and friends are becoming common, and converting them from text alone means reimplementing a colour space, while color-mix() containing a var() cannot be resolved without a live document at all. Those are reported as found rather than converted, which is the honest answer. The second was contrast. Listing ratios for every possible pair would produce hundreds of useless rows, so only the plausible combinations are measured: colours that were actually used as text against colours that were actually used as backgrounds.

Frequently Asked Questions

Stylesheets, CDNs, modern colour syntax and what the counts mean.

Because a browser cannot read another website’s files. The same-origin policy blocks it unless that site has opted in with a CORS header, which stylesheets almost never do. Fetching through our own server is the only way, and it is one of only three exceptions on WizTools123. The Paste CSS or HTML mode does the same extraction with no server involved.

Three common reasons. Stylesheets on another domain, such as a CDN-hosted framework, are not fetched. Colours applied by JavaScript at runtime are in no stylesheet to find. And colours inside images, logos or canvas drawings are pixels rather than declarations. The summary line says how many stylesheets were read and how many were skipped.

It groups colours that are within a set distance of each other in RGB terms, keeping the most frequently used one as the representative and adding the counts together. At zero, only byte-identical colours are grouped. Around eight, the three slightly different greys that crept into a design over the years collapse into one. Push it too far and genuinely different colours start merging, which the swatch count will make obvious.

Only from colours that were actually used in the roles being tested: something used on color paired against something used on a background property. Pairing every colour with every other colour would give hundreds of rows describing combinations the site never uses. The ratio itself comes from the standard WCAG relative luminance formula, so 4.5 is the threshold for normal text and 3 for large text.

No. The fetcher never sends cookies, so the request arrives as an anonymous visitor and you get the sign-in page instead. For a page only you can see, open it, view the source or open the stylesheet directly, copy the text and use the paste mode. Everything is then done locally.

Other Developer Tools

Advertisement Slot (Bottom Banner) Google AdSense Unit • Responsive Banner