100 primitives across 10 categories.
Animation
presence— Utility to animate the presence of an element based on the existence of data or lack thereof.raf— Primitive that facilitates RAF functionalityspring— Primitive that creates spring physics functions.transition-group— Reactive primitives for implementing transition effectstween— Primitive that creates tween functions
Browser APIs
broadcast-channel— Primitives to manage Broadcast Channel APIclipboard— Primitives for reading and writing to clipboard.event-listener— Primitives to manage creating event listeners.event-props— Primitive to manage events in a reactive way.favicon— Reactive primitives for controlling the document favicon, including animated frame cycling and notification badges.fullscreen— Primitive that wraps the fullscreen API.geolocation— Primitives to query geolocation and observe changes.interaction— Primitive for detecting interactions outside a given element.mediastream— Primitives to work with media streams from microphones, cameras, and the screenmutation-observer— Primitive providing the ability to watch for changes made to the DOM tree.notification— Primitives for the browser Notifications API with reactive permission managementpermission— Primitive that wraps permission queriesstorage— Primitive that provides reactive wrappers for storage accesstimer— Primitives to manage timeout and intervalupload— Primitives for uploading files.url— Reactive primitives covering Browser's location, URL and URLSearchParams interfaces.workers— Primitives that support creating Web Workers.
Control Flow
context— Primitives simplifying or extending the Context APIjsx-tokenizer— A primitive to tokenize your components to enable custom parsing.keyed— Control Flow primitives and components that require specifying explicit keys to identify or rerender elements.list— A List component, an alternative to For and Index.match— A template primitive example.range— Control Flow Primitives for number ranges: createNumericRange, mapRange, indexRange, repeat, and their JSX component counterparts.refs— Library of primitives, components and directives that help managing references to JSX elements.
Display & Media
audio— Primitives to manage audio and single sounds.bounds— Primitives for tracking HTML element size and position on screen as it changes.devices— Reactive primitives for enumerating and filtering media input/output devices (microphones, speakers, cameras).filesystem— A primitive for convenient file system access.idle— A primitive to observe the user's idle status and react to its changes.intersection-observer— Primitives to support using the intersection observer API.media— Primitives for media query and device featurespage-utilities— Primitives for page visibility and navigation blockingresize-observer— Reactive primitives for observing resizing of HTML elements.styles— Collection of reactive primitives focused on styles.video— Primitives to manage HTML video playback.
Inputs
a11y— Accessibility primitives — labeled field groups, ARIA graph helpers, and more.active-element— A reactive document.activeElement. Check which element is currently focused.focus— Primitives for autofocusing HTML elements and trapping focus within a containerinput-mask— input masking event primitive.keyboard— A library of reactive promitives helping handling user's keyboard input.list-state— Keyboard navigable list state management primitivesmouse— A collection of primitives that capture current mouse cursor position, and help to deal with common related usecases.pointer— A collection of primitives, giving you a nicer API to handle pointer events in a reactive context.scroll— Reactive primitives to react to element/window scrolling, and to prevent scroll outside of a given element.selection— selection primitive.
Network
connectivity— A navigator.onLine signal.cookies— Reactive, signal-based cookie primitives for isomorphic use on client and serverfetch— Primitive that wraps fetch requestsgraphql— Primitive that generates a client and reactive GraphQL queriessse— Primitives for Server-Sent Events (SSE) using the browser's EventSource API.websocket— Primitive to create a web socket connection
Reactivity
async— A collection of primitives for asynchronous handling.controlled-signal— Reactive signals that support both controlled (externally managed) and uncontrolled (internally managed) state — a pattern commonly used in headless UI components.db-store— A reactive store backed by a database, kept in sync via realtime change events.deep— Primitives for tracking and observing nested reactive objects.destructure— Primitives for destructuring reactive objects – like props or stores – or signals of them into a separate accessors updated individually.immutable— Primitive for rectifying immutable values and dealing with immutability.lifecycle— Package providing extra layer of lifecycle primitives.map— The Map & WeakMap data structures as a reactive signals.memo— Collection of custom memo primitives. They extend createMemo functionality while keeping the usage similar.mutable— A primitive for creating a mutable store, an alternative to createStore.resource— Utilities for composing createResource fetchers: abortable requests, caching, retrying, and aggregation.rootless— A collection of helpers that aim to simplify using reactive primitives outside of reactive roots, and managing disposal of reactive roots.set— Reactive Set and WeakSet primitives with set-algebra operations: union, intersection, difference, and symmetricDifference.signal-builders— A collection of chainable and composable reactive signal calculations, aka Signal Builders.sortable— Reactive sorting primitives — comparators, reactive sort, sorted search/insert, and granular per-item rank tracking.state-machine— A primitive for creating reactive state machines.static-store— Primitives for creating small reactive objects that doesn't change their shape over time - don't need a proxy wrapper.trigger— A set of primitives based on signals, used to trigger computations.
Sensors
orientation— Primitives to track screen orientation using the Screen Orientation APIsensors— Primitives for device sensors: accelerometer, gyroscope, compass, battery, and generic Sensor API.vibrate— Primitives to trigger and manage device vibration via the Vibration API
UI Patterns
drag-drop— Composable drag-and-drop primitives.form— Reactive form primitive with per-field signals, sync/async validation, validateOn control, and DOM binding.marker— A reactive primitive for marking matching parts of a string.masonry— Primitives for creating a reactive masonry layout.pagination— A primitive that creates all the reactive data to manage your pagination.virtual— A virtualized list component for performantly rendering lists with many elements
Utilities
analytics— Primitives for analytics tracking with a plugin-compatible queue-based dispatch pipeline.controlled-props— The primitives in this package allow you to create controlls for component props.cursor— Primitives for setting CSS cursor property reactively.date— Collection of reactive primitives and utility functions, providing easier ways to deal with datesevent-bus— A collection of primitives providing various features of a pubsub/event-emitter/event-bus.event-dispatcher— A primitive to dispatch component events.flux-store— Primitive to simplify the creation of global stores and the ability to access and mutate them.history— Primitives for managing undo/redo history.i18n— Library of primitives for providing internationalization support.platform— A set of const boolean variables identifying device and browser type.promise— Promised one-time watch for changes. Await a reactive condition.props— Library of primitives focused around component props.queue— Queue primitives — FIFO, priority, and concurrent task queuesscheduled— Primitives for creating scheduled — throttled or debounced — callbacks.script-loader— Primitive to load scripts dynamicallyshare— Primitives to help with sharing content on social media and beyond.utils— A bunch of reactive utility types and functions, for building primitives