AIColors

免费工具 · OKLCH 插值

CSS 渐变生成器 — OKLCH · 线性 · 径向 · 锥形

用感知均匀的 OKLCH 插值构建任意 CSS 渐变。可与传统 sRGB 并排对比,再复制 CSS、Tailwind v4、SCSS 或 SVG。

135°
0%
100%

预设

代码

CSS

background: linear-gradient(135deg in oklch, #7C3AED 0%, #EC4899 100%);

Tailwind 任意值

bg-[linear-gradient(135deg in oklch, #7C3AED 0%, #EC4899 100%)]

SCSS

$gradient: linear-gradient(135deg in oklch, #7C3AED 0%, #EC4899 100%);

SVG

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
  <defs>
    <linearGradient id="g-1778840788991" x1="14.6%" y1="14.6%" x2="85.4%" y2="85.4%">
    <stop offset="0%" stop-color="#7C3AED" />
    <stop offset="100%" stop-color="#EC4899" />
    </linearGradient>
  </defs>
  <rect width="100" height="100" fill="url(#g-1778840788991)"/>
</svg>

为什么用 OKLCH

渐变的中段,正是 sRGB 翻车的地方。

下方两个渐变都是从琥珀色到蓝色,起点相同、终点相同,唯一不同的是插值色彩空间。sRGB 会经过一段灰扑扑的"脏中点",OKLCH 则全程纯净。

sRGB

注意中段那块灰褐色——那是 sRGB 在按通道平均,产生了一种两端颜色里都不存在的灰色。

OKLCH

OKLCH 在感知均匀的空间里插值,中点饱和度保持完整,从一端到另一端读起来像顺滑的色相过渡。

结论

只要是两个饱和色之间的渐变,默认就用 OKLCH。仅当你必须支持 Safari 16.4 / Chrome 111 / Firefox 113 之前的老浏览器才用 sRGB——而且即便如此,也应该用 @supports not (background: linear-gradient(in oklch, red, blue)) 把它作为回退。

线性 vs 径向 vs 锥形——分别适合什么

三种 CSS 渐变函数对应三种不同任务。选错类型,是渐变设计里最常见的错误。

线性

用于英雄区背景、按钮表面、大面积色彩铺陈,任何需要干净方向性过渡的地方。90% 的场景的默认选择。

径向

用于聚光效果、柔和暗角、发光按钮、深色模式的层次感。任何"焦点在某一点向外散开"的场景。

锥形

用于色环、加载转圈、进度环、风格化色相展示。生产 UI 里少见——但需要时无可替代。

三步生成一个干净的渐变

1

选类型和色标

没有特殊需求就用线性。两个色标是下限,四个通常够用——颜色越多并不会让效果更好。

2

OKLCH 保持开启

OKLCH 是默认有它的道理。除非确实需要支持老浏览器,否则不要切回 sRGB;开启对比模式可以验证 OKLCH 版本是否真的更好。

3

复制可上线的代码

CSS 可直接粘进样式表;Tailwind 任意值在 v4 中支持 in oklch 语法;SCSS 提供变量;SVG 提供可内联到图标或英雄区的渐变定义。

常见问题

这个渐变生成器是免费的吗?
完全免费,无需注册,无广告。所有计算都在浏览器本地完成,不上传任何内容。
哪些浏览器支持 OKLCH 渐变插值?
"in oklch" 插值提示在 Chrome 111+、Safari 16.4+、Firefox 113+ 中均已支持,覆盖 2026 年全球约 95% 的流量。更老的浏览器会自动回退为两端色之间的 sRGB 插值。
为什么我的 "in oklch" 渐变在 Safari 和 Chrome 里看起来不一样?
理论上不应该不一样——CSS Color 4 规范对插值方式有明确定义。出现差异通常是三种原因之一:Safari 的页面使用了宽色域显示配置;颜色超出 sRGB 色域被裁剪方式不同;或某个浏览器低于 OKLCH 支持版本,回退到了 sRGB。
色标用百分比还是命名位置好?
推荐百分比,更明确、更易理解。CSS 规范也支持 "to right"、"to bottom" 等命名位置,但它们映射到固定角度(90deg、180deg),你完全可以用角度控件直接表达。
Tailwind 自带的 bg-gradient-* 和这里的任意值有什么区别?
Tailwind 自带的 bg-gradient-to-r 等只支持主题色之间的 sRGB 插值。任意值形式 bg-[linear-gradient(in oklch, ...)] 让你能用 OKLCH 插值、任意数量的色标、任意颜色。Tailwind v4 在主题里原生支持 OKLCH,未来会更顺手。
能把渐变分享给团队吗?
可以。点击分享,页面 URL 会携带完整渐变状态(类型、角度、插值方式、每个色标)。打开链接的人会看到一模一样的渐变,可直接复制。
最多可以加几个色标?
工具上限 6 个。实践中两到三个最干净,四个适合极光效果,六个适合光谱。再多通常应该改用锥形渐变或 SVG mesh,而不是继续加线性色标。
SVG 输出在所有浏览器都能用吗?
线性和径向 SVG 渐变可以一直兼容到 IE9。锥形渐变在 SVG 里需要额外 hack,我们这里没做——锥形请用 CSS 输出,应用到 HTML 元素上。

搭配我们的其他色彩工具