1.0 alpha · built on Fluixi

One set of components.
Five design languages.

Accessible primitives whose whole look is an attribute. Switch the skin, the scheme, the accent, round corners or glass transparency, and every component follows, this page included.

$pnpm add @fluixi-ui/styles @fluixi-ui/skin-glass
Book a sessionDesign review with Amara
Topic
Length
Live on this pageMake the docs yoursThe same AppearanceProvider your app uses. Every choice is a cookie, so the next page opens the way you left it.
0.72
Same markup

One scene, five lenses

The product below is a single component tree, cut into five slices. Each slice wears another skin. Hover one to open it up.

Components

Every part, shown moving

These run in the skin you picked above.

Toast

Stacks, swipes away, pauses on hover, announces politely.

Command

Fuzzy search, groups and shortcuts, driven from the keyboard.

Pin input

One field per digit; a paste fills them all.

Slider

Range, steps and marks, with a thumb you reach by key.

Progress

Linear and circular, determinate or not.

Date range picker

Typed segments and a calendar over one value, in any locale.

Switch and toggle group

The same groove in every skin, the chosen item lifted out of it.

Anatomy

Every page takes the component apart

Each part is its own element with the attributes a skin reads. Hover the illustration to pull the layers further apart.

  1. 1Select state and the hidden form value
  2. 2SelectTrigger role="combobox", data-state
  3. 3SelectContent role="listbox", placed by the popper
  4. 4SelectItem role="option", data-highlighted
Motion

Quick to start, long to settle

One easing for everything that enters, never past its target. Reduced motion keeps the change and drops the travel.

120ms300ms400ms
Shown ten times slower.
Accessibility

Every pattern, from the keyboard

WAI-ARIA roles, focus that stays where you expect, and the keys each pattern promises. Every page lists them.

Get started

Three lines to a skinned app

Import the styles, wrap the app in the provider with the skins you offer, and drop in the panel. The picker on this page is that panel.

import '@fluixi-ui/styles/all.css';
import { AppearanceProvider, fluixiSkin } from '@fluixi-ui/theme';
import { AppearancePanel } from '@fluixi-ui/appearance';
import { glassSkin } from '@fluixi-ui/skin-glass/skin';

// Round capsules in every skin, from the first visit.
<AppearanceProvider skins={[fluixiSkin, glassSkin]} defaultCorner="round">
  <App />
  <AppearancePanel />
</AppearanceProvider>
Library

Every package