主题的概念是一组CSS变量的集合。
Bulma原生包括两个主题:
light.scss
(浅色模式,默认)dark.scss
(深色模式,可选)
默认主题
Bulma默认的主题为浅色模式, 配置文件路径为/sass/themes/light.scss
; 深色模式的配置文件路径为/sass/themes/dark.scss
;
配置文件同时包括了/sass/themes/_index.scss
, 参数如下:
- 参数
@media (prefers-color-scheme: $name)
: 媒体查询 - 参数
[data-theme=$name]
: HTML属性 - 参数
.theme-$name
: CSS类名
唯一的区别在于, 浅色模式是在全局应用范围:root
做了定义, 相当于是html
根元素, 所有页面元素的基础, 这确保了默认值适配于所有的CSS变量。
CSS主题的写法如下:
:root {
/* CSS Variables */
}
@media (prefers-color-scheme: light) {
:root {
/* CSS Variables */
}
}
@media (prefers-color-scheme: dark) {
:root {
/* CSS Variables */
}
}
[data-theme=light],
.theme-light {
/* CSS Variables */
}
[data-theme=dark],
.theme-dark {
/* CSS Variables */
}
定制主题
定制主题本质上的原理是配置你自己的CSS变量, 其中包括:
- 主题名称, 例如
sunrise
- 应用范围, 例如
:root
,[data-theme=sunrise]
,.theme-sunrise
, 或者是包括所有三个; - CSS变量的新属性值
浏览器端预览修改
如果你在全局模式:root
下应用了CSS变量, Bulma的默认主题将会被覆盖, 这个操作是在Sass或CSS模式下完成。
以下是CSS方法的简单测试步骤:
打开浏览器代码检测模式

选择相应的html
元素

插入新属性值变量 --bulma-link-h
(link颜色HUE)

观察菜单里面的颜色变化
