[material-ui] Return styles directly if the selector is &
when using applyStyles
#43633
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes #43620
This is an edge case because ideally, there is no need to use
theme.applyStyles
for a single color scheme. It happens when usingcssVariables
with a single light or dark palette:With a single color scheme, the
applyStyles('dark', styles)
return{ '&': styles }
.Emotion treats it as a different
<style>
, so the default styles of AppBar wins the one from the theme style overrides.Before: https://codesandbox.io/p/sandbox/adoring-firefly-x6cktw?file=%2Fdemo.tsx%3A1%2C1-61%2C1
This PR fixes by returning the styles directly if the selector is
&
so that a new<style>
is not created.After: https://codesandbox.io/p/sandbox/material-ui-cra-ts-forked-fzf2m5