#image("1.png")
= 例子
#image("2.png")
渐变在文本上也受支持，但仅当将相对性设置为（默认值）或 时。若要创建逐字或逐字形渐变，可以手动或通过显示规则将文本的字词或字符换行到框中。auto"parent"
#image("3.png")
= 停止
渐变由一系列停靠点组成。每个停靠点都有一个颜色和一个偏移量。偏移量是 和 之间的比率或 和 之间的角度。偏移量是一个相对位置，用于确定停止点沿梯度的距离。光标的颜色是该位置的渐变颜色。在定义渐变时，可以选择省略偏移量。在这种情况下，Typst 将均匀地间隔所有停靠点。0%100%0deg360deg
= 相对性
和停靠点的位置取决于容器的尺寸。这个容器可以是它被涂漆的形状，也可以是最近的周围容器。这由梯度构造函数的参数控制。默认情况下，渐变是相对于它们所绘制的形状的，除非渐变应用于文本，在这种情况下，渐变是相对于最接近的祖先容器的。0%100%relative

Typst 按如下方式确定祖先容器：

对于放置在文档根/顶层的形状，最接近的祖先是页面本身。

对于其他形状，祖先是包含该形状的最内层块或框。这包括由显示规则和元素隐式创建的框和块。例如，旋转不会影响渐变的父级，但栅格会影响。
= 色彩空间和插值
渐变可以在任何颜色空间中插值。默认情况下，渐变在 Oklab 色彩空间中插值，这是一个感知均匀的色彩空间。这意味着渐变将被视为具有平滑的颜色渐进。这对于数据可视化特别有用。

但是，您可以选择在所需的任何受支持的颜色空间中插入渐变，但请注意，某些颜色空间不适合在颜色之间进行感知插值。选择插值空间时，请参阅下表。
#image("4.png")
= 方向
某些渐变对方向敏感。例如，线性渐变具有确定其方向的角度。Typst 使用顺时针角度，0° 从左到右，90°从上到下，180°从右到左，270°从下到上。
#image("5.png")
= 预设
Typst 预定义了可用于渐变的颜色映射表。有关详细信息，请参阅颜色文档。

= 关于文件大小的注意事项
梯度可能非常大，尤其是当它们有很多停靠点时。这是因为渐变存储为颜色和偏移量列表，这可能会占用大量空间。如果您担心文件大小，则应考虑以下几点：

SVG 梯度目前编码效率低下。这将在未来得到改进。

color.hsv、color.hsl 和 color.oklch 色彩空间中的 PDF 渐变存储为 color.oklab 颜色列表，中间有额外的停靠点。这样就避免了在 PDF 文件中对这些色彩空间进行编码的需要，但它确实会为渐变添加额外的停顿，从而增加文件大小。
= 定义
= linear
创建新的线性渐变，其中颜色沿直线过渡。
#image("6.png")
#image("7.png")
= radial
创建新的径向渐变，其中颜色从原点辐射出去。

渐变由两个圆圈定义：焦点圆圈和结束圆圈。焦圆是一个具有中心和半径的圆，它定义了渐变开始的点，并具有第一个停止点的颜色。结束圆是具有中心和半径的圆，它定义了渐变结束的点，并具有最后一个停靠点的颜色。然后将梯度插值在这两个圆之间。focal-centerfocal-radiuscenterradius

使用这四个值，也称为起始圆的焦点和结束圆的中心和半径，我们可以定义一个比基本径向渐变具有更有趣属性的渐变。
#image("8.png")
#image("9.png")
= conic
创建新的圆锥渐变，其中颜色围绕中心点径向变化。

您可以使用参数来控制渐变的中心点。默认情况下，中心点是形状的中心。center
#image("10.png")
#image("11.png")
= sharp
创建此渐变的锐化版本。

锐利的渐变在颜色之间具有离散的跳跃，而不是平滑的过渡。它们对于创建预设渐变的颜色列表特别有用。
#image("12.png")
= repeat
重复此渐变给定的次数，并可选择在每次重复时镜像它。
#image("13.png")
#image("14.png")
#image("15.png")
