Gradient maker

deg
Export
Aa — the quick brown fox
black text · worst 4.47:1 · AA large only
white 1.45 black 4.47 AA-lgbanding low · 2.38px
6 stops · click the track to add · drag to move · select to edit

Same stops, three spaces

Click a bar to interpolate there. The number is how much chroma survives at the dullest point.

* some samples left sRGB and were gamut-mapped (slight hue drift there). Grey/white endpoints carry the other stop's hue (powerless hue), so green→white stays green.

Contrast along the line

WCAG ratio for white and black ink at every point. Shaded = below 4.5:1 for black ink. The marker is the exact worst point.

worst black 4.47:1 at 0% · AA large only
Nudges the stop nearest 0% in lightness (hue kept). Or a scrim rgb(255 255 255 / .35) under the text takes it from 4.47:1 to 8.05:1.

Easing

Stops are not evenly spaced. x = stop position, y = mix amount. Baked into 12–16 stops, or one colour-hint when that is within 0.02.

cubic-bezier(0, 0, 1, 1)
plain · 6 stops · 76 B

Derive from a palette or brand

Paste hexes (primary first) or a public brand slug. Every type is a pure function of the palette — the same contact sheet an agent gets from brand_gradients.

SpacerandomiseClick trackadd stopDragmove stopremove stop←/→nudge · undo/redo

Export

CSS with the interpolation space, Tailwind v4, SVG with correct geometry, a DTCG token, and the PNG.

Apply this to a brand → sign in

.gradient {
  background-image: linear-gradient(135deg, #635bff 0%, #6166ff 1.43%, #5f6fff 2.86%, #5d79ff 4.29%, #5a82ff 5.71%, #578bff 7.14%, #5493ff 8.57%, #509cff 10%, #4ba4ff 11.43%, #46acff 12.86%, #3fb4ff 14.29%, #38bcff 15.71%, #2ec4ff 17.14%, #1fccff 18.57%, #00d4ff 20%, #04d6f7 21.43%, #0ad8ee 22.86%, #10dae6 24.29%, #16dcde 25.71%, #1bddd5 27.14%, #20dfcc 28.57%, #25e0c3 30%, #29e2ba 31.43%, #2ee3b0 32.86%, #32e4a7 34.29%, #36e69d 35.71%, #3be792 37.14%, #3fe887 38.57%, #43e97b 40%, #5de877 41.43%, #71e773 42.86%, #81e66f 44.29%, #90e56a 45.71%, #9de365 47.14%, #a9e260 48.57%, #b5e05b 50%, #c0df56 51.43%, #cadd50 52.86%, #d4dc49 54.29%, #deda42 55.71%, #e7d839 57.14%, #f0d630 58.57%, #f9d423 60%, #fbcc2c 61.43%, #fcc433 62.86%, #fdbc39 64.29%, #feb43e 65.71%, #ffac43 67.14%, #ffa446 68.57%, #ff9b4a 70%, #ff934d 71.43%, #ff8a4f 72.86%, #ff8151 74.29%, #ff7853 75.71%, #ff6e55 77.14%, #ff6357 78.57%, #ff5858 80%, #f45d69 81.43%, #e96277 82.86%, #de6585 84.29%, #d36891 85.71%, #c86a9e 87.14%, #bd6ba9 88.57%, #b26bb5 90%, #a76bc0 91.43%, #9c6acb 92.86%, #9169d5 94.29%, #8567e0 95.71%, #7a64ea 97.14%, #6f60f5 98.57%, #635bff 100%);
  background-image: linear-gradient(135deg in oklab, #635bff 0%, #00d4ff 20%, #43e97b 40%, #f9d423 60%, #ff5858 80%, #635bff 100%);
}
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

derive a hero gradient from #635bff and #00d4ff that passes AA for white text

this gradient as a URL

https://brandsweets.com/gradients/new/v1.635bff-00d4ff-43e97b-f9d423-ff5858-635bff?a=135

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