// the find
romainguy/combo-breaker
Text layout for Compose to flow text around arbitrary shapes.
A Jetpack Compose library from Romain Guy that lets text flow around arbitrary shapes (not just rectangles) across multiple columns, with two API tiers: a dependency-free BasicTextFlow and a Material3-flavored TextFlow. It's for Android devs who want magazine-style layouts — text wrapping around photos, logos, or cutout shapes — inside Compose.
Flowing text around actual non-rectangular shapes (extracted from a bitmap's alpha channel via the companion 'pathway' library) is a real capability most text-layout libraries don't bother with. The BasicTextFlow/TextFlow split is a sensible way to avoid forcing a material3 dependency on people who don't use it. It also handles justification, hyphenation, and RTL placement of columns and shapes, which is more layout completeness than you'd expect from a niche library.
Minimum API 29 (Android 10) with backporting still just a roadmap bullet, so it's a no-go for apps supporting older devices. The author's own roadmap admits real gaps: mixed line-height runs break shape flow, margins rely on Path.op which can be 'excessively expensive' on complex paths, and BiDi text 'probably doesn't work properly' since it's untested. Adoption is thin — 636 stars, 20 forks, last push May 2025 — and there's no visible test suite in the repo tree, so correctness for the shape-intersection math rests entirely on manual verification.