React Aria

Unstyled, accessible React hooks and components for building your own design system.

Library
npm
v3.52.1
15,849stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
87/100Excellent
Development Activity96
Maintenance84
Community68
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
91/100Excellent
Architecture92
Code Quality93
Innovation90
Learning Curve80

React Aria is Adobe’s library of unstyled React hooks and components that provide the behavior, accessibility, and interactions needed to build high-quality UI components — without imposing any rendering, DOM structure, or styling. Each hook returns prop objects you spread onto your own elements, so you keep full control of markup and CSS while React Aria handles WAI-ARIA semantics, keyboard navigation, focus management, touch and pointer interactions, and internationalization.

Used by teams building custom design systems, it covers dozens of patterns — buttons, menus, comboboxes, date pickers, tables, sliders, dialogs, and more — each tested across a wide range of screen readers, browsers, and devices. React Aria pairs with React Stately for state management and can be adopted incrementally, one component at a time.

What You Get

  • 50+ hooks and unstyled components covering common UI patterns (buttons, menus, comboboxes, date pickers, tables, sliders, dialogs, and more)
  • WAI-ARIA compliant accessibility with full screen reader and keyboard navigation support, tested across many devices and assistive technologies
  • Adaptive mouse, touch, pointer, and keyboard interaction handling, plus focus management and overlay positioning
  • Built-in internationalization for 30+ languages, right-to-left layouts, and localized date and number formatting
  • A companion react-aria-components package offering higher-level styled-agnostic components, plus test utilities for consumers

Common Use Cases

  • Building a custom design system or component library from scratch with your own styling but production-grade accessibility
  • Replacing inaccessible in-house widgets with battle-tested behavior without changing your visual design
  • Implementing complex interactive patterns like comboboxes, date pickers, and data tables that are hard to make accessible by hand

Under The Hood

Architecture React Aria lives in the adobe/react-spectrum monorepo alongside React Stately (state) and React Spectrum (Adobe’s styled implementation). Its core is a set of ~55 scoped @react-aria/* behavior packages (button, combobox, datepicker, listbox, table, overlays, interactions, i18n, and more), aggregated into the react-aria umbrella package whose exports/index.ts re-exports each hook. The design pattern is prop-getter hooks: a hook such as useButton(props, ref) computes ARIA attributes, event handlers, and interaction state, returning a buttonProps object the caller spreads onto its own element. Behavior is layered on top of React Stately state hooks and @react-types shared TypeScript definitions, with @internationalized/* packages providing framework-agnostic date, number, and string localization.

Tech Stack Written primarily in TypeScript (~52% of the repo) with React declared as a peer dependency. Runtime dependencies are deliberately small — @internationalized/date, @internationalized/number, clsx, aria-hidden, use-sync-external-store, and @swc/helpers. The monorepo builds with Parcel and is tested with Jest 30 and Testing Library, including server-side-rendering and Parcel integration test suites.

Code Quality Quality is high and thoroughly validated. Test coverage is extensive — the react-aria-components package alone ships 78 test files, and a dedicated @react-aria/test-utils package exposes reusable interaction testers (menu, select, table, gridlist, etc.) so consumers can test their own components. TypeScript types are strict and shared through @react-types, naming is consistent, and every source file carries the Apache-2.0 header. SSR and Strict Mode are exercised in CI.

API Design The public API is highly ergonomic and consistent: hooks follow a uniform useX(props, ref) signature returning namespaced prop objects, and types follow predictable AriaXProps / XAria conventions. Documentation at react-spectrum.adobe.com is exceptional, with runnable examples for every hook. The trade-off is some boilerplate — you supply the ref and render the DOM yourself — which the newer react-aria-components package reduces by offering assembled components while preserving styling freedom.

Used by 139 apps in this directory

TypeScript
94%
MIT

Actual

Invoicing Finance

28,593

Local-first personal finance with envelope budgeting, end-to-end encryption, and multi-device sync — no subscription required.

View details
93
Repo Health
85
Technical
77
Dependency
Built with
TypeScript94%
Updated today
TypeScript
94%
MIT

Actual

Invoicing Finance

28,593

Local-first personal finance with envelope budgeting, end-to-end encryption, and multi-device sync — no subscription required.

View details
93
Repo Health
85
Technical
77
Dependency
Built with
TypeScript94%
Updated today
TypeScript
94%
MIT

Actual

Invoicing Finance

28,593

Local-first personal finance with envelope budgeting, end-to-end encryption, and multi-device sync — no subscription required.

View details
93
Repo Health
85
Technical
77
Dependency
Built with
TypeScript94%
Updated today
TypeScript
68%
Apache 2.0

Appsmith

Developer Tools · Automation · No Code Platforms

40,825

Open-source low-code platform to build admin panels, dashboards, and internal tools connected to any database or API.

View details
93
Repo Health
79
Technical
66
Dependency
Built with
TypeScript68%
Java21%
Updated 3 days ago
TypeScript
92%
GPL 3.0

Blinko

Knowledge Management · Note Taking

10,992

A self-hosted, AI-powered card note-taking tool that lets you capture fleeting thoughts instantly and retrieve them with natural language search.

View details
80
Repo Health
69
Technical
63
Dependency
Built with
TypeScript92%
Updated 1 weeks ago
Rust
67%
MIT

Bun

Developer Tools

95,895

An all-in-one JavaScript and TypeScript toolkit — one Rust-and-JavaScriptCore binary that replaces Node.js, npm, a bundler, and a test runner with faster equivalents.

View details
92
Repo Health
91
Technical
64
Dependency
Built with
Rust67%
C++19%
Updated yesterday
JavaScript
99%
Other

ChartBrew

Analytics · Databases

4,054

Open-source reporting platform to build live dashboards from SQL, NoSQL, APIs, and SaaS tools with an AI assistant that creates charts from natural language.

View details
90
Repo Health
83
Technical
64
Dependency
Built with
JavaScript99%
Updated 4 days ago
TypeScript
81%
Other

Directus

CMS · Low Code Platforms

37,783

Connect any SQL database and get instant REST and GraphQL APIs, a visual management Studio, and a native MCP server for AI agents — free for most organizations.

View details
92
Repo Health
82
Technical
76
Dependency
Built with
TypeScript81%
Vue18%
Updated 3 days ago
TypeScript
92%
MIT

Dittofeed

Marketing · Automation

2,926

Open-source omni-channel customer engagement platform for automating transactional and marketing messages via email, SMS, WhatsApp, Slack, and mobile push.

View details
54
Repo Health
75
Technical
62
Dependency
Built with
TypeScript92%
Updated 5 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search