-
Notifications
You must be signed in to change notification settings - Fork 16
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
Design improvements #56
Comments
indeed the design part of this extension isn't particularly great. I'll be glad for suggestions, improvements or even PRs to improve the situation. I don't want to give up the the tenseness though - I like having a lot of information at hand without the need to scroll forever. But why not make it configurable? This extension is all about customizability already anyway, so the more options we have, the better! So, yes, having someone more UI-knowledgable than me redesigning this thing would be great. We will then have to see what parts we make the default and which stay the same. There's also a custom css option right now for those who can't wait to change some visual aspects. |
I'm the opposite - I don't like having too much information on screen at once and prefer scrolling. Since you're open to changing things, I might take a look and see if I can make it look more like the old version, but adding an option to toggle between "compact" and "comfortable", a'la GMail. :-) |
Things look a bit curvier now with v0.1.13: and the row height and branch line width is arbitrarily configurable, and the border is movable: I think these were the most pressing issues. I think it would be good to prompt the user at their first extension run for how dense they want the interface to be, so to have a convenient way to set these two configuration values. Other than that, I'm still open for concrete design suggestions, no matter how harsh or substantial (@hansu has been very helpful with this), as I can't look into the heads of my users :-) |
I made some mockups for 2 possible designs for the graph itself, with a more rigid, less squiggly style Design 1 is very boxy and square, directly inspired by LazyGit's design Design 2 is a bit more similar to the current design, but with less arching graph structure (more straight paths than diagonal), and clearer branching and merging positions Here's some more situations (just mockups): PS: None of these mockups have the black outline around the lines/circles yet, since those are very annoying to make in my graphics software, but would be simple to implement in an actual renderer |
Hmm, true, it looks too jagged |
Looks much better now, thanks! |
This looks promising 😄 |
TBH the curvy lines still throw me off a lot. I find straight lines much simpler to comprehend, because then:
In the current graph, even commits done in a row in the same branch are curvy! So commenting on @Deab22 nice mocks, the idea is not about ALL straight lines, simply vertical ones for the same branch as in the LEFT. Horizontal straight lines as in RIGHT looks worse, IMO diminish the "meaning" of vertical straight ones. I also highlighted a merge+new point that looks confusing (occluded line origin). A few details I noticed over the years that seem to be important: Dont get me wrong, the current graph looks "nice" and is perfectly usable, For me, the question is how hard would it be to implement. Anyway just sharing my opinion. |
Honestly, I would just reference the |
Thanks for all your input so far, and sorry I can't really do anything with it yet. The problem is that the rendering logic of GitLG is not much more than a deliberate dumb wrapper around the graph characters that Git send us. If you run In the end, it's open source and all plain JavaScript, so if someone wants to have a go at it, please do so! The entire parsing and preparation code is about 250 lines of logic inside |
Not a fan of stealing code from mhutchie's Git Graph extension code though, that would be both against the authors will and the project's license. Even if we were to decide that taking just a few hundred lines doesn't violate the license (which I can't see why it should not), integrating that behemoth into GitLG is probably as big of an undertaking as writing it from scratch. |
I was only suggesting you reference the line drawing - I wouldn't suggest you copy any code, and yes, the graph itself has a boatload of complexity and interactions. You could even just look at the rendered lines and reference how they're drawn - looking at the source code might make it easier to understand though. There's no rules against that. |
ooh, so you mean referencing as in using the logic as a model for rewriting it. sure that could be helpful! thought you meant actually importing and linking to it. |
Come to think of it, earlier versions of the code was MIT licensed and can be freely used, copied, referenced, etc. The license was changed from a standard MIT license on may 10, 2019: mhutchie/vscode-git-graph@7e4ccb3 The parent of that commit is 4af8583, which means anything that was in the repository at that point in history is fair game. Here's the graph rendering code from that point in history: If you look at the image in the README at that time, you can see it already had the nice graph rendering then: https://github.com/mhutchie/vscode-git-graph/tree/4af8583a42082b2c230d2c0187d4eaff4b69c665 Obviously, a lot has changed since then - but the code was a lot simpler at the time, since the tree took on a lot more functionality in the years after, and it might actually be easier to reference or copy from. 🙂 Note that, under MIT, if you copy from this, you would need to include the phrase But if you want, you absolutely can copy this older code and still respect the author's wishes. 😎 |
from mhutchie/vscode-git-graph#783 @mindplay-dk:
The text was updated successfully, but these errors were encountered: