From 3caee11e3849683d6d2822257b3e0cb6e6857903 Mon Sep 17 00:00:00 2001 From: zxyszx <299979470+zxyszx@users.noreply.github.com> Date: Thu, 13 Aug 2026 01:24:12 +0800 Subject: [PATCH] release: prepare v1.2.38 --- .github/release-notes/v1.2.38.md | 6 ++++++ VERSION | 2 +- apps/web/src/components/ui/button.tsx | 2 +- apps/web/src/index.css | 18 ++++++++++++++++++ apps/web/src/main.tsx | 3 +++ apps/web/src/pages/mail.tsx | 6 +++--- 6 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 .github/release-notes/v1.2.38.md diff --git a/.github/release-notes/v1.2.38.md b/.github/release-notes/v1.2.38.md new file mode 100644 index 0000000..f34ddd5 --- /dev/null +++ b/.github/release-notes/v1.2.38.md @@ -0,0 +1,6 @@ +- 写信发送拆分按钮统一使用 Gmail 风格蓝色主操作,浅色与暗色模式都保持清晰白字及一致悬停状态。 +- 修复“定时发送”菜单按左侧展开导致右边框越过写信窗口的问题,菜单改为右对齐并增加边缘避让和垂直间距。 +- 将默认主操作按钮从通用强调色中拆分,暗色主题下后台、个人设置、规则、弹窗确认、登录注册等页面统一使用深灰底白字;勾选框、进度条、选中态等仍保留清晰的强调色。 +- 已保存的浅色或暗色主题现在会在应用启动时统一恢复,切换到后台、登录及其他页面后不再丢失主题状态。 + +**完整更新日志**:[v1.2.37...v1.2.38](https://github.com/zxyszx/NewSzxcn-Email/compare/v1.2.37...v1.2.38) diff --git a/VERSION b/VERSION index a678a28..1f8d37f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.37 +1.2.38 diff --git a/apps/web/src/components/ui/button.tsx b/apps/web/src/components/ui/button.tsx index 71c36f3..43c90e4 100644 --- a/apps/web/src/components/ui/button.tsx +++ b/apps/web/src/components/ui/button.tsx @@ -10,7 +10,7 @@ const buttonVariants = cva( variants: { variant: { default: - "bg-primary text-primary-foreground hover:bg-primary/90", + "bg-[hsl(var(--action-primary))] text-[hsl(var(--action-primary-foreground))] hover:bg-[hsl(var(--action-primary)/0.9)]", destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", outline: diff --git a/apps/web/src/index.css b/apps/web/src/index.css index e68bd31..c88f72a 100644 --- a/apps/web/src/index.css +++ b/apps/web/src/index.css @@ -12,6 +12,8 @@ --popover-foreground: 0 0% 9%; --primary: 0 0% 12%; --primary-foreground: 0 0% 98%; + --action-primary: 0 0% 12%; + --action-primary-foreground: 0 0% 98%; --secondary: 0 0% 96.1%; --secondary-foreground: 0 0% 12%; --muted: 0 0% 96.1%; @@ -33,6 +35,8 @@ --sidebar-accent-foreground: 0 0% 12%; --sidebar-border: 0 0% 89.8%; --sidebar-ring: 0 0% 42%; + --compose-send: 217 89% 43%; + --compose-send-hover: 216 94% 32%; } * { @apply border-border; } @@ -61,6 +65,8 @@ --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; --primary-foreground: 240 5.9% 10%; + --action-primary: 240 4% 24%; + --action-primary-foreground: 0 0% 98%; --secondary: 240 3.7% 15.9%; --secondary-foreground: 0 0% 98%; --muted: 240 3.7% 15.9%; @@ -80,10 +86,22 @@ --sidebar-accent-foreground: 240 4.8% 95.9%; --sidebar-border: 240 3.7% 15.9%; --sidebar-ring: 217.2 91.2% 59.8%; + --compose-send: 217 89% 52%; + --compose-send-hover: 214 94% 60%; } } @layer components { + .compose-send-button.compose-send-button { + background: hsl(var(--compose-send)); + color: white; + } + + .compose-send-button.compose-send-button:hover { + background: hsl(var(--compose-send-hover)); + color: white; + } + .mail-shell-grid { display: grid; grid-template-columns: var(--app-sidebar-width, 18rem) minmax(0, 1fr); diff --git a/apps/web/src/main.tsx b/apps/web/src/main.tsx index 6ea77ae..fae6e60 100644 --- a/apps/web/src/main.tsx +++ b/apps/web/src/main.tsx @@ -4,6 +4,7 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query" import { Navigate, RouterProvider, createBrowserRouter } from "react-router-dom" import { Toaster } from "@/components/ui/toaster" import { LanguageDomSync } from "@/lib/language" +import { applyTheme, getInitialTheme } from "@/lib/theme" import { ProtectedLayout } from "@/components/protected-layout" import { AdminOnly } from "@/components/admin-only" import "./index.css" @@ -15,6 +16,8 @@ const AdminPage = React.lazy(() => import("@/pages/admin").then((module) => ({ d const ProfilePage = React.lazy(() => import("@/pages/profile").then((module) => ({ default: module.ProfilePage }))) const NotFoundPage = React.lazy(() => import("@/pages/not-found").then((module) => ({ default: module.NotFoundPage }))) +applyTheme(getInitialTheme()) + const queryClient = new QueryClient({ defaultOptions: { queries: { refetchOnWindowFocus: false, staleTime: 10_000 } } }) const router = createBrowserRouter([ { path: "/login", element: }, diff --git a/apps/web/src/pages/mail.tsx b/apps/web/src/pages/mail.tsx index 40c11c4..58bea04 100644 --- a/apps/web/src/pages/mail.tsx +++ b/apps/web/src/pages/mail.tsx @@ -4286,15 +4286,15 @@ function ComposeDialog({ mailboxes, mailbox, open, draft, limits, canSend, canMa {canSend && ( - {send.isPending ? "发送中..." : "发送"} + {send.isPending ? "发送中..." : "发送"} {canSchedule && ( - + - + setScheduleDialogOpen(true)}>定时发送