fix(report): sticky-сайдбар навигации — overflow-x: clip вместо hidden (#958) #2106

Merged
bot-backend merged 1 commit from fix/sticky-sidebar-overflow-clip into main 2026-06-30 11:05:55 +00:00
Collaborator

Summary

«Навигация не едет за скролом и не подсвечивает где мы» — один корень: сайдбар (position: sticky; top: 72) уезжал вверх при скролле (прод-замер: на scrollY 6769 его top был −6589, а не 72). Подсветку активной секции поэтому тоже не видно — она уезжает вместе с панелью.

Причина: html, body { overflow-x: hidden } (добавлено для #66 — гасит горизонтальный скролл). overflow-x: hidden заставляет браузер вычислить overflow-y: auto → body становится scroll-контейнером для position: sticky, но реально скроллит window/html, а не body → sticky никогда не залипает. Было сломано исходно, не моими PR.

Фикс: overflow-x: clip — так же режет горизонтальный overflow, но не создаёт scroll-контейнер (overflow-y остаётся visible) → sticky работает. Чинит sticky-сайдбары на всех страницах с этим паттерном.

Подтверждено на проде (DOM-патч overflow-x: clip): body overflow-y стал visible, aside.getBoundingClientRect().top залипает на 72 при scrollY 6000 (было −6589). scrollspy-подсветка (PR #2105) уже работает — теперь будет видна, т.к. панель остаётся на экране.

Test plan

  • empirically validated on prod (clip → body overflow-y visible → aside sticks at top:72)
  • overflow-x: clip поддержан всеми современными браузерами (десктоп-аудитория)
  • post-deploy: скролл отчёта → панель навигации остаётся на месте + активный пункт подсвечивается и трекает секцию

Refs #958, #66.

## Summary «Навигация не едет за скролом и не подсвечивает где мы» — **один корень**: сайдбар (`position: sticky; top: 72`) уезжал вверх при скролле (прод-замер: на scrollY 6769 его `top` был **−6589**, а не 72). Подсветку активной секции поэтому тоже не видно — она уезжает вместе с панелью. **Причина:** `html, body { overflow-x: hidden }` (добавлено для #66 — гасит горизонтальный скролл). `overflow-x: hidden` заставляет браузер вычислить `overflow-y: auto` → body становится scroll-контейнером для `position: sticky`, но реально скроллит `window`/`html`, а не body → sticky **никогда не залипает**. Было сломано исходно, не моими PR. **Фикс:** `overflow-x: clip` — так же режет горизонтальный overflow, но **не создаёт scroll-контейнер** (overflow-y остаётся `visible`) → sticky работает. Чинит sticky-сайдбары на всех страницах с этим паттерном. **Подтверждено на проде** (DOM-патч `overflow-x: clip`): `body overflow-y` стал `visible`, `aside.getBoundingClientRect().top` залипает на **72** при scrollY 6000 (было −6589). scrollspy-подсветка (PR [#2105](https://git.gendsgn.ru/lekss361/gendesign/pulls/2105)) уже работает — теперь будет видна, т.к. панель остаётся на экране. ## Test plan - [x] empirically validated on prod (clip → body overflow-y visible → aside sticks at top:72) - [x] `overflow-x: clip` поддержан всеми современными браузерами (десктоп-аудитория) - [ ] post-deploy: скролл отчёта → панель навигации остаётся на месте + активный пункт подсвечивается и трекает секцию Refs #958, #66.
bot-backend added 1 commit 2026-06-30 11:03:09 +00:00
fix(report): sticky-сайдбар — overflow-x: clip вместо hidden (#958)
All checks were successful
CI / changes (pull_request) Successful in 7s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 58s
CI / openapi-codegen-check (pull_request) Successful in 1m52s
27b27d9f5d
«Навигация не едет за скролом» + не видно подсветки активной секции: панель
(position: sticky; top: 72) уезжала вверх при скролле (на scrollY 6769 её top
был −6589). Корень: html, body { overflow-x: hidden } (#66 — гасит гориз.скролл)
заставляет браузер вычислить overflow-y: auto → body становится scroll-
контейнером для sticky, но реально скроллит window/html, а не body → sticky
никогда не залипает. Подсветка scrollspy не видна по той же причине — уезжает
с панелью.

overflow-x: CLIP так же режет горизонтальный overflow, но НЕ создаёт scroll-
контейнер (overflow-y остаётся visible) → sticky работает. Подтверждено на
проде: с clip body overflow-y=visible, aside залипает на top:72 при скролле.
Чинит sticky-сайдбары на всех страницах с этим паттерном (был сломан исходно).
bot-backend merged commit fe85cbb7ae into main 2026-06-30 11:05:55 +00:00
bot-backend deleted branch fix/sticky-sidebar-overflow-clip 2026-06-30 11:05:55 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2106
No description provided.