diff --git a/packages/mui-material/src/Tab/Tab.js b/packages/mui-material/src/Tab/Tab.js
index b25d9a5eae0217..23e923b7bdfbcc 100644
--- a/packages/mui-material/src/Tab/Tab.js
+++ b/packages/mui-material/src/Tab/Tab.js
@@ -42,6 +42,7 @@ const TabRoot = styled(ButtonBase, {
styles[`textColor${capitalize(ownerState.textColor)}`],
ownerState.fullWidth && styles.fullWidth,
ownerState.wrapped && styles.wrapped,
+ ownerState.icon && styles.iconWrapper,
];
},
})(({ theme }) => ({
diff --git a/packages/mui-material/src/Tab/Tab.test.js b/packages/mui-material/src/Tab/Tab.test.js
index 01000e2c3d6819..b32b9a2d78d829 100644
--- a/packages/mui-material/src/Tab/Tab.test.js
+++ b/packages/mui-material/src/Tab/Tab.test.js
@@ -4,6 +4,7 @@ import { spy } from 'sinon';
import { act, createRenderer, fireEvent } from '@mui/internal-test-utils';
import Tab, { tabClasses as classes } from '@mui/material/Tab';
import ButtonBase from '@mui/material/ButtonBase';
+import { createTheme, ThemeProvider } from '@mui/material/styles';
import describeConformance from '../../test/describeConformance';
describe('', () => {
@@ -167,4 +168,26 @@ describe('', () => {
expect(style).to.have.property('alignText', 'center');
});
});
+
+ it('should apply iconWrapper styles from theme to Tab', () => {
+ const theme = createTheme({
+ components: {
+ MuiTab: {
+ styleOverrides: {
+ iconWrapper: {
+ color: 'red',
+ },
+ },
+ },
+ },
+ });
+
+ const { getByRole } = render(
+
+ hello} />
+ ,
+ );
+ const { style } = getByRole('tab');
+ expect(style).to.have.property('color', 'red');
+ });
});