Named gradient · WebGradients

Shy Rainbow

Shy Rainbow is a red gradient from WebGradients (MIT) — #eea2a2 → #bbc1bf → #57c6e1 at 0°. 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 10.32:1 · AA
white 1.83 failsblack 10.32 AAbanding 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.

sRGB4%
OKLab4%
OKLCH7%

Report

  • white ink: worst 1.83:1 at 19% (fails AA); black ink: worst 10.32:1 at 0% (AA) → use black text.
  • Banding medium: ~5px bands at 1440px — add grain 9 (≈1% soft-light noise) or shorten the ramp.

Export

css
.gradient {
  background-image: linear-gradient(0deg, #eea2a2 0%, #eba4a4 1.36%, #e8a7a6 2.71%, #e4a9a8 4.07%, #e1acaa 5.43%, #deaeac 6.79%, #dab0ae 8.14%, #d6b2b1 9.5%, #d3b5b3 10.86%, #cfb7b5 12.21%, #cbb9b7 13.57%, #c7bbb9 14.93%, #c3bdbb 16.29%, #bfbfbd 17.64%, #bbc1bf 19%, #b5c2c2 20.64%, #b0c2c4 22.29%, #aac3c7 23.93%, #a4c3c9 25.57%, #9ec3cc 27.21%, #97c4ce 28.86%, #91c4d0 30.5%, #8ac5d3 32.14%, #83c5d5 33.79%, #7bc5d8 35.43%, #73c5da 37.07%, #6bc6dc 38.71%, #61c6df 40.36%, #57c6e1 42%);
  background-image: linear-gradient(0deg in oklab, #eea2a2 0%, #bbc1bf 19%, #57c6e1 42%);
}
tailwind v4
bg-linear-to-t/oklab from-[#eea2a2] via-[#bbc1bf] via-19% to-[#57c6e1] to-42%
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="720" y1="600" x2="720" y2="0"><stop offset="0%" stop-color="#eea2a2"/><stop offset="1.36%" stop-color="#eba4a4"/><stop offset="2.71%" stop-color="#e8a7a6"/><stop offset="4.07%" stop-color="#e4a9a8"/><stop offset="5.43%" stop-color="#e1acaa"/><stop offset="6.79%" stop-color="#deaeac"/><stop offset="8.14%" stop-color="#dab0ae"/><stop offset="9.5%" stop-color="#d6b2b1"/><stop offset="10.86%" stop-color="#d3b5b3"/><stop offset="12.21%" stop-color="#cfb7b5"/><stop offset="13.57%" stop-color="#cbb9b7"/><stop offset="14.93%" stop-color="#c7bbb9"/><stop offset="16.29%" stop-color="#c3bdbb"/><stop offset="17.64%" stop-color="#bfbfbd"/><stop offset="19%" stop-color="#bbc1bf"/><stop offset="20.64%" stop-color="#b5c2c2"/><stop offset="22.29%" stop-color="#b0c2c4"/><stop offset="23.93%" stop-color="#aac3c7"/><stop offset="25.57%" stop-color="#a4c3c9"/><stop offset="27.21%" stop-color="#9ec3cc"/><stop offset="28.86%" stop-color="#97c4ce"/><stop offset="30.5%" stop-color="#91c4d0"/><stop offset="32.14%" stop-color="#8ac5d3"/><stop offset="33.79%" stop-color="#83c5d5"/><stop offset="35.43%" stop-color="#7bc5d8"/><stop offset="37.07%" stop-color="#73c5da"/><stop offset="38.71%" stop-color="#6bc6dc"/><stop offset="40.36%" stop-color="#61c6df"/><stop offset="42%" stop-color="#57c6e1"/></linearGradient></defs><rect width="1440" height="600" fill="url(#bs-gradient)"/></svg>
dtcg
{
  "shy-rainbow": {
    "$type": "gradient",
    "$value": [
      {
        "color": {
          "colorSpace": "srgb",
          "components": [
            0.933,
            0.635,
            0.635
          ],
          "hex": "#eea2a2"
        },
        "position": 0
      },
      {
        "color": {
          "colorSpace": "srgb",
          "components": [
            0.733,
            0.757,
            0.749
          ],
          "hex": "#bbc1bf"
        },
        "position": 0.19
      },
      {
        "color": {
          "colorSpace": "srgb",
          "components": [
            0.341,
            0.776,
            0.882
          ],
          "hex": "#57c6e1"
        },
        "position": 0.42
      }
    ],
    "$extensions": {
      "com.brandsweets": {
        "kind": "linear",
        "css": "linear-gradient(0deg in oklab, #eea2a2 0%, #bbc1bf 19%, #57c6e1 42%)",
        "interpolation": "oklab",
        "angle": 0,
        "name": "Shy Rainbow",
        "contrast": {
          "white": {
            "ratio": 1.827,
            "at": 0.19,
            "passesAA": false,
            "passesAALarge": false
          },
          "black": {
            "ratio": 10.325,
            "at": 0,
            "passesAA": true,
            "passesAALarge": true
          },
          "suggestedInk": "#000000"
        }
      }
    },
    "$description": "Shy Rainbow (WebGradients, MIT), rendered in OKLab."
  }
}

Tagged

More red 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 Shy Rainbow gradient (#eea2a2, #bbc1bf, #57c6e1), 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 WebGradients (MIT) — licences