diff --git a/packages/mui-material/src/Fab/Fab.js b/packages/mui-material/src/Fab/Fab.js
index 2c2e5997d5b45a..42102d9797e678 100644
--- a/packages/mui-material/src/Fab/Fab.js
+++ b/packages/mui-material/src/Fab/Fab.js
@@ -103,31 +103,34 @@ const FabRoot = styled(ButtonBase, {
props: { variant: 'extended' },
style: {
borderRadius: 48 / 2,
- padding: '0 16px',
+ // Vertical padding and a content-sized height rather than a fixed
+ // height, so a label that wraps stays inside the button. `fit-content`
+ // rather than `auto` keeps a flex or grid parent from stretching it.
+ padding: '8px 16px',
width: 'auto',
- minHeight: 'auto',
+ height: 'fit-content',
minWidth: 48,
- height: 48,
+ minHeight: 48,
},
},
{
props: { variant: 'extended', size: 'small' },
style: {
width: 'auto',
- padding: '0 8px',
+ padding: '2px 8px',
borderRadius: 34 / 2,
minWidth: 34,
- height: 34,
+ minHeight: 34,
},
},
{
props: { variant: 'extended', size: 'medium' },
style: {
width: 'auto',
- padding: '0 16px',
+ padding: '4px 16px',
borderRadius: 40 / 2,
minWidth: 40,
- height: 40,
+ minHeight: 40,
},
},
{
diff --git a/packages/mui-material/src/Fab/Fab.test.js b/packages/mui-material/src/Fab/Fab.test.js
index d1ff7dd41f8372..b21dec2ccf8030 100644
--- a/packages/mui-material/src/Fab/Fab.test.js
+++ b/packages/mui-material/src/Fab/Fab.test.js
@@ -97,6 +97,59 @@ describe('