# chakra-ui/zag

Build your design system in React, Solid, Vue, Svelte or Vanilla. Powered by finite state machines

Repository: https://github.com/chakra-ui/zag
Canonical: https://ross.abutalabs.com/products/zag
Homepage: http://zagjs.com
Language: TypeScript
License: MIT
License Family: permissive
Topics: react, vue, solid, accessibility, ui, ui-kit, state-machines, ui-components, xstate, headless, a11y, agnostic, design-systems, primitives, component, library, universal, headlessui, svelte, sveltejs
Last push: 2026-08-26T17:04:14+00:00

## Health v2 (maintenance only)
Score: 95/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 86, longevity 100
- inputs: {"age_days": 1883, "days_push": 7, "days_rel": 13, "gap_med": 0, "n_releases_24m": 11058}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 5196, forks 275 (observed 2026-08-28T04:09:12.052356+00:00)

## What it is
Zag.js is a framework-agnostic JavaScript toolkit that implements accessible, interactive UI component patterns (dialog, menu, tabs, etc.) using finite state machines. It ships headless, unstyled machine APIs with adapters for React, Vue, Solid, and Svelte so component logic can be written once and reused across frameworks.

## Use cases
- build a design system with accessible components
- headless dialog and menu components for react
- framework-agnostic ui component logic
- accessible tabs accordion tooltip primitives
- wai-aria compliant component behavior
- share component logic between react and vue
- unstyled ui primitives for custom styling

## When to choose
- you need accessible, WAI-ARIA compliant component behavior without styling opinions
- you maintain a design system targeting multiple JS frameworks
- you want deterministic, testable component logic via state machines
- you want incremental adoption of individual component machines

## When to avoid
- you want pre-styled, ready-made components out of the box
- you prefer simple hooks or composables over state machine APIs
- your project is a small prototype where machine overhead isn't justified
- you need components for platforms beyond the web

## Facets
- artifact type: library
- maturity: active
- function: ui-components, state-management, accessibility, frontend-framework
- domain: web-development, frontend, accessibility, developer-tools
- platform: cross-platform
- tags: headless-ui, state-machines, design-systems, framework-agnostic, wai-aria, component-primitives, typescript, web-server, nodejs

## Member repositories
- chakra-ui/zag (main) score 95

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:12.052356+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:01:43.207654+00:00, confidence not recorded.
  - readme: https://github.com/chakra-ui/zag (fetched 2026-08-28T04:09:12.052356+00:00, sha fc445dcb6ee3)
  - homepage: http://zagjs.com (fetched 2026-08-29T08:55:41.447681+00:00, sha e4465f5a4448)
  - site_page: https://zagjs.com/overview/introduction (fetched 2026-08-29T08:55:41.457288+00:00, sha d6585c5f51cd)
- Data as of 2026-08-30T08:39:29.467469+00:00.
