Skip to content

baseball v1.2.0 — promotions design uplift (phase 3)

Choose a tag to compare

@JamesAwesome JamesAwesome released this 20 Jul 14:53
c201b38

baseball v1.2.0 — Promotions design uplift (Phase 3)

baseball.promotions gains the design handoff's hires layouts behind layout = "auto":

  • Held promo card (bigsign 256px, and longboi 512px via explicit layout = "card"): date, promo name, opponent chip + VS line, offer · BY sponsor, start time. A name too wide for its band scrolls inside a hard-clipped marquee while the rest of the card holds still.
  • Hires crawl (longboi default; layout = "ticker" elsewhere): the full promo line as engine-scrolled hires segments. Short lines hold centered; overflowing lines rest flush-right.
  • Masked-clip infrastructure (_mask.py): offscreen HeadlessCanvas rasterization through the public core surface — no core changes needed.
  • Scale-1 (smallsign) keeps the classic text rows unchanged.

Hardware-tuning round (longboi)

  • Crawl advance no longer bakes in a trailing spacer — scroll stops land flush-right (also fixes the v1.1.x scores crawl's 22px over-scroll; ticker-mode story spacing tightens accordingly).
  • Long card: px26 name marquee with even vertical rhythm; time right-anchored at the card edge; right info block one size smaller; the name band extends full-width when the cyan sub line is empty (the norm for clubs that don't populate offerType/presentedBy — e.g. PHI), so most names fit statically.

Notes

  • Promos are target-date scoped (today-first), matching the classic widget's semantics.
  • Emoji in free-form API text are sanitized out of hires renders (measure/paint drift guard).