Named gradient · uiGradients

Magic

Magic is a purple gradient from uiGradients (MIT) — #59c173 → #a17fe0 → #5d26c1 at 90°. Shown here interpolated in OKLab, next to the original sRGB, with the worst-case contrast for white and black text and every export.

Aa — the quick brown fox
black text · worst 2.51:1 · fails
white 2.26 failsblack 2.51 failsbanding medium

Same stops, three spaces

The source renders this in sRGB. The number is how much chroma survives at the dullest point along the line — the difference between the first bar and the others is the grey that OKLab removes.

sRGB22%
OKLab21%
OKLCH67%

Report

  • white ink: worst 2.26:1 at 0% (fails AA); black ink: worst 2.51:1 at 100% (fails AA) → use black text.
  • Neither ink passes AA at the worst point — treat as decorative or add a scrim (rgba(0,0,0,.35) typically lifts white ink past 4:1).
  • Banding medium: ~8px bands at 1440px — add grain 16 (≈2% soft-light noise) or shorten the ramp.

Export

css
.gradient {
  background-image: linear-gradient(90deg, #59c173 0%, #61bd7d 3.57%, #68b986 7.14%, #6eb58f 10.71%, #74b198 14.29%, #7aada0 17.86%, #7fa9a8 21.43%, #84a4af 25%, #89a0b7 28.57%, #8d9bbe 32.14%, #9196c5 35.71%, #9691cc 39.29%, #9a8bd3 42.86%, #9d85d9 46.43%, #a17fe0 50%, #9c7ade 53.57%, #9674dc 57.14%, #916eda 60.71%, #8c69d8 64.29%, #8763d6 67.86%, #825dd3 71.43%, #7d57d1 75%, #7851cf 78.57%, #734bcd 82.14%, #6f45ca 85.71%, #6a3ec8 89.29%, #6637c6 92.86%, #612fc3 96.43%, #5d26c1 100%);
  background-image: linear-gradient(90deg in oklab, #59c173 0%, #a17fe0 50%, #5d26c1 100%);
}
tailwind v4
bg-linear-to-r/oklab from-[#59c173] via-[#a17fe0] to-[#5d26c1]
svg
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="600" viewBox="0 0 1440 600"><defs><linearGradient id="bs-gradient" gradientUnits="userSpaceOnUse" x1="0" y1="300" x2="1440" y2="300"><stop offset="0%" stop-color="#59c173"/><stop offset="3.57%" stop-color="#61bd7d"/><stop offset="7.14%" stop-color="#68b986"/><stop offset="10.71%" stop-color="#6eb58f"/><stop offset="14.29%" stop-color="#74b198"/><stop offset="17.86%" stop-color="#7aada0"/><stop offset="21.43%" stop-color="#7fa9a8"/><stop offset="25%" stop-color="#84a4af"/><stop offset="28.57%" stop-color="#89a0b7"/><stop offset="32.14%" stop-color="#8d9bbe"/><stop offset="35.71%" stop-color="#9196c5"/><stop offset="39.29%" stop-color="#9691cc"/><stop offset="42.86%" stop-color="#9a8bd3"/><stop offset="46.43%" stop-color="#9d85d9"/><stop offset="50%" stop-color="#a17fe0"/><stop offset="53.57%" stop-color="#9c7ade"/><stop offset="57.14%" stop-color="#9674dc"/><stop offset="60.71%" stop-color="#916eda"/><stop offset="64.29%" stop-color="#8c69d8"/><stop offset="67.86%" stop-color="#8763d6"/><stop offset="71.43%" stop-color="#825dd3"/><stop offset="75%" stop-color="#7d57d1"/><stop offset="78.57%" stop-color="#7851cf"/><stop offset="82.14%" stop-color="#734bcd"/><stop offset="85.71%" stop-color="#6f45ca"/><stop offset="89.29%" stop-color="#6a3ec8"/><stop offset="92.86%" stop-color="#6637c6"/><stop offset="96.43%" stop-color="#612fc3"/><stop offset="100%" stop-color="#5d26c1"/></linearGradient></defs><rect width="1440" height="600" fill="url(#bs-gradient)"/></svg>
dtcg
{
  "magic": {
    "$type": "gradient",
    "$value": [
      {
        "color": {
          "colorSpace": "srgb",
          "components": [
            0.349,
            0.757,
            0.451
          ],
          "hex": "#59c173"
        },
        "position": 0
      },
      {
        "color": {
          "colorSpace": "srgb",
          "components": [
            0.631,
            0.498,
            0.878
          ],
          "hex": "#a17fe0"
        },
        "position": 0.5
      },
      {
        "color": {
          "colorSpace": "srgb",
          "components": [
            0.365,
            0.149,
            0.757
          ],
          "hex": "#5d26c1"
        },
        "position": 1
      }
    ],
    "$extensions": {
      "com.brandsweets": {
        "kind": "linear",
        "css": "linear-gradient(90deg in oklab, #59c173 0%, #a17fe0 50%, #5d26c1 100%)",
        "interpolation": "oklab",
        "angle": 90,
        "name": "Magic",
        "contrast": {
          "white": {
            "ratio": 2.258,
            "at": 0,
            "passesAA": false,
            "passesAALarge": false
          },
          "black": {
            "ratio": 2.513,
            "at": 1,
            "passesAA": false,
            "passesAALarge": false
          },
          "suggestedInk": "#000000"
        }
      }
    },
    "$description": "Magic (uiGradients, MIT), rendered in OKLab."
  }
}

Tagged

More purple gradients

mcpConnect your agent to the gradient engine
live endpoint

Point any MCP client at the shared gradients endpoint and your agent gets the same engine as this page — make_gradient returns CSS with the interpolation space, Tailwind v4, SVG, a PNG URL, a DTCG token and the contrast report in one call; brand_gradients derives the whole contact sheet from a brand or a palette. Read-only, no key. Every gradient is a /gradients/new/… link: open it, refine, paste it back.

endpointhttps://mcp.brandsweets.com/gradients/mcp
claude mcp add --transport http brandsweets-gradients https://mcp.brandsweets.com/gradients/mcp
try this prompt

take the Magic gradient (#59c173, #a17fe0, #5d26c1), re-interpolate it in oklch, and tell me the worst-case contrast for white text

Want the agent to remember your picks and write them into a living brand? Create a free BrandSweets workspace.

Machine-readable: gradients.md · From uiGradients (MIT) — licences