Simple, accessible, React controls and form elements
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Simple, accessible, React controls and form elements.

⚠ Until the first stable release (1.0.0) the API is considered unstable and will be changing quite a bit. Use cautiously!

See an online demo.


Install uiuiui as a dependency to your project:

# using npm
npm install uiuiui

# using yarn
yarn add --dev uiuiui

It's bundled for both CJS and ES modules, so either way of using it works:

let uiuiui = require('uiuiui'); // CommonJS
import { Slider } from 'uiuiui'; // ES Modules

You also need some way to import the CSS into your project:

import "uiuiui/build/uiuiui.css"


When I started working on this React UI component library, there were a few things I had in mind:

Interaction: Subtlety and accessibility

A control should react to all the subtle interactions available in a browser, which sometimes tend to be ignored. Inclusive Components by Heydon Pickering is an example of things to be mindful of.

CSS: Responsiveness and flexibility

A control should delegate as much of the styling as possible to the user, and provide helpful hooks for them to do so. It should be unassuming about the context in which it's going to be used, and that means steering clear of hardcoded dimensions and other anti-patterns which may crop up in React projects.

The project uses a consistent CSS naming system based on the BEM methodology, which I've found makes more sense for me when building complex interfaces.

Architecture: Structure and clarity

The project aims to provide the user with useful primitives with which to build they can build their own controls. That means keeping all the components short and sweet, so that rewriting any of them to match your needs is not a hassle. Everything should be swappable.

Comprehensively documented

Along with its main use as a component library to be used directly, the code should be clear and heavily annotated to provide information on how each component is built, how it works, and how one might implement similar components.

API Reference

Low-level components

UI components


To develop uiuiui, see