-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
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
[Bug Report] v-navigation-drawer comes back blurry after hiding on Edge and Google Chrome #12890
Comments
After closer inspection I can see that there are multiple sharpness differences where Firefox is always the sharpests. |
FWIW I am experiencing the same thing, whether it's a permanent drawer or a temporary one that I continually toggle. Sometimes it's blurry, sometimes it's not. I've found that clearing out the
|
Indeed it seems to fix the problem. |
The "blurriness" is when the chrome engine disables subpixel rendering (aka ClearType). This is an optimization when the engine expects text to be moved, scaled, etc because during movement subpixel rendering can look worse. It should not be applied when the text stands still, but the "will-change" hint probably messes with this. I have also seen similar effects in my vuetify main bar - when seemingly unrelated items in the toolbar get hover effects, other parts of the toolbar get subtle repaints (visible with repaint highlights in the devtools) and text switches from simple anti-aliased (blurred) to subpixel rendering (crisp) if you look closely or use the magnifier tool to look at the colors of the pixels. |
There's a lot of warnings here about using the "will-change" property on MDN - could be that some of them should be taken more seriously if we want to get rid of these issues. |
@KaelWD - do you want me to open another issue that is about going over the problematic usages of |
At the time this was basically mandatory for fixed position elements as they would repaint on every scroll otherwise. We can look into if this is still necessary or if there is a better solution now. No need for another issue, but you're welcome to submit a patch if you like. |
my solution,and works fine <template>
<v-navigation-drawer v-model="drawer1" class="drawer1" app temporary :style="style1">
<v-list nav dense>
<v-list-item link to="/default/">
<v-list-item-icon><v-icon>mdi-home</v-icon></v-list-item-icon>
<v-list-item-title>Home</v-list-item-title>
</v-list-item>
</v-list>
<v-divider />
<v-list nav dense>
<v-list-item link to="/user/">
<v-list-item-icon><v-icon>mdi-account</v-icon></v-list-item-icon>
<v-list-item-title>User</v-list-item-title>
</v-list-item>
<v-list-item link to="/articles/">
<v-list-item-icon><v-icon>mdi-newspaper</v-icon></v-list-item-icon>
<v-list-item-title>Articles</v-list-item-title>
</v-list-item>
</v-list>
<v-divider />
<v-list nav dense>
<v-list-item link to="/default/signout/">
<v-list-item-icon><v-icon>mdi-logout-variant</v-icon></v-list-item-icon>
<v-list-item-title>Sign Out</v-list-item-title>
</v-list-item>
</v-list>
</v-navigation-drawer>
</template>
<script>
export default {
name:'AppMenuPartial',
data:function(){
return {drawer1:false};
},
computed:{
style1:function(){
//"256px" is your setting
return {width:this.drawer1?'256px':'0px'};
}
}
};
</script>
<style scoped>
.drawer1{transform:none !important;transition-property:'width';}
</style> |
Out of curiosity, can you check if enabling "Composite after paint" in |
Environment
Vuetify Version: 2.3.6
Vue Version: 2.6.11
Browsers: Edge 87.0.664.66
OS: Windows 10
Steps to reproduce
All items in the nav-drawer is now blurry.
This holds true for Google Chrome and Microsoft Edge
Mozilla Firefox does not have this issue
Expected Behavior
All list-items should stay crisp before and after hiding the nav-drawer
Actual Behavior
List items get blurry after un-hiding
Reproduction Link
https://codepen.io/Karl-einarb/pen/XWjqXGr
The text was updated successfully, but these errors were encountered: