From 16b3dd4aaacf7000872a9dba0e04c8497544d593 Mon Sep 17 00:00:00 2001 From: Mplan Date: Thu, 23 Jul 2026 02:41:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor(styles):=20=E5=BB=BA=E7=AB=8B=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E7=9A=84=E7=94=9F=E4=BA=A7=E7=BA=A7=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BD=93=E7=B3=BB=20(#4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 变更内容 - 将全局样式拆分为设计令牌、基础规则和语义组件层 - 集中管理 Naive UI 主题配置 - 迁移页面容器、表单、信息面板和按钮等重复样式 - 增加样式体系文档与自动契约检查 ## 验证 - `npm run check:styles` - `npm run build`Reviewed-on: https://git.catpl.top/Mplan/opencloud/pulls/4 --- docs/style-system.md | 100 +++++++ package.json | 1 + scripts/check-style-system.mjs | 89 ++++++ src/App.vue | 74 +---- src/components/cloud/CloudEditModal.vue | 26 +- src/components/cloud/MapPickerModal.vue | 2 +- src/components/cloud/MiniLocationMap.vue | 2 +- src/components/cloud/QuickUploadModal.vue | 36 +-- src/lib/theme.ts | 55 ++++ src/style.css | 228 +------------- src/styles/base.css | 27 ++ src/styles/components.css | 314 ++++++++++++++++++++ src/styles/tokens.css | 48 +++ src/views/admin/AdminView.vue | 24 +- src/views/auth/ForgotPasswordView.vue | 8 +- src/views/auth/LoginView.vue | 12 +- src/views/auth/RegisterView.vue | 12 +- src/views/encyclopedia/CloudTypeView.vue | 28 +- src/views/encyclopedia/EncyclopediaView.vue | 12 +- src/views/gallery/GalleryView.vue | 30 +- src/views/map/MapView.vue | 24 +- src/views/profile/ProfileSettingsView.vue | 6 +- src/views/profile/ProfileView.vue | 38 +-- src/views/system/AuthRequiredView.vue | 8 +- src/views/system/ForbiddenView.vue | 8 +- src/views/system/NotFoundView.vue | 8 +- src/views/upload/UploadView.vue | 88 +++--- 27 files changed, 828 insertions(+), 480 deletions(-) create mode 100644 docs/style-system.md create mode 100644 scripts/check-style-system.mjs create mode 100644 src/lib/theme.ts create mode 100644 src/styles/base.css create mode 100644 src/styles/components.css create mode 100644 src/styles/tokens.css diff --git a/docs/style-system.md b/docs/style-system.md new file mode 100644 index 0000000..2321f14 --- /dev/null +++ b/docs/style-system.md @@ -0,0 +1,100 @@ +# OpenCloud 样式体系 + +这套体系用于让视觉规则集中、Vue 模板可读,同时保留 Tailwind 对一次性布局的灵活性。它不是“所有样式都写成全局类”,而是把会跨页面复用、带有产品语义或必须一致的规则集中管理。 + +## 分层 + +| 层级 | 文件 | 职责 | +| --- | --- | --- | +| 设计令牌 | `src/styles/tokens.css` | 颜色、字体、渐变、阴影、动效时长等稳定决策 | +| 基础规则 | `src/styles/base.css` | 页面基线、选中文本、全局圆角策略 | +| 组件规则 | `src/styles/components.css` | 页面 Hero、容器、表单、面板、按钮等共享语义类 | +| 第三方主题 | `src/lib/theme.ts` | Naive UI 的全局主题契约;值应与设计令牌保持一致 | +| 单组件样式 | Vue 文件的 `