Log in to leave a comment
No posts yet
A vida útil da tecnologia é mais curta do que pensamos. O Radix UI, que dominou o ecossistema React por vários anos, é um exemplo típico. Em 2026, a frequência de commits no repositório Radix UI Primitives caiu para uma média de menos de 0,5 por semana. Está em um estado virtual de zumbi. Por outro lado, o Base UI, criado pelos seus principais designers que se juntaram à equipe do MUI, está lançando mais de 25 atualizações por dia. Não é apenas uma tendência; é uma questão de sobrevivência.
No passado, éramos entusiastas do padrão asChild do Radix. No entanto, na prática, esse padrão era um problema. Como ele usa cloneElement internamente, os conflitos de props eram frequentes e a inferência de tipos do TypeScript era sempre instável.
O Base UI resolveu isso de frente com o padrão Render Props. Não se trata apenas de uma mudança de sintaxe. Ele otimiza o desempenho reduzindo o overhead de runtime e permite que os desenvolvedores tenham 100% de controle sobre as props passadas para os elementos filhos.
No Base UI, o estado interno do componente pode ser recebido imediatamente como um argumento dentro da função de renderização. Não há necessidade de conectar hooks externos de forma desordenada como no Radix.
cloneElement, que a equipe do React desaconselha.A Lei Europeia de Acessibilidade (EAA) e os padrões WCAG 2.2, que entram em vigor a partir de 2026, agora são obrigatórios, não opcionais. O Base UI mantém atributos ARIA consistentes em ambientes de Server-Side Rendering. Isso evita o layout shift durante o processo de hidratação e melhora significativamente o desempenho de carregamento inicial (TTI).
A tarefa mais dolorosa em ambientes corporativos é a implementação de Multi-select ou Combobox. O Radix carecia desses widgets de alto desempenho, obrigando o uso constante de bibliotecas externas remendadas.
O Base UI suporta funções de seleção múltipla nativamente. Em particular, a combinação com bibliotecas de virtualização como @tanstack/react-virtual é fluida. Seu verdadeiro valor aparece ao lidar com grandes volumes de dados.
O padrão Function as ClassName do Base UI é mais poderoso quando encontra o Tailwind CSS. Em vez de operadores ternários complexos, você pode gerenciar estilos de forma declarativa.
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>
`
Refazer todo o código de uma vez é um ato suicida. É necessária uma abordagem gradual e estratégica.
Etapa 1: Período de Coexistência
Mantenha o Radix UI existente e instale o @base-ui-components/react em paralelo.
Etapa 2: Aplicação Prioritária em Novos Recursos
Adote o Base UI primeiro em novos modais ou formulários complexos que forem adicionados. Isso dá tempo para a equipe se familiarizar com o padrão Render Props.
Etapa 3: Substituição do Core Design System
Substitua apenas a implementação interna dos componentes comuns do design system pelo Base UI. Se você mantiver a interface da API externa, poderá modernizar a arquitetura subjacente sem tocar no código de outras equipes.
| Item de Comparação | Radix UI | Base UI |
|---|---|---|
| Mecanismo Core | Injeção de props cloneElement | Chamada de função Render Props |
| Controle de Props | Baixo (liderado pela biblioteca) | Alto (passado diretamente pelo dev) |
| Acesso ao Estado | Requer hooks externos | Injetado imediatamente como argumento |
| Estado de Manutenção | Praticamente interrompido (Base 2026) | Muito ativo (Liderado pela equipe MUI) |
As atualizações mais recentes do shadcn/ui já começaram a adotar o Base UI como seus componentes primitivos padrão. A liderança do mercado mudou completamente. A dívida técnica acumula juros quanto mais é ignorada. A inovação que o Radix UI oferecia agora evoluiu para uma forma mais completa com o Base UI.
A manutenção e o cumprimento dos padrões de acessibilidade são as principais competências de um desenvolvedor frontend em 2026. É hora de mudar para uma ferramenta mais clara e focada em desempenho. Os projetos de 2026 não devem mais permanecer no legado de ontem.