Guides

半径

选择主题中的正确半径设置。

主题设置

主题 radius 设置管理应用于组件的半径因子:

<Theme radius="medium">
<TextField.Root size="3" placeholder="回复…">
<TextField.Slot side="right" px="1">
<Button size="2">发送</Button>
</TextField.Slot>
</TextField.Root>
</Theme>
none
small
medium
large
full

生成的 border-radius 是上下文相关的,并且根据组件的不同而有所不同。例如,当设置为 full 时,一个 Button 会变成药丸形状,而一个 Checkbox 则不会完全变圆,以防与 Radio 混淆。

<Theme radius="full">
<Flex align="center" gap="3">
<Button>保存</Button>
<Switch defaultChecked />
<Checkbox defaultChecked />
</Flex>
</Theme>

半径覆盖

某些组件允许你使用它们自己的 radius 属性来覆盖半径因子。

<Flex align="center" gap="3">
<Button radius="none">保存</Button>
<Button radius="small">保存</Button>
<Button radius="medium">保存</Button>
<Button radius="large">保存</Button>
<Button radius="full">保存</Button>
</Flex>

渲染面板的组件,如卡片、对话框和弹出框等,不会拥有 radius 属性,但会从主题中继承半径设置。大多数基于文本的组件也没有 radius 属性。

半径缩放

组件中使用的半径值来自于一个 6 步的缩放。

1
2
3
4
5
6

虽然你不能直接在特定组件上使用特定的步骤——radius 属性只是用于设置半径因子——但你可以使用半径缩放来为你自己的组件设置样式。

半径令牌通过 CSS 变量访问。你可以使用这些令牌为你的自定义组件设置样式,确保它们与主题的其他部分保持一致。

/* 自动响应半径因子的半径值 */
var(--radius-1);
var(--radius-2);
var(--radius-3);
var(--radius-4);
var(--radius-5);
var(--radius-6);
/* 控制主题半径的乘数 */
var(--radius-factor);
/*
* 用于计算完全圆润半径的变量。
* 通常用于 CSS 的 `max()` 函数中。
*/
var(--radius-full);
/*
* 用于计算拇指元素半径的变量。
* 通常用于 CSS 的 `max()` 函数中。
*/
var(--radius-thumb);