A monorepo containing reusable UI components for audio editing applications, built with React, TypeScript, and modern tooling.
Core types and utilities for the Audacity Design System.
pnpm add @audacity-ui/coreExports:
- TypeScript interfaces:
Clip,Track,EnvelopePoint,TimeSelection, etc. - Drag state types:
DragState,EnvelopeDragState,EnvelopeSegmentDragState
Design tokens including colors, themes, and styling constants.
pnpm add @audacity-ui/tokensExports:
lightTheme- Light theme configurationdarkTheme- Dark theme configurationThemeinterface
UI component library with track controls and interface elements.
pnpm add @audacity-ui/componentsComponents:
TrackControlPanel- Complete track control interface with volume, mute/solo, and effects
audacity-design-system/
├── packages/
│ ├── core/ # Core types and utilities
│ ├── tokens/ # Design tokens and themes
│ └── components/ # UI component library
│ └── TrackControlPanel # Track control panel component
├── apps/
│ └── demo/
│ └── clip-envelope/ # Clip envelope editing demo
├── docs/ # Architecture documentation
└── CLAUDE.md # AI assistant guidance
- Node.js >= 18
- pnpm >= 8
# Install pnpm if you haven't
npm install -g pnpm
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run in development mode (watch mode)
pnpm devBuild a specific package:
cd packages/core
pnpm buildWatch mode for development:
cd packages/core
pnpm dev- Design System Architecture - Comprehensive plan for the design system
- Automation Overlay States - Documentation of automation overlay states
- Clip Styling States - Complete clip styling state matrix
The clip envelope prototype demonstrates:
- Multi-track canvas with draggable clips
- Clip envelope editing with visual control points
- Real-time waveform gain visualization
- Time selection across single or multiple tracks
- Track selection with visual feedback
- Envelope visualization with translucent fill showing applied gain
cd apps/demo/clip-envelope
npm install
npm run devOpen http://localhost:3000 to view the prototype.
- Framework: React 19, Next.js 16
- Language: TypeScript 5
- Build Tool: tsup (esbuild)
- Package Manager: pnpm
- Styling: Tailwind CSS 4
- Rendering: HTML5 Canvas
- Setup monorepo infrastructure
- Create
@audacity-ui/corepackage - Create
@audacity-ui/tokenspackage - Create
@audacity-ui/components(basic UI components)- TrackControlPanel component
- Create
@audacity-ui/audio-components(complex audio components) - Setup Storybook for component documentation
- Migrate demo to use published packages
- Setup CI/CD for automated publishing
- Publish to npm registry
MIT
This is currently a prototype project for Audacity development.
Built with ❤️ for the Audacity community