UNPKG

@ralorotech/duino-ui

Version:

Sistema de diseño minimalista en React + TypeScript con estilos CSS (BEM), inspirado en la identidad visual de Arduino

227 lines (170 loc) 6.11 kB
# Duino UI Sistema de diseño minimalista en **React + TypeScript** con estilos **CSS (BEM)**, inspirado en la identidad visual de Arduino. Colores y tokens basados en la paleta teal/turquesa característica de Arduino.cc ## 🎨 Personalización Completa Duino UI es **100% personalizable**. Cambia colores, border radius, tipografía y más en tiempo real. ### 🚀 Inicio Rápido con Temas ```tsx import { ThemeProvider, Button, ThemeSwitcher } from '@ralorotech/duino-ui'; function App() { return ( <ThemeProvider preset="blue"> <ThemeSwitcher /> {/* Panel de personalización */} <Button variant="primary">Mi Botón Personalizado</Button> </ThemeProvider> ); } ``` ### 📚 Guías de Personalización - **[Guía Rápida](./THEMING_QUICK_START.md)** - Personalización en 2 minutos - **[Guía Completa](./CUSTOMIZATION.md)** - Personalización avanzada con ejemplos --- ## 🚀 Instalación ```bash npm install @ralorotech/duino-ui # o yarn add @ralorotech/duino-ui # o pnpm add @ralorotech/duino-ui ``` ### ✨ Uso Super Simple Los estilos se incluyen **automáticamente** cuando importas cualquier componente. ¡No necesitas importar CSS por separado! ```tsx import { Button, Input, Modal } from "@ralorotech/duino-ui"; // ¡Los estilos ya están incluidos! 🎉 ``` ### Uso rápido ```tsx import { Button, Input, Modal, Select } from "@ralorotech/duino-ui"; export default function App() { return ( <div> <h2>Duino UI Components</h2> <Button>Primary</Button> <Button variant="secondary">Secondary</Button> <Button variant="ghost">Ghost</Button> <Button variant="danger" loading>Deleting…</Button> <Input placeholder="Ingresa texto..." /> <Select options={[ { label: "Opción 1", value: "1" }, { label: "Opción 2", value: "2" } ]} placeholder="Selecciona una opción" /> </div> ); } ``` --- ## 📖 Ejemplos de Uso ### Ejemplo Básico ```tsx import { Button, Input, Modal } from "@ralorotech/duino-ui"; function App() { return ( <div> <Button>Hola Mundo</Button> <Input placeholder="Escribe algo..." /> </div> ); } ``` ### Ejemplo Completo Ver el archivo [`examples/CompleteExample.tsx`](./examples/CompleteExample.tsx) para un ejemplo completo que muestra todos los componentes disponibles. ## 🧑‍💻 Desarrollo local > Requisitos: **Node 18+** y npm/pnpm/yarn. 1) **Instalar dependencias**: ```bash npm install ``` 2) **Compilar en modo watch** (genera `dist/`): ```bash npm run dev ``` 3) **Probar componentes** con Storybook: ```bash npm run storybook ``` 4) **Ejecutar tests**: ```bash npm run test ``` 5) **Verificar tipos**: ```bash npm run type-check ``` ### 🎨 Tokens de diseño Duino UI utiliza tokens CSS personalizados inspirados en Arduino: ```css /* Colores principales */ --duino-brand-500: #14b8a6; /* Teal principal */ --duino-brand-700: #008184; /* Teal oscuro para botones */ --duino-brand-800: #005c5f; /* Teal muy oscuro para hover */ /* Espaciado */ --duino-gap-sm: .375rem; --duino-gap: .5rem; --duino-gap-lg: .75rem; /* Bordes */ --duino-radius: 12px; ``` --- ## 📚 Storybook Explora todos los componentes de Duino UI: - **Localmente**: ```bash npm run storybook ``` Abre: http://localhost:6006 - **Demo online**: (próximamente) --- ## 🧩 Scripts disponibles ```bash # Desarrollo npm run dev # Compilar en modo watch npm run storybook # Ejecutar Storybook # Construcción npm run build # Compilar librería npm run build:css # Generar CSS combinado npm run build:storybook # Compilar Storybook # Testing npm run test # Ejecutar tests con Vitest ``` ## ✨ Características -**Estilos Automáticos** - ¡Solo importa el componente y listo! CSS incluido automáticamente - 🎨 **100% Personalizable** - Cambia colores, tipografía y espaciado en tiempo real - 🚀 **Tree-shaking optimizado** - Importa solo lo que necesitas - 📱 **Responsive** - Diseño adaptativo para todos los dispositivos -**Accesible** - Componentes con soporte completo de accesibilidad - 🎯 **TypeScript** - Tipado completo para mejor experiencia de desarrollo - 🎨 **BEM CSS** - Metodología de nomenclatura consistente y mantenible - 🔧 **Temas** - Sistema de temas predefinidos y personalizables - 📦 **Múltiples formatos** - ESM, CJS y UMD para máxima compatibilidad -**Rápido** - Optimizado para rendimiento y carga rápida - 🛠️ **Desarrollador-friendly** - Hot reload, source maps y debugging ## 🎯 Componentes incluidos - **Button**: Botones con variantes primary, secondary, ghost y danger - **Input**: Campos de entrada con estados de focus y error - **Modal**: Ventanas modales con overlay y animaciones - **Select**: Selectores desplegables con búsqueda - **Table**: Tablas con ordenamiento y paginación - **Upload**: Componente de carga de archivos con drag & drop - **Collapse**: Acordeones colapsables - **Popover**: Tooltips y popovers posicionables - **Spin**: Indicadores de carga - **Message**: Sistema de notificaciones - **Image**: Componente de imagen optimizado Todos los componentes utilizan los tokens de Duino UI y siguen la metodología BEM para CSS. --- ## 🆕 Últimas Mejoras ### v0.0.16 - Mejoras de Usabilidad -**Estilos Automáticos** - ¡Ya no necesitas importar CSS! Los estilos se incluyen automáticamente -**Exports mejorados** - Mejor experiencia de importación con múltiples puntos de entrada -**Tree-shaking optimizado** - Configuración mejorada para mejor eliminación de código muerto -**TypeScript mejorado** - Mejor resolución de tipos y configuración de build -**Documentación actualizada** - Ejemplos más completos y guías mejoradas -**Scripts de desarrollo** - Comandos adicionales para linting, type-checking y testing -**Compatibilidad ampliada** - Soporte para ESM, CJS y UMD - 🚀 **Experiencia de desarrollo mejorada** - Configuración simplificada sin importaciones de CSS ## ⚖️ Licencia MIT