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;