Skip to content

[feature] Graph view UX improvements #91

Description

@mindplay-dk

One of the main things I was hoping to get with this tool is a high level overview.

The graph view is theoretically good for this - however, in practice, well... 😌

UX Problems

Image

This is clearly not useful - and this is a project with a comparatively very low number of first-party dependencies, compared to the average node JS project, in my experience. The team here has been exceptionally good at not bloating the project with dependencies - so you can imagine the experience is even less useful for the average NPM project. I'm sure you're familiar with the reality of node projects in the wild - it's what this tool is designed to help with, right? 😊

Of course, you can hover and point at things, but...

Image

This is also not very useful, since you need to zoom in before you can even see what you're pointing at.

And I know you can click to focus an item and bring it's dependencies into view, but...

Image

It's still really difficult to see what's going on at that level:

  • The tooltip sits on top of the focused graph, making it really difficult to read.
  • The view jumps and auto-zooms to the selected package, which makes you lose track of your position in the larger diagram.

Suggestions

  • Force-directed graphs: this would be one way to get any amount of nodes to fit optimally on the screen. This package can do it very quickly, and has the ability to fit to canvas at startup or e.g. after resizing the window. This would automatically improve the hover state experience, because nodes that are closer to each other would actually be physically located closer to each other - it greatly improves the chance of hovering and actually seeing something useful, without need to click and change your view.
  • Filters: if the depth could be adjusted (e.g. max n levels) and if the "key" (dependency, dev-dependency, sub-dependency) also worked as a filter for what's display, that would help a lot. A text input to filter by package name might help as well.
  • Dock the selection info in a sidebar: this would likely be more helpful than the current tooltip - it wouldn't get in the way, and with an optimized graph layout, we probably don't need to be quite as conservative with space.
  • Multiple selection: if a sidebar was added, this could enable you to filter/select the package you want to focus on.

These would be my suggestions for a more useful version of this screen. 😊

Activity

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions