Skip to content

feat(kumo): add ColorPicker component with parity UI and eyedropper#174

Closed
singkia wants to merge 1 commit intocloudflare:mainfrom
singkia:codex/color-picker-upstream-parity
Closed

feat(kumo): add ColorPicker component with parity UI and eyedropper#174
singkia wants to merge 1 commit intocloudflare:mainfrom
singkia:codex/color-picker-upstream-parity

Conversation

@singkia
Copy link
Copy Markdown
Contributor

@singkia singkia commented Mar 4, 2026

Summary

  • add a new ColorPicker component to @cloudflare/kumo with parity UI/behavior from the production implementation
  • support HEX/RGB/HSL/HSB editing flows with color area + hue slider controls
  • include optional EyeDropper integration with capability detection and non-intrusive error handling
  • keep external value protocol as hex while bridging internal Color object state for stable drag/edit interactions

Files

  • packages/kumo/src/components/color-picker/* (new module: component, primitives, state bridge, tests, exports)
  • packages/kumo/src/index.ts (main export)
  • packages/kumo/vite.config.ts (component entry)
  • packages/kumo/package.json + pnpm-lock.yaml (dependency + export path)
  • .changeset/olive-ladybugs-type.md

Validation

  • pnpm --filter @cloudflare/kumo typecheck
  • pnpm --filter @cloudflare/kumo exec vitest run src/components/color-picker/color-picker.test.tsx
  • pnpm --filter @cloudflare/kumo exec oxlint --config .oxlintrc.json src/components/color-picker src/index.ts --type-aware
  • pnpm --filter @cloudflare/kumo exec eslint src/components/color-picker src/index.ts

Notes

  • keeps visual/interaction parity while removing internal remount coupling in HEX input sync
  • retains white thumb contrast ring with stable class usage (before:bg-white)

@singkia singkia force-pushed the codex/color-picker-upstream-parity branch from 4a4cf3d to 25a469d Compare March 18, 2026 08:17
@singkia
Copy link
Copy Markdown
Contributor Author

singkia commented Mar 18, 2026

Updated this PR to keep the scope focused on ColorPicker.

What changed in this revision:

  • rebased the branch onto the current main
  • removed the unrelated feat(select): add grouped options compound API changes that had been mixed into this branch
  • kept only the ColorPicker implementation, exports, package entry updates, and changeset

Validation I ran locally:

  • pnpm --filter @cloudflare/kumo typecheck
  • pnpm --filter @cloudflare/kumo build
  • pnpm --filter @cloudflare/kumo test -- src/components/color-picker/color-picker.test.tsx
  • pnpm --filter @cloudflare/kumo test:exports
  • pre-push changeset validation via lefthook

So PR 174 should now represent only the ColorPicker work.

@singkia singkia closed this Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant