# react-before-after-slider-component

> Simple slider component for comparing images. Before and after.

Latest version **1.1.8** (published 2023-04-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install react-before-after-slider-component
pnpm add react-before-after-slider-component
yarn add react-before-after-slider-component
bun add react-before-after-slider-component
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.8 |
| Published | 2023-04-16 |
| First published | 2021-06-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 10.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 55 |
| Author | smelesh23@gmail.com |
| Maintainers | smelesh |
| Keywords | react, component, typescript, slider, compare, comparison, before and after |

## Links

- npm: https://www.npmjs.com/package/react-before-after-slider-component
- Repository: https://github.com/smeleshkin/react-before-after-slider-component
- Homepage: https://github.com/smeleshkin/react-before-after-slider-component#readme
- Issues: https://github.com/smeleshkin/react-before-after-slider-component/issues
- npm.io page: https://npm.io/package/react-before-after-slider-component

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 1.1.8 (latest) — 2023-04-16
- 1.1.7 — 2023-04-15
- 1.1.6 — 2022-12-05
- 1.1.5 — 2022-09-18
- 1.1.4 — 2022-08-08
- 1.1.3 — 2022-05-15
- 1.1.2 — 2022-04-01
- 1.1.1 — 2021-10-09
- 1.1.0 — 2021-10-07
- 1.0.3 — 2021-10-04
- 1.0.2 — 2021-10-03
- 1.0.1 — 2021-10-03
- 0.7.4 — 2021-06-14
- 0.7.3 — 2021-06-14
- 0.7.2 — 2021-06-13
- … 5 more at https://npm.io/package/react-before-after-slider-component/versions

## README

# React before after slider component
Simple slider component for comparing images. Before and after.

[![screencast demo](./screencast.gif)](./screencast.gif)

## Demo
https://smeleshkin.github.io/react-before-after-slider-component/
## Build
npm run build:npm
## Basic usage
```
npm install react-before-after-slider-component --save
```

Then use it in your app:
```js
import React from 'react';
import ReactBeforeSliderComponent from 'react-before-after-slider-component';
import 'react-before-after-slider-component/dist/build.css';

const FIRST_IMAGE = {
  imageUrl: 'https://example.com/.../some-image.jpg'
};
const SECOND_IMAGE = {
  imageUrl: 'https://example.com/.../some-image-2.jpg'
};
/* ... */
<ReactBeforeSliderComponent
    firstImage={FIRST_IMAGE}
    secondImage={SECOND_IMAGE}
/>
/* ... */
```
## Props

| Attribute                 | Required                         | Type                          | Default | Description   |
|---------------------------|----------------------------------|-------------------------------|---------|-------------------------------|
| `firstImage`              | true                             | Image                         |         | Image object with source url. |
| `secondImage`             | true                             | Image                         |         | Image object with source url. |
| `delimiterColor`          | false                            | string                        | #fff    | Custom delimiter background color. |
| `currentPercentPosition`  | false                            | number                        | 50      | Start delimiter position. Or also the current position, if it will change in parent. |
| `className`               | false                            | string                        |         | Custom classname. |
| `withResizeFeel`          | false                            | boolean                       | true    | Feeling to window resizing. |
| `onReady`                 | false                            | function                      |         | On slider ready callback. |
| `onVisible`               | false                            | function                      |         | On slider visible in viewport callback. |
| `onChangePercentPosition` | false                            | (newPosition: number) => void |         | On delimiter position update callback. Has new position parameter. |
| `feelsOnlyTheDelimiter`   | false                            | boolean                       | false   | Only the separator feels clicks. Not any zone of the component. |
| `delimiterIconStyles`     | false                            | React.CSSProperties           |         | Custom styles of delimiter icon. E.g. for a logo. See "Custom logo example". |
| `onChangeMode`            | false                            | (newMode: MODE) => void       |         | Callback when the slider mode changes. Can be used to disable page scrolling on touch devices while sliding. |

## Specific Types

```ts
interface Image {
    imageUrl: string,
    alt?: string,
}

export enum MODE {
    MOVE = 'move', // Moving the slider
    DEFAULT = 'default', // Resting state
}
```

## Custom logo example
```ts
// Pass this as a delimiterIconStyles property
const delimiterIconStyles = {
   width: '50px',
   height: '50px',
   backgroundSize: 'cover',
   borderRadius: 'none',
   backgroundImage: 'url(<some-path-here>)'
}

```

---
_Source: https://npm.io/package/react-before-after-slider-component · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
