@paramrig/controls

Controlled React parameter inputs, with no audio, vector or 3D engine.

import { RigControls } from '@paramrig/controls';
import '@paramrig/controls/styles.css';
<RigControls parameters={parameters} groups={groups} values={values}
  onChange={(id, value) => setValues(old => ({ ...old, [id]: value }))}
  onGestureStart={beginGesture} onGestureEnd={endGesture} onGestureCancel={cancelGesture} />

React and React DOM are peer dependencies, tested with 19.2. Styles are optional, scoped to the components and their portals, and use system fonts. ParameterControl renders one input; ControlsScope scopes a host’s custom inputs. No document, history or browser storage is accessed.

Use createControlRegistry() and pass registry to override a kind (number) or a specific view (select:font-library). Resources are explicit: resources.load(id, signal) returns a Blob, and resources.save(file, accept, maxMB) returns a resource value. A file input is disabled until its host provides these callbacks. Specialised catalogues belong to the host’s registered components.

Supported environment and dependencies

Environment Dependencies
React 19.2 in the browser; server rendering for applicable controls Core, React, React DOM and UI primitives; no engines

Run the complete example

Copy the React controls example into a directory of its own. Its README lists the commands and resource setup. It imports only public packages; no repository aliases, editor sources or development dependencies from ParamRig are required.

Choose the boundary

The packages ship ESM JavaScript and TypeScript declarations. A sub-entry selects the code your bundler loads. A separate package changes what npm installs. The complete editor is part of the application; this SDK exposes its engine or controls.

Compare packages · Build a selective application distribution

Combine controls with an engine

The Vector + React example installs Vector and Controls together. The host owns values and export, and can destroy and recreate the renderer without unmounting its controls.