pets-ui-lib
v4.0.1
Published
Librería de componentes UI React para aplicación de microservicios Pets
Maintainers
Readme
Pets UI Library
Librería de componentes UI React personalizada para aplicación de microservicios Pets.
Características
- Botones con múltiples variantes y estados
- Campos de entrada con validación
- Componentes de búsqueda avanzados
- Sistema de diseño con colores y fuentes personalizadas
- Totalmente responsive y accesible
- Construido con React y CSS Variables
- Fácil de personalizar y extender
Instalación
npm install pets-ui-lib# o
yarn add pets-ui-libUso Básico
import React from 'react';
import { Button, Input, SearchInput } from 'pets-ui-lib';
// Importar los estilos
import 'pets-ui-lib/dist/styles/pets-ui-lib.css';
function App() {
return (
<div>
<Button variant="primary">Click me</Button>
<Input placeholder="Ingrese su nombre" />
<SearchInput placeholder="Buscar..." />
</div>
);
}Componentes
Button
Botón con múltiples variantes, tamaños y estados.
<Button
variant="primary"
size="md"
disabled={false}
loading={false}
icon={<Plus />}
iconPosition="left"
fullWidth={false}
rounded={false}
onClick={handleClick}
>
Botón
</Button>Variantes:
primary- Botón primariosecondary- Botón secundarioaccent- Botón de acentosuccess- Botón de éxitowarning- Botón de advertenciaerror- Botón de errorinfo- Botón de informaciónoutline-primary- Botón contorno primariooutline-secondary- Botón contorno secundarioghost- Botón fantasmalink- Botón estilo enlace
Tamaños:
sm- Pequeñomd- Mediano (default)lg- Grande
Input
Campo de entrada con validación y múltiples variantes.
<Input
type="text"
placeholder="Ingrese texto"
value={value}
onChange={handleChange}
size="md"
variant="default"
error={false}
errorMessage="Campo requerido"
success={false}
successMessage="Campo válido"
icon={<User />}
iconPosition="left"
fullWidth={false}
disabled={false}
/>Variantes:
default- Estilo por defectofilled- Fondo rellenounderlined- Estilo subrayado
Tamaños:
sm- Pequeñomd- Mediano (default)lg- Grande
SearchInput
Campo de búsqueda con debounce y botón de limpiar.
<SearchInput
placeholder="Buscar..."
value={searchValue}
onChange={handleSearch}
onClear={handleClear}
size="md"
variant="default"
fullWidth={false}
disabled={false}
showClearButton={true}
debounceMs={300}
/>Personalización
La librería utiliza variables CSS que puedes sobreescribir:
:root {
/* Colores primarios */
--color-primary: #8b5cf6;
--color-secondary: #06b6d4;
--color-accent: #f59e0b;
/* Fuentes */
--font-family-primary: 'Poppins', sans-serif;
--font-family-secondary: 'Roboto', sans-serif;
--font-family-accent: 'Montserrat', sans-serif;
/* Espaciado */
--spacing-1: 0.25rem;
--spacing-2: 0.5rem;
--spacing-3: 0.75rem;
--spacing-4: 1rem;
/* Bordes */
--border-radius-md: 0.375rem;
--border-radius-lg: 0.5rem;
--border-radius-xl: 0.75rem;
}Desarrollo
Prerrequisitos
- Node.js 18+
- React 18+ o 19+
Instalación Local
git clone <repository-url>
cd pets-ui-lib
npm installScripts
# Desarrollo con watch
npm run dev
# Build para producción
npm run build
# Ejecutar tests
npm test
# Tests con watch
npm run test:watch
# Coverage de tests
npm run test:coverage
# Iniciar demo local
npm run demoEstructura del Proyecto
pets-ui-lib/
├── src/
│ ├── components/ # Componentes UI
│ │ ├── Button/
│ │ ├── Input/
│ │ └── SearchInput/
│ ├── styles/ # Estilos globales
│ │ ├── variables.css
│ │ └── base.css
│ ├── demo/ # Demo interactivo
│ └── index.js # Export principal
├── tests/ # Tests unitarios
├── dist/ # Build de producción
├── rollup.config.js # Configuración de Rollup
└── package.jsonDependencias
Peer Dependencies
react: ^18.0.0 || ^19.0.0react-dom: ^18.0.0 || ^19.0.0
Dev Dependencies
@rollup/plugin-babel@rollup/plugin-commonjs@rollup/plugin-node-resolve@rollup/plugin-terser@testing-library/jest-dom@testing-library/react@testing-library/user-event@vitejs/plugin-reactjestrolluprollup-plugin-css-bundlerollup-plugin-peer-deps-externalrollup-plugin-postcssvite
Licencia
MIT License - ver archivo LICENSE para detalles.
Contribución
- Fork el proyecto
- Crear una rama (
git checkout -b feature/nueva-funcionalidad) - Commit los cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crear un Pull Request
Soporte
Para reportar issues o solicitar características, por favor crear un issue en el repositorio del proyecto.
