← All work

03 / Visual Design / Color Interaction

Palette Snap

An image-to-color workflow that makes extracted palettes editable, reusable, and easier to evaluate.

Bundled sample images
6
Colors per extracted palette
4–12
Workflow stages
3

Implemented product scope, not user-research or impact metrics.

Palette Snap: extracted palette and selected-color refinement controls
Actual product interface · Visual Design / Color Systems
01Extract02Name & refine03Assign roles

01 / CONTEXT & CHALLENGE

How can extracted color become a useful design material rather than a static list of swatches?

The challenge
Palette Snap organizes the work into Extract, Refine, and Export. Designers can move from image colors to names, semantic roles, contrast checks, and reusable output without an account.
Key design decision
Offer suggestions without silently replacing a selected color.
Implemented result
The implemented workflow transforms images into editable palettes and multiple reusable formats, with local processing for uploads and pasted images. No time-saving or satisfaction metric is claimed.

Designed for Visual and product designers turning image references into usable palettes.

The constraint

A palette alone cannot establish accessibility: contrast depends on a specific foreground and background pairing. Browser clipboard and remote-image capabilities also vary.

This case study analyzes the current implementation. Rationale describes the design implications of observable choices; it does not claim undocumented interviews, historical alternatives, or measured improvements.

IMAGE → PALETTE / ACTUAL SAMPLE OUTPUT

Extraction begins the design work.

Bundled Palette Snap sample of mustard fabric, burgundy paper, and pale textured materials

EXTRACTED IN THE PRODUCT

#0B0307#B7730E#AE8B86#572902#815B54#D8CBC1

Name, refine, assign roles, and check a pair before export. Extraction does not automatically make a palette accessible.

02 / INFORMATION ARCHITECTURE

A structure for different intentions.

COLOR ROLES / DESIGN ANALYSIS OF EXTRACTED OUTPUT

A color’s job depends on its context.

Deep neutral

Potential text

#0B0307

Warm accent

Selective emphasis

#B7730E

Supporting tone

Secondary grouping

#AE8B86

Light neutral

Potential surface

#D8CBC1

These are analytical role suggestions for actual extracted colors. Every intended foreground/background combination still needs evaluation.

Product areas from the repository. This is an orientation model, not a tested linear user journey.

03 / DESIGN REASONING

The choices behind the experience.

DESIGN DECISION / 01

Keep refinement under the designer’s control

Observed in the product
Swatches support editing, ordering, locks, names, and editable semantic-role suggestions.
Design response
Offer suggestions without silently replacing a selected color.
Rationale
Color has contextual and expressive value. Explicit acceptance preserves authorship while exposing an accessible alternative for a particular pairing.
Tradeoff
The designer must still evaluate the suggestion in the actual interface.

Implementation reference: README.md: Product capabilities

Palette Snap selected-color panel showing a swatch, name field, HEX RGB HSL values, role selection, and editing actions

Actual selected-color panel. The swatch remains connected to editable and reusable information.

Palette Snap selected-color panel showing a swatch, name field, HEX RGB HSL values, role selection, and editing actions
Actual selected-color panel. The swatch remains connected to editable and reusable information.
  1. 01

    One selected color

    A large sample and repeated value keep the editing context visible.

  2. 02

    Multiple representations

    HEX, RGB, and HSL offer copy actions for different destinations.

  3. 03

    Meaning and control

    Naming, role assignment, move controls, and locking support deliberate refinement.

DESIGN DECISION / 02

Make palette changes reversible

Observed in the product
The product includes bounded undo/redo, recent history, and saved palettes.
Design response
Preserve a recovery path while designers explore colors and ordering.
Rationale
Experimentation is easier when a previous arrangement can be recovered. Keyboard move controls also offer an alternative to dragging.
Tradeoff
Local history is not a cloud backup; clearing browser storage removes saved work.

Implementation reference: README.md: Privacy and browser limitations; palette-history.js

COPY INTERACTION / ACTUAL STATES

Make the result of an action visible.

Selected color before the copy action

Before copying: the selected value and copy action are available.

Selected color before the copy action
Before copying: the selected value and copy action are available.
Selected color panel immediately after activating copy value

After activating Copy value in the actual product. Browser permission determines clipboard success.

Selected color panel immediately after activating copy value
After activating Copy value in the actual product. Browser permission determines clipboard success.

DESIGN DECISION / 03

Group export by the next use

Observed in the product
Export supports visual cards, stylesheet formats, structured data, and design tokens.
Design response
Carry names and roles forward into reusable output.
Rationale
A palette becomes more useful when the result fits the next design or implementation task rather than requiring manual transcription.
Tradeoff
Multiple formats create choice; grouped export categories are needed to keep the primary action understandable.

Implementation reference: README.md: Product capabilities

Palette Snap extracted swatches with names, hex values, and a selected outline

Names and values complement color. Selection is indicated by an outline rather than a hue change alone.

Palette Snap extracted swatches with names, hex values, and a selected outline
Names and values complement color. Selection is indicated by an outline rather than a hue change alone.

04 / VISUAL & INTERACTION SYSTEM

Give the structure a visual expression.

Swatches are both visual samples and editable design data. Naming and semantic roles connect appearance to purpose; explicit contrast results describe a pairing rather than declaring an entire palette accessible. The extraction, refinement, and export sequence gives each stage a different visual priority.

RESPONSIVE BEHAVIOR / ACTUAL CAPTURES

Keep refinement available in a narrow workspace.

palette-snap desktop controls and content

Desktop: related controls and output share the available width.

palette-snap desktop controls and content
Desktop: related controls and output share the available width.
palette-snap actual mobile layout at 390 CSS pixels

Mobile: actual 390px capture. Read the controls and their output in sequence.

palette-snap actual mobile layout at 390 CSS pixels
Mobile: actual 390px capture. Read the controls and their output in sequence.

A narrow layout trades simultaneous visibility for readable controls. The next usability check should examine whether people can connect changes with output after scrolling.

05 / INCLUSIVE INTERACTION

Behavior matters as much as appearance.

The implementation documents keyboard reorder controls, accessible dialogs and menus, live action feedback, and explicit contrast results. Unsupported clipboard and EyeDropper paths retain upload or manual fallbacks. These observations do not establish a full accessibility audit.

06 / OUTCOME & REFLECTION

What exists. What remains to learn.

The implemented workflow transforms images into editable palettes and multiple reusable formats, with local processing for uploads and pasted images. No time-saving or satisfaction metric is claimed.

What works

Color remains connected to values, names, roles, and recovery controls.

What remains limited

A suggested role or passing pair cannot guarantee that every use of the palette is accessible.

What I would explore next

Automatic extraction starts the work; naming, grouping, correction, and recovery make the result usable. Future testing should examine whether designers understand the difference between a visually harmonious palette and a passing contrast pair.

CONTRIBUTION & EVIDENCE

Scope, decisions, and the evidence behind them.

Role & collaboration
The role presented in this case study is UX Designer, with a focus on Visual Design, Color Systems, Interaction Design. Individual ownership boundaries and collaborator contributions are not documented in this implementation review.
User feedback & iteration
No participant-feedback record is included in this case study, so the design changes are not attributed to user testing. The next validation question is: Can a designer refine an extracted palette and export the intended roles without losing work?
Constraints & priorities
A palette alone cannot establish accessibility: contrast depends on a specific foreground and background pairing. Browser clipboard and remote-image capabilities also vary. A concrete tradeoff: The designer must still evaluate the suggestion in the actual interface. This describes a product tradeoff; no stakeholder disagreement is claimed.
Evidence of benefit
Color remains connected to values, names, roles, and recovery controls. This is observable product behavior. Whether it helps the intended audience remains a question for validation: Correct export selection, understandable feedback, recovery from unwanted edits, and accurate interpretation of contrast results.

Verified implementation scope

Bundled sample images
6
Colors per extracted palette
4–12
Workflow stages
3

These counts describe the implemented product. They do not measure usability improvement, participant satisfaction, or business impact.

07 / PROPOSED RESEARCH · NOT CONDUCTED

The next questions to test.

Proposed tasks
Extract a sample palette, name and move a color, check a pair, undo an edit, and choose an export.
question
Can a designer refine an extracted palette and export the intended roles without losing work?
method
Proposed task-based usability sessions covering extraction, keyboard reorder, contrast adjustment, undo, and export.
participants
Visual and product designers who use image references in their workflow.
signal
Correct export selection, understandable feedback, recovery from unwanted edits, and accurate interpretation of contrast results.

TOOLS & WORKFLOW

Tools supporting the design.

Prototype implementation

  • HTML
  • CSS
  • JavaScript
  • Canvas

Evaluation

  • Node.js test runner

Versioning

  • Git

Project tools confirmed by source configuration. Figma, Sketch, and Adobe XD belong to my overall toolkit; their use on this specific project has not yet been documented.

Next case study

508 Dev

508 Dev: target-size lesson with paired reference controls
Actual product interface · Accessibility / Inclusive Design