Skip to content
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

Proposal for QMK Configurator redesign #920

Open
NAXLAB opened this issue May 9, 2021 · 18 comments
Open

Proposal for QMK Configurator redesign #920

NAXLAB opened this issue May 9, 2021 · 18 comments

Comments

@NAXLAB
Copy link

NAXLAB commented May 9, 2021

The QMK Configurator needs a refresh:

The Configurator is a powerful tool for quickly and efficiently getting your build loaded up with firmware or modifying existing firmware. Its target audience is generally new users, or anyone who doesn't want to deal with setting things up and importing and learning code. Because of this, simplicity and accessibility should be priorities. New users, myself included, are more than likely to get stuck not seeing the compile function, then show up in discord looking for help because they don't know why the download button is greyed out. The configurator is in need of a UI refresh to become more accessible, efficient, and pleasing to use.

Here is what I propose:

I have designed a mockup for a new version of the configurator that achieves the following goals:

  1. Update the layout to improve accessibility and clarity, and to make everything fit on the screen so you don't have to scroll all the time.

  2. Update visuals and aesthetics to make workflow easier. Good UI design will guide the viewer in the right direction to make the experience intuitive.

  3. Establish a consistent but flexible visual identity for QMK. Making the identity recognizable will attract more people to the community.

  4. Keep things simple and effortless. Configurator should be quick to use if you need it to be, while still offering the same powerful functionality in a user friendly format.

  5. Combine related UI elements such as the compile and download buttons to reduce clutter and avoid confusion.

  6. Display a high fidelity 3d simulation of a potato drifting across the cosmos. I'm not kidding.

Full screen mockup and notable details

Artboard 1

Keyboard selector and viewer

The selector and viewer now have their own box with other directly relevant features so new users can see the connection easily and figure out how to select a keyboard and layout. It's all in the top right so it's what new users will notice first. It also has extra room left in for longer layouts. I just used a GK64 Layout because it is scientifically the most superior keyboard.

layout

Layer Selector

The layers panel is cleaned up to be easier on the eyes, and rests next to the layout view. It gets its own box to show that its not part of the layout view, rather a separate interaction that controls the layout view.

selector

File management

Most of the buttons formerly scattered around the site arbitrarily have been reorganized to show users the order of operations. At the top left, the upload .JSON (and URL import) button is highlighted blue to show users where to start. Next, there might be a readme to check, or some troubleshooting to be done, or there might be some need to read the JSON data from the layout you selected, so there's a button to view the JSON contents in-browser, and a console that can be revealed upon request.
Next, you can compile and download the source code or hex file. They are built into their own window that open when the user presses the "Compile/download Firmware" so users can understand the process visually. If needed, there's also a helpful link to download toolbox.

buttons
box

Keycode picker

As far as I saw, the keycode picker was pretty good already, so I just changed it to match the visuals of the rest of the design.

keys

What do you think?

This design will probably change quite a bit as things go on, but this should reflect the overall aesthetic. If you have any questions of recommendations, you can message me on discord: N A X#1454

@yanfali
Copy link
Collaborator

yanfali commented May 9, 2021

I like what I'm seeing so far. I'll let @jackhumbert and @noroadsleft weigh in with their own feedback. Thanks for contributing, design work is difficult, yet rewarding when done well, so I appreciate the effort.

We've long wanted to redesign the layer control to support reordering and copying, so this is a good first step.

@NAXLAB
Copy link
Author

NAXLAB commented May 9, 2021

We've long wanted to redesign the layer control to support reordering and copying, so this is a good first step.

I didn't even think of that, very good idea. Hopefully I'll have learned enough by the end of this ordeal to code that myself. For now though I know nothing about Vue or JS so I'm going to start with just tidying things up, rearranging things and changing colors.

@noroadsleft
Copy link
Member

box

Similar to what I wrote on Discord about dimming the Upload JSON button once it's been used and highlighting the Compile button, I think something similar should happen here once the compile job completes. I'm thinking highlight the Download button here (which IMO should say Firmware instead) and maybe a softer highlight on the Full Source button.

@skullydazed
Copy link
Member

Love what I'm seeing so far. One thing to keep in mind is that we'll want a light mode too for better accessibility.

@NAXLAB
Copy link
Author

NAXLAB commented May 9, 2021

Love what I'm seeing so far. One thing to keep in mind is that we'll want a light mode too for better accessibility.

What the hell is a light mode

@yanfali
Copy link
Collaborator

yanfali commented May 9, 2021

Love what I'm seeing so far. One thing to keep in mind is that we'll want a light mode too for better accessibility.

What the hell is a light mode

It's in the settings menu. The UI autodetects your OS settings and selects dark mode if that's what you have set. Otherwise it defaults to light mode.

@NAXLAB
Copy link
Author

NAXLAB commented May 9, 2021

It's in the settings menu. The UI autodetects your OS settings and selects dark mode if that's what you have set. Otherwise it defaults to light mode.

Bless your heart

@mateossh
Copy link
Contributor

This redesign looks good. If you need help implementing this I am willing to help

@yanfali I saw issues and I will try to implement reordering and cloning layers as a separate PR

@NAXLAB
Copy link
Author

NAXLAB commented May 10, 2021

@mateossh Oh man I am definitely in need of some help here, at the very least navigating this avalanche so I'm very grateful for the offer. I know my way around HTML and CSS but this is a whole different universe. If you're down for it we could work together to figure out where to start and do it piece by piece. I'm hoping we can eventually finish the whole redesign and make it one big pull request

@yanfali
Copy link
Collaborator

yanfali commented May 10, 2021 via email

@noroadsleft
Copy link
Member

I'm hoping we can eventually finish the whole redesign and make it one big pull request

For the love of everything that is good in the world... DO NOT DO THIS. Small, isolated changes are much easier to review and test than major overhauls.

@NAXLAB
Copy link
Author

NAXLAB commented May 10, 2021

@noroadsleft I suspected that was the case, but I wasn't sure what would be more hassle for you guys

@tzarc
Copy link
Member

tzarc commented May 10, 2021

@noroadsleft I suspected that was the case, but I wasn't sure what would be more hassle for you guys

One big PR runs the risk of it never getting reviewed in the first place. Simple manageable chunks are more likely to get merged.

@ethanmsmith
Copy link

@NAXLAB I would love to help the implementation. Is the work being tracked some place where I can jump in?

@NAXLAB
Copy link
Author

NAXLAB commented Jun 10, 2021

@NAXLAB I would love to help the implementation. Is the work being tracked some place where I can jump in?

At the moment we have not really started because I have so much other stuff on my plate, but soon I hope to at least make a fork and start experimenting with rearranging buttons and stuff to at least get it close to the concept. When that happens I'll take all the help I can get tbh cuz I am a designer but I'm no coder. @mateossh also offered to help, so once I set up something we can all collaborate on I'll let you both know.

@NAXLAB
Copy link
Author

NAXLAB commented Jul 1, 2021

@NAXLAB I would love to help the implementation. Is the work being tracked some place where I can jump in?

I'm about to have more free time. Want to link up and start figuring out what to do first lol

@yanfali
Copy link
Collaborator

yanfali commented Jul 8, 2021

My preference is you work in a branch and either make small merges or track the main branch and merge your changes into there. I'm in the process of upgrading to vue3 which should provide some other benefits longer term. Yan

On Mon, May 10, 2021, 01:52 NAX LAB @.***> wrote: @mateossh https://github.com/mateossh Oh man I am definitely in need of some help here, at the very least navigating this avalanche so I'm very grateful for the offer. I know my way around HTML and CSS but this is a whole different universe. If you're down for it we could work together to figure out where to start and do it piece by piece. I'm hoping we can eventually finish the whole redesign and make it one big pull request — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#920 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AARLSU6XWQ7ECFJSX4QOBSLTM6NFHANCNFSM44OGNOOA .

Vue3 update is on hold while I wait for some plugins to make the jump.

@yanfali
Copy link
Collaborator

yanfali commented Jul 8, 2021

This redesign looks good. If you need help implementing this I am willing to help

@yanfali I saw issues and I will try to implement reordering and cloning layers as a separate PR

I'm kind of working on something in a branch. Some refactoring going on too. https://github.com/qmk/qmk_configurator/tree/yanfali-layers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants