• Stars
    star
    527
  • Rank 84,091 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Image comparison slider. Compare images before and after. Supports React, Vue, Angular.

img-comparison-slider

npm package Published on webcomponents.org

Slider Component for Comparing Images (Before and After).

Usage examples: https://img-comparison-slider.sneas.io/examples.html

Example

Most Important Features

  • Mobile friendly
  • Accessible
  • Responsive
  • Compact - less than 12 kB minified (Or less than 4 kB if gzipped)
  • Compatible with modern frameworks (React, Angular, Vue2, Vue3)
  • Distributed via CDN or NPM

Installation

Browser Requirements

HTML

<script
  defer
  src="https://cdn.jsdelivr.net/npm/img-comparison-slider@8/dist/index.js"
></script>
<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/img-comparison-slider@8/dist/styles.css"
/>

<img-comparison-slider>
  <img slot="first" src="before.jpg" />
  <img slot="second" src="after.jpg" />
</img-comparison-slider>

Frameworks Support

Supported Attributes

Besides the default HTMLElement attributes such as class, tabindex, title, etc., img-comparison-slider supports:

Attribute Description Default Available
value Position of the divider in percents. 50 0..100
hover Automatically slide on mouse over. false
direction Set slider direction. horizontal horizontal, vertical
nonce Define nonce which gets passed to inline style.
keyboard Enable/disable slider position control with the keyboard. enabled enabled, disabled
handle Enable/disable dragging by handle only. false true, false

Events

The component emits slide event when the slider position is changed by user.

Styling

Some styling techniques and ideas can be found in examples.

The component elements like the default handle or the separator line could be styled using CSS3 variables.

Example:

<style type="text/css">
  img-comparison-slider {
    --divider-width: 2px;
    --divider-color: #c0c0c0;
    --default-handle-opacity: 0.3;
  }
</style>

Available Variables

Variable Description Default value Example value
--divider-width Width of the vertical line separating both images 1px 1em
--divider-color Color of the vertical line separating the two images #fff rgba(0, 0, 0, 0.5)
--divider-shadow Shadow cast by the vertical line separating the two images none 0px 0px 5px rgba(0, 0, 0, 0.5)
--handle-position-start Handle position on the divider axis. In case the handle must be displaced off the center 50%
--default-handle-width Width of the default handle 50px
--default-handle-color Color of the default handle #fff rgba(0, 0, 0, 0.5)
--default-handle-opacity Opacity of the default handle 1 0.3
--default-handle-shadow Shadow cast by the default handle none 0px 0px 5px rgba(0, 0, 0, 1)

Handle

The handle of the component can be changed by assigning the attribute slot="handle" to any element within img-comparison-slider.

More Repositories

1

ionic-native-http-connection-backend

A solution to CORS issues with Ionic and iOS
TypeScript
160
star
2

cv-template

Manage your CV as a web app (HTML, JS, CSS). Automatically generate HTML and PDF versions and deploy them on GitHub Pages on every push.
JavaScript
138
star
3

component-library

An easy way to create HTML styleguide for existing web project
JavaScript
41
star
4

react-nested-routes-example

🌳 An example of a well-crafted React app with nested routes and breadcrumbs
JavaScript
21
star
5

passwordmeter

Password security checker function based on http://www.passwordmeter.com/. Unobtrusive and tested.
JavaScript
8
star
6

green-blocker

🐠 Chrome extension to temporarily block distracting websites in a polite, loving way.
TypeScript
3
star
7

rx-game

TypeScript
2
star
8

cv

HTML
2
star
9

x-ray

Display HTML/Web component and show/hide it's code
TypeScript
2
star
10

habrahabr

Пример использования стайлгада, основанный на компонентах сайта Хабрахабр.ру
HTML
1
star
11

react-event-param

Pass custom param to event handler. Avoid binding.
TypeScript
1
star
12

cordova-HTTP2

Deprecated! cordovaHTTP with postJSON, PUT and DELETE methods
Objective-C
1
star
13

blog

Fully automated blog powered by Git, Gatsby, CircleCI, and GitHub Pages
JavaScript
1
star
14

lifehacks

A list of one-sentence lifehacks helping me to be happier in the moment
1
star
15

web-component-typescript-starter

Web Component with Typescript, SASS, and Webpack. This is the best example on GitHub, really.
TypeScript
1
star
16

sensus

🟢 AI sensor for your GitHub comments
TypeScript
1
star