Détail du package

@camtom/nyx-design-system

rammariana2kMIT1.4.3

Nyx Design System - Sistema de diseño profesional para React con TypeScript, componentes accesibles y documentación completa

react, typescript, design-system, ui-components

readme

🌌 Nyx Design System

npm version License: MIT TypeScript React Storybook

Un sistema de diseño profesional para React con TypeScript, componentes accesibles y documentación completa. Nyx proporciona una biblioteca de componentes UI moderna, consistente y altamente personalizable.

✨ Características

  • 🎯 16 Componentes de Producción - Componentes UI cuidadosamente diseñados para aplicaciones modernas
  • 🔧 TypeScript First - Seguridad de tipos completa y excelente experiencia de desarrollo
  • Accesibilidad Integrada - Componentes compatibles con WCAG 2.1 y soporte ARIA
  • 🎨 CSS Modules - Estilos encapsulados con tokens de diseño y soporte de temas
  • 📦 Tree-shaking Optimizado - Importa solo lo que necesitas para bundles más pequeños
  • 📚 Documentación Storybook - Playground interactivo y documentación completa
  • 🧪 Testing Completo - Tests unitarios con Vitest y React Testing Library
  • 🚀 Performance Optimizado - Construido para velocidad y eficiencia
  • 🎭 Diseño Profesional - Lenguaje visual consistente, moderno y elegante

📦 Instalación

npm install @camtom/nyx-design-system
# o
yarn add @camtom/nyx-design-system
# o
pnpm add @camtom/nyx-design-system

🎨 Ver Componentes en Vivo

📚 Storybook Demo - Explora todos los componentes de forma interactiva con ejemplos en vivo y documentación completa.

🚀 Inicio Rápido

import React from 'react';
import { Button, Input, Modal, TagComponent } from '@camtom/nyx-design-system';
import '@camtom/nyx-design-system/dist/index.css';

function App() {
  const [isOpen, setIsOpen] = React.useState(false);

  return (
    <div>
      <Input placeholder="Escribe tu mensaje..." />
      <Button 
        variant="primary" 
        onClick={() => setIsOpen(true)}
      >
        Abrir Modal
      </Button>

      <TagComponent variant="success">
        Estado Exitoso
      </TagComponent>

      <Modal 
        isOpen={isOpen} 
        onClose={() => setIsOpen(false)}
        title="Bienvenido a Nyx"
      >
        <p>Tu contenido va aquí...</p>
      </Modal>
    </div>
  );
}

🎨 Biblioteca de Componentes

📝 Componentes de Formulario

  • Button - Botones interactivos con múltiples variantes y estados
  • Input - Campos de entrada de texto con validación y texto de ayuda
  • Textarea - Entrada de texto multilínea con redimensionamiento automático
  • Select - Selectores desplegables con búsqueda y opciones múltiples
  • Dropzone - Subida de archivos por arrastrar y soltar con indicadores de progreso
  • QueryBox - Entrada de consultas avanzada con archivos adjuntos

🧭 Componentes de Navegación

  • Sidebar - Barra lateral de navegación colapsible con elementos de menú
  • SidePanel - Paneles laterales deslizantes para contenido adicional
  • DropdownMenu - Menús desplegables contextuales

💬 Componentes de Retroalimentación

  • Modal - Diálogos modales accesibles con tamaños personalizables
  • Tooltip - Información contextual al hacer hover
  • Banner - Banners informativos con diferentes variantes
  • Loader - Indicadores de carga con múltiples animaciones

📊 Componentes de Visualización de Datos

  • Avatar - Imágenes de perfil de usuario con respaldos
  • TagComponent - Etiquetas de estado y badges con 18 variantes
  • Details - Secciones de contenido colapsibles
  • ScrollableContainer - Contenedores con scroll personalizado

🛠️ Desarrollo

Prerrequisitos

  • Node.js 18+
  • npm 8+ o yarn 1.22+

Configuración

# Clonar el repositorio
git clone https://github.com/camtom/nyx-design-system.git
cd nyx-design-system

# Instalar dependencias
npm install

# Iniciar desarrollo
npm run dev

Scripts Disponibles

# Desarrollo
npm run dev              # Build en modo watch
npm run storybook        # Iniciar documentación Storybook

# Construcción
npm run build            # Build de producción
npm run build-storybook  # Build Storybook para despliegue

# Testing
npm run test             # Ejecutar tests en modo watch
npm run test:run         # Ejecutar tests una vez
npm run test:coverage    # Ejecutar tests con reporte de cobertura

# Calidad de Código
npm run lint             # ESLint con auto-fix
npm run type-check       # Verificación de tipos TypeScript

# Publicación
npm run release          # Bump de versión patch y publicar
npm run release:minor    # Bump de versión minor y publicar
npm run release:major    # Bump de versión major y publicar

📚 Documentación

Documentación Interactiva

Visita nuestra documentación Storybook para:

  • Playground interactivo de componentes
  • Ejemplos de código en vivo
  • Guías de diseño
  • Documentación de accesibilidad
  • Referencias de API

Documentación Local

npm run storybook
# Se abre en http://localhost:6006

🎯 Filosofía de Diseño

Nyx está construido sobre principios fundamentales que aseguran consistencia, accesibilidad y experiencia de desarrollo:

🌟 Claridad en la Complejidad

  • Interfaces limpias e intuitivas que reducen la carga cognitiva
  • Lenguaje visual consistente en todos los componentes
  • Jerarquía de información clara y flujo visual

Accesibilidad Primero

  • Cumplimiento WCAG 2.1 AA por defecto
  • Soporte de navegación por teclado
  • Compatibilidad con lectores de pantalla
  • Soporte de modo de alto contraste

Performance Optimizado

  • Soporte de tree-shaking para tamaños de bundle mínimos
  • CSS Modules para estilos encapsulados
  • Renderizado optimizado con mejores prácticas de React
  • Capacidades de carga diferida

🔧 Experiencia de Desarrollo

  • Soporte completo de TypeScript con tipos comprensivos
  • Diseño de API intuitivo con valores por defecto sensatos
  • Documentación extensa y ejemplos
  • Recarga en caliente en desarrollo

🎨 Temas y Personalización

Variables CSS

Personaliza el sistema de diseño usando variables CSS:

:root {
  --color-primary-500: #tu-color-primario;
  --color-secondary-500: #tu-color-secundario;
  --spacing-4: 1rem;
  --radius-md: 8px;
  --font-family-base: 'Tu Fuente', sans-serif;
}

Personalización de Componentes

import { Button } from '@camtom/nyx-design-system';

// Estilos personalizados con CSS modules
<Button 
  variant="primary" 
  className="mi-boton-personalizado"
  style={{ 
    '--button-padding': '1rem 2rem',
    '--button-radius': '12px'
  }}
>
  Botón Personalizado
</Button>

🧪 Testing

Los componentes de Nyx están completamente probados con:

  • Tests Unitarios - Comportamiento de componentes y props
  • Tests de Integración - Interacciones de usuario y flujos de trabajo
  • Tests de Accesibilidad - Lectores de pantalla y navegación por teclado
  • Tests de Regresión Visual - Consistencia de UI entre actualizaciones
# Ejecutar todos los tests
npm run test:run

# Ejecutar con cobertura
npm run test:coverage

# Ejecutar archivo de test específico
npm test Button.test.tsx

📈 Performance

  • Tamaño del Bundle: ~45KB comprimido (todos los componentes)
  • Tree-shaking: Importa solo los componentes necesarios
  • CSS: Estilos encapsulados previenen conflictos
  • Runtime: Patrones de React optimizados y re-renders mínimos
// Importaciones amigables con tree-shaking
import { Button } from '@camtom/nyx-design-system/Button';
import { Input } from '@camtom/nyx-design-system/Input';

🤝 Contribuir

¡Aceptamos contribuciones! Por favor consulta nuestra Guía de Contribución para detalles.

Flujo de Desarrollo

  1. Fork el repositorio
  2. Crear una rama de feature (git checkout -b feature/increible-feature)
  3. Hacer tus cambios
  4. Agregar tests para nueva funcionalidad
  5. Ejecutar la suite de tests (npm run test:run)
  6. Commit tus cambios (git commit -m 'Agregar increible feature')
  7. Push a la rama (git push origin feature/increible-feature)
  8. Abrir un Pull Request

Estándares de Código

  • TypeScript para seguridad de tipos
  • ESLint para calidad de código
  • Prettier para formato de código
  • Commits convencionales para generación de changelog

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para detalles.

🏢 Soporte Empresarial

Para soporte empresarial, componentes personalizados o servicios de consultoría, contáctanos en:

🗺️ Roadmap

v1.1.0 (Q2 2024)

  • [ ] Componente Data Table
  • [ ] Componentes de gráficos
  • [ ] Validación avanzada de formularios
  • [ ] Soporte de modo oscuro

v1.2.0 (Q3 2024)

  • [ ] Componentes optimizados para móvil
  • [ ] Biblioteca de animaciones
  • [ ] Sistema de temas avanzado
  • [ ] Utilidades de composición de componentes

🙏 Agradecimientos

  • Equipo de React por el framework increíble
  • Equipo de Storybook por las excelentes herramientas de documentación
  • Testing Library por las utilidades de testing
  • Bootstrap Icons por el conjunto de iconos
  • Todos los contribuidores y miembros de la comunidad

Nyx Design System - Elegancia. Estructura. Armonía. Desarrollado con 🖤 por Mariana del Equipo Camtom DocumentaciónGitHubNPM