rsuite-theme
Version:
The suite theme for pagurian
162 lines (133 loc) • 4.67 kB
Markdown
# RSuite Theme
## 概述
本主题基于 [bootstrap](https://github.com/twbs/bootstrap) 进行定制修改。在统一不同使用场景的视觉和操作体验的同时,我们建立了完整的规范体系,便于创建项目也方便统一管理。以扁平化和简洁为主旨的设计风格,使用块面来进行布局,用线条来表达各个控件,使功能庞杂的系统 既直观又条理清晰,让使用者一目了然。选用清新的色彩为主基调,使界面清晰又不失沉稳。主要特点:
> 1. 遵循[HyperS](http://www.hypers.com)前端框架[pagurian](http://pagurian.com/design/)设计规范。并进行了大量改进优化。
> 2. 配置后一键生成主题样式,多种配置方式
> 3. 为主流浏览器提供动效,以大幅提升使用体验
> 4. 支持ie9+、chrome、firefox等各种主流浏览器
> 5. 提供开放的定制需求,包括但不仅限于色系、圆角、边框、阴影和组件的视觉定制。
## 预览
[http://rsuite.github.io/](http://rsuite.github.io/)
## 样式变量
`ruiste-theme`的样式使用[less](http://less.bootcss.com/) 作为开发语言,并定义了一系列全局 / 组件的样式变量,你可以根据需求进行相应调整。
- [默认样式变量](https://github.com/rsuite/rsuite-theme/blob/master/src/less/variables.less)
## 定制方式
### 1.cli工具使用
#### 安装
```bash
npm install rsuite-theme -g
```
#### 使用样例
在项目根目录下新建 `rsuite.config.js`
```javascript
const colors = {
"default": "#00bcd4",
"pagurian": "#1b9451"
};
module.exports = {
"palette": [
{
colors,
"output": "dist/test/css/"
},
{
colors,
"prev": "loading-",
"output": "dist/test/css/",
"src": "css/loading.min.css"
}
],
"resources": {
paths: [
'fonts/**/*.*'
],
dist: 'dist/test'
}
};
```
更多配置详见[配置项](#配置项)
在项目根目录下运行
```bash
rsuite-theme -I -P
```
#### 帮助
```bash
rsuite-theme -h
```
### 2. require方式使用
创建文件 `css-build.js`
```javascript
const build = require('rsuite-theme');
const outPutDir = 'resources/css';
const themes = {
"default": "#522e9b",
"blue": "#29a7e1",
"purple": "#9c27b0"
};
build.importResources({
paths: [
'fonts/**/*.*'
],
dist: outPutDir
});
Object.keys(themes).forEach((key)=>{
build.palette({
baseColor: themes[key],
src: 'css/rsuite.min.css',
dist: `${outPutDir}/rsuite-${key}.css`
});
});
```
运行 `node` 脚本
```bash
node css-build.js
```
### 3.引用 less 文件
用 `less` 文件进行变量覆盖。
建立一个单独的 `less` 文件如下,再引入这个文件。
```less
@import "~rsuite-them/dist/less/rsuite"; // 引入官方提供的 less 样式入口文件
@import "custom-variables"; // 用于覆盖上面定义的变量
... //你自己的样式
```
## 配置项
### `options.resources` `{Object}` 导入资源
#### `options.resources.path` **必填**
需要导入的资源,支持正则匹配,如`fonts/**/*.*`,`css/*.css`等,资源列表详见目录结构
#### `options.resources.dist` **必填**
输出目录,相对于运行使的脚本目录
#### `options.resources.needDirPath` `{Boolean}` 默认为`true`
是否需要保留源文件的路径(如果为true,则输出文件会拥有源文件同样层级的输出目录)
### `options.palette` `{Array <palette>}` 按照主题色输出css文件 **必填**
### `palette` `{Object}`
#### `palette.colors` `{Object}` 输出的基色的配置 **必填**
`<key>`:输出文件的文件名
`<value>`:输出文件的基色
每一个键值对对应一个css文件,如:`{'default':'#00bcd4'}`会输出一个名为`default.css`的文件,其基色为`#dddd`
#### `palette.src` 源文件
默认为:`css/rsuite.min.css`
#### `palette.dist` **必填**
输出目录,相对于运行使的脚本目录
### `prev` 输出文件的前缀名
输出文件为`<output>/<prev><colors.key>.css`的格式,如
```json
{
"colors":{
"default": "#00bcd4"
},
"prev": "loading-",
"output": "dist/test/css/",
"src": "css/loading.min.css"
}
```
输出文件为:
`dist/test/css/loading-default.css`
### 目录结构
```
Root
├── dist/ //发布目录
│ ├── css/ //css
│ └── less/ //less源文件
│ └── fonts/ //字体文件
└── READNE.md //使用文档
```