diff --git a/src/hooks/useSyncStore.ts b/src/hooks/useSyncStore.ts
index 133ab175..0bc9eaea 100644
--- a/src/hooks/useSyncStore.ts
+++ b/src/hooks/useSyncStore.ts
@@ -82,7 +82,7 @@ export const useSyncStore = () => {
const setQueryTimeout = useConnectStore((state) => {
return state.setQuerySourceTimeout;
});
- const setOpacity = useAppearanceStore((state) => state.setOpacity);
+ const { setNormalOpacity, setBlurOpacity } = useAppearanceStore();
const setSnapshotUpdate = useAppearanceStore((state) => {
return state.setSnapshotUpdate;
});
@@ -197,11 +197,11 @@ export const useSyncStore = () => {
}),
platformAdapter.listenEvent("change-appearance-store", ({ payload }) => {
- const { opacity, snapshotUpdate, windowMode } = payload;
+ const { normalOpacity, blurOpacity, snapshotUpdate, windowMode } =
+ payload;
- if (isNumber(opacity)) {
- setOpacity(opacity);
- }
+ setNormalOpacity(normalOpacity);
+ setBlurOpacity(blurOpacity);
setSnapshotUpdate(snapshotUpdate);
setWindowMode(windowMode);
}),
diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json
index f06d1ad0..cdb678ce 100644
--- a/src/locales/en/translation.json
+++ b/src/locales/en/translation.json
@@ -181,7 +181,11 @@
},
"appearance": {
"title": "Appearance Settings",
- "opacity": {
+ "normalOpacity": {
+ "title": "Active Window Opacity",
+ "description": "Adjust the opacity of the Coco AI window while in use. The range is from 10% to 100%, where 100% means fully opaque, and lower values increase transparency, allowing the underlying content to show through."
+ },
+ "blurOpacity": {
"title": "Pinned Window Dimness Setting",
"description": "Adjusts the opacity level of the Coco AI window when it’s pinned and not in focus. Set a value between 10% and 100%, where 100% means fully opaque (no dimming), and lower values increase transparency, allowing underlying content to show through."
}
diff --git a/src/locales/zh/translation.json b/src/locales/zh/translation.json
index 5accfb25..423ebae7 100644
--- a/src/locales/zh/translation.json
+++ b/src/locales/zh/translation.json
@@ -181,7 +181,11 @@
},
"appearance": {
"title": "外观设置",
- "opacity": {
+ "normalOpacity": {
+ "title": "窗口透明度",
+ "description": "调整 Coco AI 窗口在使用时的透明度。范围为10%到100%,其中100%表示完全不透明,较低的值会增加透明度,使底层内容能够透过窗口显示出来。"
+ },
+ "blurOpacity": {
"title": "置顶时失焦透明度",
"description": "设置 Coco AI 窗口在置顶且失去焦点时的不透明度(10%–100%,100% 表示完全不透明)。"
}
diff --git a/src/stores/appearanceStore.ts b/src/stores/appearanceStore.ts
index fd2ccdb6..dd4df72f 100644
--- a/src/stores/appearanceStore.ts
+++ b/src/stores/appearanceStore.ts
@@ -4,8 +4,10 @@ import { persist, subscribeWithSelector } from "zustand/middleware";
export type WindowMode = "default" | "compact";
export type IAppearanceStore = {
- opacity: number;
- setOpacity: (opacity?: number) => void;
+ normalOpacity: number;
+ setNormalOpacity: (normalOpacity: number) => void;
+ blurOpacity: number;
+ setBlurOpacity: (blurOpacity: number) => void;
snapshotUpdate: boolean;
setSnapshotUpdate: (snapshotUpdate: boolean) => void;
windowMode: WindowMode;
@@ -16,9 +18,13 @@ export const useAppearanceStore = create()(
subscribeWithSelector(
persist(
(set) => ({
- opacity: 30,
- setOpacity: (opacity) => {
- return set({ opacity: opacity });
+ normalOpacity: 100,
+ setNormalOpacity(normalOpacity) {
+ return set({ normalOpacity });
+ },
+ blurOpacity: 30,
+ setBlurOpacity(blurOpacity) {
+ return set({ blurOpacity });
},
snapshotUpdate: false,
setSnapshotUpdate: (snapshotUpdate) => {
@@ -32,7 +38,8 @@ export const useAppearanceStore = create()(
{
name: "startup-store",
partialize: (state) => ({
- opacity: state.opacity,
+ normalOpacity: state.normalOpacity,
+ blurOpacity: state.blurOpacity,
snapshotUpdate: state.snapshotUpdate,
windowMode: state.windowMode,
}),