react-tech-slider
Version:
Reusable React component slider for showcasing brands
137 lines (103 loc) โข 3.55 kB
Markdown
# ๐ 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)
[](https://github.com/T0N1-Dev/react-tech-slider)
[](https://www.npmjs.com/package/react-tech-slider?activeTab=readme)