设计令牌
圆角
可应用于整个元素或单个角的预设圆角尺度。
本页内容
类
| 类 | 声明 |
|---|---|
r-<name> | border-radius: var(--radius-<name>); |
rbl-<name> | border-bottom-left-radius: var(--radius-<name>); |
rbr-<name> | border-bottom-right-radius: var(--radius-<name>); |
ree-<name> | border-end-end-radius: var(--radius-<name>); |
res-<name> | border-end-start-radius: var(--radius-<name>); |
rse-<name> | border-start-end-radius: var(--radius-<name>); |
rss-<name> | border-start-start-radius: var(--radius-<name>); |
rtl-<name> | border-top-left-radius: var(--radius-<name>); |
rtr-<name> | border-top-right-radius: var(--radius-<name>); |
完全圆角使用固定的 pill 工具类,而不是圆角令牌;它只设置 border-radius: calc(infinity * 1px)。
值
八个预设圆角值都是 rem 长度。像素换算假设根元素字号为 16px。圆角只改变角的形状,不会设置盒子的尺寸。
| 类 | 值 |
|---|---|
r-xs | .125rem2px |
r-sm | .25rem4px |
r-md | .375rem6px |
r-lg | .5rem8px |
r-xl | .75rem12px |
r-2xl | 1rem16px |
r-3xl | 1.5rem24px |
r-4xl | 2rem32px |
比较全部圆角值
r-xsr-smr-mdr-lgr-xlr-2xlr-3xlr-4xl圆角与裁剪相互独立
r-4xl 让父元素的背景与边框呈现圆角,不会为子元素设置相同圆角,也不会自动裁剪子元素的绘制区域。如果父元素应沿圆角边缘裁剪内容,请添加 overflow-hidden。
父元素的圆角不会让子元素也变圆
两个父元素都使用 r-4xl 与相同内容,只有右侧父元素添加 overflow-hidden。蓝色用于识别子表面,虚线轮廓则标示父元素的圆角边缘。
文字说明
- 两个父盒子都使用 r-4xl,其预设值为 2rem。两者包含相同的子元素与父元素内容区域,尺寸由相同内容决定。
- 左侧父元素保留默认的可见溢出。它自身的背景有圆角,但蓝色子元素仍在顶部绘制矩形。
- 右侧父元素添加 overflow-hidden,将同一个子矩形沿父元素的圆角边缘裁剪;子元素并没有继承圆角值。
- 虚线轮廓是检查用标注,不是 r-4xl 输出的边框。颜色只用于在两个示例中识别同一个子元素。
rtl- 这类物理族始终指向左上角。rss- 这类逻辑族遵循块起始侧与行内起始侧,因此对应的物理角取决于书写模式和方向。上方列出全部映射关系。
相邻曲线可能重叠时,浏览器会缩小过大的圆角值。因此 pill 应用于宽盒子时形成胶囊形,应用于正方形时形成圆形;它不会让元素变成正方形。
需要直角时,请使用直接值函数 r(0),或对应单个角的形式,例如 rtl(0)。预设没有 --radius-none 令牌,也不接受 -r-md 这类负值令牌形式。
用法
从底板到其中的缩略图,逐步缩小圆角。
FN
Field notes
Every Friday
<div class="… r-lg"> <div class="… r-md">FN</div> <div> <p>Field notes</p> <p>Every Friday</p> </div> <span class="… pill">Weekly</span></div>生成的 CSS
@layer theme { :root, :host { --radius-md: .375rem; --radius-lg: .5rem }}@layer utilities { .r-lg { border-radius: var(--radius-lg) } .r-md { border-radius: var(--radius-md) } .pill { border-radius: calc(infinity * 1px) }}自定义
修改预设值或添加令牌:--radius-card 会创建 r-card 和各个单角类。
@theme { --radius-md: .5rem; --radius-card: 1.25rem;}生成的 CSS
@layer theme { :root, :host { --radius-card: 1.25rem }}@layer utilities { .r-card { border-radius: var(--radius-card) }}
