diff --git a/apps/x/apps/main/src/meeting-popup.ts b/apps/x/apps/main/src/meeting-popup.ts index 972873fa..8d33fec1 100644 --- a/apps/x/apps/main/src/meeting-popup.ts +++ b/apps/x/apps/main/src/meeting-popup.ts @@ -13,9 +13,11 @@ import type { DetectedMeeting } from "@x/core/dist/meetings/detector.js"; * window's existing take-meeting-notes flow. */ -// Lean bar + margins for the overhanging × and the CSS drop shadow. -const POPUP_WIDTH = 400; -const POPUP_HEIGHT = 76; +// The window IS the card: exact card dimensions, card background, native +// rounded corners + shadow. No transparency — macOS panels don't honor +// `transparent: true` reliably and paint a grey backing slab instead. +const POPUP_WIDTH = 376; +const POPUP_HEIGHT = 48; const AUTO_DISMISS_MS = 45_000; // Display names, Granola-style ("Chrome", not "Google Chrome"). @@ -109,10 +111,8 @@ export function showMeetingPopup(meeting: DetectedMeeting): void { alwaysOnTop: true, skipTaskbar: true, show: false, - // Transparent window: the rounded card + overhanging × render inside; - // the shadow is CSS (native shadows artifact on transparent windows). - transparent: true, - hasShadow: false, + backgroundColor: "#1d1d1d", + hasShadow: true, webPreferences: { nodeIntegration: false, contextIsolation: true, diff --git a/apps/x/apps/renderer/src/components/meeting-detected-popup.tsx b/apps/x/apps/renderer/src/components/meeting-detected-popup.tsx index c0798823..eca03a43 100644 --- a/apps/x/apps/renderer/src/components/meeting-detected-popup.tsx +++ b/apps/x/apps/renderer/src/components/meeting-detected-popup.tsx @@ -58,43 +58,44 @@ export function MeetingDetectedPopup() { void window.ipc.invoke('meetingDetect:action', { action }).catch(() => {}) } - // In the browser preview, reproduce the real popup window's exact size - // (448×96) on a desktop-ish backdrop; in Electron the window IS that size. + // The Electron window IS the card (376×48, card background, native macOS + // rounded corners + shadow — no transparency, which panels don't honor). + // The preview emulates that frame with its own rounding/shadow. // No drag region: draggable areas swallow mouse events, which would keep // the hover-revealed × from ever showing while over the card body. const popup = (