diff --git a/HDESIGN-CODE.md b/HDESIGN-CODE.md index 3b03d66..f11a904 100644 --- a/HDESIGN-CODE.md +++ b/HDESIGN-CODE.md @@ -2,6 +2,10 @@ Документ фиксирует канон интерфейса NODE.DC, чтобы не обсуждать одни и те же правила повторно. +Связанные документы: +- архитектурный регламент dropdown-окон: [HDROPDOWN-CANON.md](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/HDROPDOWN-CANON.md) +- экранный аудит и backlog миграции: [HUI-CANON-AUDIT.md](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/HUI-CANON-AUDIT.md) + ## Источник цветов - Основной runtime-конфиг цветов: [design.config.json](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/design.config.json) - Рабочая web-копия: [plane-src/apps/web/design.config.json](/Users/dcconstructions/Downloads/mnt/data/dc_taskmanager/NODEDC_TASKMANAGER/plane-src/apps/web/design.config.json) diff --git a/HUI-CANON-AUDIT.md b/HUI-CANON-AUDIT.md new file mode 100644 index 0000000..79cc413 --- /dev/null +++ b/HUI-CANON-AUDIT.md @@ -0,0 +1,461 @@ +# 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). + +Цель: +- увидеть все экраны проекта в одном месте +- отделить каноничные 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. Внутренний контур + +Статус: +- основной эталон + +Осталось: +- дочистить legacy action-menu вне основной карточки +- добить group headers, spreadsheet header menus, calendar quick add +- унифицировать secondary popup в relations, attachments, comments + +### 2. Внешние контуры + +Статус: +- частично приведён + +Осталось: +- перевести [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 канон +- проверить все top-toolbar и 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 + +## Общий список страниц, которые требуют полноценного 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-канон