UNPKG

react-tech-slider

Version:
185 lines (137 loc) 4.73 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 suave. Es compatible hacia atrás: `<Slider brandsList={...} />` conserva el comportamiento running actual, y si omitís `variant` se usa `running` por defecto. --- ## 🚀 Instalación ```bash npm install react-tech-slider ``` ```bash pnpm add react-tech-slider ``` --- ## 🌐 Demo en vivo 👉 [Ver demo](https://react-tech-slider-demo-git-main-t0n1-devs-projects.vercel.app/) --- ## ✅ Uso por defecto (running) Importá la hoja de estilos una sola vez en el entry de tu app: ```tsx import "react-tech-slider/styles.css"; 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} /> ``` También podés dejar explícito el modo running: ```tsx <Slider brandsList={brands} variant="running" /> ``` --- ## 🌫️ Variante fades ```tsx <Slider brandsList={brands} variant="fades" gap={24} iconWidth={6} speed={1.5} /> ``` - `variant="fades"` cambia al slider con desvanecimiento. - `speed` es un multiplicador positivo: `2` es el doble de rápido, `0.5` es la mitad. - Si `speed` es inválido o no positivo, cae a `1`. --- ## ✨ Props ### Props compartidas | Prop | Tipo | Requerido | Predeterminado | Descripción | |------|------|----------|---------------|-------------| | `brandsList` | `Brand[]` | | | Arreglo de marcas para renderizar | | `variant` | `running` o `fades` | | `running` | Selecciona el modo del slider; si se omite, usa running | | `iconWidth` | `number` | | | Ancho global de los íconos en `rem` cuando un ítem no define su propio ancho | ### Props de running (`variant="running"`) | Prop | Tipo | Requerido | Predeterminado | Descripción | |------|------|----------|---------------|-------------| | `borderColor` | `string` | | `#7c05d8` | Color del borde superior/inferior | | `backgroundColor` | `string` | | `#00000033` | Color de fondo | | `borderWidth` | `number` | | `1` | Grosor del borde en píxeles | | `isPlay` | `boolean` | | `true` | Si la animación running está activa | | `pauseOnHoverActive` | `boolean` | | `false` | Pausa la animación running al pasar el cursor | | `durationMs` | `number` | | `30000` | Duración completa del ciclo running en milisegundos | ### Props de fades (`variant="fades"`) | Prop | Tipo | Requerido | Predeterminado | Descripción | |------|------|----------|---------------|-------------| | `gap` | `number` | | | Separación entre columnas en píxeles | | `speed` | `number` | | `1` | Multiplicador positivo para la velocidad total de la animación fades | ### Interfaz Brand ```ts interface Brand { id: number; name: string; img: string; width?: number; // rem height?: number; // rem style?: React.CSSProperties; className?: string; } ``` - `width` y `height` están en `rem`. - `style` y `className` se aplican al `<img>` renderizado en ambos modos. --- ## 🎨 Notas de personalización - El modo running conserva el comportamiento CSS actual del slider. - El modo fades rota las marcas en columnas apiladas con nombres de animación únicos por instancia. - Ambos modos mantienen la misma forma de `Brand` y la personalización de imagen. - `variant` es opcional; si se omite, el componente sigue en `running`. --- ## 🧪 Ejemplos ### Running ```tsx <Slider brandsList={brands} variant="running" borderWidth={2} borderColor="#0cf" backgroundColor="#eef" iconWidth={6} isPlay={true} pauseOnHoverActive={true} durationMs={20000} /> ``` ### Fades ```tsx <Slider brandsList={brands} variant="fades" gap={32} iconWidth={5} speed={2} /> ``` --- ## 📦 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)