@audio-ui/react

中文文档
0.13.0发布于 2026/11/06MITTypeScriptES Module构建来源已验证近 30 天下载 5621

Accessible, headless React primitives for audio interfaces: knobs, faders, XY pads, envelopes, meters, waveforms, timelines, step sequencers, drum pads, piano keyboards and piano rolls.

原始使用文档
文档目录5 节
  1. Install
  2. Use
  3. Primitives
  4. Documentation
  5. License

@audio-ui/react

Headless, accessible primitives for audio interfaces in React: the controls and editors of a DAW or a synth, with the behavior built in and the styling left to you.

  • Headless. Parts render the elements you give them, with state in data-* attributes and CSS variables to style from. No styles ship.
  • Accessible. Every control holds a native input, so focus, the keyboard, screen readers and forms work as they do for a slider.
  • Composable. Small parts that fit together (Knob.Root, Knob.Control, Knob.Thumb), each with a render prop and className / style as functions of state.
  • Built for audio. Scales (linear, log), fine drag, a live position that moves without re-rendering React, and musical time.
  • Tree-shakeable. Import from the root, or from a subpath such as @audio-ui/react/knob, and ship only what you use.

Install

npm install @audio-ui/react

React 19 is required. It is built on @audio-ui/core, the framework-agnostic logic of the primitives, which installs with it.

Use

import { Knob } from "@audio-ui/react";

export function Cutoff() {
  return (
    <Knob.Root
      defaultValue={1000}
      max={20_000}
      min={20}
      onValueChange={(hz, eventDetails) => setCutoff(hz)}
      scale="log"
    >
      <Knob.Label>Cutoff</Knob.Label>
      <Knob.Control className="size-16">
        <Knob.Track />
        <Knob.Indicator />
        <Knob.Thumb aria-label="Cutoff" />
      </Knob.Control>
      <Knob.Value />
    </Knob.Root>
  );
}

Changes arrive as onValueChange(value, eventDetails): eventDetails.reason says what moved it ("drag", "wheel", "keyboard", "reset"), and eventDetails.cancel() refuses it. onValueCommitted fires once a gesture that changed the value ends, which is the time to start a note or save a preset.

Primitives

PrimitiveWhat it is
Knob, Fader, XYPadRotary, linear and two-dimensional parameters
Envelope, PlotBreakpoint and curve editors (ADSR, EQ, filters, compressors)
Meter, WaveformLevels, peak hold, waveforms, live signals and visualizers
TimelineThe ground of an arrangement: zoom, grid, ranges, clips with trim and fades, a seekable lane
Sequencer, Pad, Piano, PianoRollStep grids, drum pads, keyboards and a note editor

Live values (a playhead, a meter) take a source, { getSnapshot, subscribe }, and are written to the DOM as they move. createSource makes one.

Documentation

Guides, the API of every part and live examples: https://www.audio-ui.dev. Styled components built on these primitives are copied into your project with the shadcn CLI:

npx shadcn@latest add @audio-ui/knob

For AI agents there is an MCP server (https://www.audio-ui.dev/mcp) and a skill: npx skills add ouestlabs/audio-ui.

License

MIT

版本与发布记录

@audio-ui/react 共发布 39 个版本,首次发布于 2025/12/24;过去 12 个月发布了 39 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.13.0latest2026/11/061 天前
0.12.02026/11/052 天前
0.11.22026/11/043 天前
0.11.12026/11/043 天前
0.11.02026/11/043 天前
0.10.02026/11/034 天前

关于 @audio-ui/react 的常见问题

@audio-ui/react 是什么?

Accessible, headless React primitives for audio interfaces: knobs, faders, XY pads, envelopes, meters, waveforms, timelines, step sequencers, drum pads, piano keyboards and piano rolls.

如何安装 @audio-ui/react?

在项目目录运行 npm install @audio-ui/react,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.2.7)、react-dom(^19.2.7)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@audio-ui/react 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@audio-ui/react 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@audio-ui/react 可以商用吗?

@audio-ui/react 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@audio-ui/react 的下载量有多少?

根据 npm 官方下载统计,@audio-ui/react 在 2026/10/07 – 2026/11/05 这 30 天内被下载 5,621 次,日均约 187 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@audio-ui/react 还在维护吗?

最新版本 0.13.0 发布于 2026/11/06(1 天前);至今共发布 39 个版本,其中过去 12 个月发布了 39 个;首次发布于 2025/12/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。