Sebastian Krüger 75f895284f feat: add custom tempo/BPM converter with musical note units
Add comprehensive tempo conversion system supporting:
- BPM (beats per minute) as base unit
- Musical note durations: whole, half, quarter, eighth, sixteenth, thirty-second
- Dotted notes (1.5x duration): dotted-half, dotted-quarter, dotted-eighth, dotted-sixteenth
- Triplet notes (2/3 duration): quarter-triplet, eighth-triplet, sixteenth-triplet
- Time units: milliseconds, seconds, Hertz

Technical implementation:
- Created lib/tempo.ts with custom measure definition
- Extended lib/units.ts with tempo integration and reciprocal conversion logic
- Added tempo category color (orange #F97316) to globals.css
- Conversion formula: milliseconds per beat = 60000 / BPM
- Special handling for BPM ↔ time unit conversions using reciprocal relationship

The tempo converter integrates seamlessly with existing UX:
- Appears as "Tempo / BPM" category in category selector
- Supports all features: search, favorites, history, visual comparison, draggable bars
- Enables musicians to convert between BPM and note durations for tempo calculations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:53:50 +01:00

Unit Converter

A spectacular, innovative unit conversion application built with modern web technologies to provide the best user experience for converting between various measurement units.

Tech Stack

  • Next.js 16 - React framework with App Router and static export
  • TypeScript - Type-safe development
  • Tailwind CSS 4 - Modern utility-first CSS framework
  • convert-units - Comprehensive unit conversion library

Features

Supported Units

23 measurement categories with 187 individual units:

  • Angle, Apparent Power, Area, Current, Digital
  • Each, Energy, Frequency, Illuminance, Length
  • Mass, Pace, Parts Per, Power, Pressure
  • Reactive Energy, Reactive Power, Speed, Temperature
  • Time, Voltage, Volume, Volume Flow Rate

Innovative UX Features

  • Real-time bidirectional conversion
  • Smart context-aware interface with fuzzy search
  • Visual comparison with color-coded categories
  • Keyboard shortcuts for power users
  • Mobile-first responsive design
  • Conversion history with localStorage
  • Dark mode support

Getting Started

Prerequisites

  • Node.js 18+ or 20+
  • pnpm (recommended) or npm

Installation

# Install dependencies
pnpm install

# Run development server
pnpm dev

# Build for production
pnpm build

# Start production server
pnpm start

Open http://localhost:3000 to see the app.

Project Structure

units-ui/
├── app/                  # Next.js App Router
│   ├── layout.tsx       # Root layout
│   ├── page.tsx         # Home page
│   └── globals.css      # Global styles
├── components/          # React components (coming soon)
├── lib/                 # Utility functions (coming soon)
├── public/              # Static assets
└── IMPLEMENTATION_PLAN.md  # Detailed implementation plan

Development

See IMPLEMENTATION_PLAN.md for the complete development roadmap.

License

MIT


Built with Next.js 16, Tailwind CSS 4, and convert-units

Description
No description provided
Readme 148 KiB
Languages
TypeScript 90.3%
CSS 8.2%
Dockerfile 1.4%