Skip to content

Commit b652a34

Browse files
committed
fix(goose2): avoid transform-rasterized dialog text
Center dialogs with an untransformed positioner instead of translating and scaling the content layer. This avoids macOS/Tauri WebView rasterizing dialog text on a composited transform layer, which is more visible on lower-DPI or scaled external displays.
1 parent ef73610 commit b652a34

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

ui/goose2/src/shared/ui/alert-dialog.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,14 @@ function AlertDialogContent({
4949
return (
5050
<AlertDialogPortal>
5151
<AlertDialogOverlay />
52-
<div className="pointer-events-none fixed inset-0 z-[81] grid place-items-center p-4">
52+
<div
53+
data-slot="alert-dialog-positioner"
54+
className="pointer-events-none fixed inset-0 z-[81] grid grid-rows-[minmax(1rem,1fr)_auto_minmax(1rem,1fr)] justify-items-center overflow-y-auto px-4"
55+
>
5356
<AlertDialogPrimitive.Content
5457
data-slot="alert-dialog-content"
5558
className={cn(
56-
"pointer-events-auto bg-background shadow-modal data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 relative grid w-full max-w-[calc(100vw-2rem)] gap-4 rounded-modal border p-6 duration-200 sm:max-w-lg",
59+
"pointer-events-auto relative row-start-2 grid w-full max-w-lg gap-4 rounded-modal border bg-background p-6 shadow-modal data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
5760
className,
5861
)}
5962
{...props}

ui/goose2/src/shared/ui/dialog.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,14 @@ function DialogContent({
5555
return (
5656
<DialogPortal data-slot="dialog-portal">
5757
<DialogOverlay />
58-
<div className="pointer-events-none fixed inset-0 z-[61] grid place-items-center p-4">
58+
<div
59+
data-slot="dialog-positioner"
60+
className="pointer-events-none fixed inset-0 z-[61] grid grid-rows-[minmax(1rem,1fr)_auto_minmax(1rem,1fr)] justify-items-center overflow-y-auto px-4"
61+
>
5962
<DialogPrimitive.Content
6063
data-slot="dialog-content"
6164
className={cn(
62-
"pointer-events-auto bg-background shadow-modal data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 relative grid w-full max-w-[calc(100vw-2rem)] gap-4 rounded-modal border p-6 duration-200 sm:max-w-lg",
65+
"pointer-events-auto relative row-start-2 grid w-full max-w-lg gap-4 rounded-modal border bg-background p-6 shadow-modal data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
6366
className,
6467
)}
6568
{...props}

0 commit comments

Comments
 (0)