Refactor UI with a modern design system #250
Replies: 8 comments 3 replies
-
These are the things that would have to be re-worked:
Most effort is probably the Tabs and the Module Install Assistant. Technically this issue could also be handled incrementally, which would require that both libraries (JQuery UI plus the new one) are loaded in parallel until all rework is done. Before we attempt this work I would like to see a clear list of benefits for the user and/or what this enables in the future. I would estimate that this is probably at least a full week of work (full-time) or potentially even more. How would you estimate the effort? |
Beta Was this translation helpful? Give feedback.
-
That one has to be customized. But there is a familiar pattern
I can try to draw a prototype in Figma. I think it would be beneficial for the future to experiment with UI.
Yes definitely it should be done incrementally. Maybe it can be even a separate subproject. Maybe for a candidate for 1.0?
It's all depends on how deeply we want to refactor and how familiar dev is with the project code. For me it would be >70 hours (2 full weeks). I assume a lot of small nuances might pop up. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the extensive analysis! From my perspective, the biggest benefits (based on your list) are:
In terms of an implementation strategy I could imagine the following: Start with a new layout / CSS infrastructure from scratch, while trying to re-use existing controllers/components and make them work both with the old and the new layout for a transition period.
In terms of technology I think it's a good idea to introduce new responsive design based on modern CSS framework(s). On the other hand I would be a bit relucant regarding JS-frameworks like React, Vue, etc. and rather stick to Vanilla JS (primarily for performance reasons) with a similar approach to components as already used today. If this can be finished rather quickly (I doubt that) this could happen on a separate development branch. Any further thoughts on implementation strategy? |
Beta Was this translation helpful? Give feedback.
-
I would agree with separate repository (I can use my fork of Ezra Project) and Vanilla JS (future proof) I see three main goals for this subproject:
In general I will also agree with your roadmap. But I would revised it after first new component implementation and add design prototype step:
0. Requirements for modified technology stack:
A good list to choose from can be found here From my research I'd point out Carbon (IBM) and Material (Google). They are very big. Material is the most popular, familiar for end-users who have android devices, and very thought-trough system. My personal preference is Material. What do you think? @tobias-klein @alerque |
Beta Was this translation helpful? Give feedback.
-
I'm going to bow out of this one, I'm kind of following discussions at a distance but I'm not very closely involved in web front end things these days and don't have a good feel for what the pros and cons of various frameworks are. From a logistics standpoint stay away from Git submodules as a way of reaching into a code base to reuse bits. I use them every day and they serve a purpose, but this would not be a good use case for them. I would either work in a development branch here, or if you want to split out issues and discussion just start with a fork of this repository and work on top of that with a separate issue tracker. Personally I think just splitting it out here with appropriate issue tags or a project board and it's own branch will be better. If this refactoring does go live it should be at least on par with the current one and therefore replace it across the board so I don't see the point of working on it as a separate project. |
Beta Was this translation helpful? Give feedback.
-
Since this issue is so large, I'm also turning this into a discussion for now. |
Beta Was this translation helpful? Give feedback.
-
I did a little proof of concept with Bootstrap 5, because I was not satisfied with the jquery ui dialog performance on Android (specifically when there was a large amount of dom nodes in the dialog content - like with the change tags list). I used the bootstrap modal style as an alternative to jquery ui dialog. This is the result on Android (only applied for change tags dialog). You can check this out in the wheelnav-bootstrap branch (you need to issue an It was rather straightforward to integrate bootstrap on top of the existing codebase. I had to make a few style adjustments. I also noticed that the existing dialogs that have cancel/save buttons would certainly have to be ported. I adjusted the new tag dialog as one example. What we could do is slowly migrate from jquery ui to bootstrap. We could do that incrementally. The starting point would be the change tags dialog which is introduced by the wheelnav branch. I think the earliest target release would be 1.5 (Feb 2022) from my perspective. I think it's too late for the current release cycle. @zhuiks What do you think? |
Beta Was this translation helpful? Give feedback.
-
For a long term rework, you may wish to try out the Quasar framework. Deploys for desktop (Electron) web and mobile out of the box. It's made for this type of app. It uses the Vue framework (transitional jQuery UI stuff might be a problem.. if I recall correctly, Vue doesn't play well with jQ) |
Beta Was this translation helpful? Give feedback.
-
UI can be refactored!
Instead of jQuery-UI it might be one of the following well established frameworks:
This will allow to have more responsive layout suitable for mobile devices
I know it's a lot of work but I think it should happen sometime in the future.
Beta Was this translation helpful? Give feedback.
All reactions