From f0d4718ab2faa90d8646d3ff14e8793b6fb381af Mon Sep 17 00:00:00 2001 From: Mplan Date: Thu, 23 Jul 2026 02:21:16 +0800 Subject: [PATCH] refactor(styles): establish shared design system --- 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 文件的 `