Sebastian Krüger 5fb89909f9 fix: dragging now switches source unit to update all bars correctly
Fixed dragging behavior so all bars update when you drag:

Problem:
- Dragging a bar would change values but bars wouldn't visually update
- The bar would reset to original length on release
- Other bars wouldn't change at all

Root cause:
- We were converting the dragged value back to the selected unit
- This kept the source unit the same, so relative percentages didn't change
- The logarithmic scale maintained proportions, preventing visual updates

Solution:
- When dragging a bar, switch to that unit as the new source unit
- Set both inputValue and selectedUnit to the dragged unit's value/name
- This changes the conversion base, making all other bars recalculate
- Removed draggedPercentage state (not needed with this approach)
- All bars now use calculated percentages from conversions

How it works now:
- Drag the "feet" bar → becomes the source unit (selectedUnit = 'ft')
- All conversions recalculate from feet
- All bars update their percentages based on new conversion base
- No transitions during drag for instant visual feedback
- Smooth animation when drag ends

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 10:50:55 +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%