← Back to game
About Colourdle
See a colour. Guess its name. Score by how close your guess is to the actual name, and how close the colour you named is to the target.
Game Options
Two independent choices shape your game:
Timing:
- Daily — 5 colours, same puzzle for everyone each day. Results are saved and can be shared.
- Freeplay — Endless rounds. Play at your own pace. Hit "Finish" when you're done to see your summary.
Game type:
- Classic — One guess per colour. See it, name it, move on.
- Explore — Up to 10 guesses per colour with live feedback after each attempt. See what colour your name matched and how it scored. Your best score per round is kept. Great for learning colour names.
These combine freely: Daily Classic, Daily Explore, Freeplay Classic, Freeplay Explore. Each Daily combination has its own puzzle and saved results.
Palette Filter
Choose a colour source to play with:
- All colours — the full pool of ~7,600 colours
- Crayola — 226 classic crayon colours
- Pantone — ~2,250 professional colour standards
- XKCD — ~700 crowdsourced colour names
- Meodai — ~4,300 curated community colour names
- RAL — 120 European industrial colour standards
- Meodai Full (30k+) — the complete meodai/color-names dataset with over 30,000 creative colour names. Not included in the "All" pool — opt-in only for the adventurous.
When a palette is selected, both the target colours and your guess matching are restricted to that source. Each palette has its own daily puzzle.
Scoring
Each round produces two scores:
- Name score (0-100) — How close your typed guess is to the target colour's name. Uses the same six POEM measures as matching (see below) to rank every colour name by similarity to your guess. Your score is based on where the target lands in that ranking, with a quadratic curve that rewards the top positions and heavily penalises distant ones. Word order doesn't matter — "gray sky" scores 100 against "Sky Gray".
- Colour score (0-100) — How close the colour you named is to the target colour, measured perceptually. Uses CIELAB Delta E (CIE76), a standard for perceptual colour difference, mapped through a sigmoid curve.
Name score = ((1 − rank / pool_size) ^ 2) × 100
Colour score = 100 / (1 + (Delta E / 30)^1.8)
The two scores are combined using a power mean (p=3), which favours the higher of the two values. This means doing very well on one axis partially compensates for the other.
Final = ((name^3 + colour^3) / 2) ^ (1/3)
The maximum base score per round is 100. If your guess matches the exact colour entry (same hex value), your round total is doubled as a bonus — so scores above 100 per round are possible but not expected.
How Matching Works
When you type a guess, the game finds the closest colour name in the active pool using POEM (Pareto-Optimal Embedded Matching), adapted from Brereton et al. 2020. Instead of relying on a single matching algorithm, POEM combines six independent similarity measures and uses Pareto dominance to find the best consensus match.
The six measures are:
- Levenshtein distance (character edits)
- Word-sorted Levenshtein (order-independent)
- Character bigram Dice coefficient
- Word-level Jaccard distance
- Longest common substring ratio
- Word containment (query words found in candidate)
A colour name is only chosen if no other candidate beats it on every measure simultaneously. This means "gray sky" correctly matches "Sky Gray" even though no single measure would reliably pick it. The result is robust fuzzy matching with zero dependencies — no ML models, no API calls, just cheap string metrics that are smart together.
See it in action — compare Colourdle's adaptation against the original paper's fitness-based selection, side by side.
This means there are two strategies: guess the exact name (high name score), or guess a colour that's perceptually close (high colour score). The best guesses do both.
Technical Notes
- Daily puzzles use a seeded PRNG (Mulberry32) so everyone gets the same colours each day
- Classic and Explore dailies use different seeds so they present different colours
- Colour distance uses the CIELAB colour space with D65 reference white, which approximates human colour perception better than RGB or HSB distance
- Text contrast (black or white) switches automatically based on WCAG relative luminance of the background colour
- Game state is stored in your browser's localStorage. Daily scores are submitted anonymously for percentile ranking via a Cloudflare Worker
- The entire game is static HTML/CSS/JS with zero external dependencies
Credits
Created by Drew Brereton. Source code on GitHub.
Colour data sourced from Crayola, Pantone (via community datasets), XKCD colour survey, RAL colour standards, and meodai/color-names — a community-curated collection of over 30,000 handpicked colour names.