Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@reelkit/vue

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@reelkit/vue

Vue 3 components and composables for building TikTok/Instagram Reels-style sliders

latest
Source
npmnpm
Version
0.4.0
Version published
Maintainers
1
Created
Source

@reelkit/vue

npm Bundle size Star on GitHub

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. ~4.7 kB gzip.

Live Demo · Open in StackBlitz

Installation

npm install @reelkit/vue

Quick Start

<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>

Features

  • <Reel> — virtualized slider, keeps only 3 slides in the DOM
  • <ReelIndicator> — dot indicators that auto-connect to the parent <Reel> via provide/inject
  • Measures its own size via ResizeObserver — no width/height props needed
  • Swipe with momentum and snap, keyboard arrows, mouse wheel
  • Loop mode for infinite circular scrolling
  • Tree-shakeable transitions (slide, cube, fade, flip, zoom)
  • Full WAI-ARIA carousel accessibility
  • Typed with TypeScript, no @types package needed

API

Reel Props

PropTypeDefaultDescription
countnumberrequiredNumber of slides
direction'horizontal' | 'vertical''vertical'Slide direction
initialIndexnumber0Starting slide index
loopbooleanfalseEnable infinite loop
swipeDistanceFactornumber0.12Swipe threshold (0-1)
transitionDurationnumber300Animation duration in ms
enableNavKeysbooleantrueEnable keyboard navigation
enableWheelbooleanfalseEnable mouse wheel navigation
wheelDebounceMsnumber200Wheel debounce duration
enableGesturesbooleantrueEnable touch/mouse gestures
transitionTransitionTransformFnslideTransition effect function
size[number, number]autoExplicit [width, height]

Reel Events

EventPayloadDescription
afterChangeindex, indexInRangeAfter slide change
beforeChangeindex, nextIndex, inRangeBefore slide change
tapGestureCommonEventSingle tap
doubleTapGestureCommonEventDouble tap
longPressGestureCommonEventLong press detected
longPressEndGestureEventLong press released

ReelIndicator Props

PropTypeDefaultDescription
countnumbercontextTotal number of slides
activenumbercontextCurrently active slide index
direction'horizontal' | 'vertical''vertical'Dot axis
radiusnumber3Dot radius in pixels
visiblenumber5Number of visible dots
gapnumber4Space between dots
onDotClick(index) => void-Callback when dot is clicked

Composables

ComposableDescription
useBodyLockLock body scroll for overlays
useFullscreenFullscreen API with cross-browser support
useSoundStateAccess sound controller from SoundProvider
useReelContextAccess parent Reel's index, count, and goTo

Components

ComponentDescription
SwipeToCloseSwipe-to-dismiss wrapper for overlays
SoundProviderProvides shared sound mute/unmute state

Documentation

API reference, demos, and guides at reelkit.dev.

Support

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.

Star on GitHub

License

MIT

Keywords

vue

FAQs

Package last updated on 27 Apr 2026

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