Sports scores

Thread View Milestone Confetti

Released Thread View Milestone Confetti 1.2.2

No permission to download
A legibility release. Nothing about when a celebration fires has changed: same triggers, same
milestones, same deduplication, same options. What changed is that the celebration now looks right
on a light theme as well as a dark one.

**Upgrade:** install `Talmyric-ThreadMilestoneConfetti-1.2.2.zip` over 1.2.1 from the admin panel.
No new tables, no option changes, no template changes, no rebuild step.

## What was wrong

The effect palettes were built for a dark page. Sparkles used warm near-whites (`#fff8e1`,
`#ffe6a3`, `#cdeaff`), firework bursts flashed pure white, and every ninth spark was white too. On a
white or pale theme those elements were invisible, and the lighter confetti and firework tints lost
most of their contrast against the page.

## Particle palettes now follow the page

- The engine finds the surface behind the celebration: it starts at the payload element and walks up
to the first ancestor that actually paints an opaque background, then converts that colour to
relative luminance and switches palette at 0.45.
- A page that paints no background at all falls back to the light palette, which is the common case
for forums.
- **Light surfaces** now get deep, saturated tints — crimson `#d62828`, amber `#e07a00`, teal
`#0f9d8f`, blue `#0b7fab`, violet `#6d28d9`, magenta `#c2185b` — for confetti, firework trails and
sparkles alike.
- The detonation flash and the white sparks became an ink colour: white on dark pages, near-black
`#26262c` on light ones, so a burst still reads as a pop instead of vanishing.
- **Dark pages are unchanged**: the 1.2.1 palette is kept exactly.

## The card has a light variant

On a light page the card is now white with dark text, a hairline inset outline and a deeper layered
shadow. The dark card is untouched.

| | Light page | Dark page |
| --- | --- | --- |
| Background | `#ffffff` | `#1b1b1f` |
| Headline contrast | 17.17:1 | 16.04:1 |
| Body copy contrast | 7.16:1 | 10.43:1 |
| Close glyph contrast | 6.24:1 | 6.22:1 |

The outline is an inset shadow rather than a border so the card's width, padding and bottom offset
stay identical in both themes.

## New debugging hooks

- `data-tmc-theme` on `<body>` reports the detected surface, `light` or `dark`, next to the existing
`data-tmc-effect`.
- The preview page gained **Light** and **Dark** buttons that swap the page surface and re-fire a
celebration, so both palettes can be compared without installing anything.
- `preview/video-studio.html` was regenerated so the recording studio embeds the same engine.

## What was checked

- Engine and builder syntax, regenerated preview and studio pages.
- In the browser, on a light page: sparkles sampled 1,706 painted pixels of which 1,366 were deep
tints, with deep teal, blue, amber, crimson and violet leading.
- The same effect on a dark page: 1,714 painted pixels, zero deep tints, the original near-white
palette leading.
- Fireworks on a light page: every sampled pixel deep, no white-on-white.
- Computed card styles and the contrast figures in the table above, read from the live page in both
themes.
- Archive integrity (`unzip -t`), and the packaged engine's SHA-256 against both the source file and
its `hashes.json` entry.
1794150518019.png

Back
Top