-
Run a GitHub action to typecheck and format a PR against main and commit the updates to that branch
-
Add color picker to every swatch in a palette
- Make swatches clickable (add onClick handlers to Swatch component)
- Add visual indication of which swatch is currently selected/active (user added
selectedprop) - Update Palette state management to handle swatch clicks (update valueStop and value)
- Integrate ColorPicker with swatch click handlers (existing ColorPicker works with clicked swatch)
- Auto-open ColorPicker when swatch is clicked (clicking swatch now both selects it AND opens color picker)
- Add proper accessibility features (ARIA labels, keyboard navigation)
- Fix palette generation instability using chroma-js for better color precision
- Test and polish mobile/touch interaction
-
Write the current state of the entire palette to a hashed URL
-
Click between swatches to add a new stop in between
-
Automatic Stop Selection
- Remove manual stop selection UI and functionality
- Implement automatic stop calculation based on color properties
- Linear mode: Map HSL lightness (0-100) to stops (0-1000)
- Perceived mode: Map luminance (0-1) to stops (0-1000)
- Round to nearest available stop (50, 100, 200, etc.)
- Update color input handling
- Apply automatic stop selection to manual color input
- Apply automatic stop selection to color picker selection
- Update swatch click behavior with automatic stop selection
- Add tests for new stop selection logic
- Update documentation to reflect new behavior
-
Manual Stop Selection Override
- Add toggle in UI to enable/disable automatic stop selection
- Update state management to handle manual stop selection mode
- Modify color input handling to respect manual mode
- Update color picker behavior
- Update manual color input behavior
- Update swatch click behavior
- Add visual indicators for manual mode
- Add tests for manual stop selection
- Polish mobile/touch interaction for manual mode
-
URL Structure Update
- Create new
/palette/:hashroute- Add route handler for new URL structure
- Implement simple JSON serialization/deserialization
- Add base64 encoding/decoding for URL safety
- Update state management
- Modify URL sync logic to use hash
- Add hash update on palette changes
- Handle legacy URLs
- Add redirect from old URL structure
- Preserve SEO value with proper 301 redirects
- Update meta tags and OpenGraph handling
- Update API endpoints
- Add new hash-based API route
- Maintain backward compatibility
- Testing
- Test serialization/deserialization
- Verify state preservation
- Test redirects
- Validate SEO impact
- Create new