You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Figma径向梯度转为CSS?API坐标与CSS参数映射疑问

从Figma API径向梯度坐标推导CSS参数问题

我在Figma中给一个正方形添加了径向渐变,拖拽控制柄的设置如下:

  • 渐变中心置于正方形右边缘中点
  • 渐变线的第二个端点置于正方形下边缘中点
  • 控制渐变扁平度的垂直线上的点置于正方形上边缘中点

切换到开发者模式后,图形生成的CSS代码为:

background: radial-gradient(70.71% 70.71% at 100% 50%, #EFF4F5 0%, #C1C4C6 100%);

当缩短控制扁平度的垂直线后,CSS中的第一个百分比数值会减小,例如:

background: radial-gradient(47.17% 70.71% at 100% 50%, #EFF4F5 0%, #C1C4C6 100%);

通过Figma API获取到的该渐变结构如下:

{
  "blendMode": "NORMAL",
  "type": "GRADIENT_RADIAL",
  "gradientHandlePositions": [
    {
      "x": 1.0000001490116865,
      "y": 0.5000002682209939
    },
    {
      "x": 0.5000001490116759,
      "y": 1.0000002086163384
    },
    {
      "x": 0.4999999701976776, // 垂直线缩短后此值变为0.6879759173955349
      "y": 2.9802318834981634e-8 // 垂直线缩短后此值变为0.18797598797746545
    }
  ],
  "gradientStops": [
    // ...
  ]
}

可以确定gradientHandlePositions中的坐标是相对于正方形宽高的比例值:

  • 第一个坐标对应渐变中心(与CSS中的at 100% 50%部分匹配)
  • 第二个坐标对应渐变线的端点
  • 第三个坐标对应控制渐变扁平度的垂直线上的点

但我不清楚如何从这些坐标推导出CSS中radial-gradient开头的(47.17% 70.71% at这部分参数,找不到两者之间的关联关系。


内容的提问来源于stack exchange,提问作者muturgan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:47:31