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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Grow] Grow transition flickers on Safari for macOS and iOS #31380

Closed
2 tasks done
devgregw opened this issue Mar 8, 2022 · 15 comments 路 Fixed by #31975
Closed
2 tasks done

[Grow] Grow transition flickers on Safari for macOS and iOS #31380

devgregw opened this issue Mar 8, 2022 · 15 comments 路 Fixed by #31975
Labels
component: transitions This is the name of the generic UI component, not the React module! external dependency Blocked by external dependency, we can鈥檛 do anything about it

Comments

@devgregw
Copy link

devgregw commented Mar 8, 2022

Duplicates

  • I have searched the existing issues

Latest version

  • I have tested the latest version

Current behavior 馃槸

The Grow transition flickers toward the end of the transition on Safari (tested on macOS and iOS). The length of the flicker depends on the transition's duration. The transition is also not fading out properly. This appears to happen on any component that uses Grow (Dialogs, Snackbars, Menus, etc.)
GIF from docs in Safari on macOS:
GIF from docs in Safari on macOS

Expected behavior 馃

The end of the transition should not flicker.
GIF from docs in Firefox on macOS:
GIF from docs in Firefox on macOS

Steps to reproduce 馃暪

Steps:

  1. Open Safari on macOS or iOS
  2. Navigate to https://mui.com/components/transitions/
  3. Toggle on and off the Grow demo switch

Context 馃敠

The flicker is jarring, but only occurs on Safari.

Your environment 馃寧

`npx @mui/envinfo`
  System:
    OS: macOS 12.3
  Binaries:
    Node: 14.18.0 - /usr/local/bin/node
    Yarn: 1.22.17 - /opt/homebrew/bin/yarn
    npm: 8.5.3 - /usr/local/bin/npm
  Browsers:
    Chrome: Not Found
    Edge: Not Found
    Firefox: 96.0.2
    Safari: 15.4
@devgregw devgregw added the status: waiting for maintainer These issues haven't been looked at yet by a maintainer label Mar 8, 2022
@michaldudak
Copy link
Member

I haven't been able to reproduce this issue, even with a long timeout. @siriwatknp could you take a look?

@devgregw
Copy link
Author

I haven't been able to reproduce this issue, even with a long timeout.

I was not able to reproduce this myself on a non-beta version of macOS (12.2.1 and Safari 15.3; I opened the issue with 12.3/15.4). Could this just be a Safari bug?

@siriwatknp
Copy link
Member

I could not reproduce too 馃ゲ

@michaldudak
Copy link
Member

Could this just be a Safari bug?

It seems so. We can get back to it when Safari 15.4 is out of beta. We'll see if the problem still persists then.

@michaldudak michaldudak added external dependency Blocked by external dependency, we can鈥檛 do anything about it component: transitions This is the name of the generic UI component, not the React module! on hold There is a blocker, we need to wait and removed status: waiting for maintainer These issues haven't been looked at yet by a maintainer labels Mar 11, 2022
@mattsrobot
Copy link

mattsrobot commented Mar 15, 2022

I'm getting this issue since upgrading to macOS 12.3 today. I'm noticing ALL menus (selects, menus, etc) using the animation are flickering and behaving strange.

You can reproduce by simply going to the Demo's and Examples on the mui website. All the examples flicker.

FYI is it normal to put such a serious bug "on hold" given macOS has been in public beta for such a long time, and release candidates were already available? Why are you waiting for the official release that'll break everyone who is now upgrading today?

@michaldudak
Copy link
Member

This does not look like an issue within Material UI. It seems that Safari introduced a bug and it should be reported there.

See the plain HTML & CSS example: https://jsbin.com/poyafawore/edit?html,css,output - simultaneously transitioning both opacity and transform with different transition lengths causes opacity transition to be reset after transform finishes its transition.

@devgregw
Copy link
Author

Potentially related WebKit bug

@michaldudak
Copy link
Member

For reference:
Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=237972
Solution: https://trac.webkit.org/changeset/291526/webkit/ (not landed in Safari TP yet, as of Release 144)

@mdalpozzo
Copy link

I'm seeing this issue on ios 15.4.1 in Safari AND in Chrome mobile browsers.
Also seeing this in desktop Safari 15.4.

@igordanchenko
Copy link
Contributor

@michaldudak, it appears the fix has landed in Safari 15.5. Would you prefer to update #31975 and limit it to Safari 15.4? or just remove it completely in 1-2 months once most Safari 15.4 users upgrade to 15.5?

@igordanchenko
Copy link
Contributor

@mdalpozzo, you probably want to submit a separate ticket with detailed description (specifically MUI version) and reproduction. Please note that MUI v4 never received a fix.

@Richard-Halabi
Copy link

any idea how to solve this issue, I mean even mui 5 has it ?

@michaldudak
Copy link
Member

@igordanchenko yes, we could limit the scope of the fix to just 15.4. I'd appreciate it if you could prepare a PR.

@Richard-Halabi at this point it's best to update Safari to the latest version.

@tyuen
Copy link

tyuen commented Jun 16, 2022

This bug has been fixed in Safari 15.5

@hanayashiki
Copy link

hanayashiki commented Nov 17, 2022

This bug has been fixed in Safari 15.5

true? I'm experiencing a similar bug


update: for any one facing a Safari bug that flickers when you fade in texts

@keyframes fade-in {
  from: { opacity: 0 }
}

Adding transitions-colors will work around the issue

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
# Yes, this is from tailwindcss

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: transitions This is the name of the generic UI component, not the React module! external dependency Blocked by external dependency, we can鈥檛 do anything about it
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants