From 2a4c5d9d2575bbd0e43f705d1ee5ea62b6ac178f Mon Sep 17 00:00:00 2001 From: NotBigGhost Date: Mon, 7 Sep 2026 15:40:51 +0300 Subject: [PATCH] =?UTF-8?q?UI:=20=D1=88=D0=B0=D0=BF=D0=BA=D0=B0=20=D0=B2?= =?UTF-8?q?=D0=BF=D0=BB=D0=BE=D1=82=D0=BD=D1=83=D1=8E=20=D0=BA=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=85=D0=BD=D0=B5=D0=BC=D1=83=20=D0=BA=D1=80=D0=B0?= =?UTF-8?q?=D1=8E=20=E2=80=94=20=D1=81=D0=BD=D1=8F=D1=82=20viewport-fit=3D?= =?UTF-8?q?cover?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В DuckDuckGo шапка держала отступ от адресной строки — тот же safe-area, что раньше отодвигал подвал снизу. Insets браузер отдаёт именно из-за viewport-fit=cover: он передаёт управление безопасной зоной странице. После отказа от отступов сверху и снизу компенсировать нечего, поэтому cover снят — вьюпорт снова размещает браузер, а env() везде даёт ноль. Следом убран --safe-top и три его использования (.top-bar, .side-menu, .toast-top-wrap): без cover переменная всегда нулевая. Токенов safe-area в проекте больше нет. #4 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Ps52xzuUXnWrJ5SRnEeaLk --- frontend/index.html | 2 +- frontend/src/styles/global.css | 2 +- frontend/src/styles/layout.css | 3 +-- frontend/src/styles/tokens.css | 5 ----- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/frontend/index.html b/frontend/index.html index 874a03a..3748545 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,7 +4,7 @@ Forbidden Stars — учёт партий diff --git a/frontend/src/styles/global.css b/frontend/src/styles/global.css index b329cbf..e5cd70b 100644 --- a/frontend/src/styles/global.css +++ b/frontend/src/styles/global.css @@ -448,7 +448,7 @@ input:focus, select:focus, textarea:focus { border-color: var(--accent); } /* Всплывашки сверху экрана в момент прихода */ .toast-top-wrap { position: fixed; - top: calc(var(--safe-top) + 10px); + top: 10px; left: 50%; transform: translateX(-50%); width: min(var(--app-max-w), 94vw); diff --git a/frontend/src/styles/layout.css b/frontend/src/styles/layout.css index 995e49b..f2c98e9 100644 --- a/frontend/src/styles/layout.css +++ b/frontend/src/styles/layout.css @@ -15,7 +15,7 @@ display: flex; align-items: center; justify-content: space-between; - padding: calc(var(--safe-top) + 12px) 16px 12px; + padding: 12px 16px; background: var(--surface); border-bottom: 1px solid var(--border); } @@ -231,7 +231,6 @@ z-index: 61; display: flex; flex-direction: column; - padding-top: var(--safe-top); } .side-menu.open { transform: translateX(0); } diff --git a/frontend/src/styles/tokens.css b/frontend/src/styles/tokens.css index 00a64c8..ae0ef8b 100644 --- a/frontend/src/styles/tokens.css +++ b/frontend/src/styles/tokens.css @@ -20,11 +20,6 @@ --fab-height: 62.5px; --radius: 14px; --radius-sm: 10px; - /* Safe-area с потолком: часть мобильных браузеров (DuckDuckGo, Firefox Focus) при - viewport-fit=cover отдаёт inset поверх уже смещённого вьюпорта — без ограничения - шапка раздувается вдвое, а её содержимое съезжает вниз. Снизу отступ не нужен: - подвал и купол FAB прижаты вплотную к нижнему краю экрана. */ - --safe-top: min(env(safe-area-inset-top, 0px), 24px); /* Брейкпоинты (для справки) */ --bp-lg: 768px;