explaingit

farazzshaikh/i-input

Analysis updated 2026-05-18

13TypeScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A React number input component that lets you click and drag to change values, type math expressions, and enter units, just like Blender's number fields.

Mindmap

mindmap
  root((i-input))
    What it does
      Blender style scrubbing
      Math expression typing
      Unit aware parsing
    Tech stack
      React
      TypeScript
    Use cases
      Scrubbable number fields
      Math expression inputs
      Unit conversion inputs
    Audience
      Frontend developers
      UI builders

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add a Blender style scrubbable number input to a React design tool or configuration panel.

USE CASE 2

Let users type a math expression like 3 * 2 + 1 directly into a numeric field.

USE CASE 3

Accept values with unit suffixes such as 5km or 3ft 2in and convert them automatically.

What is it built with?

ReactTypeScript

How does it compare?

farazzshaikh/i-inputandersondanieln/hexllamaantonlobanovskiy/agent-tmux-web
Stars131313
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasyeasymoderate
Complexity2/52/53/5
Audiencedevelopervibe coderdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires React 18 or newer.

License terms are not stated clearly enough in the README to summarize confidently.

In plain English

This is a number input component for React, built to work the same way numeric fields work in the 3D software Blender. If you have used Blender, you know that its number fields let you click and drag to change the value, type a math expression directly into the field, or type a value with a unit suffix like 5km or 3ft 2in. This library brings that same interaction style to any React app. The main interaction is called scrubbing: instead of clicking into a field and typing a number, you click and drag left or right (or up and down) and the number changes as you move. You can still click to type if you prefer. When you do type, you can enter a math expression such as 3 * 2 + 1 and the component will evaluate it. The unit parsing works across multiple unit systems, including metric lengths and imperial lengths, so you can type 1m + 2cm and get back a single number in whatever base unit you choose. The component has two forms. The first is a ready-to-use styled element called IInput that you drop into your page. The second is a headless hook called useIInput for situations where you want to apply the same behavior to your own custom-designed input. Both accept the same set of configuration options: a step size for how fast scrubbing changes the value, soft limits that cap scrubbing but still allow typing beyond them, hard limits that block any input outside the range, and a wrap mode for values that should roll over (such as angles that reset after 360 degrees). The library requires React 18 or newer and is installed through npm or yarn with a single command. It is written in TypeScript and ships type definitions. A live demo is linked in the README.

Copy-paste prompts

Prompt 1
Show me how to install and use the IInput component in my React app for a scrubbable number field.
Prompt 2
Help me use the useIInput hook to add scrubbing behavior to my own custom styled input.
Prompt 3
Explain how to set soft limits and hard limits for a scrubbable field using this library.
Prompt 4
Walk me through setting up wrap mode for an angle input that resets after 360 degrees.

Frequently asked questions

What is i-input?

A React number input component that lets you click and drag to change values, type math expressions, and enter units, just like Blender's number fields.

What language is i-input written in?

Mainly TypeScript. The stack also includes React, TypeScript.

What license does i-input use?

License terms are not stated clearly enough in the README to summarize confidently.

How hard is i-input to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is i-input for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.