+ );
+ }
+}
+
+TransitionFab.propTypes = {
+ classes: PropTypes.object.isRequired,
+};
+
+export default withStyles(styles)(TransitionFab);
diff --git a/docs/src/pages/demos/buttons/buttons.md b/docs/src/pages/demos/buttons/buttons.md
index b88c1201e868cc..286595f514cc70 100644
--- a/docs/src/pages/demos/buttons/buttons.md
+++ b/docs/src/pages/demos/buttons/buttons.md
@@ -48,6 +48,12 @@ Sometimes you might want to have icons for certain button to enhance the UX of t
{{demo='pages/demos/buttons/IconLabelButtons.js'}}
+### TransitionFab Buttons
+
+A FAB that reveals other fabs when clicked, and hides them when clicked again.
+
+{{demo='pages/demos/buttons/TransitionFab.js'}}
+
## Complex Buttons
The Flat Buttons, Raised Buttons, Floating Action Buttons and Icon Buttons are built on top of the same component: the `ButtonBase`.
diff --git a/pages/demos/buttons.js b/pages/demos/buttons.js
index f82a552405ee62..1d93b5371c0366 100644
--- a/pages/demos/buttons.js
+++ b/pages/demos/buttons.js
@@ -43,6 +43,13 @@ module.exports = require('fs')
raw: preval`
module.exports = require('fs')
.readFileSync(require.resolve('docs/src/pages/demos/buttons/IconLabelButtons'), 'utf8')
+`,
+ },
+ 'pages/demos/buttons/TransitionFab.js': {
+ js: require('docs/src/pages/demos/buttons/TransitionFab').default,
+ raw: preval`
+ module.exports = require('fs')
+ .readFileSync(require.resolve('docs/src/pages/demos/buttons/TransitionFab'), 'utf8')
`,
},
'pages/demos/buttons/ButtonBases.js': {