šŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
DemoInstallSign in
Socket

flickity-responsive

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flickity-responsive

Responsive option for Flickity.

2.1.5
latest
Source
npm
Version published
Weekly downloads
21
-25%
Maintainers
1
Weekly downloads
Ā 
Created
Source

Flickity Responsive

release minified jsdelivr npm weekly download license Netlify Status

A vanilla JS plugin that adds responsive option for Flickity. And more extendable settings, see #docs

Introduction

At the time of this plugin was made, Flickity does not officially offer any way to update the options on various screen-sizes.

Read more about the issue here šŸ‘‰ https://github.com/metafizzy/flickity/issues/233

So, I create a plugin that brings responsive to Flickity, just like the way Slick works.

Getting started

Add the script to your project in this order šŸ‘‡

  • jQuery (optional)
  • Flickity
  • flickity-responsive

NPM Package

Install NPM package

npm i flickity-responsive

Import

import {FlickityResponsive} from "flickity-responsive";

Download

šŸ‘‰ Self hosted - Download the latest release


<script src="./flickity-responsive.min.js"></script>

šŸ‘‰ CDN Hosted - jsDelivr


<script src="https://cdn.jsdelivr.net/gh/phucbm/flickity-responsive@2.1.5/flickity-responsive.min.js"></script>

Usage

Just change the name, all other options stay the same.

// init with vanilla JS
const carousel = new FlickityResponsive('.carousel', {
    pageDots: false,
    responsive: [
        {
            breakpoint: 768,
            settings: {
                prevNextButtons: false,
                pageDots: true,
            }
        }
    ]
});

Init with HTML

Use data attribute to init Flickity Responsive, just exactly like Flickity.


<div data-flickity-responsive='{ "cellAlign": "left", "contain": true }'>
    <div class="carousel-cell"></div>
    <div class="carousel-cell"></div>
    <div class="carousel-cell"></div>
</div>

āš ļø Options set in HTML must be valid JSON.

Docs

Visit https://flickity.netlify.app for examples.

const carousel = new FlickityResponsive('.carousel', {
    contain: true, // default in Flickity Responsive

    // Extra features šŸ‘‡

    // destroy
    destroy: false,

    // custom arrows
    prevArrow: undefined, // DOM element, jQuery element
    nextArrow: undefined, // DOM element, jQuery element

    // indicator numbers
    indicatorCurrent: undefined, // current slides, DOM element, jQuery element
    indicatorTotal: undefined, // total slides, DOM element, jQuery element

    // hide navigation elements if the slider is not slide-able
    responsiveNavigation: true,

    // indicator
    indicatorZeroPad: false,
    indicatorCurrent: undefined,
    indicatorTotal: undefined,

    // force move
    forceMove: true, // make sure that every time an arrows clicked, the carousel will move

    // aria hidden focus
    ariaHiddenFocus: true, // Add tabindex="-1" to all elements with or inside aria-hidden="true"
    ariaHiddenFocusSelector: `[aria-hidden="true"] a, [aria-hidden="true"] button`,
});

FYI

This plugin respects Flickity's API and use matchMedia() to know when to destroy and re-initialize the carousel.

āš ļø Important note: the breakpoint property is using CSS max-width logic. For instance, when you set breakpoint:480, that means responsive settings will be applied when the viewport is <=480px (while Slick is <480px). Let's be cleared šŸ’Ž

Deployment

Before release, update version in package.json and README.md.

# Run dev server
npm run dev

# Generate prod files
npm run prod

# Publish package
npm publish

# build
npm run build

License

MIT License

Copyright (c) 2021-2025 Phuc Bui

Please leave a star ā­ļø to support my work. Thank you!

Keywords

phucbm

FAQs

Package last updated on 27 Mar 2025

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