diff --git a/client/src/components/Todo/TodoListPanel.tsx b/client/src/components/Todo/TodoListPanel.tsx index f819a2a0..4ffa968b 100644 --- a/client/src/components/Todo/TodoListPanel.tsx +++ b/client/src/components/Todo/TodoListPanel.tsx @@ -222,7 +222,7 @@ export default function TodoListPanel({ tripId, items, addItemSignal = 0 }: { tr )} {isAddingNew && !selectedItem && !isMobile && ReactDOM.createPortal(
{ if (e.target === e.currentTarget) setIsAddingNew(false) }} - className="modal-backdrop" + className="trek-modal-backdrop" style={{ position: 'fixed', inset: 0, zIndex: 1000, background: 'rgba(15,23,42,0.5)', display: 'flex', justifyContent: 'center', alignItems: 'flex-start', paddingTop: 'calc(var(--nav-h) + 60px)', paddingBottom: 40 }}>
{ if (el) { const child = el.firstElementChild as HTMLElement; if (child) { child.style.width = '100%'; child.style.borderLeft = 'none'; child.style.borderRadius = '16px' } } }}> @@ -240,7 +240,7 @@ export default function TodoListPanel({ tripId, items, addItemSignal = 0 }: { tr )} {isAddingNew && !selectedItem && isMobile && ReactDOM.createPortal(
{ if (e.target === e.currentTarget) setIsAddingNew(false) }} - className="modal-backdrop" + className="trek-modal-backdrop" style={{ position: 'fixed', inset: 0, zIndex: 1000, background: 'rgba(0,0,0,0.4)', display: 'flex', justifyContent: 'center', alignItems: 'flex-end', paddingBottom: 'var(--bottom-nav-h)' }}>
{ if (el) { const child = el.firstElementChild as HTMLElement; if (child) { child.style.width = '100%'; child.style.borderLeft = 'none'; child.style.borderRadius = '16px 16px 0 0' } } }}> diff --git a/client/src/components/shared/Modal.test.tsx b/client/src/components/shared/Modal.test.tsx index 261b375a..be49756f 100644 --- a/client/src/components/shared/Modal.test.tsx +++ b/client/src/components/shared/Modal.test.tsx @@ -56,7 +56,7 @@ describe('Modal', () => { it('FE-COMP-MODAL-008: clicking the backdrop calls onClose', () => { render(

inner

); - const backdrop = document.querySelector('.modal-backdrop') as HTMLElement; + const backdrop = document.querySelector('.trek-modal-backdrop') as HTMLElement; // Simulate mousedown then click on the backdrop itself fireEvent.mouseDown(backdrop, { target: backdrop }); fireEvent.click(backdrop); diff --git a/client/src/components/shared/Modal.tsx b/client/src/components/shared/Modal.tsx index 48d97257..14033088 100644 --- a/client/src/components/shared/Modal.tsx +++ b/client/src/components/shared/Modal.tsx @@ -51,7 +51,7 @@ export default function Modal({ return ReactDOM.createPortal(
{ mouseDownTarget.current = e.target }} onClick={e => { diff --git a/client/src/index.css b/client/src/index.css index 09b16614..9eb16666 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -734,7 +734,7 @@ img[alt="TREK"] { .dark .min-h-screen { background-color: var(--bg-primary) !important; } /* Modal-Hintergrund */ -.dark .modal-backdrop { background: rgba(0,0,0,0.6); } +.dark .trek-modal-backdrop { background: rgba(0,0,0,0.6); } /* ── Dark: Fallback für Komponenten die noch nicht auf CSS-Variablen umgestellt sind ── */ .dark { @@ -766,8 +766,8 @@ img[alt="TREK"] { animation: slide-out-right 0.3s ease-in forwards; } -/* Modal-Hintergrund */ -.modal-backdrop { +/* Modal-Hintergrund (eigener Namespace, sonst blenden Content-Blocker .modal-backdrop aus) */ +.trek-modal-backdrop { backdrop-filter: blur(4px); }