Launching today

FLUX UI
40 physics-based motion primitives for React
3 followers
40 physics-based motion primitives for React
3 followers
Every UI library treats animation as decoration. FLUX UI treats it as a language. 40 composable motion primitives powered by a unified physics engine with 7 named spring presets. Built on React 19, Tailwind CSS v4, and Framer Motion. Three-tier accessibility baked in. Zero visual lock-in primitives add motion behavior only, you bring your own design. Ships with gesture composition, scroll-linked animations, ambient backgrounds, and first-class AI patterns that no other library offers.






Hello ProductHunt Community,
Long time lurker. Amazed by what people build and post here daily. Really excited to finally be able to give back to the community in the form of FLUX UI.
FLUX UI was born out of repetition. Across multiple projects, I kept rebuilding the same motion patterns - entrance reveals, magnetic cursors, scroll-linked animations, streaming text for AI interfaces. Every time, I'd wire up the same spring configs, the same reduced-motion handling, the same gesture composition. At some point I thought: why not extract this into something reusable and share it?
So that's what this is - 40 composable motion primitives that share a single physics engine with 7 named spring presets. Instead of configuring stiffness: 200, damping: 20 on every component, you just say physics="smooth" and everything feels coherent. Primitives compose like Unix pipes: wrap around around a and it just works.
I want to be upfront about intent: this isn't a commercial play. There's no paid tier, no pro components behind a wall, no "upgrade for the good stuff" - unlike what a lot of UI libraries do these days. The full library is MIT licensed and always will be. I built this for myself across real projects, it was useful, and I figured others might find it useful too. That's it.
The part I'm most proud of is the accessibility story - a three-tier system where reduced motion never disables anything, it gracefully degrades to opacity crossfades.
Would love feedback on the primitive API design and what patterns you'd want to see next.