Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-simply-carousel

Package Overview
Dependencies
Maintainers
1
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-simply-carousel

A simple, lightweight, fully controlled isomorphic (with SSR support) React.js carousel component. Touch enabled and responsive. With support for autoplay and infinity options. Fully customizable

  • 9.0.4
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8K
decreased by-7.75%
Maintainers
1
Weekly downloads
 
Created
Source

npm version minified + gzip typescript GitHub license

A simple, lightweight, fully controlled isomorphic (with SSR support) React.js carousel component. Touch enabled and responsive. With support for autoplay and infinity options. Fully customizable

Table of contents

Installation

npm

npm install react-simply-carousel --save

yarn

yarn add react-simply-carousel

Usage

Basic Example:
import { useState } from 'react';
import ReactSimplyCarousel from 'react-simply-carousel';

function ReactSimplyCarouselExample() {
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);

  return (
    <div>
      <ReactSimplyCarousel
        activeSlideIndex={activeSlideIndex}
        onRequestChange={setActiveSlideIndex}
        itemsToShow={1}
        itemsToScroll={1}
        forwardBtnProps={{
          //here you can also pass className, or any other button element attributes
          style: {
            alignSelf: 'center',
            background: 'black',
            border: 'none',
            borderRadius: '50%',
            color: 'white',
            cursor: 'pointer',
            fontSize: '20px',
            height: 30,
            lineHeight: 1,
            textAlign: 'center',
            width: 30,
          },
          children: <span>{`>`}</span>,
        }}
        backwardBtnProps={{
          //here you can also pass className, or any other button element attributes
          style: {
            alignSelf: 'center',
            background: 'black',
            border: 'none',
            borderRadius: '50%',
            color: 'white',
            cursor: 'pointer',
            fontSize: '20px',
            height: 30,
            lineHeight: 1,
            textAlign: 'center',
            width: 30,
          },
          children: <span>{`<`}</span>,
        }}
        responsiveProps={[
          {
            itemsToShow: 2,
            itemsToScroll: 2,
            minWidth: 768,
          },
        ]}
        speed={400}
        easing="linear"
      >
        {/* here you can also pass any other element attributes. Also, you can use your custom components as slides */}
        <div style={{ width: 300, height: 300, background: '#ff80ed' }}>
          slide 0
        </div>
        <div style={{ width: 300, height: 300, background: '#065535' }}>
          slide 1
        </div>
        <div style={{ width: 300, height: 300, background: '#000000' }}>
          slide 2
        </div>
        <div style={{ width: 300, height: 300, background: '#133337' }}>
          slide 3
        </div>
        <div style={{ width: 300, height: 300, background: '#ffc0cb' }}>
          slide 4
        </div>
        <div style={{ width: 300, height: 300, background: '#ffffff' }}>
          slide 5
        </div>
        <div style={{ width: 300, height: 300, background: '#ffe4e1' }}>
          slide 6
        </div>
        <div style={{ width: 300, height: 300, background: '#008080' }}>
          slide 7
        </div>
        <div style={{ width: 300, height: 300, background: '#ff0000' }}>
          slide 8
        </div>
        <div style={{ width: 300, height: 300, background: '#e6e6fa' }}>
          slide 9
        </div>
      </ReactSimplyCarousel>
    </div>
  );
}

export default ReactSimplyCarouselExample;

Props

NameTypeDefault ValueDescription
activeSlideIndexnumberIndex of active slide
activeSlidePropsobject{}DOM props for active slide element
autoplaybooleanfalse
autoplayDirectionstring ('forward' or 'backward')'forward'
backwardBtnPropsobject{}DOM props for carousel backward nav button element (include boolean prop show (for toggle button render) and node prop children (for render button childrens))
childrennodenullslides array
containerPropsobject{}DOM props for carousel container div element
delaynumber0Slide change delay (css transition delay) in ms
disableNavIfAllVisiblebooleantrueDisable carousel nav if all slides is visible
easingstring'linear'Slide change easing (css transition easing)
forwardBtnPropsobject{}DOM props for carousel forward nav button element (include boolean prop show (for toggle button render) and node prop children (for render button childrens))
hideNavIfAllVisiblebooleantrueHide nav buttons if all slides is visible
innerPropsobject{}DOM props for inner div element
itemsListPropsobject{}DOM props for items list div element
itemsToScrollnumber1How many slides to scroll at once
itemsToShownumber0 (automaticaly calculated)How many slides to show
onAfterChangefunctionnullactiveSlideIndex change callback
onRequestChangefunctionCallback to handle every time the active slide changes, receives the new active index as first argument and info about visible slides ({
isFirstSlideVisible: boolean;
isLastSlideVisible: boolean;
visibleSlides: { slideIndex: number; isFullyVisible: boolean }[];
}) as second.
responsivePropsArray of objects[]carousel props for different window width. For example: [{minWidth: 768, maxWidth: 992, itemsToShow: 3}, {maxWidth: 767, itemsToShow: 1}] will show only one slide when window width is less than 767px and show 3 slides when window width is >= 768px and < 992px
speednumber0Carousel scroll speed (css transition speed) in ms
updateOnItemClickbooleanfalseUpdate active item index after click on some slide
centerMode (disabled if infinite prop disabled)booleanfalseAlign active slide to the center of the carousel container viewport
infinitebooleantrueEnable infinite loop scroll
disableNavIfEdgeVisible (disabled if infinite prop enabled)booleantrueDisable carousel forward nav if last slide is visible / Disable carousel backward nav if first slide is visible
disableNavIfEdgeActivebooleantrueDisable carousel forward nav if activeSlideIndex === lastSlideIndex / Disable carousel backward nav if activeSlideIndex === 0
dotsNav (experimental)object{}Props for carousel dots. Includes show (boolean) property for toggle dots nav visibility, containerProps (DOM Props for dots nav wrapper div) property, itemBtnProps (DOM props for all dots nav buttons) property and activeItemBtnProps (DOM props for active dots nav button)
persistentChangeCallbacksbooleanfalseEnable call onRequestChange prop even if activeSlideIndex equals new value
showSlidesBeforeInit (deprecated)booleantrueShow slides on very first (initial) carousel render
visibleSlidePropsobject{}DOM props for visible slide element
autoplayDelaynumber0after what period of time the auto-update function of the active slide will be launched
preventScrollOnSwipebooleanfalseprevent vertical scroll on swipe
disableSwipeByMousebooleanfalsedisable swipe by mouse
disableSwipeByTouchbooleanfalsedisable swipe by touch
swipeTresholdnumberhalf width of the active slideminimum swipe distance in px (by touch or by mouse drag) for change slide
touchSwipeTresholdnumberhalf width of the active slideminimum swipe distance in px (by touch) for change slide
mouseSwipeTresholdnumberhalf width of the active slideminimum swipe distance in px (by mouse drag) for change slide
swipeRationumber1swipe distance ratio (on swipe by touchmove or by mouse drag)
touchSwipeRationumberswipeRatio prop valueswipe distance ratio (on swipe by touchmove)
mouseSwipeRationumberswipeRatio prop valueswipe distance ratio (on swipe by mouse drag)

Demo

Edit react-simply-carousel-demo

Keywords

FAQs

Package last updated on 10 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc