Skip to content

0.1.0-alpha.0

Pre-release
Pre-release

Choose a tag to compare

@uhyo uhyo released this 17 Oct 04:17

The first alpha of FUNSTACK UI, a headless React UI library and the first Async React-native UI library: Suspense-native, transition-by-default, action props instead of event handlers, <ViewTransition> built in, and modern HTML/CSS first.

npm install @funstack/ui@alpha

Requires React >=19.3. Docs: https://ui.funstack.work

Components

  • Toggle: a pressed/unpressed button with pressedChangeAction, optimistic state and pending state.
  • Tabs: roving-focus tabs with valueChangeAction. Panels use hidden="until-found", so find-in-page reveals them.
  • Accordion: built on <details>/<summary>. Works without JavaScript (Server Component friendly) and supports async expand actions.
  • Tooltip: built on the Popover API (popover="hint"), CSS anchor positioning and interestfor.
  • Dialog: built on native <dialog>, modal or non-modal, with light dismiss. Dialog.Form can close on settle, and nested confirm dialogs are supported.
  • Switch, Checkbox (including indeterminate), RadioGroup: native inputs with action props, optimistic and pending state, and full form participation (submission, reset, required).

Highlights

  • Every change goes through an action prop run inside a transition, and pending state is exposed as data attributes and render state.
  • Server Functions can be passed directly as action props.
  • An opt-in transition prop adds a <ViewTransition> boundary.
  • Tested in Chromium, Firefox and WebKit.

This is an experimental alpha, so APIs may change in any release.