Commit Graph

5 Commits

Author SHA1 Message Date
valknarness
0d03156e04 style: standardize layout widths and padding across all pages
Ensure consistent spacing and alignment between header, main content, and footer:
- Update Navbar to use max-w-7xl and px-8 (matching Footer)
- Standardize all page containers to use px-8 py-12 padding
- Change home page from max-w-5xl to max-w-7xl for consistency
- Update all 12 pages to use consistent padding (px-8 py-12 instead of p-8)

This creates a unified visual alignment across the entire application,
with all content sections (navbar, main, footer) using the same
max-width (7xl) and horizontal padding (px-8).

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 16:20:59 +01:00
valknarness
fd2cea8f47 fix: resolve hydration errors in playground
- Fix nested button error in color history by using div with role=button
- Add keyboard accessibility (Enter/Space) to color history swatches
- Add type guard for ColorInfo.name to handle object values
- Add aria-label to remove button for better accessibility

Fixes React hydration errors and improves accessibility.
2025-11-07 13:53:23 +01:00
valknarness
494b2a450b feat: implement UX enhancements for playground
Add comprehensive UX improvements to color playground:

**URL State Sharing:**
- Implement URL parameter sync for colors
- Add share button to copy playground URLs
- Wrap in Suspense boundary for Next.js 16 compatibility
- Colors persist in URL for easy sharing

**Keyboard Shortcuts:**
- Create reusable useKeyboard hook with modifier support
- Add Cmd/Ctrl+C to copy current color
- Add Cmd/Ctrl+S to share color URL
- Add Cmd/Ctrl+R for random color generation
- Display keyboard hints in playground header
- Cross-platform support (Mac/Windows/Linux)

**Color History:**
- Implement Zustand store with localStorage persistence
- Track up to 50 most recent colors with timestamps
- Auto-deduplicate and keep most recent entry
- Add visual history grid in playground
- Click to restore previous colors
- Individual color removal with hover UI
- Clear all history option

**Playground UI Enhancements:**
- Add visual keyboard shortcut indicators (⌘C, ⌘S, ⌘R)
- Implement Recent Colors section with 5-column grid
- Add hover effects for history color swatches
- Individual remove buttons on hover
- Toast notifications for all actions
- Improved button layout and spacing

**Files Added:**
- lib/hooks/useKeyboard.ts - Keyboard shortcut management
- lib/stores/historyStore.ts - Color history with persistence

**Files Modified:**
- app/playground/page.tsx - Integrated all UX features

Successfully builds with all features working.
Ready for user testing.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 12:30:33 +01:00
valknarness
94ea87ca83 feat: implement color manipulation tools with interactive sliders
Add complete color manipulation interface to playground:

**New Components:**
- Slider component - Customizable range input with label and value display
  - Smooth animations on thumb hover
  - Keyboard accessible
  - Shows current value with optional suffix
  - Tailwind-styled for consistency

- ManipulationPanel component - Full color manipulation controls
  - Lighten/Darken sliders (0-100% range)
  - Saturate/Desaturate sliders (0-100% range)
  - Hue rotation slider (-180° to +180°)
  - Complementary color quick action
  - All operations integrated with Pastel API
  - Toast notifications for success/error
  - Loading states during API calls

**Playground Enhancements:**
- Replaced placeholder quick action buttons with ManipulationPanel
- Full integration with color manipulation mutations
- Real-time color updates after each operation
- User-friendly feedback with toast messages
- Amount controls for precise adjustments

**Features:**
- Live preview of manipulation results
- Configurable amounts before applying
- Success/error handling with helpful messages
- Disabled state during API operations
- Smooth user experience with immediate feedback

**API Integration:**
- useLighten, useDarken mutations
- useSaturate, useDesaturate mutations
- useRotate for hue rotation
- useComplement for complementary colors
- All mutations with proper error handling

Build successful! Color manipulation tools fully functional.

Next: Navigation, theme system, and additional UI components.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 11:28:35 +01:00
valknarness
173d81d9d4 feat: implement color playground with interactive picker and info display
Add complete color manipulation interface:

**Color Components:**
- ColorPicker - Interactive hex color picker with text input
  - Uses react-colorful for visual selection
  - Manual input support for any color format
  - Real-time updates

- ColorDisplay - Large color preview swatch
  - Configurable sizes (sm, md, lg, xl)
  - Optional border styling
  - Accessible with ARIA labels

- ColorInfo - Comprehensive color information display
  - Shows all formats: Hex, RGB, HSL, Lab, OkLab
  - Copy to clipboard functionality for each format
  - Displays brightness, luminance, light/dark type
  - Shows named color matches

**API Integration:**
- React Query hooks for all Pastel API endpoints
  - useColorInfo - Get color information
  - useConvertFormat - Format conversion
  - useLighten, useDarken, useSaturate, etc. - Manipulations
  - useGenerateRandom, useGenerateDistinct, useGenerateGradient
  - useNamedColors - Cached named colors list
  - Automatic error handling and loading states

**Playground Page (/playground):**
- Two-column layout: picker + info
- Live color preview with large swatch
- Real-time API integration with loading states
- Error handling with user-friendly messages
- Quick action buttons (ready for implementation)
- Responsive grid layout

**Features:**
- Toast notifications for clipboard copy
- Loading spinners during API calls
- Error display with helpful messages
- Accessible keyboard navigation
- Smooth transitions and animations

Build successful with playground page rendering! Ready for color manipulation actions.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 11:05:23 +01:00