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,