Frontend
Componentes
shadcn/ui, cn() e Lucide icons
shadcn/ui
Style radix-nova com 25 componentes instalados:
alert-dialog, avatar, badge, breadcrumb, button, card, collapsible, combobox, dialog, dropdown-menu, field, input, input-group, label, select, separator, sheet, sidebar, skeleton, sonner, switch, table, tabs, textarea, tooltip
Adicionar componentes
cd apps/app && bunx shadcn@latest add <component>Componentes recomendados
Antes de criar UI manualmente, verifique se shadcn ja tem:
- Tabelas com sorting/filtering →
table+ TanStack Table - Charts/graficos →
chart - Command palette →
command - Paginacao →
pagination - Date picking →
calendar date-picker - Drawers →
drawer - Toasts →
sonner(instalado) — usetoast()desonner
Imports
Importe componentes diretamente — sem camada de wrapper:
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";Customizacao
Os componentes em src/components/ui/ sao codigo proprio. Edite diretamente quando precisar customizar.
cn()
Utilitario para merge condicional de classes (clsx + tailwind-merge):
import { cn } from "@/lib/utils";
<div className={cn("px-4 py-2", isActive && "bg-primary text-white")} />Icones
Apenas Lucide React:
import { Settings, Users, Kanban } from "lucide-react";
<Settings className="size-4" />