CSS 变量

我不喜欢 CSS 变量

我并不觉得在组件库中大量使用 CSS 变量是一个良好的设计。这会阻断我们正常的思维逻辑。

比如您不想显示 <Button> 组件的边框。您自然而然想到的是使用 CSS Style,比如:

<Button style="border-width: 0;">确认</Button>

然而,组件设计时,如果将 padding 设计为使用 CSS 变量,上面的写法可能并不是您想要的结果,甚至根本不起作用。此时您可以这样写:

<Button --sunp-border="0">确认</Button>

Svelte 会在 <Button> 组件外层包裹一层 <svelte-css-wrapper>。这样做实际上破坏了原本的文档结构,但是 Svelte 又不得不这么做。

<svelte-css-wrapper style="display: contents; --sunp-border: 0px;">
  <button>...</button>
</svelte-css-wrapper>

您可以内联 style 来避免 <svelte-css-wrapper>

<Button style="--sunp-border: 0;">确认</Button>

所以?

sun-parakeet 在设计组件时,会尽量少地使用 CSS 变量。您需要额外地关注这些 CSS 变量,确保使用它们,而不是直接使用 CSS Style。

使用 CSS 变量的组件

通用

组件 CSS 变量 说明
Button --sunp-border 边框宽度

导航

组件 CSS 变量 说明
SideBar --sunp-radius 外侧圆弧半径

信息展示

组件 CSS 变量 说明
Badge --sunp-top
--sunp-right
徽标中心与顶部/右侧的距离
PageIndicator --sunp-size
...
用于从 Swiper 传递 CSS 变量,
以控制指示器样式
Step --sunp-size Steps 组件统一设置 Step 图标的尺寸
Swiper --sunp-padding 轮播轨道的边距

信息录入

组件 CSS 变量 说明
FormItem --sunp-label-width Form 组件统一设置 FormItem 的 label 宽度
Stepper --sunp-size
--sunp-input-width
按钮尺寸
输入框宽度
Switch --sunp-width
--sunp-height
--sunp-checked-color
最小高度
宽度
打开时的颜色

后退

前进

常见问题

主题