From 372ccfbf6047970c54e29a6e33d6253df01e0452 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 24 Sep 2026 18:36:19 +0200 Subject: [PATCH] =?UTF-8?q?fix(glass):=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD?= =?UTF-8?q?=D1=8F=D1=8F=20=D0=BE=D0=B1=D0=B2=D0=BE=D0=B4=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20::after=20+=20isolation:isolat?= =?UTF-8?q?e=20(z-index:-1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - inset:-1px выносит рамку наружу, isolation создаёт стек без сдвига layout - position:relative только на не-fixed блоках; шапка (fixed) без правок - z-index:-1 => под контентом, не перекрывает; backdrop-filter убран (не рендерился с mask) --- public/css/main.css | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/public/css/main.css b/public/css/main.css index 5a0c2c5..ee6327b 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -5197,20 +5197,44 @@ html[data-theme="light"] .glass-neutral { -webkit-backdrop-filter: var(--v12-glass-neutral-filter); } -/* Градиентная обводка через 2 слоя background (НЕ ломает раскладку, контент поверх фона). - padding-box = фон блока, border-box = градиент бордера (сверху засвет -> снизу прозрачно). */ +/* Внешняя градиентная обводка через ::after (сверху засвет -> снизу прозрачно). + inset:-1px выводит рамку НАРУЖУ; isolation:isolate на родителе + z-index:-1 на + псевдоэлементе => виден снаружи, под контентом (не перекрывает). + Без position/z-index на родителе — раскладка не ломается. */ html[data-theme="dark"] .glass-neutral:not(.fab), html[data-theme="light"] .glass-neutral:not(.fab), -html[data-theme="dark"] .header--scrolled .header__inner, -html[data-theme="light"] .header--scrolled .header__inner, html[data-theme="dark"] .nav-more__dock, html[data-theme="light"] .nav-more__dock, html[data-theme="dark"] #nav-more-menu-floating, html[data-theme="light"] #nav-more-menu-floating { + position: relative; + isolation: isolate; border: 1px solid transparent; - background: - var(--v12-glass-neutral-bg) padding-box, - var(--v12-glass-neutral-border-grad) border-box; +} +html[data-theme="dark"] .glass-neutral:not(.fab)::after, +html[data-theme="light"] .glass-neutral:not(.fab)::after, +html[data-theme="dark"] .header--scrolled .header__inner::after, +html[data-theme="light"] .header--scrolled .header__inner::after, +html[data-theme="dark"] .nav-more__dock::after, +html[data-theme="light"] .nav-more__dock::after, +html[data-theme="dark"] #nav-more-menu-floating::after, +html[data-theme="light"] #nav-more-menu-floating::after { + content: ""; + position: absolute; + inset: -1px; + border-radius: inherit; + padding: 1px; + background: var(--v12-glass-neutral-border-grad); + -webkit-mask: + linear-gradient(#000 0 0) content-box, + linear-gradient(#000 0 0); + -webkit-mask-composite: xor; + mask: + linear-gradient(#000 0 0) content-box, + linear-gradient(#000 0 0); + mask-composite: exclude; + pointer-events: none; + z-index: -1; } html[data-theme="dark"] .theme-picker__panel.glass-neutral,