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

One-handed mobile control #1011

Merged
merged 1 commit into from
Jan 17, 2025
Merged

One-handed mobile control #1011

merged 1 commit into from
Jan 17, 2025

Conversation

SteveMicroNova
Copy link
Contributor

@SteveMicroNova SteveMicroNova commented Dec 19, 2024

What does this change intend to accomplish?

Move song controls, preset and add buttons to bottom of the screen on mobile

Adjust player page volume dropdown to more visibly include the underlying components, and limit height to make them scrollable without needing to scroll the whole page

Add many CSS breakpoints to ensure elements continue to work on the smallest screens

Home Page:
Before:
image

After:
image

Player Page:
Before:
image
image

After:
image
image

Checklist

  • Have you tested your changes and ensured they work?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • If applicable, have you updated the CHANGELOG?
  • Does your submission pass linting & tests? You can test on localhost using ./scripts/test
  • If this is a UI change, have you tested it across multiple browser platforms on both desktop and mobile?

@SteveMicroNova
Copy link
Contributor Author

SteveMicroNova commented Dec 20, 2024

I was far too hasty on this one, on reflection I've noticed that this implementation on the player page literally only works if you don't have volume bars to play with; I only tested on a streamer thus far as that's what I have at my desk
Revoking requested reviews and setting as draft

@SteveMicroNova SteveMicroNova marked this pull request as draft December 20, 2024 20:41
@SteveMicroNova SteveMicroNova force-pushed the BottomedControls branch 4 times, most recently from 643dd17 to 9295e0f Compare January 3, 2025 21:30
@SteveMicroNova SteveMicroNova marked this pull request as ready for review January 3, 2025 21:39
@SteveMicroNova
Copy link
Contributor Author

Requesting Klayton and Lincoln as they've both had opinions along the way for this, requesting review from Jason as he requested this feature

@SteveMicroNova
Copy link
Contributor Author

To my end, I have noticed that our unsafe volume sliders (that are very easy to bump and immediately set to max) are something of a hazard when you now have to scroll various nested dropdowns

My current solution has been to limit the length of the volume bars so that there is ample thumb space for scrolling, as a long term goal I'd like to make the volume sliders are made safer from misinput. I've looked into this somewhat, my current thoughts are to either add a debounce or make it so you have to specifically click and drag the slider knob to change volume on mobile, but I'm undecided

Copy link
Contributor

@klay2000 klay2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed IRL:
make this only happen on desktop
try to add some drag rejection to the volume sliders
remove scrolling through zones in groups

@SteveMicroNova SteveMicroNova force-pushed the BottomedControls branch 6 times, most recently from 7cc0796 to 58d21f4 Compare January 6, 2025 19:51
Comment on lines +3 to +9
.background-gradient {
background: general.$bg-gradient;
position: fixed;
z-index: -1;
height: 100vh;
width: 100vw;
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to remake how the gradient background worked, if you have enough zones when you use the dropdown on the player page you leave the gradient behind as you scroll at 100vh, and at 100% the gradient stretches weird

Now it stays the same no matter where you scroll

@SteveMicroNova SteveMicroNova force-pushed the BottomedControls branch 2 times, most recently from a62b2b9 to def1c5a Compare January 6, 2025 21:42
@SteveMicroNova SteveMicroNova force-pushed the BottomedControls branch 5 times, most recently from 865dd3c to 2dfde95 Compare January 9, 2025 17:57
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most every change in this file is to ensure our webapp still has the same form and function even on comically tiny screens like the iPhone 4

@SteveMicroNova SteveMicroNova force-pushed the BottomedControls branch 3 times, most recently from f4967dd to 6d5243d Compare January 16, 2025 18:20
Comment on lines 29 to 31
// meant to be used directly in @media queries, like @media (general.$is-portrait){stuff}
$is-portrait: "max-aspect-ratio: 1/1";
$is-landscape: "min-aspect-ratio: 1/1";
Copy link
Contributor Author

@SteveMicroNova SteveMicroNova Jan 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are functionally equivalent to something like if 100vh > 100vw and if 100vw >= 100vh respectively

Copy link
Contributor Author

@SteveMicroNova SteveMicroNova Jan 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is deserved to be reflected as a comment in the code since it was concise and explained it well, so I've done that

Copy link
Contributor

@klay2000 klay2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed before we should probably clean up some of the scaling that uses px right now to make handling smaller screens easier, that's for another pr though.

… mobile

Add many CSS breakpoints to ensure elements continue to work on the smallest screens

Add touch denial to volume bars based on vertical angle

Make pill-scrollbar a global class, but gate to only being on desktop

Add primary and secondary color theming support to Cards, use this in the volume dropdown

Add viewport-based scss variables
@SteveMicroNova SteveMicroNova merged commit 7149815 into main Jan 17, 2025
3 checks passed
@SteveMicroNova SteveMicroNova deleted the BottomedControls branch January 17, 2025 18:00
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

Successfully merging this pull request may close these issues.

2 participants