Skip to content

主题

@astryxdesign/core v0.7.1 · Theme

属性 ​

属性类型默认值说明
themeThemeDefinition—defineTheme() 返回的主题。
mode'light' | 'dark' | 'system''system'颜色模式。system 跟随页面和系统。

插槽 ​

名称说明
default继承这套主题的内容。

defineTheme ​

字段说明
name主题名,写到 data-astryx-theme。
tokens语义 token。二元组先写浅色,再写深色。同名时盖过生成结果。
localTokens只有这一套主题用的值,键是完整的 CSS 变量名,原样保存。不能用共享 token 的名字。
color用强调色生成调色板。accent 可省略,只改中性色。
typography字体,以及从 base、ratio 生成的字号。
radius从 base 和 multiplier 生成圆角。
motion从 fast、medium、slow 和 ratio 生成时长。
components按换肤挂点覆盖样式,挂点写成 组件名-部位。编译结果在主题对象的 css 上。
adaptations按屏幕宽度、指针、对比度或减弱动效生效的规则,按顺序排,后面满足的赢。
extends另一份 defineTheme() 主题。它算好的东西全部带过来,当前这份的值优先。
syntax子树里代码的语法色。更近的 SyntaxTheme 优先。
onDark深色 MediaTheme 表面上的额外 token 和组件样式。
onLight浅色 MediaTheme 表面上的额外 token 和组件样式。
icons语义图标名到 Iconify id。按名字覆盖,和被扩展的主题浅合并。
indicators指示器图形,按 check、checkbox、radio 替换。一处替换,所有使用处一起变。

useTheme ​

useTheme() 读取最近的主题。不在 Theme 里时,名字是 neutral,token() 读文档上的 CSS 变量。读到的是主题本身的值,环境规则只在 CSS 里生效。返回的对象和 token 函数只创建一次,tokens 只在主题或明暗模式变了的时候才变。

字段说明
name最近的主题名。
mode解析后的 light 或 dark。system 会被解析掉。
token(name)当前模式下的一个 token。局部 token 按原名读。没人设置过的图表颜色返回默认值。
tokens最近这份主题声明过的 token 和局部 token,按当前模式解析。

模板引用 ​

组件暴露 element,类型是 HTMLElement | null。

原生属性 ​

根节点是 display: contents 的 div。class 和 style 会写到它上面。其他属性不转发。