Raised on LibreChat-AI#16262 (LibreChat-AI#16262 (comment)).
The mobile drawer's dismiss target (client/src/components/UnifiedSidebar/mobile/Scrim.tsx) paints bg-surface-overlay/50 next to the drawer's surface-primary-alt, and at that fixed 50% opacity no palette separates the two by the 3:1 a boundary needs. Composited over the page: LibreChat default light 2.12:1, default dark 1.00:1, ClickHouse light 2.15:1, ClickHouse dark 1.30:1. The shared dialogs use the same role at 80% and clear the floor, which e2e/specs/mock/scenarios/dialog-scrim-role.spec.ts pins.
Suggested direction: raise the mobile scrim's opacity to the dialogs' 80% (or give the drawer an edge of its own), and add a scenario that measures the drawer against its scrim in light and dark.
Raised on LibreChat-AI#16262 (LibreChat-AI#16262 (comment)).
The mobile drawer's dismiss target (
client/src/components/UnifiedSidebar/mobile/Scrim.tsx) paintsbg-surface-overlay/50next to the drawer'ssurface-primary-alt, and at that fixed 50% opacity no palette separates the two by the 3:1 a boundary needs. Composited over the page: LibreChat default light 2.12:1, default dark 1.00:1, ClickHouse light 2.15:1, ClickHouse dark 1.30:1. The shared dialogs use the same role at 80% and clear the floor, whiche2e/specs/mock/scenarios/dialog-scrim-role.spec.tspins.Suggested direction: raise the mobile scrim's opacity to the dialogs' 80% (or give the drawer an edge of its own), and add a scenario that measures the drawer against its scrim in light and dark.