Instalar con el CLI de shadcn
Los componentes de AlignUI se publican como registry de shadcn. Funciona en cualquier proyecto React con Tailwind CSS v4; los ejemplos usan Next.js App Router.
Registra el namespace @alignui
En el components.json de tu proyecto (créalo si no existe):
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "",
"css": "app/globals.css",
"baseColor": "neutral",
"cssVariables": true
},
"aliases": {
"components": "@/components",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks",
"utils": "@/lib/utils"
},
"registries": {
"@alignui": "https://alignui-mcp.vercel.app/r/{name}.json"
}
}Instala la base
npx shadcn@latest add @alignui/baseAgrega los tokens de diseño en lib/alignui.css (los importa desde app/globals.css) y las utilidades cn, tv, polymorphic y recursiveCloneChildren.
Agrega componentes
npx shadcn@latest add @alignui/button @alignui/input @alignui/modalCada componente trae sus dependencias de npm y los componentes que usa. También puedes instalar los ejemplos oficiales, por ejemplo @alignui/select-demo.
Fuente, tema y providers
AlignUI está diseñado con Inter. Expónla como --font-inter y mapéala en tu CSS. El modo oscuro es opcional: solo se activa con la clase dark en <html>, nunca por el sistema operativo.
@import "tailwindcss";
@import "tw-animate-css";
@import "../lib/alignui.css";
@custom-variant dark (&:where(.dark, .dark *));
@theme inline {
--font-sans: var(--font-inter);
}
@layer base {
button:not(:disabled),
[role="button"]:not(:disabled) {
cursor: pointer;
}
}import { Inter } from 'next/font/google';
import { ThemeProvider } from 'next-themes';
import { Provider as TooltipProvider } from '@/components/ui/tooltip';
const inter = Inter({ subsets: ['latin'], variable: '--font-inter' });
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang='es' className={inter.variable} suppressHydrationWarning>
<body>
<ThemeProvider attribute='class' disableTransitionOnChange>
<TooltipProvider>{children}</TooltipProvider>
</ThemeProvider>
</body>
</html>
);
}Si usas notificaciones o toasts, monta una vez <NotificationProvider /> o <Toaster /> en el layout.
Sin configurar el namespace
También puedes instalar directamente con la URL del item:
npx shadcn@latest add https://alignui-mcp.vercel.app/r/button.json