9:23Better Stack
Log in to leave a comment
No posts yet
La durée de vie des technologies est plus courte qu'on ne le pense. Radix UI, qui a dominé l'écosystème React pendant des années, en est l'exemple type. En ce début d'année 2026, la fréquence des commits sur le dépôt Radix UI Primitives est tombée à une moyenne de moins de 0,5 par semaine. C'est un état de quasi-abandon. À l'inverse, Base UI, créé par les architectes clés ayant rejoint l'équipe MUI, déverse plus de 25 mises à jour quotidiennes. Ce n'est pas une simple mode, c'est une question de survie.
Par le passé, nous étions enthousiasmés par le pattern asChild de Radix. Pourtant, à l'usage, ce pattern s'est avéré problématique. Comme il utilise cloneElement en interne, les conflits de props étaient fréquents et l'inférence de types TypeScript restait instable.
Base UI a résolu ce problème de front avec le pattern Render Props. Il ne s'agit pas seulement d'un changement de syntaxe. Cela réduit l'overhead au runtime pour optimiser les performances et permet aux développeurs de contrôler à 100 % les props transmises aux éléments enfants.
Avec Base UI, l'état interne du composant peut être reçu immédiatement comme argument à l'intérieur de la fonction de rendu. Il n'est plus nécessaire de connecter maladroitement des hooks externes comme avec Radix.
cloneElement (déconseillé par l'équipe React), Base UI privilégie l'appel direct de fonctions.L'Acte Européen sur l'Accessibilité (EAA)** et les normes WCAG 2.2, en vigueur depuis 2026, ne sont plus optionnels mais obligatoires. Base UI maintient des attributs ARIA cohérents dans les environnements de rendu côté serveur (SSR). Cela prévient les décalages de mise en page (layout shifts) lors de l'hydratation et améliore considérablement le temps de chargement initial (TTI).
Dans un environnement d'entreprise, la tâche la plus pénible est l'implémentation de Multi-select ou de Combobox. Radix manquait de ces widgets haute performance, obligeant souvent à greffer des bibliothèques externes disparates.
Base UI supporte nativement la sélection multiple. Son intégration avec des bibliothèques de virtualisation comme @tanstack/react-virtual est particulièrement fluide. C'est là que sa valeur se révèle lors de la manipulation de données à grande échelle.
Le pattern Function as ClassName de Base UI prend tout son sens lorsqu'il rencontre Tailwind CSS. Au lieu de ternaires complexes, vous pouvez gérer les styles de manière déclarative.
typescript <Select.Item className={(state) =>
flex items-center px-4 py-2 rounded-lg
${state.highlighted ? 'bg-indigo-50 text-indigo-900' : 'text-slate-700'}
${state.selected ? 'font-semibold bg-indigo-100' : 'font-normal'}
${state.disabled ? 'opacity-40 cursor-not-allowed' : 'cursor-pointer'}
`}
{item.label}
</Select.Item>
`
Refaire tout le code d'un coup est une mission suicide. Une approche progressive et stratégique est nécessaire.
Étape 1 : Phase de coexistence
Maintenez le Radix UI existant tout en installant npm install @base-ui-components/react en parallèle.
Étape 2 : Priorité aux nouvelles fonctionnalités
Adoptez d'abord Base UI pour les nouvelles modales ou les formulaires complexes. Cela permet à l'équipe de se familiariser avec le pattern Render Props.
Étape 3 : Remplacement du Design System central
Remplacez uniquement l'implémentation interne des composants communs du design system par Base UI. En conservant l'interface API externe, vous pouvez moderniser l'architecture sous-jacente sans impacter le code des autres équipes.
| Critère de comparaison | Radix UI | Base UI |
|---|---|---|
| Mécanisme central | Injection de props via cloneElement | Appel de fonction Render Props |
| Contrôle des props | Faible (dicté par la bibliothèque) | Élevé (transmises par le développeur) |
| Accès à l'état | Hooks externes requis | Injecté directement via la fonction de rendu |
| État de maintenance | Pratiquement arrêté (en 2026) | Très actif (piloté par l'équipe MUI) |
Les dernières mises à jour de shadcn/ui ont déjà commencé à adopter Base UI comme composants primitifs par défaut. Le leadership du marché a totalement basculé. Plus on ignore la dette technique, plus les intérêts s'accumulent. L'innovation apportée par Radix UI a désormais évolué vers une forme plus aboutie avec Base UI.
La maintenabilité et le respect des normes d'accessibilité sont les compétences clés d'un développeur front-end en 2026. Il est temps de passer à un outil plus clair et axé sur la performance. Vos projets de 2026 ne doivent plus rester prisonniers de l'héritage d'hier.