5 POSTS · NOTES FROM THE BUILD
Blog
Notes from building FormaUI — Compose internals, testing, API design, and the reasoning behind the library's defaults.
Long-form writing that doesn’t fit in a doc page: the problems behind a component’s API, the Compose behavior that made a default what it is, and the things that took a day to figure out so they only have to take you five minutes.
Posts
- 10 min read
The press animation that never plays on a fast tap
animateFloatAsState retargets instead of queueing, so a 3% press dip is invisible on every real tap. Why sequential Flow collection is the whole fix, and how to test motion that no assertion can see.
AnimationComposeInteraction - 10 min read
Building a token layer Material 3 actually respects
A CompositionLocal layer over MaterialTheme is forty lines and three decisions: static or dynamic locals, mapping eight shape tiers onto M3's five slots, and the token allocation that silently invalidates your whole tree.
ThemingDesign tokensCompose - 9 min read
Material 3 vs FormaUI: a token-by-token comparison
Corner tokens, type scale, spacing and API surface side by side — including the Material 3 button shape that isn't themeable, and an honest list of when to use stock M3 instead.
Material 3Design tokensCompose - 8 min read
Docs that run the real component
Compiling a Compose library to WebAssembly so its documentation is interactive — one bundle for forty components, HTML controls driving a canvas over postMessage, and 39 MB of honest tradeoffs.
WasmComposeDocs - 7 min read
Your Compose Canvas tests are lying to you
A chart that draws nothing passes every semantics assertion. Here's why captureToImage() can't help you under Robolectric, and what to do instead.
TestingComposeCharts