A collection of React micro-interaction components that handle the critical half-second after a click, with headless hooks for behavior and styled examples.

Stars

77

7-day growth

No data

Forks

1

Open issues

0

License

MIT

Last updated

2026-07-30

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It explicitly addresses the commonly neglected 20% of interaction details—jumps, restarts, and animations that ignore the user—and ships robust, accessible implementations that work under prefers-reduced-motion and keyboard-only use.

Who it is for

  • React developers building polished UIs
  • UI/UX engineers focusing on micro-interactions
  • Accessibility advocates and developers
  • Product teams wanting trustworthy, responsive interfaces

Use cases

  • Adding smooth button transitions that avoid layout shifts
  • Creating list load animations that don't jump
  • Implementing drag interactions that survive tab focus loss
  • Enhancing any UI element where user trust after a click is critical

Strengths

  • Headless hooks decouple behavior from styling, making reskinning easy
  • Every interaction is argued to the frame with physical motion modeling
  • Full keyboard support and respects prefers-reduced-motion
  • No package overhead—each component is a single copyable file

Considerations

  • No npm package; requires manual copying into your project
  • Only dependency is motion.dev, which may not suit all stacks
  • Small initial set of components (button, list, drag examples suggested)

README quick start

interior[.]dev

Micro-interactions for React, built for the half-second after a click.

Everybody builds these components. Almost nobody finishes them. The missing twenty percent is always the same three things: a jump, a restart, an animation that ignores the person watching it. This set ships that last twenty percent.

How it works

There is no package. Every component is one file in components/interior/ that you copy into your project. Each file exports two things:

  • a headless hook (useX) that owns all the behaviour and touches zero class names
  • a styled component (X) built on the hook, as an example you can keep or replace

The behaviour lives entirely in the hook, so reskinning a component to your own design language costs nothing but classes. The only dependency is motion.

The idea

Trust is won in the half-second after a click, and lost in exactly the same place. A button that resizes when its label changes, a list that jumps as it loads, a drag that gets stuck because the tab lost focus: none of these are bugs anyone files, but every one of them teaches the person to stop believing the interface.

So every component here is argued out to the frame. Nothing moves unless something happened; motion that models a physical process obeys that process instead of taste; every state the component can reach has its space reserved before it arrives; and every gesture knows all the ways it can be abandoned. The keyboard is not a fallback but a second complete implementation, and under prefers-reduced-motion the information still arrives; only the trip is skipped.

Running the docs

bun install
bun run dev

The design language behind every decision lives in DESIGN.md.

Description

micro-interactions for react, built for the half-second after a click

Related repositories

Similar projects matched by category, topics, and programming language.

NUber-dev
Featured
NUber-dev GitHub avatar

YTubic

YTubic is a fast, responsive, open-source YouTube Music desktop client for Windows, Linux, and macOS that uses direct InnerTube API communication and aggressive caching to provide instant navigation and playback.

Web DevelopmentFrontend Frameworks
226
react
Featured
react GitHub avatar

react

React is a JavaScript library for building user interfaces with declarative, component-based, and cross-platform design.

Web DevelopmentFrontend Frameworks
246,741
TanStack
Featured
TanStack GitHub avatar

router

TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.

Web DevelopmentFrontend Frameworks
14,861