# Radix vs Base UI vs React Aria: what actually changes

Three primitives, three contracts. The difference is not the component count, it is how they handle state, accessibility and composition, and who owns it.

> Page: https://ui.eneawork.it/blog/radix-base-ui-react-aria
> Markdown: https://ui.eneawork.it/blog/radix-base-ui-react-aria.md

*2026-10-31*

Radix, Base UI e React Aria vengono spesso confrontati come se fossero tre scatole di bottoni. In realtà sono tre modi di intendere il comportamento: chi possiede lo stato, come si compone un menu, dove vive l’accessibilità.

## Tre contratti, non tre librerie

Radix espone primitive componibili con una API dichiarativa. Base UI porta avanti un modello simile con una base più recente. React Aria mette l’accento sul comportamento accessibile e sugli hook, lasciando più libertà (e più lavoro) al design.

## Cosa testare in 15 minuti

## La scelta dipende dal design system

Se hai già un linguaggio visivo forte, React Aria ti dà il comportamento e ti lascia il controllo. Se vuoi primitive pronte e una community ampia, Radix è la strada più breve. Base UI ha senso se vuoi una base più recente e accetti una community più piccola.

Scegliere due primitive diverse per dialog e menu significa mantenere due modelli di focus. Il costo non è nel primo componente, è nel decimo.

## Come verificarlo nel catalogo

Apri i confronti e cerca le librerie che usano la primitiva che stai valutando. Poi apri un componente reale e prova la preview da tastiera: la documentazione dice cosa dovrebbe succedere, il componente dice cosa succede.

## FAQ

### Radix è meglio di React Aria?

No, risolvono lo stesso problema con contratti diversi. Radix è più rapido da adottare; React Aria dà più controllo sul comportamento e sull’accessibilità.

### Base UI sostituisce Radix?

Non automaticamente. Base UI è una base più recente, ma migrare significa riscrivere API e test, non cambiare un import.

### Quale usare per un design system interno?

React Aria se vuoi controllo totale; Radix se vuoi primitive pronte e una community ampia. La scelta va scritta nel design system, non lasciata al singolo componente.

### L’accessibilità è garantita?

No. Le primitive aiutano, ma contrasto, copy, ordine di focus e stati dipendono da come le usi.

### Posso mescolare Radix e React Aria?

Tecnicamente sì, ma evita di farlo per lo stesso tipo di controllo. Due modelli di focus nello stesso prodotto sono un debito.
