Skip to content

ui(review): причёсанная top-bar ревьюилки#252

Merged
gently-whitesnow merged 1 commit into
masterfrom
ui/review-bar-polish
Jul 16, 2026
Merged

ui(review): причёсанная top-bar ревьюилки#252
gently-whitesnow merged 1 commit into
masterfrom
ui/review-bar-polish

Conversation

@gently-whitesnow

Copy link
Copy Markdown
Owner

Цель

UX/UI-полировка верхнего бара ReviewWorkspaceOverlay: перегружен, 4 контрола справа перетягивают внимание с primary-действия «Смержить».

Изменения

  • Split-button Смержить ▾ (ReviewMergeControl.tsx). Основная кнопка primary + отдельная chevron-кнопка открывает inline anchored-поповер под split-button. В поповере: стратегия мержа (select), «Удалить ветку», «Очистить состояние». Click-outside и Escape закрывают.
  • Компактный статус-pill для mergeability + checks (bg-base-200 + иконка + разделитель ·) — раньше две правыми-выравненными строки с разной типографикой.
  • Открыть в IDE → icon-only в review-баре: новый проп iconOnly у OpenBindingInIdeButton; в баре — квадратная иконка с tooltip, освобождает середину.
  • ReviewScopeBar: увеличен вертикальный ритм (py-2.5), тонкие разделители base-300 между смысловыми группами (repo · scope · right group · close), close вырос до 32×32 hit-area, транзишены именованы (transition-[color,background-color]) по DESIGN.md.

Что осталось как было

  • Scope-селектор Весь PR / Коммит… — по запросу оператора, только косметика.
  • Порядок openInIde → mergeControl — тест на порядок остаётся зелёным.
  • Все существующие сценарии ReviewMergeControl (мерж/disabled/link/error) сохранены; добавлен тест: настройки скрыты по умолчанию и раскрываются кнопкой меню.

Отброшено

  • Общий shared/ui/…/Popover — он модальный центрированный; split-button требует anchored — сделал локально, чтобы не тащить floating-ui.
  • hover:bg-primary-strong (токен есть в DESIGN.md, но не сгенерирован как Tailwind-утилита) — оставил hover:bg-primary/90 как в проекте.

Ограничения

  • Anchored-поповер без portal: absolute от anchor. В review-workspace (fullscreen modal, w-64 меню) обрезаться некуда, но при кардинальном сужении окна края могут подрезаться.
  • Контраст в throne-dark — визуальная проверка (token-based, не автотест).

Проверки

  • python scripts/quality/verify.py --scope frontend --skip frontend-deps,frontend-audit,frontend-build,frontend-architecture — все зелёные: prettier, eslint, tsc, LOC-budget (файлы ≤300), vitest (270 тестов).
  • Self-test: собран из исходников этой ветки, scripts/run-dev.sh -- -p 5109 --no-browser.

Решения:
- Merge-контрол перекроен в split-button «Смержить ▾»: primary-действие
  всегда на виду, стратегия и чекбоксы «Удалить ветку» / «Очистить
  состояние» ушли в inline-поповер под chevron. Click-outside и Escape
  закрывают. Разгружает правую половину бара — раньше 4 контрола
  соревновались за внимание с primary-кнопкой.
- «Открыть в IDE» получает проп iconOnly и в review-баре рендерится
  квадратной иконкой с tooltip — типовой сценарий, длинная подпись
  крала место.
- ScopeBar: увеличен вертикальный ритм (py-2.5), добавлены тонкие
  разделители base-300 между смысловыми группами (repo · scope ·
  right group · close), close вырос до 32×32 под требуемую hit-area.
  Порядок openInIde → mergeControl сохранён (тест на порядок остаётся
  зелёным).
- Статус мержа собран в компактный pill (bg-base-200) — mergeability
  и checks на одной строке через разделитель ·, вместо двух
  right-aligned строк с разной типографикой.

Отброшено:
- Общий shared/ui Popover — он центрированный модальный (для «+»
  бакетов и type-picker); split-button требует anchored-поповер,
  поэтому меню реализовано локально в ReviewMergeControl.
- hover:bg-primary-strong — токен есть в DESIGN.md, но не сгенерирован
  как Tailwind-утилита; оставил hover:bg-primary/90 как в проекте.

Ограничения:
- Поповер меню без floating-ui/portal: absolute-positioning от anchor.
  На узкой правой границе Modal-контейнера меню (w-64) не выходит за
  край, но при кардинальном сужении окна может обрезаться. Пока
  достаточно для review-workspace (fullscreen modal).
- Проверки контраста в throne-dark — визуальные, без токен-теста.
@gently-whitesnow
gently-whitesnow merged commit 418fd90 into master Jul 16, 2026
1 check passed
@gently-whitesnow
gently-whitesnow deleted the ui/review-bar-polish branch July 16, 2026 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants