UNPKG

react-tech-slider

Version:
137 lines (103 loc) โ€ข 3.55 kB
# ๐Ÿ“› react-tech-slider A reusable and customizable **React slider component** to showcase brand logos or tech stacks with smooth infinite animation. Perfect for portfolios, agency pages, SaaS websites, and more. --- ## ๐Ÿš€ Installation ```bash npm install react-tech-slider ``` --- ## ๐ŸŒ Live Demo ๐Ÿ‘‰ [View Demo](https://react-tech-slider-demo-git-main-t0n1-devs-projects.vercel.app/) --- ## โœ… Basic Usage ```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} /> ``` ## โœจ Available Props | Prop | Type | Required | Default | Description | |----------------------|---------------|----------|----------------|-------------| | `brandsList` | `Brand[]` | โœ… | โ€” | Array of brands to render | | `borderColor` | `string` | โŒ | `#7c05d8` | Top/bottom border color (#hex or CSS color) | | `backgroundColor` | `string` | โŒ | `#00000033` | Background color (#hex, rgba, etc.) | | `borderWidth` | `number` | โŒ | `1` | Border thickness in pixels | | `iconWidth` | `number` | โŒ | โ€” | Width of icons (in rem) โ€” applied globally if individual width is not defined | | `isPlay` | `boolean` | โŒ | `true` | Whether the animation is running (true) or paused (false) | | `pauseOnHoverActive` | `boolean` | โŒ | `false` | If true, the animation pauses on hover | | `durationMs` | `number` | โŒ | `30000` | Time in milliseconds for one full animation loop | ### Brand Interface ```typescript interface Brand { id: number; name: string; img: string; width?: number; // rem height?: number; // rem style?: React.CSSProperties; className?: string; } ``` ## ๐ŸŽจ Customization - Smooth infinite animation via pure CSS - Global or per-brand sizing flexibility - Edge fade-out using mask-image for visual polish - Pause-on-hover option for user interaction - Fully responsive layout ## ๐Ÿงช Fully Customized Example ```tsx <Slider brandsList={brands} borderWidth={2} borderColor="#0cf" backgroundColor="#eef" iconWidth={6} isPlay={true} pauseOnHoverActive={true} durationMs={20000} /> ``` - You can also define per-item sizes, class and styles: ```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' }, ... ]} /> ``` ## ๐Ÿ“ฆ Build and Publish ```bash npm run build npm publish ``` ## ๐Ÿค Contributions Pull requests and suggestions are welcome at ๐Ÿ‘‰ [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) ---