From 74254756ef8562f3aca8e32e9c6d5c2b0c20d07a Mon Sep 17 00:00:00 2001 From: Will Miao Date: Thu, 20 Aug 2026 21:25:05 +0800 Subject: [PATCH] fix(ui): unify modal backdrop blur across all modals --- static/css/components/lora-modal/lora-modal.css | 7 ------- static/css/components/modal/_base.css | 4 +++- static/css/components/modal/delete-modal.css | 3 +++ static/css/components/recipe-modal.css | 7 ------- static/css/tokens/effects.css | 3 +++ 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/static/css/components/lora-modal/lora-modal.css b/static/css/components/lora-modal/lora-modal.css index 63c1007c..a9075955 100644 --- a/static/css/components/lora-modal/lora-modal.css +++ b/static/css/components/lora-modal/lora-modal.css @@ -1,10 +1,3 @@ -/* Blurred backdrop for the model modal to match the recipe modal */ -#modelModal { - background: rgba(0, 0, 0, 0.5); - backdrop-filter: blur(6px); - -webkit-backdrop-filter: blur(6px); -} - /* Lora Modal Header */ .modal-header { display: flex; diff --git a/static/css/components/modal/_base.css b/static/css/components/modal/_base.css index 19dca20c..80f57928 100644 --- a/static/css/components/modal/_base.css +++ b/static/css/components/modal/_base.css @@ -6,7 +6,9 @@ left: 0; width: 100%; height: calc(100% - var(--header-height, 48px)); /* Adjust height to exclude header */ - background: rgba(0, 0, 0, 0.2); + background: var(--modal-backdrop-bg, rgba(0, 0, 0, 0.5)); + backdrop-filter: blur(var(--modal-backdrop-blur, 6px)); + -webkit-backdrop-filter: blur(var(--modal-backdrop-blur, 6px)); z-index: var(--z-modal); overflow: auto; /* Change from hidden to auto to allow scrolling */ } diff --git a/static/css/components/modal/delete-modal.css b/static/css/components/modal/delete-modal.css index 4584cb66..7ee9fbb7 100644 --- a/static/css/components/modal/delete-modal.css +++ b/static/css/components/modal/delete-modal.css @@ -13,7 +13,10 @@ left: 0; width: 100%; height: 100%; + /* Darker than --modal-backdrop-bg to stress destructive actions, but keeps the shared blur */ background: rgba(0, 0, 0, 0.8); + backdrop-filter: blur(var(--modal-backdrop-blur, 6px)); + -webkit-backdrop-filter: blur(var(--modal-backdrop-blur, 6px)); z-index: var(--z-overlay); } diff --git a/static/css/components/recipe-modal.css b/static/css/components/recipe-modal.css index 5edd5368..4ebe5e16 100644 --- a/static/css/components/recipe-modal.css +++ b/static/css/components/recipe-modal.css @@ -104,13 +104,6 @@ display: none; } -/* Darker, blurred backdrop keeps the busy page behind the modal from bleeding through */ -#recipeModal { - background: rgba(0, 0, 0, 0.5); - backdrop-filter: blur(6px); - -webkit-backdrop-filter: blur(6px); -} - #recipeModal .modal-content { display: flex; flex-direction: column; diff --git a/static/css/tokens/effects.css b/static/css/tokens/effects.css index 2ef1a9cd..43724dc0 100644 --- a/static/css/tokens/effects.css +++ b/static/css/tokens/effects.css @@ -27,6 +27,9 @@ --shadow-dialog: 0 10px 24px rgba(0, 0, 0, 0.25); --shadow-inset-top: 0 -2px 8px rgba(0, 0, 0, 0.1); + --modal-backdrop-bg: rgba(0, 0, 0, 0.5); + --modal-backdrop-blur: 6px; + --transition-fast: 150ms ease; --transition-base: 200ms ease; --transition-slow: 300ms ease;