Hey everyone!
I've been building a frontend library focused on UI behaviors called Nagare (流れ), and I'd really appreciate some honest feedback from other developers.
The idea is simple: instead of splitting a single interaction across CSS, Tailwind classes, event handlers, animation libraries, and state management, everything for that interaction lives in one place.
Example:
soul("button")
.hover({
onStart: {
tw: "scale-105 shadow-xl",
css: border-radius: 20px,
js: function () { console.log("hovered") }
},
onEnd: {
tw: "scale-100 shadow-none",
css: border-radius: 12px
}
})
Each behavior (hover, click, tap, longpress, swipe, drag, scroll, onVisible, onIdle, networkChanged, etc.) can contain:
"tw" for Tailwind classes
"css" with inline "@if/@else"
"js" for custom logic
shared state, templates, presets, delays, and more
I'm not trying to replace React or Tailwind—Nagare is focused on giving interactions a single home.
I'd really love feedback on:
Does the API feel intuitive?
Is this something you'd actually use?
What feels unnecessary or confusing?
What would you change before a stable release?
Repository: https://github.com/Mizumi25/nagare
Showcase: https://nagare-nu.vercel.app/
npm: https://www.npmjs.com/package/@nagarejs/react
I'm mainly looking for honest criticism, not compliments. Thanks!

Top comments (0)