Pular para o conteúdo
Frontend

Radix UI vs Base UI: o que muda no Shadcn em 2026

Desde julho de 2026, Shadcn usa Base UI por padrão em projetos novos. Radix continua suportado. Compare APIs, performance e quando migrar.

Gustavo Miranda
15 min de leitura
LinkedIn𝕏X
Radix UIBase UIShadcn UIReactMigration

Por que isso é importante

Em projetos novos, o debate Radix UI vs Base UI ficou prático: desde julho de 2026 o Shadcn adotou Base UI como padrão. Radix UI continua suportado — apps estáveis em Radix não precisam migrar só por moda. Migre componente a componente quando API, manutenção ou init default pedirem.

Radix UI hoje no debate vs Base UI

No confronto Radix UI vs Base UI, Radix ainda é o stack maduro de primitivos acessíveis (accessibility) e unstyled em milhares de apps Shadcn. Em 2026 a dúvida não é “Radix parou de funcionar” — é sustentabilidade e o fato de o default do Shadcn ter mudado para Base UI.

Análise de Manutenção Radix UI

Ritmo de commits: percepção de desaceleração na comunidade em 2025–2026 (sem métrica oficial pública consolidada)
Issues e releases: intervalos e backlog variam por pacote; avalie o repositório atual antes de migrar
Roadmap: comunicação menos previsível que o de bases mantidas ativamente pelo Shadcn
Posição oficial do Shadcn (jul/2026): Radix permanece suportado; não há depreciação anunciada

Apesar dos sinais preocupantes, Radix UI continua sendo uma biblioteca madura, testada em produção por milhares de aplicações. A preocupação não é sobre funcionalidade atual, mas sobre sustentabilidade futura.

Base UI: O Novo Default do Shadcn

Base UI (ecossistema MUI) é o default do Shadcn em projetos novos desde julho de 2026: mesmos objetivos de primitivos acessíveis e unstyled (headless UI React), com API próxima o bastante de quem veio do Radix (hoje no radar WorkOS). Para ficar no Radix UI / Shadcn legado, use a flag de init da CLI quando fizer sentido.

Radix UI

Pioneiro em primitivos React acessíveis

Prós
  • Ecossistema maduro e testado
  • Compatibilidade total com Shadcn UI
  • Documentação completa
  • Ampla adoção na comunidade
  • APIs estáveis e consistentes
Contras
  • Manutenção irregular
  • Roadmap indefinido
  • Questões de sustentabilidade
  • Menos novos recursos

Base UI

Default do Shadcn em projetos novos (desde jul/2026)

Prós
  • Default oficial do Shadcn em projetos novos
  • Manutenção ativa e releases frequentes
  • API similar facilitando migração
  • Performance otimizada
  • Suporte TypeScript nativo
Contras
  • Histórico mais curto que o Radix em produção
  • Ecossistema ainda em consolidação
  • Migração de apps Radix não é automática
  • Alguns padrões exigem reaprendizado pontual

Comparação Técnica Detalhada

Ambas as bibliotecas seguem filosofias similares, mas Base UI oferece melhorias arquiteturais e de performance que podem ser decisivas para projetos futuros.

Performance e Bundle Size

Base UI foi projetado com foco em performance desde o início. Comparações de bundle e renderização dependem do componente e do app — meça no seu projeto em vez de tratar percentuais genéricos como verdade universal.

O que dá para afirmar com segurança

Bundle/render: compare no seu build (tree-shaking e composição mudam o resultado)
Default Shadcn (jul/2026): projetos novos iniciam em Base UI; Radix via flag `-b radix`
Tree shaking e tipagem: ambas as bases são headless e TypeScript-friendly
Migração: oficialmente opcional e progressiva — sem prazo forçado para apps em Radix

Compatibilidade de APIs

A semelhança entre as APIs facilita migração gradual. Base UI mantém padrões familiares do Radix UI, reduzindo curva de aprendizado e esforço de refatoração.

asChild vs render: o que muda na migração

Em vários componentes Radix, composição com filhos usa asChild + Slot. No Base UI, o equivalente documentado é a prop render (via composição /useRender). Ao migrar Dialog, Select ou ToggleGroup, revise cada ponto em que você sobrescreve o elemento de DOM — não só os imports. A CLI/skill oficial de migração do Shadcn trata asChildrender como mudança mecânica; comportamento (focus, mount) exige smoke test.

Padrão ilustrativo (nomes de subcomponentes podem variar entre pacotes — confira a aba Base UI em ui.shadcn.com):

// Radix — DialogTrigger com asChild <DialogTrigger asChild> <Button>Abrir</Button> </DialogTrigger> // Base UI — equivalente com render <DialogTrigger render={<Button>Abrir</Button />} />

// Radix — Select com trigger custom <SelectTrigger asChild> <Button variant="outline">Escolher</Button> </SelectTrigger> // Base UI — compose via render no trigger/parte equivalente <SelectTrigger render={<Button variant="outline">Escolher</Button />} />

// ToggleGroup: revise value/multiple — Base UI tipa seleção de forma mais estrita // (ex.: value como array + flag multiple). Não assuma copy-paste cego do Radix.

1
Busque asChild e imports @radix-ui/* diretos no app
2
Troque um componente folha (Button/Dialog) e rode typecheck + smoke de a11y
3
Confira animações / forceMount vs equivalentes Base (keepMounted etc.)
4
Se renderizar não-button (ex.: link), veja props como nativeButton na doc Base UI
5
Convivência Radix+Base é OK — migração big-bang raramente vale a pena

Árvore de decisão: Radix ou Base UI?

Use esta árvore antes de planejar refatoração. O default oficial do Shadcn (jul/2026) aponta Base UI para projetos novos; Radix permanece suportado.

1
App já está estável em Radix e não há dor concreta? → Continue em Radix.
2
Projeto novo com npx shadcn init? → Siga o default Base UI, a menos que o time documente opt-in -b radix.
3
Precisa de um componente que só existe / está maduro numa base? → Escolha por componente e aceite convivência temporária.
4
Vai migrar? → Só com motivo (bug, API, manutenção) e plano gradual — não por hype.

Estratégia de Migração para Shadcn UI

O Shadcn reconstruiu os componentes para Base UI e mantém Radix suportado em paralelo. Você não precisa migrar apps estáveis: a orientação oficial é manter o que funciona e usar Base UI em projetos novos. Quando houver motivo concreto, a migração pode ser gradual, componente por componente — veja também o panorama da dependência Shadcn/Radix, o roadmap do Shadcn UI e o tutorial completo de Shadcn UI.

1
Fase 1 - Avaliação: Teste Base UI em projetos experimentais
2
Fase 2 - Componentes Novos: Use Base UI para novos componentes
3
Fase 3 - Migração Gradual: Substitua componentes críticos só com motivo claro
4
Fase 4 - Finalização: Complete a troca dos restantes, se a migração valer a pena

A vantagem do Shadcn UI é que você possui o código. Isso permite migração controlada sem quebrar funcionalidades existentes.

Roadmap e Cronograma 2026

Base UI já está estável e, desde julho de 2026, é o default do Shadcn em projetos novos. Radix segue suportado; docs e updates continuam para as duas bases. Migrar apps existentes só faz sentido com motivo específico — estabilidade em produção continua válida.

O que mudou em 2026

Jul/2026: Base UI vira default em npx shadcn init e no shadcn/create
Docs: páginas de componente abrem na aba Base UI; Radix a um clique
Radix: permanece suportado; use -b radix para optar em projetos novos
Apps existentes: sem obrigação de migrar se o Radix atende o produto

O posicionamento oficial é conservador: default novo, sem forçar troca em produção. Isso dá tempo para validar Base UI sem risco desnecessário em apps maduros.

Ferramentas e Recursos

Base UI

Primitivos estáveis para testes e produção

Saiba mais →

Migration Guide

Guia oficial de migração Radix → Base UI

Saiba mais →

Shadcn UI Registry

Componentes Shadcn com Base UI e Radix

Saiba mais →

Performance Comparison

Benchmarks Radix UI vs Base UI

Saiba mais →

Recomendação prática para freela e SaaS

A decisão entre Radix UI e Base UI depende do contexto do projeto. Para aplicações existentes estáveis no Radix, mantenha o que funciona. Para projetos novos em 2026, o default do Shadcn aponta para Base UI — Radix continua disponível se preferir.

Projetos Existentes

Mantenha Radix UI se o projeto está estável e em produção. Migração sem motivo claro pode introduzir bugs desnecessários.

Novos Projetos

Para projetos iniciados após julho de 2026, Base UI é o caminho padrão do Shadcn. Se quiser Radix, use a flag de init correspondente e documente a escolha no time.

Checklist de Decisão

Avaliei criticidade do projeto atual
Testei Base UI em ambiente de desenvolvimento
Documentei componentes que dependem do Radix UI
Planejei cronograma de migração só se houver motivo claro
Configurei monitoramento de releases do Base UI
Alinhei o time: default Base UI vs opt-in Radix

Perguntas frequentes

Radix UI ou Base UI no Shadcn em 2026: qual usar?

Em projetos novos, o Shadcn usa Base UI por padrão desde julho de 2026. Radix continua totalmente suportado. Apps estáveis em Radix não precisam migrar só por moda — migre quando houver motivo claro (API, componentes ou manutenção).

Preciso migrar meu app de Radix para Base UI?

Não. A orientação oficial do Shadcn é: se a app em produção está bem no Radix, continue enviando features. Migração é opcional e deve ser componente a componente, não big bang.

Como iniciar um projeto Shadcn ainda com Radix?

Use a flag de init para optar por Radix (ex.: npx shadcn init -b radix, conforme a CLI atual). Sem a flag, o default em 2026 aponta para Base UI.

Qual a maior diferença de API entre Radix e Base UI?

Um ponto recorrente é o padrão asChild do Radix versus a abordagem com render prop no Base UI, além de atributos de estado e anatomia de alguns componentes. Meça bundle e comportamento no seu app — não generalize percentuais de performance.

Conclusão: Default Novo, Migração Opcional

Base UI virou o default do Shadcn em projetos novos; Radix segue suportado. A natureza copy-paste do Shadcn permite troca controlada quando houver motivo — sem prazo forçado para apps em produção.

Em 2026, a pergunta prática é menos "se" e mais "quando vale a pena" migrar cada codebase. Projetos novos tendem a Base UI; projetos maduros no Radix podem continuar enviando features com segurança. Para aprofundar a stack, compare também Shadcn vs Material UI, o guia de Tailwind CSS, o tutorial Shadcn UI e o guia de desenvolvedor sênior.

Fontes

Revisão em agosto de 2026. O default Base UI no Shadcn (projetos novos desde julho de 2026) e o suporte contínuo ao Radix vêm do changelog e docs oficiais — meça bundle e render no seu app antes de migrar.

ui.shadcn.com/docschangelog ShadcnRadix PrimitivesBase UI.

Domine Component Libraries Modernas

Aprenda a navegar entre Radix UI, Base UI e Shadcn UI com segurança e eficiência