This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryUpdates Behavior, New, and Other across a mixed release.
Full changelog
CSS-style flex-shrink on hstack / vstack. When intrinsic children exceed the container, items with shrink > 0 give up shares of the overflow proportional to shrink × baseSize — and text re-wraps to fit.
New
shrink: numberontext(),vstack(),hstack(),spacer().link()forwards its child's weight.breakWords: booleanontext()— CSSoverflow-wrap: break-word; allows char-level wrap below the longest-word floor.maxLines(existing) now also lowers the shrink floor so the engine can ellipsize cleanly into a narrower slot.
Behavior
- Multi-word text floors at its widest whitespace-separated word — never breaks mid-word.
- Single-token strings (URLs, hashes, identifiers) overflow visibly by default. Opt in to truncation (
maxLines: 1) or char-break (breakWords: true). - Iterative weight redistribution when an item hits its floor — CSS flexbox semantics.
- Vertical shrink fires when a
vstackhas a fixedheightsmaller than the sum of its children. resolveMainAxisexported for layout consumers.
Other
- Debug overlay strokes now sit fully outside the content box, so glyphs at the box edge never visually overlap the stroke.
Tests
89/89 passing (24 new for flex-shrink). Verified end-to-end on Cloudflare Workers.
See examples/flex-shrink.ts for a runnable showcase.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About earonesty/boxpdf](https:
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]