- Shipped
- September 24, 2026 at 10:51 PM UTC
- Author
- Kamo
- Commit
- 4fa9ce6
A signing page drew the org's uploaded logo — crm's logo-full.svg is 2.95 MB — at 28-44px tall. The theme service now cuts img/sized/<stem>/h<rung>.webp beside every logo; ask for the smallest rung that is sharp at dpr 2 and fall back to the original URL, exactly as it was built before, on any error (folders not yet backfilled, a failed generation). - packages/theme logoVariant.ts: LOGO_RUNGS, pickLogoRung (dpr 2), logoVariantUrl, logoVariantFromUrl; exported from the theme package. - ThemeLogo: the variant is the first attempt, sized from the caller's numeric height, else maxHeight, else the width bound (no bound: the original, as before). An error on it goes to the original, then the existing extension walk and fallbackText. The overlay mask follows the hidden <img>, which is the probe. TopBar h64, **************** h96. - Quote letterhead (max-height 56 -> h128): QuoteLogo derives the variant from branding.logoUrl at render time, so quoteThemeAlias still reads the folder from the unchanged URL. The page is server-rendered, so the mount also catches a variant that 404ed before hydration.
