Lattice UI is in the 0.x phase, and the whole workspace shares one lockedstep version — but
that number is not a maturity guarantee. Some packages are on a clear path to v1.0. Others are
available while their APIs settle. This page tells you which is which.
What lockedstep 0.x means
Every package publishes at the same version, which keeps installs coherent but means the version alone cannot tell you how stable any single package is.
Treat the version as a release coordinate and the tier below as the maturity signal. One 0.x release can hold both a hardened foundation and a deliberately narrow experimental package.
Stability tiers
Stable direction Stable direction
These are the long-term direction and the main path toward v1.0.
- Foundations:
runtime,focus,layer,motion,style,system - Primary UI:
accordion,avatar,checkbox,combobox,dialog,menu,popover,progress,radio-group,scroll-area,switch,tabs,text-field,textarea,toast,toggle-group,tooltip
Experimental and feature-limited Experimental Feature limited
Usable, but evolving or deliberately limited in scope. Expect their APIs to move more than the stable-direction surface.
popper— experimental positioning foundation with placement-relative offsets and viewport collision handlingcontext-menu— pointer-driven only: it opens on a secondary click and highlights on hover, with no focus registration, ordered movement, or focus restoreselect— currently single-value onlyslider— currently single-thumb only
Pin popper, context-menu, select and slider to a known-good version and expect to revisit the integration. The single-value, single-thumb and pointer-only limits are current scope, not the end state.
What v1.0 means here
The v1.0 milestone targets the main stable UI layer, not every package. The priority is a
dependable foundation: runtime, focus, layer, motion, style and system. That means
predictable composition, state, focus, keyboard navigation, layering and motion across the primary
primitives, plus clearer semver expectations.
Reaching v1 for the main UI layer does not stabilize the experimental or tooling packages.
Feature-limited packages can stay in 0.x longer and graduate only when their APIs are ready.
What is coming
The current release is v{LATTICE_VERSION}, finishing what v0.7.0 started. 0.7 drew the line
between behaviour and appearance. Every primitive ships unstyled, props forward onto the instance a
part renders and are type-checked against it, and motion only runs when you pass a transition.
v{LATTICE_MINOR}.0 takes the last appearance decision out of the primitives, rendering every
motion host as a Frame rather than a CanvasGroup. That is what the stable-direction surface
carries into v1.0 — see Migration if you are coming from 0.6
or 0.7.
The v0.6.x line before them hardened the layered and composite primitives, motion and exit
transitions, keyboard navigation, focus restoration and trapping, and regression coverage.
After v1.0 the feature-limited packages keep maturing independently, promoted only once their APIs
are ready.
Next step
Start from a stable-direction primitive: follow Installation and then Your first dialog.