diff --git a/src/client/app/common/views/components/error.vue b/src/client/app/common/views/components/error.vue
new file mode 100644
index 000000000..7381cf537
--- /dev/null
+++ b/src/client/app/common/views/components/error.vue
@@ -0,0 +1,19 @@
+
+
+
%fa:exclamation-triangle% %i18n:common.error.title%
+
$emit('retry')">%i18n:common.error.retry%
+
+
+
+
diff --git a/src/client/app/common/views/components/index.ts b/src/client/app/common/views/components/index.ts
index 54880e3c2..33216e459 100644
--- a/src/client/app/common/views/components/index.ts
+++ b/src/client/app/common/views/components/index.ts
@@ -1,5 +1,6 @@
import Vue from 'vue';
+import error from './error.vue';
import apiSettings from './api-settings.vue';
import driveSettings from './drive-settings.vue';
import profileEditor from './profile-editor.vue';
@@ -49,6 +50,7 @@ import uiInfo from './ui/info.vue';
import formButton from './ui/form/button.vue';
import formRadio from './ui/form/radio.vue';
+Vue.component('mk-error', error);
Vue.component('mk-api-settings', apiSettings);
Vue.component('mk-drive-settings', driveSettings);
Vue.component('mk-profile-editor', profileEditor);
diff --git a/src/client/app/desktop/views/components/notes.vue b/src/client/app/desktop/views/components/notes.vue
index 54299f933..37ce2c9dd 100644
--- a/src/client/app/desktop/views/components/notes.vue
+++ b/src/client/app/desktop/views/components/notes.vue
@@ -4,10 +4,7 @@
-
-
%fa:exclamation-triangle% %i18n:common.error.title%
-
%i18n:common.error.retry%
-
+
@@ -215,16 +212,6 @@ export default Vue.extend({
> *
transition transform .3s ease, opacity .3s ease
- > .error
- max-width 300px
- margin 0 auto
- padding 32px
- text-align center
- color var(--text)
-
- > p
- margin 0 0 8px 0
-
> .placeholder
padding 32px
opacity 0.3
diff --git a/src/client/app/desktop/views/pages/deck/deck.notes.vue b/src/client/app/desktop/views/pages/deck/deck.notes.vue
index 3231bd722..a5f20df5b 100644
--- a/src/client/app/desktop/views/pages/deck/deck.notes.vue
+++ b/src/client/app/desktop/views/pages/deck/deck.notes.vue
@@ -8,10 +8,7 @@
-
-
%fa:exclamation-triangle% %i18n:common.error.title%
-
%i18n:common.error.retry%
-
+
@@ -221,13 +218,6 @@ export default Vue.extend({
> *
transition transform .3s ease, opacity .3s ease
- > .error
- max-width 300px
- margin 0 auto
- padding 16px
- text-align center
- color var(--text)
-
> .placeholder
padding 16px
opacity 0.3