UI Libraries Bibliotecas de Componentes de UI
Última atualização: 2026-11-03
UI Libraries Bibliotecas de Componentes de UI
As bibliotecas de componentes do React vêm em dois sabores: bibliotecas completas como Ant Design, MUI e shadcn/ui funcionam prontas para uso e mantêm o comportamento visual sob o controle da biblioteca, enquanto bibliotecas headless como Radix e Headless UI fornecem apenas lógica e acessibilidade e deixam os visuais por sua conta. Escolher entre elas é essencialmente uma escolha entre velocidade de entrega e liberdade de personalização.
| Grupo | Ecossistema |
|---|---|
| Tipo | Biblioteca |
| Desde | Ant Design v5, MUI v6 e Radix UI continuam recebendo atualizações (2025) |
ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.
📝 Sintaxe
# Full component library: install it and use it right away
npm install antd
import { Button } from 'antd'
<Button type="primary" onClick={save}>Save</Button>
# Headless library: install it and write the visuals yourself
npm install @radix-ui/react-dialog
import * as Dialog from '@radix-ui/react-dialog'
<Dialog.Root> {/* logic: state, focus and accessibility are handled by the library */}
<Dialog.Trigger>Open</Dialog.Trigger>
<Dialog.Portal>{/* the visuals are fully custom */}</Dialog.Portal>
</Dialog.Root>
⚙️ Parâmetros
| props such as type / variant | Como bibliotecas completas são personalizadas: props escolhem uma aparência e um comportamento entre as variantes que a biblioteca oferece. |
|---|---|
| render / asChild | Como bibliotecas headless são personalizadas: a biblioteca entrega seu estado de interação e eventos para sua função render ou elemento filho, e os visuais ficam inteiramente a seu cargo. |
Retorna:Sem valor de retorno — veja o exemplo para o uso de bibliotecas de terceiros.
▶ Exemplo
O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.
Saída:
Simulação: a metade superior mostra botões no estilo AntD (um botão primário azul e um botão tracejado) cuja aparência vem das variantes predefinidas escolhidas via props; a metade inferior mostra um botão no estilo Headless (uma pílula roxa) cuja aparência é totalmente definida pela função render e escurece enquanto pressionado (o estado pressed vem da biblioteca). Cada clique é registrado no log de ações abaixo. Ambos os estilos de API são simulados com React puro.