gendesign/tradein-mvp/frontend
bot-backend 5d3a045e86 МЕРА-лэндинг: меню на узком экране + спейсер под липкую панель
Навигация на узком экране была не «спрятана», а потеряна: «Точность»,
«Проверьте себя», «Статьи» и кнопка «Проверить квартиру» отдавали нулевой
getBoundingClientRect (замер на проде, 800px), замены им не было ни в шапке,
ни рядом. При высоте страницы 11 316px это значит, что до раздела можно было
добраться только прокруткой.

Довод прежнего докстринга (липкая шапка на 375px занимала 29% экрана, потому
что четыре пункта переносились) оставлен в силе: пункты вернулись НЕ в строку
шапки, а в родной `<details>`. Закрытое меню — одна кнопка, высота липкой
шапки прежняя (замерено до и после: 53px), открытая панель лежит поверх
страницы (position: absolute) и шапку не раздвигает. Клиентского острова не
завелось — шапка осталась серверной. Пункты описаны одним списком NAV_ITEMS и
рендерятся в оба места, чтобы пункт не мог снова появиться в одном и
потеряться в другом.

Спейсер под липкой нижней панелью был на 2,5px короче самой панели с 1000px,
где у неё растёт паддинг и появляется строка текста (замер на проде: панель
70,5px против спейсера 68px) — нижние пиксели подвала уходили под панель ровно
там, где спейсер и заводили. Второе значение стоит в том же @media-блоке, что
и паддинг, который его меняет.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 12:48:02 +05:00
..
public refactor(tradein/v2): перенос HUD v2 в tradein-mvp frontend 2026-06-28 13:10:23 +03:00
scripts chore(mera-public): isolation guard + favicon + Caddy handle (#2631) (#2644) 2026-08-05 06:20:40 +00:00
src МЕРА-лэндинг: меню на узком экране + спейсер под липкую панель 2026-08-31 12:48:02 +05:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile chore(ci): node 20 отслужил — рантайм фронтов и оба CI-джоба на node 24 LTS 2026-08-29 14:02:55 +03:00
eslint.config.mjs ci(tradein): pre-merge гейт — backend pytest + frontend type-check/lint (#2208) (#2220) 2026-07-02 19:56:22 +00:00
next.config.ts fix(tradein/frontend): redirect legacy /trade-in root to canonical /v2 2026-07-02 19:26:55 +03:00
package-lock.json chore(deps/mera): vitest 2 → 3 — заодно уходит вся dev-цепочка vite/esbuild 2026-08-29 14:08:05 +03:00
package.json chore(deps/mera): vitest 2 → 3 — заодно уходит вся dev-цепочка vite/esbuild 2026-08-29 14:08:05 +03:00
tsconfig.json feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
vitest-env.d.ts test(tradein/frontend): первые проверки поведения — пустое поле, погашенное число, отказ 429 (#2766) (#2769) 2026-08-07 07:55:37 +00:00
vitest.config.ts test(tradein/frontend): первые проверки поведения — пустое поле, погашенное число, отказ 429 (#2766) (#2769) 2026-08-07 07:55:37 +00:00
vitest.setup.ts test(tradein/frontend): первые проверки поведения — пустое поле, погашенное число, отказ 429 (#2766) (#2769) 2026-08-07 07:55:37 +00:00