A dictionary needs a colour list because the same design is woven in many shades: you must allow variation and still call it the same thread count. So the real question is not "what are the colours" but "when are two shades the same colour" — a distance question, best asked in a perceptually uniform space (OKLab), not in sRGB.
Is the Tartan Registry list good enough?
The Register's list is the obvious starting point. Run through OKLab it turns out to be a list of 131 example shades under 24 codes (not 19), and as a partition of colour space it does not hold up:
- It overlaps itself. 21% of its own shades sit closer to a different code's centroid than to their own — a fifth are mislabelled against the list's own logic.
- Half its resolution is redundant. 12 of the 24 code-centroids are within ΔE 0.10 of a neighbour — closer than "clearly a different colour". The list claims 24 distinctions and resolves about 12.
- Its coverage is lumpy, and tellingly so. The shades cluster on madder red, weld yellow, earth green and indigo blue — the natural-dye palette — and thin out at cyan and clean pink, the colours that need synthetic dyes. The list is a faithful record of what was woven, which is exactly why it is not a uniform grid.
So the Register list stays as the source of historical shades, but the dictionary's classifier is a clean partition derived from it (OKLab centroids, Voronoi cells) rather than the raw list. Regularising the Register's own 24 codes already classifies 79% of its shades into their own code, so the majority still match the Register; the 21% that don't are its own inconsistencies.
How many colours, and how far apart?
There is no perceptually magic number — 6 (white, black, red, green, yellow, blue) and 11 are special to language (Berlin & Kay's basic colour terms), not to the gamut. What a count costs you is separation. Building a partition at each size and measuring the ΔE between neighbouring colours (≥0.05 is "clearly a different colour"), spaced evenly versus weighted to the dyes:
| colours | even spacing, min ΔE | dye-weighted, min ΔE |
|---|---|---|
| 6 | 0.34 | 0.20 |
| 11 | 0.24 | 0.17 |
| 25 | 0.16 | 0.10 |
6 and 11 sit far above the confusion floor; by 25 the colours are only twice "clearly
different" apart, so ~25 is about the ceiling. The two columns differ because even spacing
wastes cells on cyan and clean pink — colours no vegetable dye reaches — while weighting to
the dyes spends the budget on the madder reds, indigo blues and earth greens that tartan
actually used. That bias is deliberate: the colours should resolve the cloth, not the gamut. The
full reasoning, with the naming scheme, is in the design notes (design/colour.md in the source
repository).
The full Tartan Registry colour list
Corrected for errors as of 2023-01-23:
| Name | Code | sRGB Hex | rgb | Sample |
|---|---|---|---|---|
| Light Red | LR | #E8CCB8 | 232,204,184 | |
| Light Red | LR | #E87878 | 232,120,120 | |
| Light Red | LR | #EC34C4 | 236,52,196 | |
| Red | R | #A00048 | 160,0,72 | |
| Red | R | #FA4B00 | 250,75,0 | |
| Red | R | #FF0000 | 255,0,0 | |
| Red | R | #DC0000 | 220,0,0 | |
| Red | R | #C80000 | 200,0,0 | |
| Red | R | #C82828 | 200,40,40 | |
| Red | R | #C8002C | 200,0,44 | |
| Red | R | #B03000 | 176,48,0 | |
| Dark Red | DR | #A00000 | 160,0,0 | |
| Dark Red | DR | #960000 | 150,0,0 | |
| Dark Red | DR | #960028 | 150,0,40 | |
| Dark Red | DR | #880000 | 136,0,0 | |
| Dark Red | DR | #800028 | 128,0,40 | |
| Dark Red | DR | #781C38 | 120,28,56 | |
| Dark Red | DR | #4C0000 | 76,0,0 | |
| Dark Red | DR | #901C38 | 144,28,56 | |
| Dark Red | DR | #680028 | 104,0,40 | |
| Orange | O | #EC8048 | 236,128,72 | |
| Orange | O | #E86000 | 232,96,0 | |
| Orange | O | #DC943C | 220,148,60 | |
| Orange | O | #D87C00 | 216,124,0 | |
| Dark Orange | DO | #BE7832 | 190,120,50 | |
| Dark Orange | DO | #B84C00 | 184,76,0 | |
| Light Yellow | LY | #F8F4D0 | 248,244,208 | |
| Light Yellow | LY | #F9F5C8 | 249,245,200 | |
| Light Yellow | LY | #F8E38C | 248,227,140 | |
| Yellow | Y | #FFFF00 | 255,255,0 | |
| Yellow | Y | #FFE600 | 255,230,0 | |
| Yellow | Y | #FFD700 | 255,215,0 | |
| Yellow | Y | #FCCC00 | 252,204,0 | |
| Yellow | Y | #E0A126 | 224,161,38 | |
| Yellow | Y | #E8C000 | 232,192,0 | |
| Yellow | Y | #D8B000 | 216,176,0 | |
| Dark Yellow | DY | #BC8C00 | 188,140,0 | |
| Dark Yellow | DY | #D09800 | 208,152,0 | |
| Dark Yellow | DY | #C89800 | 200,152,0 | |
| Dark Yellow | DY | #C88C00 | 200,140,0 | |
| Light Green | LG | #789484 | 120,148,132 | |
| Light Green | LG | #C4BC68 | 196,188,104 | |
| Light Green | LG | #9C9C00 | 156,156,0 | |
| Light Green | LG | #86C67C | 134,198,124 | |
| Light Green | LG | #649848 | 100,152,72 | |
| Green | G | #008B00 | 0,139,0 | |
| Green | G | #408060 | 64,128,96 | |
| Green | G | #289C18 | 40,156,24 | |
| Green | G | #006400 | 0,100,0 | |
| Green | G | #007800 | 0,120,0 | |
| Green | G | #708048 | 112,128,72 | |
| Green | G | #5C6428 | 92,100,40 | |
| Green | G | #00643C | 0,100,60 | |
| Green | G | #146400 | 20,100,0 | |
| Green | G | #006818 | 0,104,24 | |
| Green | G | #004C00 | 0,76,0 | |
| Green | G | #285800 | 40,88,0 | |
| Green | G | #005020 | 0,80,32 | |
| Green | G | #005448 | 0,84,72 | |
| Dark Green | DG | #003C14 | 0,60,20 | |
| Dark Green | DG | #003820 | 0,56,32 | |
| Dark Green | DG | #004028 | 0,64,40 | |
| Dark Green | DG | #002814 | 0,40,20 | |
| Light Blue | LB | #98C8E8 | 152,200,232 | |
| Light Blue | LB | #00FCFC | 0,252,252 | |
| Light Blue | LB | #82CFFD | 130,207,253 | |
| Blue | B | #048888 | 4,136,136 | |
| Blue | B | #3C82AF | 60,130,175 | |
| Blue | B | #5C8CA8 | 92,140,168 | |
| Blue | B | #2888C4 | 40,136,196 | |
| Blue | B | #48A4C0 | 72,164,192 | |
| Blue | B | #2474E8 | 36,116,232 | |
| Blue | B | #0596FA | 5,150,250 | |
| Blue | B | #3474FC | 52,116,252 | |
| Blue | B | #0000FF | 0,0,255 | |
| Blue | B | #3850C8 | 56,80,200 | |
| Blue | B | #788CB4 | 120,140,180 | |
| Blue | B | #5F749C | 95,116,156 | |
| Blue | B | #1870A4 | 24,112,164 | |
| Blue | B | #1474B4 | 20,116,180 | |
| Blue | B | #0000CD | 0,0,205 | |
| Blue | B | #2C4084 | 44,64,132 | |
| Dark Blue | DB | #003C64 | 0,60,100 | |
| Dark Blue | DB | #00008C | 0,0,140 | |
| Dark Blue | DB | #000080 | 0,0,128 | |
| Dark Blue | DB | #2C2C80 | 44,44,128 | |
| Dark Blue | DB | #1C0070 | 28,0,112 | |
| Dark Blue | DB | #000064 | 0,0,100 | |
| Dark Blue | DB | #202060 | 32,32,96 | |
| Dark Blue | DB | #000048 | 0,0,72 | |
| Dark Blue | DB | #141E46 | 20,30,70 | |
| Dark Blue | DB | #1C1C50 | 28,28,80 | |
| Light Purple | LP | #A8ACE8 | 168,172,232 | |
| Light Purple | LP | #C49CD8 | 196,156,216 | |
| Light Purple | LP | #9C68A4 | 156,104,164 | |
| Purple | P | #9058D8 | 144,88,216 | |
| Purple | P | #AA00FF | 170,0,255 | |
| Purple | P | #B458AC | 180,88,172 | |
| Purple | P | #6C0070 | 108,0,112 | |
| Purple | P | #5A008C | 90,0,140 | |
| Purple | P | #64008C | 100,0,140 | |
| Purple | P | #780078 | 120,0,120 | |
| Dark Purple | DP | #440044 | 68,0,68 | |
| Off White/Cream | W | #F0E0C8 | 240,224,200 | |
| White | W | #FCFCFC | 252,252,252 | |
| White | W | #FFFFFF | 255,255,255 | |
| White | W | #F8F8F8 | 248,248,248 | |
| Light Grey | LN | #E0E0E0 | 224,224,224 | |
| Grey | N | #C8C8C8 | 200,200,200 | |
| Grey | N | #C0C0C0 | 192,192,192 | |
| Grey | N | #B0B0B0 | 176,176,176 | |
| Grey | N | #B8B8B8 | 184,184,184 | |
| Grey | N | #A0A0A0 | 160,160,160 | |
| Grey | N | #808080 | 128,128,128 | |
| Grey | N | #888888 | 136,136,136 | |
| Grey | N | #646464 | 100,100,100 | |
| Dark Grey | N | #505050 | 80,80,80 | |
| Dark Grey | N | #5C5C5C | 92,92,92 | |
| Dark Grey | DN | #14283C | 20,40,60 | |
| Dark Grey/Black | K | #1C1714 | 28,23,20 | |
| Dark Grey/Black | K | #1C1C1C | 28,28,28 | |
| Black | K | #101010 | 16,16,16 | |
| Black | K | #000000 | 0,0,0 | |
| Light Brown | LT | #A08858 | 160,136,88 | |
| Light Brown | LT | #8C7038 | 140,112,56 | |
| Light Brown | LT | #A07C58 | 160,124,88 | |
| Light Brown | LT | #B07430 | 176,116,48 | |
| Brown | T | #98481C | 152,72,28 | |
| Brown | T | #603800 | 96,56,0 | |
| Brown | T | #604000 | 96,64,0 | |
| Brown | T | #503C14 | 80,60,20 |
Colour conversion sites from Pantone to sRGB
Pantone don't publish all their colours on the web so require you to log into their web site. There are a number of sites on the web that puport to offer Pantone colours but they seem to be off from the ones the Pantone do advertise, eg Pantone 2728 C. They also don't tend to specify if they are uncoated or coated colours.
ediy reports the exact same colours that Pantone-colours do. They seem closer to the uncoated Pantone colours but still quite a bit different. The following seem to have different values qconv and Ramweb
| Colour | qconv | Ramweb | Pantone-colours |
|---|---|---|---|
| Pantone 160 | #AF4200 | #9E5205 | #9E540A |
| Pantone 180 | - | - | #C13828 |
| Pantone 654 | - | - | #0F2B5B |
| Pantone 543 | - | - | #93B7D1 |
| Pantone 364 | - | - | #3A7728 |
| Pantone 2728 | #3044b5 |
e-paint seems a much better website with matching for a variety of different colour systems. Note the theembroiderynerd also seems to have colours that match the C versions.
Pantone publish 2728C as
#0047bb
on their website (as of 2023-02-15)
| Colour | Uncoated | Coated |
|---|---|---|
| 160 | #A16A47 | #A5551D |
| 180 | #C26158 | #C23C33 |
| 2728 | #4f69c1 | #0047bb |
| 654 | #55688B | #003A70 |
| 543 | #79AAD2 | #A4C7E2 |
| 364 | #5B794E | #49762A |
Note these colours are using the sRGB conversion system used is IEC 61966:2-1 1999 D50 adapted which may differ from other conversions.
I am planning where possible to use the C versions of colours, where pantone colours are stated.