Skip to content

Latest commit

 

History

History
59 lines (55 loc) · 2.9 KB

TODO.md

File metadata and controls

59 lines (55 loc) · 2.9 KB

TODO

  • 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 selected prop)
    • 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/:hash route
      • 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