1.1.3 • Published 2 years ago

svelte-flickity v1.1.3

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

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

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago