The method, not the mysticism
Every date has one color. It is calculated, not divined.
There is no horoscope here. Each of the 366 days of the year gets one color from a formula that takes the month and the day and nothing else. No year, no name, no birth chart. The same date always gives the same color. The math is open and it is below.
The season lives in lightness and chroma
The year is one cosine wave. It peaks in high summer and bottoms in midwinter, and that single number lifts lightness and chroma in summer and lowers them in winter. July reads bright and open, January deep and quiet. Hue barely listens to it, which is why the seasons feel like weather rather than a color wheel turning.
season = cos((doy / 366 − 0.54) × 2π)
The day lives in a golden ratio scatter
Inside the season, each day is placed by multiplying its index by the golden ratio and keeping the fractional part. That is the most even way to fill an interval without ever repeating, the same packing a sunflower uses for its seeds. Three independent multipliers scatter hue, lightness and chroma separately, so the three never line up into a visible pattern. A weak pull of 0.2 bends hue toward a summer or winter reference, so the scatter still reads as seasonal.
hue = frac(doy × 0.6180339887) × 300
lightness ← frac(doy × 0.7548776662)
chroma ← frac(doy × 0.569840291)
OKLCH first, then sRGB
Every color is defined in OKLCH: lightness, chroma, hue, in a space built so that equal steps look equal. A pale blue and a pale gold at the same lightness really do feel equally pale, and that is what keeps 366 colors from drifting apart. Chroma is clamped into the sRGB gamut before anything is stored, so the numbers shown on a day page are the numbers that render, and the names and compatibility scores describe real colors rather than ideal ones.
And legibility. Every page reads its background and flips the labels to a near-black or near-white carrying the background's own hue, picking whichever measures more contrast, then pushes it further until the day clears the WCAG AA ratio for body text. All 366 days clear it.
See all 366 colors