渐变按钮合集(6 款 CSS 渐变按钮源码)

CSS 许可:自研原创

6 款自研渐变按钮:流动渐变、扫光特效、渐变描边、彩虹流动、渐变文字、立体渐变,全部纯 CSS 实现,适合 CTA 主按钮场景,复制即用。

效果演示(真实可交互)

演示区 6 款渐变按钮覆盖了主流视觉方向:①流动渐变适合品牌主色、②扫光适合 H5 落地页 CTA、③渐变描边适合需要克制的次按钮、④彩虹适合活动促销、⑤渐变文字适合导航链接、⑥立体渐变适合需要物理按压感的场景。全部 hover 可交互。

完整代码

① 流动渐变(背景 300% 宽度循环平移,形成流动感):

.btn-flow {
  background: linear-gradient(90deg, #6c8cff, #b388ff, #ff6b8a, #6c8cff);
  background-size: 300% 100%;
  animation: flow 5s linear infinite;
}
@keyframes flow { to { background-position: 300% 0; } }

③ 渐变描边(双背景:内层实色 + 外层渐变,见边框即见渐变):

.btn-border {
  background: #fff; color: #6c8cff; border: 2px solid transparent;
  background-image: linear-gradient(#fff, #fff),
    linear-gradient(120deg, #6c8cff, #b388ff, #ff6b8a);
  background-origin: padding-box, border-box;
  background-clip: padding-box, border-box;
}

⑤ 渐变文字(background-clip: text 把渐变裁进字形里):

.btn-text {
  color: transparent;
  background-image: linear-gradient(90deg, #6c8cff, #b388ff, #ff6b8a);
  -webkit-background-clip: text;
  background-clip: text;
}

②④⑥ 款与上述写法同源:扫光是伪元素高光位移、彩虹是首尾同色的大背景平移、立体是底部色块阴影加 :active 位移,完整样式见演示区 .gb-* 系列。注意 background-clip: text 需要 -webkit- 前缀以兼容 Safari。

参数说明

参数位置说明
渐变配色linear-gradient(...)按品牌色调整色标顺序与数量
流动速度animation: ... 5s数字越小流动越快
圆角border-radius默认 12px,胶囊按钮可加大
扫光角度skewX(-20deg)控制高光倾斜度
立体厚度box-shadow: 0 6px 0底部色块高度即按压行程

兼容性与性能

常见问题

Q: 能商用吗? 可以。本组件为粤喵自研,免费商用无需署名。

Q: 渐变流动看起来不平滑、有跳变? 检查渐变首尾颜色是否一致(如 ④ 首尾都是 #ff6b8a),并且 background-size 与 background-position 的百分比要配套,否则循环点会闪烁。

Q: 渐变文字按钮点击没反馈? 渐变文字没有背景色,按下状态不明显。可以叠加 :active 缩放(如 scale(.96))或给按钮加一个半透明底,按压感更强。

Q: 能用在深色模式吗? 可以,②④⑥ 的深色渐变本身适合深色主题;③ 的内层白色需要换成 #1c2442 之类深色,避免白框刺眼。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核