diff --git a/src/components/overflow-menu/overflow-icon.svg b/src/components/overflow-menu/overflow-icon.svg
new file mode 100644
index 000000000..ffd39c400
--- /dev/null
+++ b/src/components/overflow-menu/overflow-icon.svg
@@ -0,0 +1,9 @@
+
diff --git a/src/components/overflow-menu/overflow-menu.jsx b/src/components/overflow-menu/overflow-menu.jsx
new file mode 100644
index 000000000..af815ca1e
--- /dev/null
+++ b/src/components/overflow-menu/overflow-menu.jsx
@@ -0,0 +1,43 @@
+/* eslint-disable react/jsx-no-bind */
+import React, {useState} from 'react';
+import PropTypes from 'prop-types';
+import classNames from 'classnames';
+
+import Dropdown from '../dropdown/dropdown.jsx';
+import overflowIcon from './overflow-icon.svg';
+
+import './overflow-menu.scss';
+
+const OverflowMenu = ({children, dropdownAs, className}) => {
+ const [open, setOpen] = useState(false);
+ return (
+
+
+ {open &&
setOpen(false)}
+ >
+ {children}
+ }
+
+ );
+};
+
+OverflowMenu.propTypes = {
+ children: PropTypes.node,
+ dropdownAs: PropTypes.string,
+ className: PropTypes.string
+};
+
+OverflowMenu.defaultProps = {
+ dropdownAs: 'ul'
+};
+
+export default OverflowMenu;
diff --git a/src/components/overflow-menu/overflow-menu.scss b/src/components/overflow-menu/overflow-menu.scss
new file mode 100644
index 000000000..124c96520
--- /dev/null
+++ b/src/components/overflow-menu/overflow-menu.scss
@@ -0,0 +1,50 @@
+
+.overflow-menu-container {
+ display: flex;
+ position: relative;
+
+ .overflow-menu-trigger {
+ background: transparent;
+ border: none;
+ display: flex;
+ align-items: center;
+ }
+
+ .overflow-menu-dropdown {
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ box-sizing: border-box;
+ box-shadow: 0px 2px 8px rgba(87, 94, 117, 0.5);
+ border-radius: 8px;
+ padding: 0;
+ margin: 30px 0 0 0;
+ right: unset; /* default dropdown aligns right edges, but we want left edges */
+ left: 0;
+ z-index: 1;
+
+ /* Include default styling for ... list */
+ li {
+ margin: 0;
+ padding: 0;
+ & + li {
+ border-top: 1px solid rgba(0, 0, 0, 0.15);
+ }
+ button {
+ display: flex;
+ align-items: center;
+ color: white;
+ font-weight: bold;
+ padding: 5px 10px;
+ background: none;
+ border: none;
+ width: 100%;
+ text-align: left;
+ &:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+ }
+ & > img {
+ margin: 0 10px 0 0;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/views/components/components.jsx b/src/views/components/components.jsx
index 7b854100b..9fd180fc0 100644
--- a/src/views/components/components.jsx
+++ b/src/views/components/components.jsx
@@ -12,12 +12,31 @@ const Grid = require('../../components/grid/grid.jsx');
const TextArea = require('../../components/forms/textarea.jsx');
const SubNavigation = require('../../components/subnavigation/subnavigation.jsx');
const Select = require('../../components/forms/select.jsx');
+const OverflowMenu = require('../../components/overflow-menu/overflow-menu.jsx').default;
+const exampleIcon = require('./example-icon.svg');
require('./components.scss');
const Components = () => (
+
Overflow Menu
+
+
+
+
+
+
+
+
+
+
Nav Bubbles
diff --git a/src/views/components/components.scss b/src/views/components/components.scss
index 1c2ac9e02..b4a272f95 100644
--- a/src/views/components/components.scss
+++ b/src/views/components/components.scss
@@ -18,6 +18,17 @@
width: 200px;
}
+ .example-tile {
+ width: 200px;
+ height: 50px;
+ border: 1px solid $ui-border;
+ border-radius: 8px;
+ padding: 10px;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center
+ }
+
.colors {
span {
display: inline-block;
diff --git a/src/views/components/example-icon.svg b/src/views/components/example-icon.svg
new file mode 100644
index 000000000..3edd347dd
--- /dev/null
+++ b/src/views/components/example-icon.svg
@@ -0,0 +1,18 @@
+
+
\ No newline at end of file