Skip to main content
Solid Primitives 2

99 primitives across 11 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 functionality
  • spring — Primitive that creates spring physics functions.
  • transition-group — Reactive primitives for implementing transition effects
  • tween — Primitive that creates tween functions

Browser APIs

  • broadcast-channel — Primitives to manage Broadcast Channel API
  • clipboard — 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 screen
  • mutation-observer — Primitive providing the ability to watch for changes made to the DOM tree.
  • notification — Primitives for the browser Notifications API with reactive permission management
  • permission — Primitive that wraps permission queries
  • storage — Primitive that provides reactive wrappers for storage access
  • timer — Primitives to manage timeout and interval
  • upload — 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 API
  • jsx-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 features
  • page-utilities — Primitives for page visibility and navigation blocking
  • resize-observer — Reactive primitives for observing resizing of HTML elements.
  • sensors — Primitives for device sensors: accelerometer, gyroscope, compass, battery, and generic Sensor API.
  • styles — Collection of reactive primitives focused on styles.
  • video — Primitives to manage HTML video playback.

Forms

  • form — Reactive form primitive with per-field signals, sync/async validation, validateOn control, and DOM binding.

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 container
  • input-mask — input masking event primitive.
  • keyboard — A library of reactive promitives helping handling user's keyboard input.
  • list-state — Keyboard navigable list state management primitives
  • mouse — 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 server
  • fetch — Primitive that wraps fetch requests
  • graphql — Primitive that generates a client and reactive GraphQL queries
  • sse — 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 API
  • vibrate — Primitives to trigger and manage device vibration via the Vibration API

UI Patterns

  • 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 dates
  • event-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 queues
  • scheduled — Primitives for creating scheduled — throttled or debounced — callbacks.
  • script-loader — Primitive to load scripts dynamically
  • share — Primitives to help with sharing content on social media and beyond.
  • utils — A bunch of reactive utility types and functions, for building primitives
Solid Primitives 2High-quality reactive primitives for building applications in Solid2
Community
githubdiscord