Skip to content

feat(erd): layered layout, orthogonal edges around tables and draggable cards #1145

Description

@ZhuchkaTriplesix

Problem

The ER diagram (#1063) places tables in a plain grid and draws each relation as one curve between the two cards. With more than a few tables, lines cross cards and each other, and the layout cannot be fixed by hand.

Scope

  • Layout: layered (referenced tables to the left, referencing ones to the right), order inside a layer chosen to reduce crossings; tables without relations in a grid below.
  • Edges: orthogonal routing around cards (no line through a table), rounded corners, parallel segments spread apart instead of drawn on top of each other; crow's foot at the FK side, bar at the referenced side.
  • Drag: tables can be moved with the mouse; edges re-route live; Auto layout restores the computed layout.
  • Look: cards with a tinted header, PK / FK icons, hover highlights the table's relations.
  • Export: SVG uses the same positions and routes.

Acceptance

  • No edge segment passes through a table card (except its own port stubs).
  • Dragging a card moves it and re-routes its edges; double tap still opens the table.
  • Unit tests for layout (no overlap, parents left of children) and routing (no card crossing, ends on the right column rows).

Follow-up of #1063.

Activity

  1. added
    enhancementNew feature or request
    frontendTheme parser epic label: frontend
    uiUser interface components and widgets
    P2Medium priority / Parity & Refactoring
    on Oct 8, 2026
  2. ZhuchkaTriplesix commented on Oct 9, 2026

    @ZhuchkaTriplesix
    MemberAuthor

    Closed by #1146. Acceptance covered by tests on dev.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priority / Parity & RefactoringenhancementNew feature or requestfrontendTheme parser epic label: frontenduiUser interface components and widgets

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions