-
Notifications
You must be signed in to change notification settings - Fork 65
Mobile UI Improvements #161
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
base: main
Are you sure you want to change the base?
Conversation
Sorry for all of the merge conflicts here 😱. Excited to test this out |
@@ -76,7 +76,10 @@ function deriveState(state: GivenState): State { | |||
const notes: SongNote[] = items | |||
? (items.filter((i) => i.type === 'note') as SongNote[]) | |||
: ([{ midiNote: 21 }, { midiNote: 108 }] as SongNote[]) | |||
const { startNote, endNote } = getSongRange({ notes }) | |||
|
|||
const minNotes = Math.floor(Math.max(36, 50 * ( state.windowWidth / state.height))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain this logic?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the logic I would want is something similar to setting a maxWidth
on the piano keys, as well as having a "minHeight" for the falling notes viewport
@ginesdt: I really like this PR! Would love to incorporate fullscreen mode, make viewing better on phones/iPads, and collapsible toparea. I think this feature would benefit from being split into multiple to make it easier to ensure quality on the different parts. I've extracted the least controversial commits to a separate feature (#167) for now |
This PR enhances the user experience on small devices (e.g., smartphones) and touchscreens. The updates ensure better screen utilization, and improved responsiveness across various device sizes.
Changes Made:
Zoom out f 8000 or wide screens: Optimized scaling for wider displays. You were not able to see the falling notes.
Added fullscreen toggle button: Allows users to easily enter/exit fullscreen to have more space to visualize notes.
Added button to hide top menu bar: Gives users the option to hide the top menu for the same purpose.
Automatically collapse menu for small screens: Prevent icons to paint on top of each other in small screens.
Other fixes, like ensure the song list is visible in small screens or make the scrub bar draggable on touchscreens.
Overall, it goes from this:


To this: