NODEDC_TASKMANAGER/HUI-CANON-AUDIT.md

474 lines
29 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HUI CANON AUDIT
Документ фиксирует аудит экранов и dropdown-механик NODE.DC после внедрения
[HDESIGN-CODE.md](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/HDESIGN-CODE.md)
и
[HDROPDOWN-CANON.md](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/HDROPDOWN-CANON.md).
Текущий активный техдолг по незавершенной миграции dropdown-layer:
- [plane-src/docs/technical-debts/dropdown-standardization-debt.md](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/docs/technical-debts/dropdown-standardization-debt.md)
Цель:
- увидеть все экраны проекта в одном месте
- отделить каноничные shared-dropdown от legacy-механик
- понять, какие страницы уже близки к канону, а какие ещё живут на старом слое
- перейти от точечных UI-фиксов к этапной стандартизации
## Текущий канон
### Каноничные dropdown-stack
- `Selection dropdown`
- `StateDropdown`
- `PriorityDropdown`
- `DateDropdown`
- `MemberDropdown`
- `Project / Module breadcrumb dropdown`
- `Action dropdown`
- [ActionDropdown](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/packages/ui/src/dropdowns/action-dropdown.tsx:109)
- `Context menu`
- допускается как secondary/right-click слой
- не должен быть основным видимым dropdown у кнопки `...`
### Legacy-механика
Основной legacy-слой, который ещё не вычищен:
- [CustomMenu](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/packages/ui/src/dropdowns/custom-menu.tsx:61)
Это не означает, что `CustomMenu` нужно удалить целиком прямо сейчас.
Это означает:
- новые action dropdown не должны строиться на нём по инерции
- все пользовательски важные action-menu надо постепенно переводить на shared `ActionDropdown`
- `CustomMenu` должен оставаться только там, где его subtree/submenu-поведение ещё реально нужно и пока не мигрировано
## Карта экранов проекта
Ниже список page-route экранов под проектным shell:
- `Главная проекта`
- [page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/page.tsx)
- `Активные циклы`
- [active-cycles/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/page.tsx)
- `Аналитика`
- [analytics/[tabId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx)
- `Browse`
- [browse/[workItem]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/page.tsx)
- `Черновики`
- [drafts/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/page.tsx)
- `Уведомления`
- [notifications/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/page.tsx)
- `Профиль / активность / профайл-вью`
- [profile/[userId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/page.tsx)
- [profile/[userId]/activity/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/activity/page.tsx)
- [profile/[userId]/[profileViewId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/[profileViewId]/page.tsx)
- `Стикеры`
- [stickies/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/page.tsx)
- `Workspace views`
- [workspace-views/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx)
- [workspace-views/[globalViewId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/[globalViewId]/page.tsx)
- `Список проектов`
- [projects/(list)/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(list)/page.tsx)
- `Архивы проекта`
- [projects/(detail)/archives/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/archives/page.tsx)
- `Внутренний контур / Issues`
- [issues/(list)/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/page.tsx)
- [issues/(detail)/[issueId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(detail)/[issueId]/page.tsx)
- `Внешние контуры`
- [external-contours/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/external-contours/page.tsx)
- `Предложения / Intake`
- [intake/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/page.tsx)
- `Модули`
- [modules/(list)/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/page.tsx)
- [modules/(detail)/[moduleId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx)
- `Циклы`
- [cycles/(list)/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/page.tsx)
- [cycles/(detail)/[cycleId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx)
- `Виды / Views`
- [views/(list)/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/page.tsx)
- [views/(detail)/[viewId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/page.tsx)
- `Страницы / Pages`
- [pages/(list)/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/page.tsx)
- [pages/(detail)/[pageId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx)
- `Архивы issues`
- [archives/issues/(list)/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx)
- [archives/issues/(detail)/[archivedIssueId]/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx)
- `Архивы модулей`
- [archives/modules/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/page.tsx)
- `Архивы циклов`
- [archives/cycles/page.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx)
## Статус по модулям относительно дизайн-канона
### Ближе всего к канону
- `Внутренний контур / Issues`
- это основной эталон для карточки, detail-pane, activity, properties и стандартных selection dropdown
- но и здесь ещё остались legacy action-menu и точечные старые `CustomMenu` вокруг вторичных UI-мест
- `Хлебные крошки project/module`
- логика уже унифицирована и приведена к кликабельному dropdown-поведению
### Частично приведены, но ещё не завершены
- `Внешние контуры`
- основная верстка уже двинута к glass-канону
- но action-menu и часть secondary popup ещё на legacy-слое
- `Предложения / Intake`
- detail-pane, список, фильтры и modal уже сильно приближены к канону
- но внутри intake ещё остались локальные `CustomMenu` участки и sorting/menu-узлы
- `Workspace / Sidebar / Project shell`
- часть shell уже приведена, но sidebar-quick-actions и project/workspace action-menu ещё смешивают старый и новый подход
### Основной legacy-кластер
- `Модули`
- `Циклы`
- `Views`
- `Pages`
- `Profile`
- `Archives`
- часть `Calendar / Spreadsheet / Relations / Attachments / Comments`
Именно здесь сейчас больше всего старых `CustomMenu` и action-wrapper-ов.
## Оставшиеся legacy dropdown-механики
Ниже список мест, которые ещё не переведены на канон без локальных menu-wrapper решений.
### P0. Главные action-menu рабочих сущностей
Это самые важные экраны, потому что они формируют основной UX проекта.
- `Issues layout common actions`
- [layout-quick-actions.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/layout-quick-actions.tsx:1)
- `Modules quick actions`
- [modules/quick-actions.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/modules/quick-actions.tsx:1)
- `Cycles quick actions`
- [cycles/quick-actions.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/cycles/quick-actions.tsx:1)
- `Views quick actions`
- [views/quick-actions.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/views/quick-actions.tsx:1)
- `Pages actions`
- [pages/dropdowns/actions.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/pages/dropdowns/actions.tsx:1)
- `External contours actions menu`
- [actions-menu.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/ce/components/projects/external-contours/actions-menu.tsx:1)
Почему это legacy:
- все эти места по сути решают одну задачу: показать список действий по кнопке `...`
- часть из них ещё сидит на `CustomMenu`
- часть визуально близка к канону, но не использует единый `ActionDropdown`
Что нужно:
- перевести их на `ActionDropdown`
- оставить `ContextMenu` только как secondary/right-click слой, если он реально нужен
### P1. Action-menu внутри detail / relation / attachment / comments
- `Comments quick actions`
- [comments/quick-actions.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/comments/quick-actions.tsx:1)
- `Issue detail parent`
- [issue-detail/parent/root.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-detail/parent/root.tsx:1)
- [issue-detail/parent/sibling-item.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-detail/parent/sibling-item.tsx:1)
- `Issue detail links`
- [issue-detail/links/link-item.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-detail/links/link-item.tsx:1)
- `Relations list item`
- [relations/issue-list-item.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/relations/issue-list-item.tsx:1)
- `Attachments`
- [attachment-list-item.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/attachment/attachment-list-item.tsx:1)
- `Sub-issues / relations widgets`
- [sub-issues/quick-action-button.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx:1)
- [relations/quick-action-button.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-detail-widgets/relations/quick-action-button.tsx:1)
- [sub-issues/issues-list/list-item.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/list-item.tsx:1)
Почему это важно:
- это вторичный, но очень частый слой интерфейса
- пользователь должен видеть те же surface, spacing и placement, что и на карточках задач
### P1. Legacy menus в list/group header и табличных видах
- `Kanban group-by card`
- [kanban/headers/group-by-card.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx:1)
- `List group-by card`
- [list/headers/group-by-card.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx:1)
- `Spreadsheet header column`
- [spreadsheet/columns/header-column.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/header-column.tsx:1)
- `Calendar quick add issue actions`
- [calendar/quick-add-issue-actions.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx:1)
Что тут нужно:
- унифицировать action-menu заголовков, фильтров и group controls
- не смешивать `CustomMenu` со старой кнопочной геометрией там, где можно жить на общем action stack
### P1. Legacy sorting/order-by dropdown
- `Project order-by`
- [project/dropdowns/order-by.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/project/dropdowns/order-by.tsx:1)
- `Modules order-by`
- [modules/dropdowns/order-by.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/modules/dropdowns/order-by.tsx:1)
- `Views order-by`
- [views/filters/order-by.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/views/filters/order-by.tsx:1)
- `Pages order-by`
- [pages/list/order-by.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/pages/list/order-by.tsx:1)
- `Inbox order-by`
- [inbox-filter/sorting/order-by.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx:1)
Это не quick-actions, но это тоже dropdown-узлы, которые стоит перевести на единый selection/sorting-канон, а не держать на разрозненном `CustomMenu`.
### P2. Mobile header legacy menus
- `Profile mobile header`
- [profile/[userId]/mobile-header.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx:1)
- `Modules mobile headers`
- [modules/(detail)/mobile-header.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx:1)
- [modules/(list)/mobile-header.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/mobile-header.tsx:1)
- `Cycles mobile headers`
- [cycles/(detail)/mobile-header.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx:1)
- [cycles/(list)/mobile-header.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/mobile-header.tsx:1)
Это второй этап после desktop surface.
### P2. Workspace / navigation / utility legacy menus
- `Project actions menu`
- [project-actions-menu.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/navigation/project-actions-menu.tsx:1)
- `Workspace sidebar project item`
- [projects-list-item.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/workspace/sidebar/projects-list-item.tsx:1)
- `Workspace views quick actions`
- [workspace/views/quick-action.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/workspace/views/quick-action.tsx:1)
- [workspace/views/default-view-quick-action.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/workspace/views/default-view-quick-action.tsx:1)
- `Workspace / user / help / favorites`
- [workspace-menu-header.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/workspace/sidebar/workspace-menu-header.tsx:1)
- [user-menu-root.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/workspace/sidebar/user-menu-root.tsx:1)
- [favorite-item-quick-action.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-quick-action.tsx:1)
Это уже не P0, но на общем ощущении системы они сказываются сильно.
## Экраны, которые ещё нужно перевести на канон по дизайну
Ниже список экранов не только по dropdown, а вообще по UI-канону.
### 1. Внутренний контур
Статус:
- основной эталон по `board + detail-shell + cards + activity + properties`
Осталось:
- дочистить legacy action-menu вне основной карточки и detail-secondary слоёв
- добить альтернативные view `list / calendar / gantt / spreadsheet`
- добить group headers, spreadsheet header menus, calendar quick add
- унифицировать secondary popup в relations, attachments, comments
### 2. Внешние контуры
Статус:
- cards и detail-shell близки к канону, но модуль ещё не закрыт полностью
Осталось:
- перевести [actions-menu.tsx](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/ce/components/projects/external-contours/actions-menu.tsx:1) на тот же action-dropdown канон, если там ещё остались legacy-path
- проверить дополнительное окно информации и related detail-surface ещё раз по glass/radius/button rules
- сравнить все detail-row и popup с эталоном `Внутреннего контура`
### 3. Предложения / Intake
Статус:
- сильно продвинуты к канону
Осталось:
- добить все `CustomMenu` в create modal и sorting
- полностью убрать остатки старого menu-wrapper поведения
- пройти весь flow `список -> деталь -> создание -> фильтры -> сортировка` ещё раз на единый shell
### 4. Модули
Статус:
- legacy
Осталось:
- list/detail headers
- quick actions
- mobile headers
- order-by/filter dropdown
- сравнение карточек и action-bars с эталоном `Внутреннего контура`
### 5. Циклы
Статус:
- legacy
Осталось:
- quick actions
- list/detail/mobile headers
- archived cycles header / controls
- приведение всех dropdown к канону `selection/action`
### 6. Views
Статус:
- legacy
Осталось:
- quick actions
- order-by/filters
- view list header
- surface/spacing/popup alignment
### 7. Pages
Статус:
- legacy
Осталось:
- page list order-by
- page actions dropdown
- editor toolbar popup
- detail/list header alignment
### 8. Archives
Статус:
- partial legacy
Осталось:
- архивы issues/modules/cycles привести к тем же header, filter, action-menu принципам
- убрать разные локальные mobile/header menu-path
### 9. Workspace shell / sidebar / navigation
Статус:
- partial
Осталось:
- project/workspace/user/favorites menus
- единая логика quick actions в sidebar
- единый visual shell popup на всём workspace слое
### 10. Profile / Notifications / Active cycles / Analytics / Drafts / Browse / Stickies
Статус:
- требуется отдельный дизайн-аудит
Это не значит, что там всё сломано.
Это значит:
- эти экраны пока не проходили такой же системный канонический прогон, как `Внутренний контур`, `Внешние контуры` и `Intake`
- их надо отдельно сверить по dropdown, button, popup, glass shell, toolbar и spacing
- отдельный приоритет внутри этого блока:
- `Analytics overview`
- `Workspace dashboard / Home`
- `Drafts`
- `Profile`
- `Stickies`
- `Browse / All issues / Workspace view`
- `Settings`
## Общий список страниц, которые требуют полноценного UI-pass
Порядок рекомендован по приоритету:
1. `Modules list/detail`
2. `Cycles list/detail`
3. `Views list/detail`
4. `Pages list/detail`
5. `Archives issues/modules/cycles`
6. `Workspace sidebar / project shell / navigation`
7. `Profile`
8. `Stickies`
9. `Analytics`
10. `Drafts`
11. `Browse`
12. `Notifications`
13. `Active cycles`
## Что именно значит "подбить к канону"
Для каждого экрана нужно проверять не только dropdown.
Чек-лист:
- breadcrumb соответствует канону project/module dropdown
- toolbar сидит на общем вертикальном ритме
- filled CTA используют акцент + тёмный текст
- secondary buttons без лишних outline
- popup и modal имеют matte black glass shell
- selection dropdown и action dropdown не смешаны по механике
- `...` и соседние controls имеют совместимую геометрию
- detail-pane и cards используют shared shell, а не локальную внешнюю заплатку
- list item spacing и card spacing не выбиваются из эталона
- create modal / edit modal используют shared modal-input and modal-editor canon
- mobile header не живёт своей отдельной стилистикой без причины
## Предлагаемая этапность миграции
### Этап 1. Action-menu миграция P0
Перевести на `ActionDropdown`:
- issues layout actions
- modules quick actions
- cycles quick actions
- views quick actions
- pages actions
- external contours actions menu
Результат:
- основной каркас action-menu во всех сущностях будет стандартизирован
### Этап 2. Detail widgets и row actions
Перевести:
- comments
- relations
- links
- attachments
- sub-issues widgets
Результат:
- вторичный слой меню перестанет выбиваться из канона
### Этап 3. Sorting / order-by / filter popup
Перевести:
- project/modules/views/pages/inbox sorting
- group headers
- spreadsheet/calendar header menus
Результат:
- selection/sorting popup тоже уйдут с разрозненного legacy слоя
### Этап 4. Modules / Cycles / Views / Pages design pass
Сделать полный UI-pass:
- list
- detail
- mobile headers
- empty states
- cards
- top-toolbar
- modal
### Этап 5. Workspace / profile / utility screens
Пройти:
- workspace sidebar
- user/project actions
- profile
- stickies
- analytics
- drafts
- browse
- notifications
## Главный вывод
Сейчас проект уже не находится в состоянии "везде хаос".
Уже есть рабочий канон:
- breadcrumbs
- action dropdown
- selection dropdown
- `Внутренний контур` как основной визуальный эталон
- `Внешние контуры` и `Intake` как частично приведённые модули
Но legacy слой ещё большой.
Ключевая проблема не в одном баге dropdown.
Ключевая проблема в том, что часть экранов уже живёт на shared-каноне, а часть всё ещё использует старые локальные `CustomMenu` и menu-wrapper решения.
Значит, следующая правильная работа:
- не лечить случайные оффсеты по одному
- а поэтапно переводить оставшиеся экраны на общий dropdown и UI-канон