From b40f939e914453d3080bde6051a7dbcf66a42321 Mon Sep 17 00:00:00 2001 From: kewldan <40865857+kewldan@users.noreply.github.com> Date: Mon, 13 Jul 2026 01:46:22 +0300 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=D1=84=D0=B8=D0=BA=D1=81=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=B0=D1=8F=20=D1=88=D0=B8=D1=80?= =?UTF-8?q?=D0=B8=D0=BD=D0=B0=20100vw=20=E2=80=94=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=86=D1=8B=20=D0=BD=D0=B5=20=D1=81=D0=B4?= =?UTF-8?q?=D0=B2=D0=B8=D0=B3=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=D1=8F=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B8?= =?UTF-8?q?=20=D1=81=D0=BA=D1=80=D0=BE=D0=BB=D0=BB=D0=B1=D0=B0=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/layout/AppShell/AppShell.tsx | 6 +++++- src/styles/globals.css | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/layout/AppShell/AppShell.tsx b/src/components/layout/AppShell/AppShell.tsx index 4afc448..05d9e3c 100644 --- a/src/components/layout/AppShell/AppShell.tsx +++ b/src/components/layout/AppShell/AppShell.tsx @@ -190,7 +190,11 @@ export function AppShell({ children }: AppShellProps) { {/* Desktop Header */} -
+ {/* w-screen вместо left-0 right-0: right-0 упирается в край вьюпорта БЕЗ + скроллбара, и капсула по центру прыгала бы на полширины скроллбара при + переходах между страницами со скроллом и без. 100vw даёт ту же ось + центрирования, что и у body (тоже 100vw). */} +
{/* 3-зонный grid: лого | капсула | действия. Колонки 1fr_auto_1fr держат капсулу строго по центру вьюпорта НЕЗАВИСИМО от ширины лого/действий, а действия — у правого края. Поэтому ничего не «скачет» при переходах diff --git a/src/styles/globals.css b/src/styles/globals.css index 2cbdb86..1c5bde0 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -235,6 +235,17 @@ scrollbar-color: rgb(var(--color-dark-700)) transparent; } + body { + /* 100vw включает ширину скроллбара, поэтому центрированный контент не + сдвигается, когда при навигации появляется/исчезает вертикальный + скроллбар; лишние ~6px справа уходят под скроллбар и срезаются + overflow-x: hidden на html. Вариант со scrollbar-gutter: stable не + подошёл: фоновый слой (fixed-портал) не красит зарезервированный жёлоб, + и справа остаётся пустая полоса. На мобильных overlay-скроллбары места + не занимают — правило ни на что не влияет. */ + width: 100vw; + } + /* Hide scrollbar on mobile (iOS/Android) */ @media (max-width: 1023px) { html,