Analysis updated 2026-05-18
Define a button's hover lift and state change together in one code block without separate CSS files or a state store.
Build an idle-state detector that changes the UI after a few seconds of no user activity.
Add swipe detection to a card component with direction-aware logic, all in one behavior definition.
Share a reusable bounce-on-click animation across multiple elements using Nagare presets.
| mizumi25/nagare | abidoo22/pixelorama-mcp | aditya-pandey/slate | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | easy | moderate | easy |
| Complexity | 2/5 | 3/5 | 2/5 |
| Audience | developer | vibe coder | general |
Figures from each repo's GitHub metadata at analysis time.
Nagare is a JavaScript library for React that gives interactive behaviors their own place in your code. In a typical frontend project, a single button hover triggers a cascade: the lift effect is in CSS, the glow is in an animation library, the state update is in a store, and the logic is in an event handler. Nagare argues that a hover is one thing and should live in one place. The library works around two main ideas: a soul (which represents a DOM element) and a behavior (which is a detector that watches for something happening, like a click, hover, scroll, or the network dropping). When a behavior fires, it runs through a lifecycle with three stages: start, update, and end. Inside each stage, you write CSS (plain CSS, not camelCase objects), Tailwind classes, or JavaScript, all together in the same block. To use it in React, you call the useSoul hook and define your souls and their behaviors inside it. The hook handles registering your definitions, binding them to elements, watching for new elements that appear later, and cleaning up when the component unmounts. In your JSX, you mark elements with a data-soul attribute to connect them to their definitions. The JSX itself stays free of class name logic, inline styles, and event handlers. Nagare ships over twenty built-in behaviors including tap, press, swipe with direction info, drag with live position, scroll, resize, focus, visibility detection, idle detection, and network change detection. You can define reusable style snippets called templates and reusable lifecycle definitions called presets to share across multiple souls. State is per-soul and you can reference it directly in CSS blocks using conditional logic. The library also provides a TypeScript plugin for editors like VS Code that adds autocomplete inside Tailwind and CSS string values, including keyword completions. Nagare handles attaching and reacting to behaviors, it does not do animation interpolation or tweening, which you delegate to libraries like GSAP.
A React library that keeps all the CSS, animation, logic, and state for each UI interaction (hover, click, scroll) in one place instead of scattered across multiple files and tools.
Mainly TypeScript. The stack also includes TypeScript, React, Node.js.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.