What
Swap the dog for a tornado line-art mark, and make the logo live in one file instead of three.
Why one definition
The mark was defined in three places: assets/tdoc_logo.svg, an inline copy in worker/worker.js, and a base64 PNG pasted into the landing page. Changing it meant editing a picture three times, and the landing copy was the one that got missed.
After this, assets/tdoc_logo.svg is the definition. The landing page references /tdoc_logo.svg, which the worker already serves from assets/. The worker's inline copy is unavoidable — a Worker cannot read from disk — but a test already asserts it is byte-identical to the asset, so drift fails CI rather than shipping.
The dark-mode trap
The overlay inverts the whole page for dark mode, then inverts <img>/<video>/<canvas> back so photographs do not come out as negatives. A mark shipped as a plain <img> is caught by that restore: black line art gets inverted by the page and restored by the rule, landing invisible on the dark background. The old mark survived it by carrying an opaque white field.
data-tdoc-dark="invert" is the documented opt-out and is what makes an <img> correct here. Measured at the mark's own coordinates: contrast against the background is 142.5 in light and 142.5 in dark. Without the attribute, dark scores 0.0.
Scope
- New mark:
assets/tdoc_logo.svg (traced to vector, currentColor, no background field)
- Transparent rasters for use off the page:
tdoc_logo_black.png, tdoc_logo_white.png
tdoc_logo.png keeps a solid field — it is the Open Graph card, and a transparent card is composited onto whatever colour the reader's client picks
- Landing v44 references the file rather than embedding a copy
- Relicense MIT → Apache 2.0, agreed by both maintainers
Out of scope
The 23 historical landing snapshots (landing/*/v22–v43) still contain the old mark. They are published version history — a reader paging back should see the page as it was.
Related: #161 (SVG-ify the mark; explicitly out of scope there was redesigning it)
What
Swap the dog for a tornado line-art mark, and make the logo live in one file instead of three.
Why one definition
The mark was defined in three places:
assets/tdoc_logo.svg, an inline copy inworker/worker.js, and a base64 PNG pasted into the landing page. Changing it meant editing a picture three times, and the landing copy was the one that got missed.After this,
assets/tdoc_logo.svgis the definition. The landing page references/tdoc_logo.svg, which the worker already serves fromassets/. The worker's inline copy is unavoidable — a Worker cannot read from disk — but a test already asserts it is byte-identical to the asset, so drift fails CI rather than shipping.The dark-mode trap
The overlay inverts the whole page for dark mode, then inverts
<img>/<video>/<canvas>back so photographs do not come out as negatives. A mark shipped as a plain<img>is caught by that restore: black line art gets inverted by the page and restored by the rule, landing invisible on the dark background. The old mark survived it by carrying an opaque white field.data-tdoc-dark="invert"is the documented opt-out and is what makes an<img>correct here. Measured at the mark's own coordinates: contrast against the background is 142.5 in light and 142.5 in dark. Without the attribute, dark scores 0.0.Scope
assets/tdoc_logo.svg(traced to vector,currentColor, no background field)tdoc_logo_black.png,tdoc_logo_white.pngtdoc_logo.pngkeeps a solid field — it is the Open Graph card, and a transparent card is composited onto whatever colour the reader's client picksOut of scope
The 23 historical landing snapshots (
landing/*/v22–v43) still contain the old mark. They are published version history — a reader paging back should see the page as it was.Related: #161 (SVG-ify the mark; explicitly out of scope there was redesigning it)