feat(image): add Image Color Picker - #159
Merged
Merged
Conversation
hateofhades
force-pushed
the
feat/121-image-color-picker
branch
from
September 5, 2026 19:19
c535b25 to
b2bc192
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #121.
The last planned Gizlet of roadmap phase 2. The registry entry flips to available with an agent block, it declares itself flowless, gains a related-Gizlet key, a social card and page copy, and its bench row goes.
What it does
Pick a pixel and read it as HEX, RGB and HSL, each copyable. The picture is drawn onto a canvas in this browser and each pick reads that one pixel back — nothing uploaded, no file written.
localStorageis untouched, and closing the tab forgets them.Two decisions in the colour maths
No flow contract, deliberately
Like Image Dimensions, it shows the visitor something and produces nothing another Gizlet could take, so it joins
flowlessToolSlugsrather than being given a pass-through contract it does not have.Checks
pnpm run check,pnpm test(500),pnpm run buildandpnpm run test:e2e(119) all pass. New coverage:tests/unit/image-colour.test.ts(hex padding, the wheel's corners, greys, the negative-hue case, hex round-trips, luminance, the history rules) andtests/e2e/image-color-picker.spec.ts, which picks from a four-colour fixture and asserts the exact values, copies to a real clipboard and reads it back, walks the picture with the keyboard alone including the edge stop, and checks a repeat does not duplicate.Note for whoever merges
One of several image Gizlets cut from
mainin parallel (#156, #157, #158). They touch the registry, the related-Gizlet map,flowlessToolSlugsand the regeneratedgizlets.png; whichever lands last needs a rebase, and the conflicts are additions next to each other.Screenshot