Skip to content

Commit 701996c

Browse files
[material-ui][AppBar] Fix inherit color is inconsistent between ThemeProvider and CssVarsProvider (#42714)
1 parent 0eb2ba1 commit 701996c

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

packages/mui-material/src/AppBar/AppBar.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,16 @@ const AppBarRoot = styled(Paper, {
123123
},
124124
})),
125125
{
126-
props: { enableColorOnDark: true },
126+
props: (props) =>
127+
props.enableColorOnDark === true && !['inherit', 'transparent'].includes(props.color),
127128
style: {
128129
backgroundColor: 'var(--AppBar-background)',
129130
color: 'var(--AppBar-color)',
130131
},
131132
},
132133
{
133-
props: { enableColorOnDark: false },
134+
props: (props) =>
135+
props.enableColorOnDark === false && !['inherit', 'transparent'].includes(props.color),
134136
style: {
135137
backgroundColor: 'var(--AppBar-background)',
136138
color: 'var(--AppBar-color)',

packages/mui-material/src/AppBar/AppBar.test.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { expect } from 'chai';
33
import { createRenderer, screen } from '@mui/internal-test-utils';
44
import AppBar, { appBarClasses as classes } from '@mui/material/AppBar';
55
import Paper from '@mui/material/Paper';
6+
import { ThemeProvider, CssVarsProvider, hexToRgb } from '@mui/material/styles';
7+
import defaultTheme from '../styles/defaultTheme';
68
import describeConformance from '../../test/describeConformance';
79

810
describe('<AppBar />', () => {
@@ -62,4 +64,42 @@ describe('<AppBar />', () => {
6264
expect(appBar).to.have.class('mui-fixed');
6365
});
6466
});
67+
68+
it('should inherit Paper background color with ThemeProvider', function test() {
69+
if (/jsdom/.test(window.navigator.userAgent)) {
70+
this.skip();
71+
}
72+
73+
render(
74+
<ThemeProvider theme={defaultTheme}>
75+
<AppBar data-testid="root" color="inherit">
76+
Hello World
77+
</AppBar>
78+
</ThemeProvider>,
79+
);
80+
81+
const appBar = screen.getByTestId('root');
82+
expect(appBar).toHaveComputedStyle({
83+
backgroundColor: hexToRgb(defaultTheme.palette.background.paper),
84+
});
85+
});
86+
87+
it('should inherit Paper background color with CssVarsProvider', function test() {
88+
if (/jsdom/.test(window.navigator.userAgent)) {
89+
this.skip();
90+
}
91+
92+
render(
93+
<CssVarsProvider>
94+
<AppBar data-testid="root" color="inherit">
95+
Hello World
96+
</AppBar>
97+
</CssVarsProvider>,
98+
);
99+
100+
const appBar = screen.getByTestId('root');
101+
expect(appBar).toHaveComputedStyle({
102+
backgroundColor: hexToRgb(defaultTheme.palette.background.paper),
103+
});
104+
});
65105
});

0 commit comments

Comments
 (0)