主题类别
CabloyJS提供了两类主题:内置主题
、第三方主题
1. 内置主题
通过Framework7提供的主题机制,可以对主题的四个要素进行定制:
名称 | 说明 |
---|---|
布局主题 | 浅色布局、暗色布局 |
导航条样式 | 是否实心风格 |
颜色主题 | 从预定义值中选择主色 |
自定义颜色主题 | 自定义主色 |
2. 第三方主题
我们也可以选择第三方主题。第三方主题通过CSS对主题进行了更细致更全面的定制
CabloyJS内置了一个第三方主题模块a-themehyacinth
主题配置
用户可以自由选择主题,同时也可以直接在前端Config
文件中配置系统的缺省主题
src/front/config/config.default.js
- 1export default{
- 2 theme: {
- 3 type: 'builtIn',
- 4 builtIn: {
- 5 layout: 'light',
- 6 bars: 'empty',
- 7 color: 'teal',
- 8 customColor: null,
- 9 },
- 10 thirdParty: null,
- 11 },
- 12};
名称 | 说明 | 可选值 |
---|---|---|
type | 主题类别 | builtIn/thirdParty |
builtIn.layout | 布局主题 | light/dark |
builtIn.bars | 导航条样式 | empty/fill |
builtIn.color | 颜色主题 | red green blue pink yellow orange purple deeppurple lightblue teal lime deeporange gray black |
builtIn.customColor | 自定义颜色主题 | 如:#2196f3 |
thirdParty | 第三方主题模块名称 | 如:a-themehyacinth |
制作第三方主题
第三方主题本质上也是一个EggBornJS模块,在这里我们新建一个主题模块test-themehello
1. 新建主题模块
进入项目目录,执行CabloyJS提供的脚手架创建一个新模块
- 1$ cd /path/to/project
- 2$ npm run cli :create:module test-themehello -- --template=module
2. 修改package.json
src/module/test-themehello/package.json
- 1{
- 2 "name": "egg-born-module-test-themehello",
- 3 "version": "1.0.0",
- 4 "title": "Hello",
- 5 "eggBornModule": {
- 6 "fileVersion": 0,
- 7 "theme": true,
- 8 "dependencies": {
- 9 "a-instance": "3.0.0",
- 10 "a-base": "3.0.0"
- 11 }
- 12 },
- 13 ...
- 14}
名称 | 说明 |
---|---|
title | 模块标题 |
eggBornModule.theme | 标识本模块是主题模块 |
3. 国际化
添加模块标题
的国际化语言资源
src/module/test-themehello/backend/src/config/locale/zh-cn.js
- 1module.exports = {
- 2 Hello: '您好',
- 3};
4. 修改主题样式
根据设计风格,修改主题样式
src/module/test-themehello/front/src/assets/css/module.less
- 1:root.eb-theme-test-themehello {
- 2
- 3 --f7-font-family: monospace;
- 4
- 5 --f7-theme-color: #2cb2d4;
- 6 --f7-theme-color-rgb: 44, 178, 212;
- 7 --f7-theme-color-shade: #2496b3;
- 8 --f7-theme-color-tint: #4ebedb;
- 9
- 10 --f7-searchbar-link-color: var(--f7-theme-color);
- 11}
当主题被启用时,系统会给
html
元素添加ClassName:eb-theme-${moduleName}
。因此,自定义的CSS样式必须包含在:root.eb-theme-test-themehello
中
CSS样式支持CSS变量
5. 发布模块
可以将制作好的模块发布到Cabloy商店
- 1$ cd /path/to/project
- 2$ npm run cli :store:publish test-themehello
App应用主题
前面提到,我们可以在前端Config
文件中配置系统的缺省主题。由于CabloyJS支持创建多个App应用,因此,我们可以为App应用分别配置独立的主题,这样就可以极大丰富CabloyJS的前端表现力
- 参见:如何创建App应用
评论: