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文件合并
  • 更规范的全局样式文件命名
Description
知智
Readme 644 KiB