本文档描述了 Bulma CSS 框架的核心架构,解释了其结构组织、组件层次结构以及指导其实现的键设计原则。有关启用主题和自定义的 CSS 变量系统的详细信息,请参阅 CSS 变量系统。有关 Sass 文件如何组织和协同工作的详细信息,请参阅 Sass 架构。
Bulma 被设计为一个模块化的 CSS 框架,使用 Sass 构建(从 1.0 版本开始特别使用 Dart Sass)。它遵循以组件为中心的架构,具有清晰的层次结构,使其既易于维护又易于扩展。
Bulma 的架构分为四个不同的层,每个层都有特定的职责和依赖项。
来源:bulma.scss CHANGELOG.md83-106
源代码组织在与架构层相对应的目录中,并有额外的实用程序和助手目录。
来源:css/bulma.css.map1-7 package.json54-61
Bulma 使用构建过程将 Sass 源文件转换为各种 CSS 输出,包括主 CSS 文件、缩小版本和具有不同功能集的替代版本。
来源:package.json38-52 CHANGELOG.md96-105
Bulma 的组件架构遵循层次模型,其中更简单的组件为更复杂的组件提供了构建块。
这些组件为整个框架提供了基础。
提供核心功能的简单 UI 组件。
特定于表单界面的元素。
使用元素构建的更高级别的组件。
用于页面组织的结构组件。
来源:css/bulma.css.map10-72 css/bulma.css3-14
Bulma v1.0 引入了一个全面的 CSS 变量系统,为其实施主题的功能提供了动力。
这个变量系统允许跨组件实现一致的主题,并启用暗模式和运行时自定义等功能,而无需重新编译 Sass。
来源:css/bulma.css4-438 CHANGELOG.md95-100
Bulma 的主题系统围绕主题作为 CSS 变量集合的概念,实现了暗模式等功能。
Bulma 中的每种颜色现在都会生成一个完整的调色板,包含浅色和深色变体,从而实现更一致和全面的主题功能。
来源:css/bulma.css16-32 CHANGELOG.md99-102
Bulma 提供了几种自定义方法。
my-prefix-button 而不是 button)。bulma-no-helpers.css 或 bulma-no-dark-mode.css。来源:package.json41-44 CHANGELOG.md104-105
Bulma 的构建系统由 package.json 文件中定义的 NPM 脚本提供支持。
| 脚本名称 | 目的 |
|---|---|
build-bulma | 将 bulma.scss 编译为 css/bulma.css,并带有展开样式和源映射。 |
minify-bulma | 将 css/bulma.css 缩小到 css/bulma.min.css。 |
version-* | 构建替代版本(no-dark-mode、no-helpers 等)。 |
minify-versions | 缩小所有替代版本。 |
build-all | 运行 build-bulma 和 build-versions。 |
minify-all | 运行 minify-bulma 和 minify-versions。 |
deploy | 清理输出目录并构建+缩小所有版本。 |
Bulma 的响应式设计建立在移动优先方法之上,具有可自定义的断点。
每个组件都可以具有响应式变体,并且内置的响应式网格系统(columns)会自动适应不同的屏幕尺寸。
来源:CHANGELOG.md109-115 css/bulma.css3-14