
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
@reelkit/vue
Advanced tools
Vue 3 components and composables for building TikTok/Instagram Reels-style sliders
Vue 3 bindings for @reelkit/core. Drop in a <Reel> component, give it a slide count and an item slot — it handles virtualization, gestures, and keyboard/wheel input. ~5.0 kB gzip.
Live Demo · Open in StackBlitz
npm install @reelkit/vue
<script setup lang="ts">
import { Reel, ReelIndicator } from '@reelkit/vue';
</script>
<template>
<Reel :count="100" direction="vertical" enable-wheel>
<template #item="{ index, size }">
<div :style="{ width: `${size[0]}px`, height: `${size[1]}px` }">
Slide {{ index + 1 }}
</div>
</template>
<!-- Auto-connects to parent Reel via context -->
<ReelIndicator />
</Reel>
</template>
<Reel> — virtualized slider, keeps only 3 slides in the DOM<ReelIndicator> — dot indicators that auto-connect to the parent <Reel> via provide/inject@types package needed| Prop | Type | Default | Description |
|---|---|---|---|
count | number | required | Number of slides |
direction | 'horizontal' | 'vertical' | 'vertical' | Slide direction |
initialIndex | number | 0 | Starting slide index |
loop | boolean | false | Enable infinite loop |
swipeDistanceFactor | number | 0.12 | Swipe threshold (0-1) |
transitionDuration | number | 300 | Animation duration in ms |
enableNavKeys | boolean | true | Enable keyboard navigation |
enableWheel | boolean | false | Enable mouse wheel navigation |
wheelDebounceMs | number | 200 | Wheel debounce duration |
enableGestures | boolean | true | Enable touch/mouse gestures |
transition | TransitionTransformFn | slide | Transition effect function |
size | [number, number] | auto | Explicit [width, height] |
| Event | Payload | Description |
|---|---|---|
afterChange | index, indexInRange | After slide change |
beforeChange | index, nextIndex, inRange | Before slide change |
tap | GestureCommonEvent | Single tap |
doubleTap | GestureCommonEvent | Double tap |
longPress | GestureCommonEvent | Long press detected |
longPressEnd | GestureEvent | Long press released |
| Prop | Type | Default | Description |
|---|---|---|---|
count | number | context | Total number of slides |
active | number | context | Currently active slide index |
direction | 'horizontal' | 'vertical' | 'vertical' | Dot axis |
radius | number | 3 | Dot radius in pixels |
visible | number | 5 | Number of visible dots |
gap | number | 4 | Space between dots |
onDotClick | (index) => void | - | Callback when dot is clicked |
| Composable | Description |
|---|---|
useBodyLock | Lock body scroll for overlays |
useFullscreen | Fullscreen API with cross-browser support |
useSoundState | Access sound controller from SoundProvider |
useReelContext | Access parent Reel's index, count, and goTo |
| Component | Description |
|---|---|
SwipeToClose | Swipe-to-dismiss wrapper for overlays |
SoundProvider | Provides shared sound mute/unmute state |
API reference, demos, and guides at reelkit.dev.
If ReelKit saved you some time, a star on GitHub would mean a lot — it's a small thing, but it really helps the project get noticed.
FAQs
Vue 3 components and composables for building TikTok/Instagram Reels-style sliders
The npm package @reelkit/vue receives a total of 2 weekly downloads. As such, @reelkit/vue popularity was classified as not popular.
We found that @reelkit/vue demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.