Feat(#697 | #639): Voice chat ui improvements#698
Conversation
Replaced Tailwind utility classes with current equivalents (e.g. flex-shrink-0 > shrink-0) in channel view > voice folder.
|
Cool =)
Gaps for when using the webcam can easily be fixed. So there is no colors in general - it was already prominent before with the default colors. Ideas:
Before the control bar was genuine annoying in the terms when you had a card pinned the others ones would disappear under it. Which made it so users would have to 1-2 extra clicks to pin another user. The dead space can be animated to be minimal and when hover around the bottom as well, to show the control bar. So we still remove the mouse listener as its unnecessary head, and doesn't benefit once it will be on mobile. While this change can be modified to easily work.
There isn't much changed in terms of the design discord also had empty space in top unless full-screen as we would expect. Its basically build on the ratio of 16:9 as the cards is as well.
Let me know if anything. And ill see what i can do. |
|
You can go ahead and try to fix the gap issue, that will at least make it less ugly.
Alright, we can try to keep it as is with the gap there. I'm not a big fan but I can see why it's there. Let's see what the feedback about it is when it hits prod, we can always fix it afterwards. Also since we are keeping the gap there, I don't have a problem with the controls being shown all the time when the user is hovering all the channel area. @crabstorage I think that layout is worse tbh. When there 4 users like in your screenshot it might work, but as soon as there are many more or an odd number it will fall apart. The voice activity colors matching the banner color might be a good touch but probably confusing. Is the color from the banner? From the role color? From somewhere else? At first glance a user won't understand from where that's coming from. |
…o feedback. - Changed control bar padding from 6-3 gave it more space in general in the bottom. - Made it so when user when not hovering it hides and gives the user full screen space. same as in pinned mode. - Changed so when there is a camera on the background will be full black. For that user, both for banner and for gradient to be. - Added option for use of portal in popover and tootips. - Default is true - Fixed an issue with tooltips / popovers would glitch the hover effects. ^Related to portal. - Added an hide participant button on the pinned card in the center.
Well i would say both, but on a good note start with it being off by default. Then let the users decide in settings and or can be put in the welcome dialog.
Well isnt it basically the same? Or do i get confused by your wording. Update: Should also be pushed to the branch as well as merged latest develop in to check for breaks. So here are my changes everything can be seen on the reference in the bottom:
|
|
(Unnecessary comment) @Melonendk, last comment looks great, i wanna see this in next release, if that suits @diogomartino 😄 |
|
My plan was to do a way to get the color from the avatar - and then use that. But i would have done it for a future PR as it would change some settings as i would rather have it collect the color on upload and then store it. Or when ever the user edits their profile there will come options from the profile picture.
Well people will find ways to do such thing anyway, and you cant stop that. Only way would to remove banners and avatars completely, which would drive users away since it wont allow a bit of personality. (I don't know how to word it but i hope it makes sense. I'ts only positive thinking!)
Your solution is nice "hack" / alternative way for it, but what you basically asking the browser to zoom a ton.... and imagine that have to render for multiple people. Not how i would have done it. But still clever way :P You could easy make use of canvas rendering context for 2D to extract colors from positions that are build in, but only would do so when user uploads a new avatar. But i would take that and put it another feature request since it would involve more user settings, storage etc. const CardGradient = () => (
<div className="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent pointer-events-none" />
);Then after this one depending on what decision open a new issue accordingly. |
No, just asking the browser to do a tiny bit of math to get one pixel value from an image it has already rendered. The performance impact is negligible. I made a little demo to compare approaches. If you visit each of the links below and zoom, scroll, resize with the Performance tab open, you can see there is no meaningful difference from one to the other, looking at paint times, render times, gpu usage etc.
|
|
I was travelling so I haven't had the time to look at this. @Melonendk The UI looks good, but I'm not a fan of that layout shift that happens to show the controls. Tbh I think it would be better to just leave the control bar there all the time and not just on hover. You can add an option to show/hide the controls. If it's off, the controls never show, if it's on, they show all the time. What do you think? The "show/hide participants" is neat. @dchester That's a pretty good ideia tbh. Performance shouldn't be a problem if all is cached correctly. In the case where there's no avatar, it falls back to the banner color? |
@diogomartino Understandable - Hope it was fun travels tho =)
I can tweak the transition. right now there like an knack that happens in the end/start dues to the max height. - but at the time i just wanted todo it functional, and later tweak animations if any.
Should'n be a problem to add it as an option, if we dont wast the animations.- Question is more where you would want it ?
I also want to clarify, i might have worded my response in a wrong way so sorry about that if it was offensive. If we want it do have included the colors in this PR may i suggest the following:
|
|
@Melonendk Sorry, I have been too busy to handle Sharkord things lately and it will probably keep like this for some time unfortunately. I'm fine with adding a field in the database, but would you extract the color server side or client side on upload? |
@diogomartino Hey man take care of yourself first! Dont stress and take your time. Feel free to let me know if anything i can do help ease something. Or in general
Cool, I think we might just rename 'bannerColor' to 'profileColor'? Worst case add profileColor in addition to banner, and let the user decide on a color from banner or avatar?
As for the upload i can do both, all tho doing it server-side i could install sharp but then i haven't tested bundle size etc yet to ill have to get back on that to check on that. (performance should not be a problem tho its more size so ill have to experiment a little) - Unless its okay with it as it can be useful for other than color extraction. Such as file compression and other things. |
|
@Melonendk bundling sharp is not something I want. I have thought about it in the past for having image optimization but it's not worth the hassle. Client is the way to go here. I would avoid renaming fields tbh, something like |
|
@diogomartino, nice to know also I har been busy with some events. But I'll be back on it. I agree with like in terms of database that profile color would have been better. Will make the nameing make sense of course. My reasoning is that we can easily also just limit to 1 length now. And just later easy update it so gradients would work. In another pr Until response I will go with single string as usual. Expect and updated version from me this week. |









Summary
Improvements to voice chat UI. With updated padding for voice grid. Updated Voice cards with color, text and controls. Pins and general visibility improvements.
Closes #697
Closes #639
Additional Context
When i read issue #639 i wanted to do it quickly but ended up doing more. - So that's why a new issue with bigger changes.
Read Issue #697 for more detailed changes.
Example of changes (Pictures Updated) (Click me)