open-rmf / open-rmf/crossflow

[Diagram Editor] Improve connection UI/UX

Open
#106 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
72
Forks
16
PR merge metrics
No merged PRs in 30d

Description

There are few ways we could improve the UI/UX of how operations get connected:

  • For outputs we could use something like a triangle pointing out of the operation to give the sense that it represents data moving outwards. Regular (final) outputs would be on the bottom of the box pointing down, while stream outputs would be on the right side of the box pointing rightwards.
  • The color of stream outputs should be the same as regular outputs since there's no difference in what they can be connected to. Maybe stream outputs can be distinguished with a different kind of icon, e.g. overlapping triangles >> to indicate that multiple outputs may come out of it.
  • It might make more sense for Fork Result to have a separate output slot for Ok versus Error. Maybe Error can go on the left or right side while Ok is on the bottom.
  • It might be good to use a different output connector icon for operations that allow an arbitrary number of outputs, like Fork Clone and Split. Maybe an icon that's a cluster of circles or something to indicate that many connections are allowed.
  • Buffer Access would probably be easier to understand if it had a separate input slot icons for input messages (white) versus buffers (purple). It should also allow multiple input message connections, but at the moment is seems to block any attempt to connect a second input message to it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start from the Diagram Editor and compare its current connection UI with the remaining unchecked requirements. Review how output direction, stream and final outputs, arbitrary-output operations, and Buffer Access input types should be represented. Done means the proposed connection affordances are implemented and the editor clearly distinguishes each connection type.

Written by the indexing model from the issue text.

Assessment

Domain
design, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.