diff --git a/src/components/LayoutWrapperFooter/LayoutWrapperFooter.css b/src/components/LayoutWrapperFooter/LayoutWrapperFooter.css
new file mode 100644
index 00000000..58c12a68
--- /dev/null
+++ b/src/components/LayoutWrapperFooter/LayoutWrapperFooter.css
@@ -0,0 +1,4 @@
+.root {
+ width: 100%;
+ position: relative;
+}
diff --git a/src/components/LayoutWrapperFooter/LayoutWrapperFooter.js b/src/components/LayoutWrapperFooter/LayoutWrapperFooter.js
new file mode 100644
index 00000000..5bd5f1b2
--- /dev/null
+++ b/src/components/LayoutWrapperFooter/LayoutWrapperFooter.js
@@ -0,0 +1,30 @@
+/**
+ * This is a wrapper component for different Layouts. Footer content should be added to this wrapper.
+ */
+import React from 'react';
+import PropTypes from 'prop-types';
+import classNames from 'classnames';
+
+import css from './LayoutWrapperFooter.css';
+
+const LayoutWrapperFooter = props => {
+ const { className, rootClassName, children } = props;
+ const classes = classNames(rootClassName || css.root, className);
+
+ return
{children}
;
+};
+
+LayoutWrapperFooter.defaultProps = {
+ className: null,
+ rootClassName: null,
+};
+
+const { node, string } = PropTypes;
+
+LayoutWrapperFooter.propTypes = {
+ children: node.isRequired,
+ className: string,
+ rootClassName: string,
+};
+
+export default LayoutWrapperFooter;
diff --git a/src/components/LayoutWrapperMain/LayoutWrapperMain.css b/src/components/LayoutWrapperMain/LayoutWrapperMain.css
new file mode 100644
index 00000000..c9893f44
--- /dev/null
+++ b/src/components/LayoutWrapperMain/LayoutWrapperMain.css
@@ -0,0 +1,6 @@
+.root {
+ /* Expand to the full remaining width of the viewport */
+ display: flex;
+ flex-direction: column;
+ width: 100%
+}
diff --git a/src/components/LayoutWrapperMain/LayoutWrapperMain.js b/src/components/LayoutWrapperMain/LayoutWrapperMain.js
new file mode 100644
index 00000000..c508a2a4
--- /dev/null
+++ b/src/components/LayoutWrapperMain/LayoutWrapperMain.js
@@ -0,0 +1,34 @@
+/**
+ * This is a wrapper component for different Layouts. Main content should be added to this wrapper.
+ */
+import React from 'react';
+import PropTypes from 'prop-types';
+import classNames from 'classnames';
+
+import css from './LayoutWrapperMain.css';
+
+const LayoutWrapperMain = props => {
+ const { className, rootClassName, children } = props;
+ const classes = classNames(rootClassName || css.root, className);
+
+ return (
+
+ {children}
+
+ );
+};
+
+LayoutWrapperMain.defaultProps = {
+ className: null,
+ rootClassName: null,
+};
+
+const { node, string } = PropTypes;
+
+LayoutWrapperMain.propTypes = {
+ children: node.isRequired,
+ className: string,
+ rootClassName: string,
+};
+
+export default LayoutWrapperMain;
diff --git a/src/components/LayoutWrapperSideNav/LayoutWrapperSideNav.css b/src/components/LayoutWrapperSideNav/LayoutWrapperSideNav.css
new file mode 100644
index 00000000..12015b4a
--- /dev/null
+++ b/src/components/LayoutWrapperSideNav/LayoutWrapperSideNav.css
@@ -0,0 +1,28 @@
+@import '../../marketplace.css';
+
+.root {
+ /* Layout */
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-end;
+ padding: 0 24px;
+
+ border-top-width: 1px;
+ border-top-color: var(--matterColorNegative);
+ border-top-style: solid;
+ background-color: var(--matterColorLight);
+ box-shadow: var(--boxShadow);
+
+ @media (--viewportLarge) {
+ padding: 113px 0 82px 15vw;
+ flex-direction: column;
+ justify-content: flex-start;
+ border: none;
+ box-shadow: none;
+ background-color: transparent;
+ }
+
+ @media (--viewportXLarge) {
+ padding-left: 25vw;
+ }
+}
diff --git a/src/components/LayoutWrapperSideNav/LayoutWrapperSideNav.js b/src/components/LayoutWrapperSideNav/LayoutWrapperSideNav.js
new file mode 100644
index 00000000..3a1827d8
--- /dev/null
+++ b/src/components/LayoutWrapperSideNav/LayoutWrapperSideNav.js
@@ -0,0 +1,30 @@
+/**
+ * This is a wrapper component for different Layouts.
+ * Navigational 'aside' content should be added to this wrapper.
+ */
+import React from 'react';
+import PropTypes from 'prop-types';
+import classNames from 'classnames';
+
+import css from './LayoutWrapperSideNav.css';
+
+const LayoutWrapperSideNav = props => {
+ const { className, rootClassName, children } = props;
+ const classes = classNames(rootClassName || css.root, className);
+ return ;
+};
+
+LayoutWrapperSideNav.defaultProps = {
+ className: null,
+ rootClassName: null,
+};
+
+const { node, string } = PropTypes;
+
+LayoutWrapperSideNav.propTypes = {
+ children: node.isRequired,
+ className: string,
+ rootClassName: string,
+};
+
+export default LayoutWrapperSideNav;
diff --git a/src/components/LayoutWrapperTopbar/LayoutWrapperTopbar.css b/src/components/LayoutWrapperTopbar/LayoutWrapperTopbar.css
new file mode 100644
index 00000000..58c12a68
--- /dev/null
+++ b/src/components/LayoutWrapperTopbar/LayoutWrapperTopbar.css
@@ -0,0 +1,4 @@
+.root {
+ width: 100%;
+ position: relative;
+}
diff --git a/src/components/LayoutWrapperTopbar/LayoutWrapperTopbar.js b/src/components/LayoutWrapperTopbar/LayoutWrapperTopbar.js
new file mode 100644
index 00000000..870dc3c8
--- /dev/null
+++ b/src/components/LayoutWrapperTopbar/LayoutWrapperTopbar.js
@@ -0,0 +1,31 @@
+/**
+ * This is a wrapper component for different Layouts.
+ * Topbar should be added to this wrapper.
+ */
+import React from 'react';
+import PropTypes from 'prop-types';
+import classNames from 'classnames';
+
+import css from './LayoutWrapperTopbar.css';
+
+const LayoutWrapperTopbar = props => {
+ const { className, rootClassName, children } = props;
+ const classes = classNames(rootClassName || css.root, className);
+
+ return {children}
;
+};
+
+LayoutWrapperTopbar.defaultProps = {
+ className: null,
+ rootClassName: null,
+};
+
+const { node, string } = PropTypes;
+
+LayoutWrapperTopbar.propTypes = {
+ children: node.isRequired,
+ className: string,
+ rootClassName: string,
+};
+
+export default LayoutWrapperTopbar;
diff --git a/src/components/index.js b/src/components/index.js
index b1eb012f..24258b47 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -47,6 +47,10 @@ export {
SideNavWrapper,
TopbarWrapper,
} from './LayoutSideNavigation/LayoutSideNavigation';
+export { default as LayoutWrapperTopbar } from './LayoutWrapperTopbar/LayoutWrapperTopbar';
+export { default as LayoutWrapperMain } from './LayoutWrapperMain/LayoutWrapperMain';
+export { default as LayoutWrapperSideNav } from './LayoutWrapperSideNav/LayoutWrapperSideNav';
+export { default as LayoutWrapperFooter } from './LayoutWrapperFooter/LayoutWrapperFooter';
export { default as ListingCard } from './ListingCard/ListingCard';
export {
default as LocationAutocompleteInput,