alejah
← back to projects

Ramp Color Palette

A Figma plugin. Give it one color and it builds the whole palette — eleven shades, from 50 to 950 — creates a COLOR variable for every step, and optionally draws a documentation sheet whose swatches stay bound to those variables.

Figma Plugin APIJavaScriptDesign systems

Requires the Figma desktop app. Development plugins can't be imported from the browser.


Installing it

  1. 01Download the zip and unzip it. You'll get a ramp-color-palette folder.
  2. 02Open the Figma desktop app and any design file you can edit.
  3. 03Right-click anywhere on the canvas → Plugins → Development → Import plugin from manifest…
  4. 04Select manifest.json inside that folder. It now appears in that same Development submenu.

What it looks like

Two views of the Ramp Color Palette panel in Figma: an empty form on the left, and on the right the same form filled in with a blue base color and the eleven hex values generated from it.
Empty, then filled. The panel follows the editor's theme — these are Figma's own color tokens, not a copy of them.
A generated swatch sheet on the Figma canvas: two rows of eleven color chips, a blue primary ramp above a gray one, each chip labelled with its step number and hex value.
The optional swatch sheet. Each chip's fill is bound to its variable, so editing the variable updates the sheet.

How the ramp is derived

Hue is held constant from your input. The lightness curve is lifted from whichever Tailwind family sits nearest, and saturation is that family's scaled by how much more — or less — saturated your color is at the step it anchors to. Your exact hex survives at whichever step its lightness lands closest to, so the color you started from is still in the ramp.

Chip labels flip between black and white at a relative luminance of 0.179 — the point where a swatch's contrast against black equals its contrast against white. The obvious 0.5 midpoint would put mid-greys on white text at 2.5:1 where black gives 8.5:1. The README has the measurements.

Known limits