Image Colors Icon

Image Colors

1.0.1

September 14th, 2026

  • Storage is namespaced. Everything the addon writes lives under one imagecolors key on the asset, holding colors, stamp and the pinned color. If a container blueprint already has an imagecolors field, or an asset carries an imagecolors value that Image Colors did not write, the addon keeps out: no sampling, no swatches, no overwrite; the command and the action report those images with the reason in the log.
  • Templates follow. {{ hero:imagecolors }} prints the chosen color, :color gives that color in every format, :colors loops the palette, :is_pinned tells whether an editor chose it. {{ hero:color }} and {{ hero:colors }} are gone. GraphQL has an ImageColors type with the same three fields.
  • The action reports failure. Extract colors now fails with a message when none of the selected images could be read, and with "Colors extracted for 1 of 2 images" when some could not; the reason is in the log. It used to say "Colors extracted" regardless.
  • The README's text-over-image example was wrong. :contrast is measured against the solid color, so it says nothing about text on the photo itself. The example now puts the title on a band in the image's color, and the documentation explains the difference.
  • No third-party artwork. The pipette icon is the addon's own drawing and the plus is Statamic's own icon; the Lucide credit is gone.
  • Conditions work. {{ if hero:imagecolors:color:is_dark }}, {{ if hero:imagecolors:is_pinned }} and comparisons like {{ if hero:imagecolors:color:contrast >= 4.5 }} were always false, because Antlers refuses to call methods inside a condition. The color values now expose properties instead.

1.0.0

September 14th, 2026

Image Colors gives every image asset a palette of its own colors, and lets an editor decide which one is the color of that image. Templates get it as hex, RGB, HSL or OKLCH, plus whether it is light or dark, which text color reads on it, and how much contrast that gives. Use it for a background behind a photo, a caption over it, a placeholder while it loads, a card tinted to match. The image file itself is never touched.