- 开始使用
- 功能组件
- 附加组件
- 教程
- 如何定制
- 布局示例
- 项目结构
- 使用 Less & Sass
- 创建主题
- 创建样式
- Customizer.json 变量
- JavaScript 示例
- 自定义前缀
- 基础
- 打印组件
- 网格组件
- 面板
- 块
- 文章
- 评论
- 效果
- Flex 布局
- 覆盖
- 导航菜单
- 导航栏
- 二级导航
- 面包屑
- 分页
- 选项卡
- 缩略图导航
- 列表
- 描述列表
- 表格组件
- 表单
- 按钮组件
- 图标
- 关闭
- 徽章
- 提示框组件
- 缩略图
- 遮罩
- 文本
- 列
- 动画组件
- 对比度
- 下拉菜单
- 模态对话框
- 抽屉
- 切换器
- 拨动组件
- 滚动监听
- 平滑滚动
- 动态网格
- 视差网格
- 圆点导航
- 滑动导航
- 动态分页
- 高级表单
- 文件表单
- 密码表单
- 选择表单
- 占位符
- 进度条
- 灯箱
- 自动完成
- 日期选择器
- HTML 编辑器
- 滚动条
- 滑块集
- 幻灯片
- 视差
- 手风琴
- 通知
- 搜索
- 可嵌套
- 可排序
- 附着
- 时间选择器
- 工具提示
- 上传
创建主题
扩展UIkit并添加你自己的独一无二的主题。
如何开始
默认地,UIkit带有一个非常基础的主题。如果要修改它的样式,你不需要编辑任何核心框架文件。相反,你可以通过创建一个自定义主题来扩展UIKit。这样便允许你轻松地更新UIkit的核心文件。我们甚至提供了一些灵巧的主题以帮助你入门。要创建自己的主题,请按照下面步骤操作:(这里有一篇文章可以参考下:uikit框架开发前期配置及定制主题方法 )
1. 创建主题目录
下载或克隆UIKit,安装 Node 和 Gulp 。最后,在这里创建你的主题文件夹 /custom/THEME-NAME
。如果 /custom
不存在,那就创建它!
注意 /custom
文件夹设置为 git ignore,这样可以防止你的自定义文件被推入到UIKit库中。如果你在使用克隆版 UIkit's git 仓库, 它将是一次很好的将 /custom
作为你自己的git仓库的实践。这样,你的主题文件的版本控制将不会受到UIkit文件的干扰。
2. 添加你的主题
在 /custom/THEME-NAME
文件夹中创建 uikit.less
文件,并添加 @import "../../src/uikit.less";
规则来访问核心框架中的所有Less文件并采用它的基础样式。好了,你可以从零开始添加你自己的主题了。
注意 为了能立即开始你的工作,我们提供了默认、渐变和扁平三个主题。所有默认文件都已经引入了,你同样可以找到所有主题文件以及与它们相关的钩子。所以你需要做的是复制文件夹到 /custom
目录中,并重命名。
3. 定制和测试
在你的 UIkit 文件夹中运行 gulp 的 indexthemes
指令。现在,刚刚新建的主题就将会自动出现在定制工具和测试文件中。
4. 构建你的主题
你可以在定制工具中生成你的主题的 CSS。如果你想使用 gulp 指令来做这事,运行 gulp dist -t THEME-NAME
就行了。生成的文件被放置在 dist/
文件夹中。
最佳主题实践
设计你的主题有多种不同的方法,我们推荐以下的工作流程。
1. 使用变量
首先要做的是自定义已声明的变量的值。你可以在核心框架的Less文件中找到所有组件的变量,在你的主题中重写它们。
Example
/src/core/button/button.less
// 默认值
@button-height: 30px;
/custom/THEME-NAME/button.less
// 新的值
@button-height: 35px;
2. 使用钩子
为了防止架空选择器,我们使用 Less 的混合(Mixins)方法与 UIkit 源码中预定义的选择器进行挂钩,并运用其附加属性。选择器不必在所有文件中重复填写,全局的修改变得更容易了。
Example
/src/core/panel/panel.less
// CSS 规则
.uk-panel {
background: @background;
// mixin 混合增加新的声明
.hook-panel;
}
/custom/THEME-NAME/panel.less
// mixin 混合增加新的声明
.hook-panel() { color: #fff; }
3. 混杂的钩子/Miscellaneous hooks
如果没有变量也没有钩子可用,当然你也可以自行创建一个你自己的选择器。为此,请使用 .hook-panel-misc 钩子并将你的选择器写入其中。这样将会把你的新选择器整合到编译后的CSS文件的合适位置。
Example
/custom/THEME-NAME/panel.less
// misc mixin
.hook-panel-misc() {
// 新的规则
.uk-panel a { color: #f00; }
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论