103 lines
4.0 KiB
Markdown
103 lines
4.0 KiB
Markdown
# KnowAI UI
|
||
|
||
## 概述
|
||
|
||
KnowAI UI 是一个基于 Vue 3 和 TypeScript 的企业级 UI 组件库,专为 AI 应用场景设计。它提供了一套美观、易用、可定制的组件,帮助开发者快速构建现代化的 AI 应用界面。采用 BEM规范 与风格-呈现两层模式组合的平衡架构,使 SCSS 足够规范与灵活。
|
||
|
||
## 模块分类
|
||
|
||
### 组件分类设计
|
||
|
||
- **基础层**:提供核心组件和基础功能,如按钮、图标、文本等
|
||
- **布局层**:提供页面布局相关组件,如容器、栅格、间距等
|
||
- **反馈层**:提供用户交互反馈相关组件,如消息、通知、加载等
|
||
|
||
### 样式系统架构
|
||
|
||
为了实现高度的可定制性和一致性,样式系统采用以下架构:
|
||
- 基于 SCSS 的变量系统,支持主题定制
|
||
- 模块化的样式文件组织,便于维护和扩展
|
||
- 统一的设计规范,确保组件视觉一致性
|
||
- 支持响应式设计和暗黑模式
|
||
|
||
## 核心模块
|
||
|
||
### 组件模块
|
||
|
||
组件模块提供丰富的 UI 组件,满足各种应用场景需求:
|
||
|
||
#### 基础组件
|
||
- **KButton** - 灵活的按钮组件,支持多种样式和状态
|
||
- **KIcon** - 丰富的图标系统,支持自定义和动态加载
|
||
- **KText** - 文本组件,支持多种格式和样式控制
|
||
- **KDivider** - 分割线组件,用于内容分隔
|
||
- **KAvatar** - 头像组件,支持多种图片源和样式
|
||
- **KTag** - 标签组件,用于内容分类和标记
|
||
- **KImage** - 图片组件,支持懒加载和错误处理
|
||
|
||
#### 布局组件
|
||
- **KContainer** - 布局容器,提供基础的页面布局结构
|
||
- **KGrid** - 栅格系统,支持响应式布局和灵活的列配置
|
||
- **KSpace** - 间距组件,提供统一的元素间距管理
|
||
|
||
#### 反馈组件
|
||
- **KChatBubble** - 聊天气泡组件,适用于对话界面
|
||
- **KMessage** - 全局提示组件,提供操作反馈
|
||
- **KNotification** - 通知提醒组件,用于系统通知
|
||
- **KLoading** - 加载中组件,提供加载状态指示
|
||
- **KResult** - 结果页组件,用于操作结果展示
|
||
- **KEmpty** - 空状态组件,用于空数据展示
|
||
|
||
#### 核心功能
|
||
- **主题系统**:支持明亮/暗黑主题切换和自定义主题
|
||
- **变量系统**:基于 SCSS 的变量管理,统一控制颜色、尺寸等
|
||
- **工具类**:提供常用的辅助样式类,如布局、文本、动画等
|
||
|
||
#### 架构特点
|
||
- 支持 CSS 变量,便于运行时主题切换
|
||
- 模块化的样式组织,按需加载
|
||
- 响应式设计,适配不同设备尺寸
|
||
- 统一的设计语言,确保组件间视觉一致性
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
knowai-ui/
|
||
├── src/ # 源代码目录
|
||
│ ├── components/ # 组件目录
|
||
│ ├── styles/ # 样式文件
|
||
│ └── index.ts # 主入口文件
|
||
├── test/ # 测试文件
|
||
├── .gitignore # Git 忽略配置
|
||
├── Dockerfile # Docker 构建配置
|
||
├── README.md # 项目说明文档
|
||
├── eslint.config.js # ESLint 配置
|
||
├── package.json # 项目配置
|
||
├── pnpm-lock.yaml # 依赖锁定文件
|
||
├── tsconfig.json # TypeScript 配置
|
||
├── tsconfig.node.json # Node 环境 TypeScript 配置
|
||
├── vite.config.ts # Vite 构建配置
|
||
└── vitest.config.ts # Vitest 测试配置
|
||
```
|
||
|
||
## 更新记录
|
||
|
||
### 2025-11-14
|
||
- 完成tsc eslint测试,因框架内部通信问题放弃Vitest测试(但保留测试文件),推送1.0.0镜像。
|
||
|
||
### 2025-11-16
|
||
- 更新SCSS导出,支持引用对应css类
|
||
- 修复SCSS类名不对应问题
|
||
- 修复SCSS类名无法导出问题
|
||
- 修复1.0.0未导出types的问题(没有用vue-tsc编译.d.ts文件)
|
||
- 修复打包产物被覆盖问题
|
||
- 支持tree-shaking,不暴露内部路径
|
||
|
||
### 2025-11-17
|
||
- 删除全部组件vue实现style部分的scoped属性
|
||
- 加入"vite-plugin-css-injected-by-js"插件,解决库模式下CSS文件独立打包无法注入的问题
|
||
- 在vite入口引入所有scss文件,打包入es.js编译结果入口
|
||
- JS仍保持tree-shaking优化,但css文件不再独立打包,而是与JS文件合并
|
||
- 更规范的全局样式文件命名
|
||
|