{supportStatus, select,
Provisional {Provisionally supported tools might lack the robustness of functionality
diff --git a/src/editors/sharedComponents/Button/hooks.js b/src/editors/sharedComponents/Button/hooks.js
new file mode 100644
index 000000000..f12b865fb
--- /dev/null
+++ b/src/editors/sharedComponents/Button/hooks.js
@@ -0,0 +1,23 @@
+/* eslint-disable import/prefer-default-export */
+export const isVariantAdd = (variant) => variant === 'add';
+
+export const getButtonProps = ({ variant, className, Add }) => {
+ const variantClasses = {
+ default: 'shared-button',
+ add: 'shared-button pl-0 text-primary-500 button-variant-add',
+ };
+ const variantMap = {
+ add: 'tertiary',
+ };
+ const classes = [variantClasses[variant]];
+ if (className) { classes.push(className); }
+
+ const iconProps = {};
+ if (isVariantAdd(variant)) { iconProps.iconBefore = Add; }
+
+ return {
+ className: classes.join(' '),
+ variant: variantMap[variant] || variant,
+ ...iconProps,
+ };
+};
diff --git a/src/editors/sharedComponents/Button/index.jsx b/src/editors/sharedComponents/Button/index.jsx
new file mode 100644
index 000000000..16f05d31f
--- /dev/null
+++ b/src/editors/sharedComponents/Button/index.jsx
@@ -0,0 +1,32 @@
+import React from 'react';
+import { string, node, arrayOf } from 'prop-types';
+import { Button as ParagonButton } from '@edx/paragon';
+import { Add } from '@edx/paragon/icons';
+
+import { getButtonProps } from './hooks';
+import './index.scss';
+
+const Button = ({
+ variant, className, text, children, ...props
+}) => (
+
+ {children || text}
+
+);
+Button.propTypes = {
+ variant: string,
+ className: string,
+ text: string,
+ children: node || arrayOf(node),
+};
+Button.defaultProps = {
+ variant: 'default',
+ className: null,
+ text: null,
+ children: null,
+};
+
+export default Button;
diff --git a/src/editors/sharedComponents/Button/index.scss b/src/editors/sharedComponents/Button/index.scss
new file mode 100644
index 000000000..102cd1456
--- /dev/null
+++ b/src/editors/sharedComponents/Button/index.scss
@@ -0,0 +1,13 @@
+.button-variant-add {
+ &:not(:disabled) {
+ &:not(.disabled) {
+ &:hover, &:active, &:focus {
+ background-color: transparent;
+
+ &:before {
+ display: none;
+ }
+ }
+ }
+ }
+}