npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

svelte-flickity

v1.1.3

Published

A Svelte component wrapper for Flickity carousel

Downloads

45

Readme

svelte-flickity

A Svelte component wrapper for Flickity carousel

npm

Usage

Install:

npm install -save svelte-flickity

Import the Flickity carousel and add to your template:

<script>
	import Carousel from "svelte-flickity";
</script>

<Carousel>
	<div>Slide 1</div>
	<div>Slide 2</div>
	<div>Slide 3</div>
</Carousel>

TypeError: carousel is not a constructor

If you get this console error it means flickity isn't available at runtime - Vite needs to prebundle the flickity dependency.

Add this to your svelte.config.js:

vite: () => ({
	optimizeDeps: {
		include: ['flickity']
	}
})

Once included you should see flickity.js listed under node_modules > .vite > deps

With options (optional)

<script>
	import Carousel from "svelte-flickity";

	const options = {
		freeScroll: true,
		freeScrollFriction: 0.03,
		wrapAround: true,
		etc..
	};
</script>

<Carousel {options}>
	<div>Slide 1</div>
	<div>Slide 2</div>
	<div>Slide 3</div>
</Carousel>

All options on Flickity website: https://flickity.metafizzy.co/options.html

Disclaimer

I've had no involvement in the development of Flickity.

Please buy a Flickity license if you're deploying a commercial site

I love the library and discovered it was tricky to add to SvelteKit with SSR - so made this wrapper. You can easily grab my code and implement your own component without this npm package (I'm using the package to avoid an extra component in my codebase):

<script>
	import "../node_modules/flickity/css/flickity.css";

	export let options;

	let flickity;

	function init(el) {
		(import('flickity'))
			.then((lib) => lib.default)
			.then((carousel) => flickity = new carousel(el, options))
			.catch((x) => console.log(x));
	}
</script>

<div use:init class="carousel">
	<slot></slot>
</div>

<!-- can also import css like this: -->
<!-- <style global>
	import "../node_modules/flickity/css/flickity.css";
</style> -->

Apologies to the 60+ people that downloaded the broken pre 1.0 version of this - it should work now!

You can log issues here: https://github.com/danieluntiedt/svelte-flickity/issues