diff --git a/src/renderer/components/chat/ChatHistory.tsx b/src/renderer/components/chat/ChatHistory.tsx index 9f30d243..ea523dbf 100644 --- a/src/renderer/components/chat/ChatHistory.tsx +++ b/src/renderer/components/chat/ChatHistory.tsx @@ -865,7 +865,7 @@ export const ChatHistory = ({ tabId }: ChatHistoryProps): JSX.Element => { onClick={() => setContextPanelVisible(!isContextPanelVisible)} onMouseEnter={() => setIsContextButtonHovered(true)} onMouseLeave={() => setIsContextButtonHovered(false)} - className="pointer-events-auto flex items-center gap-1 rounded-md px-2.5 py-1.5 text-xs shadow-lg backdrop-blur-md transition-colors" + className="pointer-events-auto flex items-center gap-1 rounded-md px-2.5 py-1.5 text-xs shadow-lg transition-colors" style={{ backgroundColor: isContextPanelVisible ? 'var(--context-btn-active-bg)' @@ -997,7 +997,7 @@ export const ChatHistory = ({ tabId }: ChatHistoryProps): JSX.Element => { scrollToBottom('smooth'); setShowScrollButton(false); }} - className="absolute bottom-5 z-20 flex items-center gap-1.5 rounded-full px-3 py-1.5 text-xs shadow-lg backdrop-blur-md transition-all" + className="absolute bottom-5 z-20 flex items-center gap-1.5 rounded-full px-3 py-1.5 text-xs shadow-lg transition-colors" style={{ right: '1rem', backgroundColor: 'var(--context-btn-bg)', diff --git a/src/renderer/components/chat/ChatHistoryItem.tsx b/src/renderer/components/chat/ChatHistoryItem.tsx index bf91bc5f..d0e685e8 100644 --- a/src/renderer/components/chat/ChatHistoryItem.tsx +++ b/src/renderer/components/chat/ChatHistoryItem.tsx @@ -76,7 +76,7 @@ const ChatHistoryItemInner = ({ return (
@@ -94,7 +94,7 @@ const ChatHistoryItemInner = ({ return (
@@ -116,7 +116,7 @@ const ChatHistoryItemInner = ({ return (
= ({ }) => { return (
{/* Clickable Header */} diff --git a/src/renderer/components/chat/items/MetricsPill.tsx b/src/renderer/components/chat/items/MetricsPill.tsx index ff28c668..22c083aa 100644 --- a/src/renderer/components/chat/items/MetricsPill.tsx +++ b/src/renderer/components/chat/items/MetricsPill.tsx @@ -152,7 +152,6 @@ export const MetricsPill = ({ style={{ ...tooltipStyle, border: `1px solid ${TAG_BORDER}`, - backdropFilter: 'blur(8px)', }} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} diff --git a/src/renderer/components/chat/items/SubagentItem.tsx b/src/renderer/components/chat/items/SubagentItem.tsx index 6b255e94..69bf60ae 100644 --- a/src/renderer/components/chat/items/SubagentItem.tsx +++ b/src/renderer/components/chat/items/SubagentItem.tsx @@ -265,7 +265,7 @@ export const SubagentItem: React.FC = ({ return (
= ({ return (
{ return (
diff --git a/src/renderer/hooks/useTheme.ts b/src/renderer/hooks/useTheme.ts index 19b689c8..7013fa29 100644 --- a/src/renderer/hooks/useTheme.ts +++ b/src/renderer/hooks/useTheme.ts @@ -89,12 +89,24 @@ export function useTheme(): { // Apply theme class to document root useEffect(() => { const root = document.documentElement; + const body = document.body; + + body.classList.add('theme-transitioning'); // Remove existing theme classes root.classList.remove('dark', 'light'); // Add new theme class root.classList.add(resolvedTheme); + + const timer = window.setTimeout(() => { + body.classList.remove('theme-transitioning'); + }, 250); + + return () => { + window.clearTimeout(timer); + body.classList.remove('theme-transitioning'); + }; }, [resolvedTheme]); return { diff --git a/src/renderer/index.css b/src/renderer/index.css index 8ae0ad0b..c9be55bc 100644 --- a/src/renderer/index.css +++ b/src/renderer/index.css @@ -763,6 +763,9 @@ body { -moz-osx-font-smoothing: grayscale; background-color: var(--color-surface); color: var(--color-text); +} + +body.theme-transitioning { transition: background-color 0.2s ease, color 0.2s ease;