Skip to content

V3 UI - Tabs & Menu rework #4374

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Jul 24, 2025
Merged

V3 UI - Tabs & Menu rework #4374

merged 16 commits into from
Jul 24, 2025

Conversation

pythongosssss
Copy link
Member

@pythongosssss pythongosssss commented Jul 7, 2025

  • Moves workflow tabs to the top level
    • Shrinks tabs down to a minumum size before overflowing
    • Add scroll arrows to make it more obvious when tabs dont fit
  • Moves the app menu into the ComfyUI logo
    • On Desktop, right click context menu is the "native" context menu
  • Moves the subgraph breadcrumbs next to the logo and always shows top level graph item
    • Progressively collapses the text/items at smaller window sizes
    • Add item specific commands to active workflow/subgraph (rename/duplicate/delete/etc)
  • Optimized for Desktop with custom window chrome (Only Windows tested)
  • Move "toggle bottom panel" button to left menu
  • Move theme & settings to app menu
  • Fix "clear" command deleting top level workflow when inside a subgraph
  • Overflow scroll extension buttons

┆Issue is synchronized with this Notion page by Unito

image

@JorgeR81
Copy link

JorgeR81 commented Jul 8, 2025

@pythongosssss pythongosssss marked this pull request as ready for review July 8, 2025 20:09
christian-byrne
christian-byrne previously approved these changes Jul 9, 2025
- move tabs to top
- improve tab resizing/scrolling
- rework menu
- reogranize top/side buttons
- Move to command bar
- Add dynamic overflow collapsing
- breadcrumb collapse tweaks
- hot reload element observer fixes
- increase size of logo/menu area with normal sidebar, add right spacing
- fix chevron icon inconsistency
- add renaming by double clicking breadcrumb
- tweak submenu positions
- show menu items on hover (hack)
@pythongosssss pythongosssss force-pushed the pysssss/v3-interface-menu branch from 674f0ef to 712cc89 Compare July 11, 2025 08:15
Copy link
Contributor

@christian-byrne christian-byrne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are all changes which don't have to block merging, but we could consider adjusting in follow-up PRs:

High Priority

  1. [src/components/breadcrumb/SubgraphBreadcrumb.vue] - Issue: Brittle overflow calculation with hardcoded values. Suggestion: Explore CSS-based solutions or dynamic constant derivation.

  2. [src/components/breadcrumb/SubgraphBreadcrumbItem.vue] - Issue: Direct DOM manipulation for width. Suggestion: Use reactive Vue styling.

  3. [src/components/topbar/CommandMenubar.vue:233-239] - Issue: Direct manipulation of undocumented PrimeVue internal property (.dirty). Suggestion: Avoid internal hacks; find public API or implement custom logic. HIGH PRIORITY FIX.

  4. [src/components/topbar/CommandMenubar.vue] - Issue: Use of !important in CSS. Suggestion: Prefer more specific selectors or component props.

  5. [src/components/topbar/WorkflowTabs.vue] - Issue: Inconsistent horizontal scroll amount calculation. Suggestion: Refine scrollAmount for consistent behavior across devices.

  6. [src/components/breadcrumb/SubgraphBreadcrumbItem.vue:35] - Issue: Extreme z-index (10000). Suggestion: Use design system value (1100-1200).

Medium Priority

  1. [src/components/breadcrumb/SubgraphBreadcrumb.vue:58-64] - Issue: Unsafe type casting for DOM access. Suggestion: Use proper TypeScript typing with null checks.

  2. [src/composables/element/useOverflowObserver.ts:34-37] - Issue: Only checks horizontal overflow. Suggestion: Add option for vertical overflow detection.

  3. [src/components/topbar/WorkflowTabs.vue:220] - Issue: Hardcoded scroll amount (20px). Suggestion: Make configurable or viewport-based.

  4. [src/components/topbar/WorkflowTabs.vue:376-386] - Issue: Complex CSS with magic numbers and experimental env(). Suggestion: Add fallback styles and document compatibility.

  5. [src/components/topbar/CommandMenubar.vue:114-125] - Issue: Recursive function without depth limit. Suggestion: Add maximum recursion depth protection.

Low Priority

  1. [src/utils/mouseDownUtil.ts:3-7] - Issue: No input validation. Suggestion: Add type guards and parameter validation.

  2. [src/components/breadcrumb/SubgraphBreadcrumbItem.vue:162-167] - Issue: Relying on event.detail for click detection. Suggestion: Use more robust double-click handling.

  3. [src/components/breadcrumb/SubgraphBreadcrumb.vue:133-151] - Issue: Complex manual width calculation. Suggestion: Use ResizeObserver or getBoundingClientRect().

Copy link
Contributor

@christian-byrne christian-byrne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@christian-byrne christian-byrne merged commit 62f3ba0 into main Jul 24, 2025
10 checks passed
@christian-byrne christian-byrne deleted the pysssss/v3-interface-menu branch July 24, 2025 07:09
@christian-byrne christian-byrne mentioned this pull request Jul 24, 2025
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.

3 participants