Skip to main content
The palette view is the core of Color Palette. Each color in the row is a swatch you can add, reroll, lock, reorder, or delete. The active color relationship and any locked colors determine what gets generated each time.

Adding colors

Press A or Space to append a new color to the palette. Each new color is generated based on the current relationship mode and any locked colors already in the palette. The palette holds a maximum of 10 colors (MAX_COLORS). Once you reach 10, the add shortcut does nothing.
You can also use the + button in the toolbar to add a color.

Two-row layout

When a palette grows to 6 or more colors, it splits into two rows. The split is computed by getRowSplit and follows a fixed table:
Color countRow 1Row 2
1–5all
633
743
844
954
1055
The split is purely visual. All color operations (lock, reroll, delete) still use the flat 1–10 index order: positions 1–5 fill row 1, and positions 6–10 fill row 2.

Rerolling colors

Press R to regenerate every unlocked color at once. Locked colors are preserved as anchors, and the unlocked colors are regenerated to match the active relationship.If no colors are locked and the relationship is not random, a random seed color is generated first and placed at the first unlocked position. All other unlocked colors are then generated relative to that seed. This ensures the palette has a coherent hue structure even when starting from scratch.

Per-color keyboard shortcuts

All per-color shortcuts use the digit keys 1–9 and 0, where 1 targets the first color and 0 targets the tenth.
ShortcutAction
1-9, 0Toggle lock on that color
Shift + 1-9, 0Delete that color
Alt + 1-9, 0Reroll that color
Shift + Alt + 1-9, 0Open color editor for that color
V then 1-9, 0View color variations (chord within 500 ms)
Shortcuts are disabled while you are typing in a text input or when a dialog is open.

Reordering colors

Drag any swatch left or right to move it to a new position. The lock state travels with the color — a locked swatch stays locked after being dragged.

Undo and redo

Every palette change — add, delete, reroll, reorder — is recorded in a history stack. You can move through that history at any time.
ShortcutAction
ZUndo
Shift + ZRedo
History is persisted to localStorage, so it survives page reloads.
You can also browse the full history timeline by pressing H to open the history panel.

How colors are generated

When you add or reroll colors, generateRelatedColor is called with:
  1. Reference colors — the hex values of all currently locked colors. If no colors are locked and the relationship is not random, a random seed hex is used instead.
  2. Relationship — the active ColorRelationship (random, complementary, analogous, etc.).
  3. Fallback — the previous hex value at that position, used only when no locked colors and no seed are available.
The result is an HSL color derived from the reference hues according to the relationship’s angle rules, with small random jitter applied to saturation and lightness for natural variation. See Color relationships for the exact hue angles used by each mode.

Color relationships

How each of the 7 relationship modes determines hue angles.

Presets

Apply HSL-bounded palettes like pastel, neon, or earth tones.

Locking colors

Lock individual colors so they stay fixed during rerolls.

Keyboard shortcuts

Complete list of all keyboard shortcuts.

Build docs developers (and LLMs) love