Skip to content

Commit

Permalink
[material-ui] Do not generate CSS variables for a custom spacing func…
Browse files Browse the repository at this point in the history
…tion (#43389)
  • Loading branch information
siriwatknp authored Aug 22, 2024
1 parent 47329ac commit 90c4624
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
12 changes: 5 additions & 7 deletions packages/mui-material/src/styles/createThemeWithVars.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,11 @@ function getSpacingVal(spacingInput) {
if (typeof spacingInput === 'number') {
return `${spacingInput}px`;
}
if (typeof spacingInput === 'string') {
return spacingInput;
}
if (typeof spacingInput === 'function') {
return getSpacingVal(spacingInput(1));
}
if (Array.isArray(spacingInput)) {
if (
typeof spacingInput === 'string' ||
typeof spacingInput === 'function' ||
Array.isArray(spacingInput)
) {
return spacingInput;
}
return '8px';
Expand Down
12 changes: 10 additions & 2 deletions packages/mui-material/src/styles/extendTheme.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -495,8 +495,16 @@ describe('extendTheme', () => {

it('can be customized as a function', () => {
const theme = extendTheme({ spacing: (factor) => `${0.25 * factor}rem` });
expect(theme.vars.spacing).to.deep.equal('var(--mui-spacing, 0.25rem)');
expect(theme.spacing(2)).to.equal('calc(2 * var(--mui-spacing, 0.25rem))');
expect('spacing' in theme.vars).to.equal(false);
expect(theme.spacing(2)).to.equal('0.5rem');
});

it('a custom function should not be altered', () => {
const theme = extendTheme({
spacing: (val) => (val === 'xs' ? '100px' : val),
});
expect('spacing' in theme.vars).to.equal(false);
expect(theme.spacing('xs')).to.equal('100px');
});
});

Expand Down

0 comments on commit 90c4624

Please sign in to comment.