本文档提供了创建 Semantic UI 自定义主题的全面指南。它涵盖了主题结构、继承模型以及自定义 Semantic UI 组件外观的分步说明。有关主题变量和覆盖的特定信息,请参阅 变量和覆盖。
Semantic UI 的主题系统旨在高度可定制,同时保持组件之间的一致性。它使用分层的变量继承模型,允许您在不同级别的特异性修改组件的外观。
来源:README.md, src/definitions/collections/message.less
Semantic UI 主题遵循一种反映组件层次结构的特定组织。理解这种结构对于创建有效的主题至关重要。
来源:src/themes/default/collections/message.variables
结构包括
每个组件有两个关键文件
在 src/themes/ 文件夹中创建一个名为您主题的新目录
src/themes/my-custom-theme/
theme.config 文件是指定要为每种组件类型使用哪个主题的中央配置文件。修改它以将您的自定义主题用于所需的组件。
来源:src/definitions/collections/message.less
对于您要自定义的每个组件,请在相应的子目录中创建 .variables 文件
my-custom-theme/globals/site.variablesmy-custom-theme/collections/message.variables在您的变量文件中,仅指定您要更改的变量。继承系统将为未明确定义的任何内容使用默认值。
例如,要自定义消息组件
/* In my-custom-theme/collections/message.variables */
@background: #F0F7FF; /* Custom background color */
@borderRadius: 0px; /* Remove border radius */
Semantic UI 对变量使用三级继承模型
来源:README.md, src/themes/default/collections/message.variables
创建自定义主题时,您只需指定要更改的变量 - 所有其他值将继承自默认主题。
要自定义消息组件,您需要
my-custom-theme/collections/message.variables您可能要自定义的示例变量
| 可变 | 目的 | 默认值 |
|---|---|---|
| @background | 背景颜色 | #F8F8F9 |
| @borderRadius | 圆角半径 | @defaultBorderRadius |
| @boxShadow | 阴影效果 | @borderShadow, @shadowShadow |
| @headerFontSize | 标题文本大小 | @relativeLarge |
| @verticalPadding | 上下内边距 | 1em |
| @horizontalPadding | 左右内边距 | 1.5em |
来源:src/themes/default/collections/message.variables:11-25
对于仅靠变量无法实现的更复杂的自定义,请使用 .overrides 文件
/* In my-custom-theme/collections/message.overrides */
.ui.message {
text-transform: uppercase;
}
创建自定义主题后
gulp build来源: README.md
Semantic UI 的主题系统为创建一致、定制化的界面提供了强大的方式。通过理解主题结构和继承模型,您可以创建从细微调整到完全视觉改造的主题,同时保持框架的可访问性和响应式功能。
Semantic UI 提供了超过 3000 个可自定义的变量,让您无需具备深厚的 CSS 知识即可对 UI 的外观进行前所未有的控制。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日 (597843)