summaryrefslogtreecommitdiffstats
path: root/logo.ans (follow)
Commit message (Collapse)AuthorAgeFilesLines
* splash: blasty's transparent logo, and stop guessing the cell aspectblasty3 days1-34/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The artwork is now a proper transparent PNG with soft edges (24% of its pixels carry partial alpha) instead of opaque art on black with a stray full-width scan line along the bottom. Cropped to its content and resized 1024 -> 768px, which halves the file and costs nothing visible; logo-trans.png keeps the master for future re-renders. Two things the new art exposed, both wrong before it: fit() assumed cells were 1:2. This terminal reports 9x22, i.e. 1:2.44. The old logo was 474x516 -- close enough to the assumption that nobody noticed -- but a square image at the hardcoded 60x33 would have been visibly stretched. The graphics query now asks for the cell size too (CSI 16 t rides along in the same round trip, before the DA1 that already synchronises it) and fit() uses the answer. The footprint was a constant. logo_cells() derives it from the artwork and the measured cell size, so the art can be replaced without anyone remembering to edit a number. logo.ans was stale: the block-art fallback for terminals that can't draw an image was still the OLD artwork, scan line included. tools/make_logo_ans.py regenerates it from logo.png so the two cannot drift again. It understands alpha -- a transparent cell emits no colour and lets the terminal background through, and a cell with only one opaque half uses the matching half block so the pixel lands on the correct side.
* ux: render the logo.ans ANSI-art splash in the loading overlayblasty2026-07-241-0/+34
_load_logo() reads logo.ans (repo root) once, strips the cursor show/hide escapes so Rich sees only SGR, and parses it with Text.from_ansi (no_wrap). LoadingScreen renders it above the title, centered in the box; missing/unreadable logo degrades to no splash art. Verified: 33x60 art mounts in the modal and renders in 256-color.