UNPKG

react-tech-slider

Version:
142 lines (107 loc) 3.77 kB
# 📛 react-tech-slider Un componente **slider de React** reutilizable y personalizable para mostrar logotipos de marcas o stacks tecnológicos con una animación infinita suave. Perfecto para portafolios, páginas de agencias, sitios SaaS y más. --- ## 🚀 Instalación ```bash npm install react-tech-slider ``` --- ## 🌐 Demo en Vivo 👉 [Ver Demo](https://react-tech-slider-demo-git-main-t0n1-devs-projects.vercel.app/) --- ## ✅ Uso Básico ```tsx import { Slider } from 'react-tech-slider'; const brands = [ { id: 1, name: 'Nike', img: 'https://img.icons8.com/ios-filled/500/nike.png' }, { id: 2, name: 'Adidas', img: 'https://img.icons8.com/ios/500/adidas-trefoil.png' }, { id: 3, name: 'Jordan', img: 'https://img.icons8.com/ios/500/air-jordan.png' } ]; <Slider brandsList={brands} /> ``` --- ## ✨ Props Disponibles | Propiedades | Tipo | Requerido | Predeterminado | Descripción | |----------------------|---------------|------------|---------------|-------------| | `brandsList` | `Brand[]` | | | Arreglo de marcas para renderizar | | `borderColor` | `string` | | `#7c05d8` | Color del borde superior/inferior (#hex o color CSS) | | `backgroundColor` | `string` | | `#00000033` | Color de fondo (#hex, rgba, etc.) | | `borderWidth` | `number` | | `1` | Grosor del borde en píxeles | | `iconWidth` | `number` | | | Ancho de los íconos (en rem) se aplica globalmente si no se define un ancho individual | | `isPlay` | `boolean` | | `true` | Si la animación está en reproducción (true) o pausada (false) | | `pauseOnHoverActive` | `boolean` | | `false` | Si es true, la animación se pausa al pasar el cursor por encima | | `durationMs` | `number` | | `30000` | Tiempo en milisegundos para un ciclo completo de animación | ### Interfaz Brand ```typescript interface Brand { id: number; name: string; img: string; width?: number; // rem height?: number; // rem style?: React.CSSProperties; className?: string; } ``` --- ## 🎨 Personalización - Animación infinita suave mediante CSS puro - Flexibilidad de tamaño global o por marca - Desvanecimiento en los bordes usando mask-image para un acabado visual pulido - Opción de pausa al pasar el cursor por encima - Diseño totalmente responsive --- ## 🧪 Ejemplo Totalmente Personalizado ```tsx <Slider brandsList={brands} borderWidth={2} borderColor="#0cf" backgroundColor="#eef" iconWidth={6} isPlay={true} pauseOnHoverActive={true} durationMs={20000} /> ``` - También puedes definir tamaños, clases y estilos por ítem: ```tsx brandsList={[ { id: 1, name: 'Nike', img: 'https://img.icons8.com/ios-filled/500/nike.png', width: 10, height: 10, style: { 'background-color': 'white' }, className: 'nike-brand' }, ... ]} /> ``` --- ## 📦 Compilar y Publicar ```bash npm run build npm publish ``` --- ## 🤝 Contribuciones Pull requests y sugerencias son bienvenidas en 👉 [https://github.com/T0N1-Dev/react-tech-slider](https://github.com/T0N1-Dev/react-tech-slider) [![GitHub](https://img.shields.io/badge/GitHub-Repo-black?logo=github)](https://github.com/T0N1-Dev/react-tech-slider) [![npm](https://img.shields.io/npm/v/react-tech-slider)](https://www.npmjs.com/package/react-tech-slider?activeTab=readme)