diff --git a/resources/scripts/components/dashboard/ServerRow.tsx b/resources/scripts/components/dashboard/ServerRow.tsx
index 17d83f78..55993271 100644
--- a/resources/scripts/components/dashboard/ServerRow.tsx
+++ b/resources/scripts/components/dashboard/ServerRow.tsx
@@ -155,7 +155,6 @@ export default ({ server, className }: { server: Server; className?: string }) =
                             </div>
                             <p css={tw`text-xs text-neutral-600 text-center mt-1`}>of {disklimit}</p>
                         </div>
-                        
                         <div css={tw`flex-1 flex justify-end sm:hidden`}>
                             <div css={tw`flex items-end text-right`}>
                                 <div
diff --git a/resources/scripts/components/elements/ConfirmationModal.tsx b/resources/scripts/components/elements/ConfirmationModal.tsx
index d67c74d1..1b5b3ce1 100644
--- a/resources/scripts/components/elements/ConfirmationModal.tsx
+++ b/resources/scripts/components/elements/ConfirmationModal.tsx
@@ -19,11 +19,11 @@ const ConfirmationModal = ({ title, children, buttonText, onConfirmed }: Props)
         <>
             <h2 css={tw`text-2xl mb-6`}>{title}</h2>
             <p css={tw`text-sm`}>{children}</p>
-            <div css={tw`flex items-center justify-end mt-8`}>
-                <Button isSecondary onClick={() => dismiss()}>
+            <div css={tw`flex flex-wrap items-center justify-end mt-8`}>
+                <Button isSecondary onClick={() => dismiss()} css={tw`w-full sm:w-auto`}>
                     Cancel
                 </Button>
-                <Button color={'red'} css={tw`ml-4`} onClick={() => onConfirmed()}>
+                <Button color={'red'} css={tw`w-full sm:w-auto mt-4 sm:mt-0 sm:ml-4`} onClick={() => onConfirmed()}>
                     {buttonText}
                 </Button>
             </div>
diff --git a/resources/scripts/components/elements/Modal.tsx b/resources/scripts/components/elements/Modal.tsx
index 953a631a..342d6ab5 100644
--- a/resources/scripts/components/elements/Modal.tsx
+++ b/resources/scripts/components/elements/Modal.tsx
@@ -1,9 +1,7 @@
 import React, { useEffect, useMemo, useState } from 'react';
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import { faTimes } from '@fortawesome/free-solid-svg-icons';
 import Spinner from '@/components/elements/Spinner';
 import tw from 'twin.macro';
-import styled from 'styled-components/macro';
+import styled, { css } from 'styled-components/macro';
 import { breakpoint } from '@/theme';
 import Fade from '@/components/elements/Fade';
 
@@ -26,25 +24,27 @@ export const ModalMask = styled.div`
     background: rgba(0, 0, 0, 0.70);
 `;
 
-const ModalContainer = styled.div<{ alignTop?: boolean }>`
-    ${breakpoint('xs')`
-        max-width: 95%;
-    `};
-
-    ${breakpoint('md')`
-        max-width: 50%;
-    `};
+const ModalContainer = styled.div<{ alignTop?: boolean }>`    
+    max-width: 95%;
+    max-height: calc(100vh - 8rem);
+    ${breakpoint('md')`max-width: 75%`};
+    ${breakpoint('lg')`max-width: 50%`};
 
     ${tw`relative flex flex-col w-full m-auto`};
-    max-height: calc(100vh - 8rem);
-    // @todo max-w-screen-lg perhaps?
-    ${props => props.alignTop && 'margin-top: 10%'};
+    ${props => props.alignTop && css`
+        margin-top: 20%;
+        ${breakpoint('md')`margin-top: 10%`};
+    `};
     
     & > .close-icon {
         ${tw`absolute right-0 p-2 text-white cursor-pointer opacity-50 transition-all duration-150 ease-linear hover:opacity-100`};
-        top: -2rem;
+        top: -2.5rem;
         
         &:hover {${tw`transform rotate-90`}}
+        
+        & > svg {
+            ${tw`w-6 h-6`};
+        }
     }
 `;
 
@@ -80,6 +80,7 @@ const Modal: React.FC<ModalProps> = ({ visible, appear, dismissable, showSpinner
         >
             <ModalMask
                 onClick={e => e.stopPropagation()}
+                onContextMenu={e => e.stopPropagation()}
                 onMouseDown={e => {
                     if (isDismissable && closeOnBackground) {
                         e.stopPropagation();
@@ -92,7 +93,14 @@ const Modal: React.FC<ModalProps> = ({ visible, appear, dismissable, showSpinner
                 <ModalContainer alignTop={top}>
                     {isDismissable &&
                     <div className={'close-icon'} onClick={() => setRender(false)}>
-                        <FontAwesomeIcon icon={faTimes}/>
+                        <svg xmlns={'http://www.w3.org/2000/svg'} fill={'none'} viewBox={'0 0 24 24'} stroke={'currentColor'}>
+                            <path
+                                strokeLinecap={'round'}
+                                strokeLinejoin={'round'}
+                                strokeWidth={'2'}
+                                d={'M6 18L18 6M6 6l12 12'}
+                            />
+                        </svg>
                     </div>
                     }
                     {showSpinnerOverlay &&
diff --git a/resources/scripts/components/server/files/FileEditContainer.tsx b/resources/scripts/components/server/files/FileEditContainer.tsx
index 4b3d73a8..ef68d5c7 100644
--- a/resources/scripts/components/server/files/FileEditContainer.tsx
+++ b/resources/scripts/components/server/files/FileEditContainer.tsx
@@ -120,7 +120,7 @@ export default () => {
                 />
             </div>
             <div css={tw`flex justify-end mt-4`}>
-                <div css={tw`rounded bg-neutral-900 mr-4`}>
+                <div css={tw`flex-1 sm:flex-none rounded bg-neutral-900 mr-4`}>
                     <Select value={mode} onChange={e => setMode(e.currentTarget.value)}>
                         {Object.keys(modes).map(key => (
                             <option key={key} value={key}>{modes[key]}</option>
@@ -129,13 +129,13 @@ export default () => {
                 </div>
                 {action === 'edit' ?
                     <Can action={'file.update'}>
-                        <Button onClick={() => save()}>
+                        <Button css={tw`flex-1 sm:flex-none`} onClick={() => save()}>
                             Save Content
                         </Button>
                     </Can>
                     :
                     <Can action={'file.create'}>
-                        <Button onClick={() => setModalVisible(true)}>
+                        <Button css={tw`flex-1 sm:flex-none`} onClick={() => setModalVisible(true)}>
                             Create File
                         </Button>
                     </Can>
diff --git a/resources/scripts/components/server/files/FileManagerContainer.tsx b/resources/scripts/components/server/files/FileManagerContainer.tsx
index 444dc2fa..4c46edc1 100644
--- a/resources/scripts/components/server/files/FileManagerContainer.tsx
+++ b/resources/scripts/components/server/files/FileManagerContainer.tsx
@@ -6,7 +6,7 @@ import FileObjectRow from '@/components/server/files/FileObjectRow';
 import FileManagerBreadcrumbs from '@/components/server/files/FileManagerBreadcrumbs';
 import { FileObject } from '@/api/server/files/loadDirectory';
 import NewDirectoryButton from '@/components/server/files/NewDirectoryButton';
-import { Link, useLocation } from 'react-router-dom';
+import { NavLink, useLocation } from 'react-router-dom';
 import Can from '@/components/elements/Can';
 import ServerError from '@/components/screens/ServerError';
 import tw from 'twin.macro';
@@ -81,16 +81,17 @@ export default () => {
                             </CSSTransition>
                         }
                         <Can action={'file.create'}>
-                            <div css={tw`flex justify-end mt-8`}>
-                                <NewDirectoryButton/>
-                                <UploadButton/>
-                                <Button
-                                    // @ts-ignore
-                                    as={Link}
+                            <div css={tw`flex flex-wrap-reverse justify-end mt-4`}>
+                                <NewDirectoryButton css={tw`w-full flex-none mt-4 sm:mt-0 sm:w-auto sm:mr-4`}/>
+                                <UploadButton css={tw`flex-1 mr-4 sm:flex-none sm:mt-0`}/>
+                                <NavLink
                                     to={`/server/${id}/files/new${window.location.hash}`}
+                                    css={tw`flex-1 sm:flex-none sm:mt-0`}
                                 >
-                                    New File
-                                </Button>
+                                    <Button css={tw`w-full`}>
+                                        New File
+                                    </Button>
+                                </NavLink>
                             </div>
                         </Can>
                     </>
diff --git a/resources/scripts/components/server/files/NewDirectoryButton.tsx b/resources/scripts/components/server/files/NewDirectoryButton.tsx
index 8cb82dd9..14e3d2e5 100644
--- a/resources/scripts/components/server/files/NewDirectoryButton.tsx
+++ b/resources/scripts/components/server/files/NewDirectoryButton.tsx
@@ -11,6 +11,7 @@ import Button from '@/components/elements/Button';
 import { FileObject } from '@/api/server/files/loadDirectory';
 import useFlash from '@/plugins/useFlash';
 import useFileManagerSwr from '@/plugins/useFileManagerSwr';
+import { WithClassname } from '@/components/types';
 
 interface Values {
     directoryName: string;
@@ -34,7 +35,7 @@ const generateDirectoryData = (name: string): FileObject => ({
     isEditable: () => false,
 });
 
-export default () => {
+export default ({ className }: WithClassname) => {
     const uuid = ServerContext.useStoreState(state => state.server.data!.uuid);
     const { clearAndAddHttpError } = useFlash();
     const [ visible, setVisible ] = useState(false);
@@ -95,7 +96,7 @@ export default () => {
                     </Modal>
                 )}
             </Formik>
-            <Button isSecondary css={tw`mr-2`} onClick={() => setVisible(true)}>
+            <Button isSecondary onClick={() => setVisible(true)} className={className}>
                 Create Directory
             </Button>
         </>
diff --git a/resources/scripts/components/server/files/RenameFileModal.tsx b/resources/scripts/components/server/files/RenameFileModal.tsx
index b8108794..2e6f59f1 100644
--- a/resources/scripts/components/server/files/RenameFileModal.tsx
+++ b/resources/scripts/components/server/files/RenameFileModal.tsx
@@ -62,11 +62,11 @@ const RenameFileModal = ({ files, useMoveTerminology, ...props }: OwnProps) => {
                     <Form css={tw`m-0`}>
                         <div
                             css={[
-                                tw`flex`,
+                                tw`flex flex-wrap`,
                                 useMoveTerminology ? tw`items-center` : tw`items-end`,
                             ]}
                         >
-                            <div css={tw`flex-1 mr-6`}>
+                            <div css={tw`w-full sm:flex-1 sm:mr-4`}>
                                 <Field
                                     type={'string'}
                                     id={'file_name'}
@@ -79,8 +79,8 @@ const RenameFileModal = ({ files, useMoveTerminology, ...props }: OwnProps) => {
                                     autoFocus
                                 />
                             </div>
-                            <div>
-                                <Button>{useMoveTerminology ? 'Move' : 'Rename'}</Button>
+                            <div css={tw`w-full sm:w-auto mt-4 sm:mt-0`}>
+                                <Button css={tw`w-full`}>{useMoveTerminology ? 'Move' : 'Rename'}</Button>
                             </div>
                         </div>
                         {useMoveTerminology &&
diff --git a/resources/scripts/components/server/files/UploadButton.tsx b/resources/scripts/components/server/files/UploadButton.tsx
index f5889111..a2e218bb 100644
--- a/resources/scripts/components/server/files/UploadButton.tsx
+++ b/resources/scripts/components/server/files/UploadButton.tsx
@@ -11,13 +11,14 @@ import SpinnerOverlay from '@/components/elements/SpinnerOverlay';
 import useFlash from '@/plugins/useFlash';
 import useFileManagerSwr from '@/plugins/useFileManagerSwr';
 import { ServerContext } from '@/state/server';
+import { WithClassname } from '@/components/types';
 
 const InnerContainer = styled.div`
   max-width: 600px;
   ${tw`bg-black w-full border-4 border-primary-500 border-dashed rounded p-10 mx-10`}
 `;
 
-export default () => {
+export default ({ className }: WithClassname) => {
     const fileUploadInput = useRef<HTMLInputElement>(null);
     const uuid = ServerContext.useStoreState(state => state.server.data!.uuid);
     const [ visible, setVisible ] = useState(false);
@@ -114,7 +115,7 @@ export default () => {
                 }}
             />
             <Button
-                css={tw`mr-2`}
+                className={className}
                 onClick={() => {
                     fileUploadInput.current
                         ? fileUploadInput.current.click()
diff --git a/resources/scripts/components/types.ts b/resources/scripts/components/types.ts
new file mode 100644
index 00000000..73da750b
--- /dev/null
+++ b/resources/scripts/components/types.ts
@@ -0,0 +1,3 @@
+export interface WithClassname {
+    className?: string;
+}