simplekit-react
v0.1.30
Published
Conjunto de componentes de interfaz para React, listos para usar con Tailwind CSS. Incluye botones, inputs, selects, cards, modales, sistema de toasts y utilidades de navegación, con tipados completos y build ESM/CJS + d.ts.
Readme
simplekit-react
Conjunto de componentes de interfaz para React, listos para usar con Tailwind CSS. Incluye botones, inputs, selects, cards, modales, sistema de toasts y utilidades de navegación, con tipados completos y build ESM/CJS + d.ts.
La librería está pensada para integrarse en proyectos que ya usan Tailwind. No incluye CSS propio; los componentes usan clases de Tailwind para estilado.
Instalación
Instala la librería (React 19+ requerido):
npm i simplekit-react
# o
yarn add simplekit-react
# o
pnpm add simplekit-react
# o
bun add simplekit-reactPeer dependencies (si tu proyecto ya usa React, seguramente ya las tienes):
react>=19 <20react-dom>=19 <20framer-motion>=11 (solo si usasModal,DraweroToasts)
Requisitos de estilos:
- Tailwind CSS v4 (o equivalente) configurado en tu proyecto, ya que los componentes están escritos con clases utilitarias.
Uso rápido
import React from "react";
import { ButtonUI, Card, CardHeader, CardTitle, CardContent } from "simplekit-react";
export default function Example() {
return (
<Card className="max-w-sm">
<CardHeader>
<CardTitle>Hola</CardTitle>
</CardHeader>
<CardContent>
<ButtonUI color="primary">Acción</ButtonUI>
</CardContent>
</Card>
);
}Íconos en SidebarNavLink
SidebarNavLink acepta icon?: ReactNode, así que puedes pasar cualquier ícono de cualquier librería:
import { SidebarNavLink } from "simplekit-react";
import { Home } from "lucide-react"; // ejemplo, pero puedes usar cualquier ReactNode
<SidebarNavLink href="/" label="Inicio" description="Ir a inicio" icon={<Home className="h-4 w-4" />} isOpen />;Si prefieres FontAwesome:
import { SidebarNavLink } from "simplekit-react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faHouse } from "@fortawesome/free-solid-svg-icons";
<SidebarNavLink href="/" label="Inicio" icon={<FontAwesomeIcon icon={faHouse} />} isOpen />;Sistema de Toasts
Envuelve tu app con el proveedor y monta el contenedor una sola vez:
import { ToastProvider, ToastContainer, useToast } from "simplekit-react";
function App() {
return (
<ToastProvider>
<MyPage />
<ToastContainer />
</ToastProvider>
);
}
function MyPage() {
const { toast } = useToast();
return (
<button onClick={() => toast.success("Guardado", "Cambios aplicados")}>Mostrar toast</button>
);
}Formularios básicos
import { InputUI, SelectUI, SelectItem, TextareaUI, CheckboxUI } from "simplekit-react";
<InputUI label="Nombre" placeholder="Tu nombre" />
<SelectUI label="Opción">
<SelectItem value="1">Uno</SelectItem>
<SelectItem value="2">Dos</SelectItem>
</SelectUI>
<TextareaUI label="Mensaje" />
<CheckboxUI label="Acepto los términos" />Navegación (polimórfica)
NavLinkUI y SidebarNavLink renderizan un <a> por defecto, así que funcionan sin ninguna librería de routing:
import { NavLinkUI, SidebarNavLink } from "simplekit-react";
import { Home } from "lucide-react"; // Usa cualquier ícono como ReactNode
<NavLinkUI href="/" variant="modern">Inicio</NavLinkUI>
<SidebarNavLink href="/" label="Inicio" icon={<Home />} isOpen />Si necesitas integrarlos con react-router, next/link, Gatsby u otro router basado en React, pasa el componente mediante la prop as y reutiliza las props (to, href, etc.) propias del router:
import { NavLink as RouterNavLink } from "react-router";
import { NavLinkUI } from "simplekit-react";
<NavLinkUI as={RouterNavLink} to="/" variant="modern">
Inicio
</NavLinkUI>Controla el estado activo con tu router (pasando isActive cuando tengas la información) o aplicando clases adicionales. NavLinkUI usa clases como nav-link, nav-link-secondary, etc. Ajusta esas clases en tu CSS o sustitúyelas por tus propios estilos. El resto de componentes usan utilidades de Tailwind directamente.
Estilos y Tailwind
- Los componentes usan clases de Tailwind; el paquete no inyecta CSS.
- Asegúrate de tener Tailwind configurado en tu app y que tu pipeline procese clases dinámicas (por ejemplo
bg-,text-,rounded-, etc.). - Si deseas replicar los estilos del playground, puedes basarte en tus propios tokens/temas Tailwind.
Tailwind v4: declarar fuentes (@source)
Si usas Tailwind v4, añade en tu hoja de estilos global (por ejemplo src/index.css o src/app.css) las rutas desde donde Tailwind debe escanear clases. Incluye también este paquete para que sus clases se generen correctamente:
/* Dile a Tailwind v4 dónde escanear clases */
@source "./index.html";
@source "./src/**/*.{js,jsx,ts,tsx,html}";
/* Incluye la librería para que sus clases se generen */
@source "./node_modules/simplekit-react/dist/**/*.{js,cjs}";Ajusta las rutas relativas según la ubicación de tu CSS global. Por ejemplo, si tu CSS vive en src/styles/globals.css, cambia los prefijos ./ por ../ donde sea necesario.
Tipos y tree‑shaking
- Exporta ESM (
dist/index.js), CJS (dist/index.cjs) y tipos (dist/index.d.ts). sideEffects: falsepermite tree‑shaking.
Desarrollo local (playground)
Este repo incluye un playground con Vite para probar los componentes:
npm run dev # inicia el playground
npm run build # genera la librería en dist/Licencia
Pendiente de definir por el autor.
