Browse Documentation

Theming

Make the artwork look like part of your product — set your palette once, and every image arrives in it.

There is nothing to recolour, export, bundle, or keep a second copy of.

Change your palette later and the images you embedded months ago come back in the new colours on their own — no re-export, no re-upload, and no deploy on your side.

What you control

A theme is one palette, and it paints every product that renders at request time. The same slot does the equivalent job on each:

ColourOn a muscle diagramOn an equipment icon
silhouettethe figure’s outlinethe machine’s outline
basemuscle that is not highlightedthe body of the machine
primarythe muscles you name in primarythe pads, grips and plates
secondarythe muscles you name in secondary

The images you request already arrive in your colours. A key carries a theme, and the usual case needs nothing in the URL.

Use more than one theme

Name a theme per request when you need more than one — a light set and a dark set, or a different palette per gym, brand or tenant:

/v1/{key}/body/male/front.webp?primary=delts&theme={theme-id}

Your own themes are selectable this way once published, along with the ready-made ones below. A theme that names nothing published still returns an image, painted in the theme on the key, and names what it did not recognise in x-theme-unknown.

Show a resting state and a selected one

A picker needs two looks: the artwork when nothing is chosen, and the artwork when something is. Ready-made themes come in a pair for each.

Use a neutral for the resting state. It highlights without a hue and keeps the artwork quieter than your own controls:

ThemethemeUse it on
Neutral Darkthm_neutral_darka dark interface
Paperthm_papera light interface

Use a highlight for the chosen one. Both share their outline and base with thm_neutral_dark, and selection repaints what is highlighted and nothing else:

ThemethemeTone
Skythm_highlight_dark_skycool
Amberthm_highlight_dark_amberwarm

Selecting a row is one parameter:

/v1/{key}/equipment/icon/leg-press-45.png?theme=thm_neutral_dark
/v1/{key}/equipment/icon/leg-press-45.png?theme=thm_highlight_dark_sky

Muscle diagrams take the same pair — a summary of what was worked names the muscles in primary against a highlight theme, and the same figure used as a chooser sits in the neutral until somebody picks.

To use your brand colour instead, publish a theme whose silhouette and base match the neutral, and set primary to your accent. A highlight theme that also moves the base repaints the whole drawing, which reads as a flicker rather than a selection.

Edit a theme without publishing it

Themes are edited and published separately. A half-finished palette never reaches your users, and editing a draft does not change what your live URLs return until you publish it.

Expect a published change to take up to two minutes to appear everywhere — see caching.

What happens when an allowance runs out

Crossing your monthly allowance does not break your images. They keep rendering in the house palette until the allowance resets or is raised: your users see a colour change, not a missing image, and nothing you built stops working.