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

Misc: Mobile UI #181

Open
n1474335 opened this issue Aug 18, 2017 · 14 comments
Open

Misc: Mobile UI #181

n1474335 opened this issue Aug 18, 2017 · 14 comments

Comments

@n1474335
Copy link
Member

Summary

The current UI isn't very good on mobile devices. We should start thinking about how we can improve it.

Possible solutions

There are two paths we could go down:

  1. Create an entirely separate UI for mobile devices
  2. Make modifications to the current UI so that it adjusts better to fit smaller screens

I'm keen to hear people's opinions on which route they think is best. There are definitely pros and cons to each one. If we create an entirely new UI, it will break a lot of the code in src/web/ which is currently tightly coupled to the existing DOM. However, modifying the current UI to work better on mobile could result in messy code if it isn't done well. This could be a good time to start building index.html in a more modular fashion so that the code becomes easier to maintain.

If anyone wants to mock up some designs for what a mobile UI could look like, please go ahead. The focus should be on simplicity.

@d98762625
Copy link
Member

I'd vote for a responsive UI using a flex-grid or similar. I do not back my frontend skills enough to take this on though.

@Cal-Hagner
Copy link

I support one responsive UI. The main issue when designing for smaller mobiles (i.e. iPhones, such as the SE, in portrait mode) is that the space is very limited. As I see it, there are four main* elements to the CyberChef page, defined as:

  • Operations Bar
  • Recipe List
  • Input
  • Output
    *There are additionally auxiliary elements, such as the options, support, and download buttons.

Cramming the 4 main elements into one screen is difficult. The commonsense solution would seem to be to separate them out into pairs of two - however, recipe theoretically needs to be seen with both operations and with output (for making a recipe and then stepping through it purposes). Therefore, I would propose a design with a fixed bar at the top showing options and support, a fixed bar on the bottom showing download and latest release, and then a 4-row stacked column, stacked in the following order:
Operations
Recipe
Output
Input
I'm not an amazingly talented developer, but I'm competent, I'm willing, and I've got free time. If y'all can think of any conflicts, I'd be glad to hear what you think of the proposed design. I'll send up a visual template of the design I'm proposing this weekend. No guarantees on speed with this, but seeing as the issue has been untouched for ~2 years, I don't foresee that being a problem.

@d98762625
Copy link
Member

@Cal-Hagner I'd maybe change the order of Output and Input.
Would be interested in seeing a visual template!

@Cal-Hagner
Copy link

CyberChef Mockup.docx
CyberChefMockup

Notes:

  • There is a third possible screen configuration --> Recipe & Output (for walkthroughs of recipes
  • The addition of a scroll-bar to recipe will need to be handled (should be minor changes from current configuration
  • Overflow-y of both recipe and operations will need to be handled
  • Options and support will remain fixed at top of page, & download and build info at bottom
    -- Build info shortened to “Last build: _ days ago – v_”
  • Options page will also need proper resizing

Notice: As I begin to work from my fork of CyberChef, I may need some assistance with figuring out how to view my edits in my fork in the GitHub page at https://cal-hagner.github.io/CyberChef. I'm familiar with front-end, it's just GitHub I don't understand. 🙃

Happy holidays!

@evandrix
Copy link

evandrix commented Oct 1, 2020

bump

@valdelaseras
Copy link
Contributor

valdelaseras commented Apr 16, 2023

Heya CC,

I've been working a little on this and so far I've landed on the following mobile UI layout:

Screenshot 2023-04-17 at 1 29 24 PM

A few choices I made and why:

  • I'm thinking to set the breakpoint for this UI to 768px, then use the current UI as is from that point. As soon as is usable, I think the UI should jump to the current UI
  • I'd like to make operations a dropdown
  • Disable resizing of columns and maximise output on this view ( hence the relevant icons have been removed on this mobile UI )
  • magic tool and stale-indicator appear to the left of the icon row if applicable.
  • The notice in the top banner would not be displayed on mobile
  • I removed the text for Options, About / Support in the top banner to save space. I think the icons alone are straightforward enough

Please do share your thoughts!

valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
…ly revert some things once the mobile UI is solid, then patch up desktop view to its original state
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Apr 16, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 9, 2023
@valdelaseras
Copy link
Contributor

to complete the cut off commit message above: "add 'add favourite' capability for mobile UI

@valdelaseras
Copy link
Contributor

valdelaseras commented May 9, 2023

On mobile, I found that scrolling through the operations and the drag and drop of an operation to the favourites category was very finicky.

  • I have added outlined star icons to the start of the operation row
  • a user may press it to add it to the favourites list
  • the star icon then fills in to indicate it is a favourited operation
  • the favourites category dropdown opens as per current behaviour after adding a favourite ( I think it may be nicer if it wouldn't )
  • note that the icon is not a toggle, removing a favourite op must still happen the same way as per current behaviour ( through the modal )

@valdelaseras
Copy link
Contributor

I also added the capability to maximise recipe, input and output panes on mobile UI:

Maxed panes

Recipe

  • user may edit ingredients here as normal
  • double tap to delete one ingredient
  • change order by pressing on an ingredient with a delay of 200ms: there is some visual feedback when the ingredient is grabbed and the order can be changed as normal

All of the above can also be done outside of the maximised pane, but the pane is just rather small and it's not comfortable to do so ( hence the maximised pane view )

Input

  • for more comfortable UX

Output

  • to comfortably view the output

On desktop, everything remains as normal. Only the output pane is able to be maximised.

valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
…ically scale based on #controls height, which makes adjustWidth() redundant. Controls is now 50px height on mobile ( 70 was just a lot of wasted space that can be better spend )
@valdelaseras
Copy link
Contributor

  • I have updated the controls component to 50px tall on mobile. 70px ( previous ) was taking up a lot of space that can be used more efficiently.
  • Please note the chef icon has been removed on mobile view.
  • Please note the 'Auto bake' text has been shortened to just 'Auto' ( as the controls component is already in the context of 'baking' ) to save space and reduce resizing complexity.
  • On desktop the controls height is 70px as per usual. The icon is also visible as normal.

Just a quick demo for the smallest possible screen before the layout would jump into mobile UI mode:

This would be a width of 768px.

Everything looks normal ( albeit cramped, but that is expected ) and all buttons etc. can be pressed, no weird overflows. Optionally, we could decide to set the breakpoint higher of course.

valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
…anner. No need for the controls at this point while scrolling the ops
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 10, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 11, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 11, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 11, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
…the ops-lists in Operations every time a new operation is added or removed, only rerender favCat and handle the updating of the individual operations 'favourite' classes and icons
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
…o be re-rendered ( such as Favourites, but can be used for any Category in the future if needed ), additional refactoring to make previously mentioned functionality work
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue May 23, 2023
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Aug 14, 2023
… ), fix popover issues ( popovers properly disappear ), eslint cleanup fixes
@valdelaseras
Copy link
Contributor

PR opened here :)

valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Feb 3, 2024
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Feb 3, 2024
valdelaseras added a commit to valdelaseras/CyberChef that referenced this issue Feb 3, 2024
… 40), as per the current width implementations on init
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants