Skip to content

feat(editor): comprehensive UI redesign with floating toolbar and tab-based editing#1

Merged
albertgwo merged 4 commits intomainfrom
ui-redesign
Feb 21, 2026
Merged

feat(editor): comprehensive UI redesign with floating toolbar and tab-based editing#1
albertgwo merged 4 commits intomainfrom
ui-redesign

Conversation

@albertgwo
Copy link
Copy Markdown
Contributor

Summary

  • Rebuild editor layout from sidebar-based panels to floating Island overlays with canvas-first design
  • Add specification-driven node system (NodeSpec registry, unified rounded-rectangle nodes with color+icon differentiation)
  • Replace monolithic CSS (1,110 lines) with modular design token system (12 CSS modules, custom dark palette)

New Components

  • Floating bottom toolbar with keyboard shortcuts for all 6 node types
  • Tab-based node editing (single-click → near-node popover, double-click → full tab editor)
  • Command palette (Cmd+K) with fuzzy search
  • Resizable bottom panel (YAML preview + validation)
  • Zoom controls with click-to-edit percentage
  • Smoothstep (orthogonal) edges with hover delete + inline labels
  • Collapsible, reorderable swim lanes with horizontal headers

Architecture

  • All new code in v2 directories (nodes-v2/, edges-v2/, components-v2/, hooks-v2/, styles/)
  • Old components deleted after integration (nodes/, edges/, panels/, styles.css)
  • Core state (useFlowprintState) and controlled API (value/onChange) preserved
  • Bundle reduced from 145KB → 95KB JS (23KB gzipped)

Commits

  1. a21e968 Phase 0 — Design tokens, lucide-react, NodeSpec registry
  2. d33e4d2 Phase 1 — All v2 components (6 parallel workstreams)
  3. a156306 Phase 2 — Rewire FlowprintEditor + ZoomControls + BottomPanel
  4. 84f320f Phase 3 — Remove old components, update exports

Test plan

  • pnpm --filter @ruminaider/flowprint-editor build passes
  • pnpm --filter @ruminaider/flowprint-editor test -- --run passes (430/430, 1 pre-existing WASM skip)
  • pnpm --filter flowprint-app dev — verify in browser:
    • Floating bottom toolbar renders with all 6 node types
    • Click node → near-node popover appears
    • Double-click node → tab opens with editor
    • Cmd+K → command palette with fuzzy search
    • Swim lanes have horizontal headers, collapse/expand
    • Dark theme uses custom palette (deep near-black backgrounds, vibrant accents)
    • Edges are orthogonal (smoothstep), hover shows delete
    • No old UI remnants (no side panels, no docked palette)

…istry

Foundation for UI redesign: CSS custom property tokens with light/dark
themes, lucide-react icon library, and spec-driven node type registry.
…palette, tabs, lanes

Phase 1 of UI redesign: 6 parallel workstreams creating new component
system alongside existing code. 521 tests pass, zero regressions.

- nodes-v2: NodeShell + 6 registered node specs (unified rounded rectangles)
- components-v2: Island, Toolbar, CommandPalette, TabBar, NodePopover, LaneHeader/Background
- edges-v2: SmoothstepEdge, ErrorEdge, ConditionalEdge with hover delete
- hooks-v2: useKeyboardShortcuts, useTabState, usePopoverPosition,
  useConnectionValidator, useLaneCollapse, useLaneReorder
- styles: modular CSS with design token system
Replace the old sidebar-based layout with the new floating UI:
- Rewrite FlowprintEditor.tsx to integrate all v2 components (TabBar,
  Toolbar, NodePopover, CommandPalette, ZoomControls, BottomPanel,
  LaneBackground)
- Add ZoomControls component (click-to-edit zoom percentage, fit view)
- Add BottomPanel component (resizable YAML preview + validation tabs)
- Add editor.css layout shell, zoom.css, bottom-panel.css
- Wire keyboard shortcuts (Cmd+K, Cmd+J, V/H tool toggle, undo/redo)
- Wire tab-based node editing (single-click popover, double-click tab)
- Update test suite for v2 UI structure
- Fix minor TS issues in useTabState and useConnectionValidator
…ports

Delete old components replaced by v2:
- Remove nodes/ directory (6 old node types + index)
- Remove edges/ directory (3 old edge types + index)
- Remove panels/ directory (PanelSidebar, PropertiesPanel, LanePanel,
  YamlPreviewPanel, 11 field editors, and all tests)
- Remove LaneBackground, LineOfVisibility, ValidationBanner, NodePalette
- Remove monolithic styles.css (replaced by modular styles/ directory)
- Remove YamlPreview.stories.tsx

Update remaining code:
- FlowprintViewer: switch to v2 nodeTypes, edgeTypes, LaneBackground
- index.ts: replace old panel exports with v2 component and NodeSpec
  registry exports, update CSS import to styles/index.css
- FlowprintEditor.test.tsx: remove ValidationBanner standalone tests

Bundle size reduced from 145KB to 95KB JS (23KB gzipped).
@albertgwo albertgwo merged commit 84f320f into main Feb 21, 2026
1 of 2 checks passed
@albertgwo albertgwo deleted the ui-redesign branch February 21, 2026 22:49
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.

1 participant