@itshixun/qst-ui-system
Version:
77 lines (61 loc) • 2.7 kB
Markdown
# qst-ui-system
QST 前端 UI 基础库:
1. 对接设计端定制的颜色/间距/风格(圆角/边框)等主题规范,作为 UI 设计和前端开发之间的“接口”;
2. 将设计端定制的主题规范 关联到常用组件库的主题配置上;
3. 将设计端定制的主题规范 关联到常用 css 框架的配置上;
4. 通用的 normalize(reset)样式和其他全局样式;
## 主要功能
- [x] 基于 element-plus 的 css 变量,生成主题变量配置:颜色/字色/背景色/圆角/间距/组件尺寸 等等,
- [x] 全局初始化样式:normalize,全局文字配置(字体/抗锯齿等)
- [ ] 组件库适配主题变量配置(样式覆盖)
- [x] element-plus
- [ ] element-ui
- [ ] ant-design / ant-design-vue
- [ ] vant
- [ ] css 框架适配主题变量配置
- [x] unocss
- [ ] windicss (windicss即将停止维护,不再进行适配)
- [ ] tailwind
## 对接&使用说明
设计端:
1. 设计师使用[主题编辑器](https://mutueye.github.io/vite-vue3-scaffold/themeeditor)配置并导出 json 格式的主题列表
2. 在 UI 设计的过程中遵循配置好的主题进行设计
前端:
1. 在项目入口(main.js/main.ts)调用`initQstTheme()`初始化主题样式,引入设计端定制好的主题(不传则使用默认主题列表)
```js
import { initQstTheme } from 'qst-ui-system';
// 初始化qst主题,不传参数使用默认配置
initQstTheme();
// 类型定义
export declare const initQstTheme: (option?: ThemeOption) => void;
/** 主题选项 */
export interface ThemeOption {
/** 主题css变量命名空间 默认--el */
namespace?: string;
/** 主题列表 */
themeList?: UITheme[];
/** 主题样式设置完成后的回调函数 */
onStylesSet?: () => void;
/** 是否包含css重置样式(reset/normalize) 默认是 */
cssReset?: boolean;
/** 需要适配的组件库(进行样式覆盖/主题定制) */
uiLibs?: UILib | UILib[];
/** 初始主题序号, 默认为主题列表中第一个主题 */
initialThemeIndex?: number;
}
```
2. 如果使用 element-plus 组件库,则 element 组件自动适配引入的主题配置;其他组件库需要额外的步骤(WIP)
3. 使用 css 框架(比如 unocss),可以方便的调用主题配置进行样式编写(需要在相应的配置文件中引入主题配置 WIP)
```js
import { generateUnocssTheme } from 'qst-ui-system';
// unocss配置
{
...
presets: [...],
safelist: [...],
transformers: [...]
// 生成主题配置 参数为namespace,默认'--el'
theme: generateUnocssTheme('--el'),
...
}
```