Roadmap & changelog

FUNSTACK UI is experimental; its first alpha is on npm. Planning happens in GitHub issues; this page is a short summary.

Changelog

The first alpha, 0.1.0-alpha.0, is published on npm under the alpha dist-tag: npm install @funstack/ui@alpha. Each release is listed on GitHub Releases; between releases, the commit history is the changelog.

Done

  • Library-wide API conventions: action props, pending and optimistic state, Suspense, ViewTransition, composition.
  • The first four primitives: Toggle, Tabs, Accordion, Tooltip.
  • The second wave: Dialog (on <dialog> and Invoker Commands), and the native form controls Switch, Checkbox and RadioGroup, with the shared form-reset and hydration handling.
  • Browser-mode tests (Playwright) in Chromium, Firefox and WebKit for Popover, anchor positioning, <dialog>, native inputs and ViewTransition.
  • A conditional <ViewTransition> boundary: components render one only when the transition prop is given, so a component mounting inside a transition no longer starts a document view transition (#35).
  • The first npm release, 0.1.0-alpha.0 (dist-tag alpha).
  • CheckboxGroup: a <fieldset> with a shared name and a set value, a Parent box with mixed state, and a group-level required (#33).
  • Popover: a non-modal overlay on popover="auto" and Invoker Commands, with library-owned closes that animate with a view transition in every engine (#38, #40).

Next

  • Menu: a menu button (#39, #41).
  • More components after that, toward a full set: Select, ToggleGroup, and more.

Deferred

  • Directive-free (truly zero-JS) variants of platform-native parts (#19).
  • Tooltip: an Arrow part that points the right way after a fallback flip (#20) and a skip-delay group (#21).

Upstream

  • react-dom renders hidden="until-found" as a boolean (#16).
  • Chromium does not match :checked on a checkbox that is both checked and indeterminate; jsdom toggles instead of restoring a checkbox after a cancelled click (#34).

Ideas and bug reports are welcome as new issues.