Files
tools/vue/toolkit
Renovate Bot bce817bc05
CI / @robonen/crdt (pull_request) Failing after 4m43s
CI / @robonen/docs (pull_request) Failing after 20s
CI / @robonen/encoding (pull_request) Failing after 6s
CI / @robonen/eslint (pull_request) Failing after 36m41s
CI / @robonen/fetch (pull_request) Failing after 37m56s
CI / @robonen/platform (pull_request) Failing after 3m25s
CI / @robonen/primitives (pull_request) Failing after 3m19s
CI / @robonen/primitives-playground (pull_request) Failing after 28m54s
CI / @robonen/renovate (pull_request) Failing after 1m17s
CI / @robonen/stdlib (pull_request) Failing after 2m56s
CI / @robonen/stories (pull_request) Failing after 2m14s
CI / @robonen/tsconfig (pull_request) Failing after 2m57s
CI / @robonen/tsdown (pull_request) Failing after 33m13s
CI / @robonen/vue (pull_request) Failing after 2m54s
CI / @robonen/writekit (pull_request) Failing after 4m20s
CI / @robonen/writekit-playground (pull_request) Failing after 34m43s
CI / CI (pull_request) Failing after 5s
chore(deps): update pnpm to v11
2026-06-16 00:04:26 +00:00
..
2026-06-16 00:04:26 +00:00

@robonen/vue

Collection of composables and utilities for Vue 3 — 213+ tree-shakeable, SSR-safe composables.

Install

pnpm install @robonen/vue

Composables

Category Composables
animation useAnimate, useCountdown, useDateFormat, useInterval, useIntervalFn, useNow, useRafFn, useTimeAgo, useTimeout, useTimeoutFn, useTimestamp, useTransition
array useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useSorted
browser broadcastedRef, useBreakpoints, useClipboard, useClipboardItems, useCloseWatcher, useColorMode, useCssVar, useDark, useDocumentPiP, useEventListener, useEyeDropper, useFavicon, useFileDialog, useFileSystemAccess, useFullscreen, useImage, useLocalFonts, useMediaQuery, useObjectUrl, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useScriptTag, useShare, useStyleTag, useTabLeader, useTextareaAutosize, useTitle, useUrlSearchParams, useVibrate, useWakeLock, useWebNotification
component createReusableTemplate, unrefElement, useCurrentElement, useForwardExpose, useTemplateRefsList, useVirtualList
debug useRenderCount, useRenderInfo
elements onElementRemoval, useActiveElement, useDocumentReadyState, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useFocusGuard, useIntersectionObserver, useMutationObserver, useParentElement, useResizeObserver, useWindowFocus, useWindowScroll, useWindowSize
forms useField, useFieldArray, useForm, useFormContext
lifecycle tryOnBeforeMount, tryOnMounted, tryOnScopeDispose, useMounted
math logicAnd, logicNot, logicOr, useAbs, useAverage, useCeil, useClamp, useFloor, useMath, useMax, useMin, usePrecision, useProjection, useRound, useSum, useTrunc
media useBluetooth, useDisplayMedia, useMediaControls, useMemory, usePerformanceObserver, useSpeechRecognition, useSpeechSynthesis, useUserMedia, useWebWorker, useWebWorkerFn
reactivity computedAsync, computedEager, computedWithControl, extendRef, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, syncRef, toReactive, useCached, useCloned, useDebounceFn, usePrevious, useSyncRefs, useThrottleFn, useToNumber, useToString
sensors onKeyStroke, onLongPress, onStartTyping, useBattery, useBodyScrollLock, useClickOutside, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useElementByPoint, useElementHover, useEscapeKey, useFocus, useFocusWithin, useFps, useGamepad, useGeolocation, useIdle, useInfiniteScroll, useKeyModifier, useMagicKeys, useMouse, useMouseInElement, useMousePressed, useNetwork, useOnline, usePageLeave, useParallax, usePointer, usePointerLock, usePointerSwipe, useScreenOrientation, useScroll, useScrollLock, useSwipe, useTextSelection
state createSharedComposable, useAppSharedState, useAsyncState, useContextFactory, useCounter, useCycleList, useDebouncedRefHistory, useId, useInjectionStore, useLastChanged, useManualRefHistory, useOffsetPagination, useRefHistory, useStepper, useThrottledRefHistory, useToggle
storage useLocalStorage, useSessionStorage, useStorage, useStorageAsync
utilities createEventHook, get, isDefined, set, useEventBus, useMemoize, useSupported
watch until, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, whenever

The package also exports event-filter helpers (debounceFilter, throttleFilter, pausableFilter, createFilterWrapper) and shared types (ConfigurableWindow, ConfigurableDocument, ConfigurableNavigator, ConfigurableFlush, MaybeComputedElementRef, …).

Usage

import { useEventListener, useMagicKeys, useToggle } from @robonen/vue;

const { value, toggle } = useToggle();

useEventListener(scroll, () => {/* … */}, { passive: true });

const keys = useMagicKeys();
watchEffect(() => {
  if (keys[ctrl+s].value)
    save();
});