diff --git a/packages/components-faraday/src/components/Admin/AddEditUser.js b/packages/components-faraday/src/components/Admin/AddEditUser.js
index f4bed2948e3c257099bf9aa99961a23e6c00cd4a..08223f1067bbcd57b9f9e4be533c21bac1654b27 100644
--- a/packages/components-faraday/src/components/Admin/AddEditUser.js
+++ b/packages/components-faraday/src/components/Admin/AddEditUser.js
@@ -14,8 +14,8 @@ import { compose, withProps, withHandlers, withState } from 'recompose'
 import AddUserForm from './AddUserForm'
 import EditUserForm from './EditUserForm'
 import {
-  getRoleOptions,
   setAdmin,
+  getRoleOptions,
   parseUpdateUser,
   handleFormError,
 } from './utils'
@@ -115,14 +115,14 @@ const FormContainer = styled.form`
   background-color: ${th('backgroundColorReverse')};
   margin: 0 auto;
   min-width: 300px;
-  padding: 20px 40px;
+  padding: calc(${th('subGridUnit')} * 3) calc(${th('subGridUnit')} * 6);
 `
 
 const Row = styled.div`
+  align-items: center;
   display: flex;
   flex-direction: row;
-  margin: 10px 0;
-  align-items: center;
   justify-content: space-evenly;
+  margin: ${th('subGridUnit')} 0;
 `
 // #endregion
diff --git a/packages/components-faraday/src/components/Admin/AdminDashboard.js b/packages/components-faraday/src/components/Admin/AdminDashboard.js
index 5b138406023bf787f602ed026686d3e47d32a5fe..85d161d8d956ef6aae8f20ac70d6b0f629d7a191 100644
--- a/packages/components-faraday/src/components/Admin/AdminDashboard.js
+++ b/packages/components-faraday/src/components/Admin/AdminDashboard.js
@@ -1,25 +1,25 @@
 import React from 'react'
-import { Icon } from '@pubsweet/ui'
-import styled, { withTheme } from 'styled-components'
+import styled from 'styled-components'
+import { Icon, th } from '@pubsweet/ui'
 
 const AdminDashboard = ({ history, theme }) => (
   <Root>
     <Title>Admin Dashboard</Title>
     <CardContainer>
       <Card>
-        <Icon color={theme.colorPrimary} size={6}>
+        <Icon primary size={6}>
           edit
         </Icon>
         <span>Journal configuration</span>
       </Card>
       <Card data-test="card-users" onClick={() => history.push('/admin/users')}>
-        <Icon color={theme.colorPrimary} size={6}>
+        <Icon primary size={6}>
           users
         </Icon>
         <span>Users</span>
       </Card>
       <Card>
-        <Icon color={theme.colorPrimary} size={6}>
+        <Icon primary size={6}>
           settings
         </Icon>
         <span>Roles</span>
@@ -28,7 +28,7 @@ const AdminDashboard = ({ history, theme }) => (
   </Root>
 )
 
-export default withTheme(AdminDashboard)
+export default AdminDashboard
 
 // #region Styled components
 const Root = styled.div`
@@ -38,9 +38,9 @@ const Root = styled.div`
 `
 
 const Title = styled.span`
-  color: ${({ theme }) => theme.colorPrimary};
-  font-family: ${({ theme }) => theme.fontInterface};
-  font-size: ${({ theme }) => theme.fontSizeHeading5};
+  color: ${th('colorPrimary')};
+  font-family: ${th('fontInterface')};
+  font-size: ${th('fontSizeHeading5')};
   font-weight: bold;
   text-align: left;
 `
@@ -53,8 +53,8 @@ const CardContainer = styled.div`
 
 const Card = styled.div`
   align-items: center;
-  border: ${({ theme }) => theme.borderDefault};
-  background-color: ${({ theme }) => theme.backgroundColorReverse};
+  border: ${th('borderDefault')};
+  background-color: ${th('backgroundColorReverse')};
   cursor: pointer;
   display: flex;
   flex-direction: column;
@@ -64,12 +64,12 @@ const Card = styled.div`
   width: 210px;
 
   &:hover {
-    background-color: ${({ theme }) => theme.backgroundColor};
+    background-color: ${th('backgroundColor')};
   }
 
   > span {
-    color: ${({ theme }) => theme.colorPrimary};
-    font-family: ${({ theme }) => theme.fontInterface};
+    color: ${th('colorPrimary')};
+    font-family: ${th('fontInterface')};
     font-size: 18px;
     margin-top: 10px;
     text-align: center;
diff --git a/packages/components-faraday/src/components/Admin/Pagination.js b/packages/components-faraday/src/components/Admin/Pagination.js
index a81b3d184fc73fea4b2d6a2d7726f1feaf5e0fbe..4a8836cd9e792655cccf95bd2c342b6246def780 100644
--- a/packages/components-faraday/src/components/Admin/Pagination.js
+++ b/packages/components-faraday/src/components/Admin/Pagination.js
@@ -1,6 +1,6 @@
 import React from 'react'
+import styled from 'styled-components'
 import { Icon, th } from '@pubsweet/ui'
-import styled, { withTheme } from 'styled-components'
 
 const Pagination = ({
   page,
@@ -9,7 +9,6 @@ const Pagination = ({
   decrementPage,
   hasMore,
   maxLength,
-  theme,
 }) => (
   <Root>
     <Showing>
@@ -18,7 +17,7 @@ const Pagination = ({
     </Showing>
     <Chevrons>
       <IconButton hide={page === 0} onClick={decrementPage}>
-        <Icon color={theme.colorPrimary} size={3}>
+        <Icon primary size={3}>
           chevron-left
         </Icon>
       </IconButton>
@@ -28,7 +27,7 @@ const Pagination = ({
         }`}
       </span>
       <IconButton hide={!hasMore} onClick={incrementPage}>
-        <Icon color={theme.colorPrimary} size={3}>
+        <Icon primary size={3}>
           chevron-right
         </Icon>
       </IconButton>
@@ -36,7 +35,7 @@ const Pagination = ({
   </Root>
 )
 
-export default withTheme(Pagination)
+export default Pagination
 
 const Root = styled.div`
   align-items: center;
diff --git a/packages/components-faraday/src/components/AuthorList/Author.js b/packages/components-faraday/src/components/AuthorList/Author.js
index b18d8ed6017b7bf1e58c3c0b3d674d2f77e33bb7..5df7654e9b1ef7277a196a6981dbff69e8c2669b 100644
--- a/packages/components-faraday/src/components/AuthorList/Author.js
+++ b/packages/components-faraday/src/components/AuthorList/Author.js
@@ -1,24 +1,24 @@
 import React from 'react'
-import { Icon } from '@pubsweet/ui'
 import styled from 'styled-components'
+import { Icon, th } from '@pubsweet/ui'
 
 import { Label } from './FormItems'
 
 export default ({
   id,
-  firstName,
-  lastName,
   email,
-  affiliation,
-  dragHandle,
+  index,
   isOver,
+  lastName,
+  firstName,
+  dragHandle,
+  affiliation,
   removeAuthor,
   isSubmitting,
-  isCorresponding,
-  parseAuthorType,
   editedAuthor,
   setAuthorEdit,
-  index,
+  isCorresponding,
+  parseAuthorType,
 }) => (
   <Root isOver={isOver}>
     {!isOver && dragHandle}
@@ -62,8 +62,8 @@ const Header = styled.div`
 `
 
 const Title = styled.span`
-  font-family: ${({ theme }) => theme.fontHeading};
-  font-size: ${({ theme }) => theme.fontSizeBaseSmall};
+  font-family: ${th('fontHeading')};
+  font-size: ${th('fontSizeBaseSmall')};
   font-weight: 600;
 `
 
diff --git a/packages/components-faraday/src/components/AuthorList/AuthorAdder.js b/packages/components-faraday/src/components/AuthorList/AuthorAdder.js
index 1fc5ae03b70f65eb88d19d947a1e2b7f81800e6a..47264445eab33b0bc90a9a17bc7e84fa77a05aef 100644
--- a/packages/components-faraday/src/components/AuthorList/AuthorAdder.js
+++ b/packages/components-faraday/src/components/AuthorList/AuthorAdder.js
@@ -1,28 +1,28 @@
 import React from 'react'
 import { get } from 'lodash'
 import { connect } from 'react-redux'
-import { Button } from '@pubsweet/ui'
 import { reduxForm } from 'redux-form'
 import styled from 'styled-components'
+import { Button, th } from '@pubsweet/ui'
 import { compose, withProps } from 'recompose'
 import { selectCurrentUser } from 'xpub-selectors'
 
-import { Spinner } from '../UIComponents/'
 import { emailValidator } from '../utils'
+import { Spinner } from '../UIComponents/'
 import {
-  getAuthorFetching,
   getAuthors,
   authorSuccess,
   authorFailure,
+  getAuthorFetching,
 } from '../../redux/authors'
 import { ValidatedTextField } from './FormItems'
 
 const AuthorAdder = ({
-  authors = [],
   editMode,
+  isFetching,
   setEditMode,
+  authors = [],
   handleSubmit,
-  isFetching,
 }) => (
   <Root>
     <Button data-test="button-add-author" onClick={setEditMode(true)} primary>
@@ -73,8 +73,8 @@ const AuthorAdder = ({
 export default compose(
   connect(
     state => ({
-      currentUser: selectCurrentUser(state),
       isFetching: getAuthorFetching(state),
+      currentUser: selectCurrentUser(state),
     }),
     {
       authorSuccess,
@@ -89,10 +89,10 @@ export default compose(
       if (!admin && authors.length === 0) {
         return {
           initialValues: {
-            affiliation,
             email,
-            firstName,
             lastName,
+            firstName,
+            affiliation,
           },
         }
       }
@@ -139,31 +139,31 @@ export default compose(
 const ButtonsContainer = styled.div`
   display: flex;
   justify-content: space-around;
-  margin: 15px 0 0 0;
+  margin: calc(${th('subGridUnit')} * 2) 0 0 0;
 `
 
 const Row = styled.div`
   display: flex;
   flex-direction: row;
-  margin: 10px 0;
+  margin: ${th('subGridUnit')} 0;
 `
 
 const Title = styled.span`
-  font-size: ${({ theme }) => theme.fontSizeBase};
+  font-size: ${th('fontSizeBase')};
   font-weight: 500;
-  margin: 10px 0;
+  margin: ${th('subGridUnit')} 0;
   text-transform: uppercase;
 `
 
 const FormBody = styled.div`
-  border: ${({ theme }) => theme.borderDefault};
-  margin-top: 10px;
-  padding: 10px;
+  border: ${th('borderDefault')};
+  margin-top: ${th('subGridUnit')};
+  padding: ${th('subGridUnit')};
 `
 
 const Root = styled.div`
   display: flex;
   flex-direction: column;
-  margin: 10px 0;
+  margin: ${th('subGridUnit')} 0;
 `
 // #endregion
diff --git a/packages/components-faraday/src/components/AuthorList/AuthorEditor.js b/packages/components-faraday/src/components/AuthorList/AuthorEditor.js
index c9d5f29f486db2ca3cdaec0b87880be2769ac2ba..38deb2e6199096c7714b31fcdbbf9ecd0db8fe15 100644
--- a/packages/components-faraday/src/components/AuthorList/AuthorEditor.js
+++ b/packages/components-faraday/src/components/AuthorList/AuthorEditor.js
@@ -1,8 +1,8 @@
 import React, { Fragment } from 'react'
 import { pick } from 'lodash'
 import { connect } from 'react-redux'
-import { Icon, Checkbox } from '@pubsweet/ui'
 import styled, { css } from 'styled-components'
+import { Icon, Checkbox, th } from '@pubsweet/ui'
 import { compose, withHandlers, withProps } from 'recompose'
 import { reduxForm, Field, change as changeForm } from 'redux-form'
 
@@ -11,9 +11,9 @@ import { Spinner } from '../UIComponents'
 import {
   getAuthors,
   editAuthor,
-  getAuthorFetching,
   authorSuccess,
   authorFailure,
+  getAuthorFetching,
 } from '../../redux/authors'
 import { ValidatedTextField, Label } from './FormItems'
 
@@ -22,14 +22,14 @@ const renderCheckbox = ({ input }) => (
 )
 
 const AuthorEdit = ({
+  index,
+  email,
   isFetching,
-  setAuthorEdit,
   handleSubmit,
-  parseAuthorType,
-  index,
   isSubmitting,
+  setAuthorEdit,
+  parseAuthorType,
   isCorresponding,
-  email,
   changeCorresponding,
   ...rest
 }) => (
@@ -94,12 +94,12 @@ export default compose(
     initialValues: {
       edit: pick(props, [
         'id',
-        'isCorresponding',
-        'isSubmitting',
-        'firstName',
-        'lastName',
         'email',
+        'lastName',
+        'firstName',
         'affiliation',
+        'isSubmitting',
+        'isCorresponding',
       ]),
     },
   })),
@@ -139,15 +139,15 @@ export default compose(
 
 // #region styled-components
 const defaultText = css`
-  color: ${({ theme }) => theme.colorText};
-  font-size: ${({ theme }) => theme.fontSizeBaseSmall};
-  font-family: ${({ theme }) => theme.fontReading};
+  color: ${th('colorText')};
+  font-size: ${th('fontSizeBaseSmall')};
+  font-family: ${th('fontReading')};
 `
 
 const Row = styled.div`
   display: flex;
   flex-direction: row;
-  margin: 10px 0;
+  margin: ${th('subGridUnit')} 0;
 `
 
 const TitleContainer = styled.div`
@@ -157,8 +157,8 @@ const TitleContainer = styled.div`
 
   > span {
     ${defaultText};
-    font-size: ${({ theme }) => theme.fontSizeHeading6};
-    margin-right: 10px;
+    font-size: ${th('fontSizeHeading6')};
+    margin-right: ${th('subGridUnit')};
     font-weight: 600;
     text-align: left;
   }
@@ -183,7 +183,7 @@ const ClickableIcon = styled.div`
   flex: 1;
   flex-direction: column;
   justify-content: center;
-  margin: 0 12px;
+  margin: 0 calc(${th('subGridUnit')} * 2);
 `
 
 const Header = styled.div`
@@ -194,10 +194,10 @@ const Header = styled.div`
 `
 
 const Root = styled.div`
-  border: ${({ theme }) => theme.borderDefault};
-  margin: 10px 0;
-  padding: 10px;
+  border: ${th('borderDefault')};
   display: flex;
   flex-direction: column;
+  margin: ${th('subGridUnit')} 0;
+  padding: ${th('subGridUnit')};
 `
 // #endregion
diff --git a/packages/components-faraday/src/components/AuthorList/AuthorList.js b/packages/components-faraday/src/components/AuthorList/AuthorList.js
index 1b020b5e478005ccaa3ea70336b030b06f6ca538..c6b03ef04c98938244acd3f7731886b24b9444ab 100644
--- a/packages/components-faraday/src/components/AuthorList/AuthorList.js
+++ b/packages/components-faraday/src/components/AuthorList/AuthorList.js
@@ -6,18 +6,18 @@ import styled from 'styled-components'
 import { withRouter } from 'react-router-dom'
 import {
   compose,
-  withHandlers,
-  getContext,
   lifecycle,
   withState,
+  getContext,
+  withHandlers,
 } from 'recompose'
 import { change as changeForm } from 'redux-form'
 import { SortableList } from 'pubsweet-component-sortable-list/src/components'
 
 import {
   addAuthor,
-  deleteAuthor,
   getAuthors,
+  deleteAuthor,
   authorFailure,
   getAuthorsTeam,
   getAuthorError,
@@ -27,22 +27,22 @@ import {
 import Author from './Author'
 import StaticList from './StaticList'
 import AuthorAdder from './AuthorAdder'
-import AuthorEditor from './AuthorEditor'
 import { DragHandle } from './FormItems'
+import AuthorEditor from './AuthorEditor'
 
 const Authors = ({
-  authors,
-  moveAuthor,
-  addAuthor,
-  editAuthor,
   match,
+  error,
+  authors,
   version,
-  dropItem,
   editMode,
+  dropItem,
+  addAuthor,
+  moveAuthor,
+  editAuthor,
   setEditMode,
   editedAuthor,
   setFormAuthors,
-  error,
   ...rest
 }) => (
   <Root>
@@ -143,10 +143,10 @@ export default compose(
     },
     removeAuthor: ({
       authors,
-      setFormAuthors,
+      project,
       deleteAuthor,
       authorFailure,
-      project,
+      setFormAuthors,
     }) => (id, authorEmail) => () => {
       deleteAuthor(project.id, id).then(
         () => {