网站导航

设计令牌

圆角

可应用于整个元素或单个角的预设圆角尺度。

本页内容

类

类声明
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-2xl1rem16px
r-3xl1.5rem24px
r-4xl2rem32px
比较全部圆角值
r-xs
r-sm
r-md
r-lg
r-xl
r-2xl
r-3xl
r-4xl

圆角与裁剪相互独立

r-4xl 让父元素的背景与边框呈现圆角,不会为子元素设置相同圆角,也不会自动裁剪子元素的绘制区域。如果父元素应沿圆角边缘裁剪内容,请添加 overflow-hidden。

父元素的圆角不会让子元素也变圆

两个父元素都使用 r-4xl 与相同内容,只有右侧父元素添加 overflow-hidden。蓝色用于识别子表面,虚线轮廓则标示父元素的圆角边缘。

文字说明
  1. 两个父盒子都使用 r-4xl,其预设值为 2rem。两者包含相同的子元素与父元素内容区域,尺寸由相同内容决定。
  2. 左侧父元素保留默认的可见溢出。它自身的背景有圆角,但蓝色子元素仍在顶部绘制矩形。
  3. 右侧父元素添加 overflow-hidden,将同一个子矩形沿父元素的圆角边缘裁剪;子元素并没有继承圆角值。
  4. 虚线轮廓是检查用标注,不是 r-4xl 输出的边框。颜色只用于在两个示例中识别同一个子元素。

rtl- 这类物理族始终指向左上角。rss- 这类逻辑族遵循块起始侧与行内起始侧,因此对应的物理角取决于书写模式和方向。上方列出全部映射关系。

相邻曲线可能重叠时,浏览器会缩小过大的圆角值。因此 pill 应用于宽盒子时形成胶囊形,应用于正方形时形成圆形;它不会让元素变成正方形。

需要直角时,请使用直接值函数 r(0),或对应单个角的形式,例如 rtl(0)。预设没有 --radius-none 令牌,也不接受 -r-md 这类负值令牌形式。

用法

从底板到其中的缩略图,逐步缩小圆角。

FN

Field notes

Every Friday

Weekly
<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)  }}