如何将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
相关产品推荐
相关产品推荐

