diff --git a/src/components/ConnectionStatus.vue b/src/components/ConnectionStatus.vue
new file mode 100644
index 00000000..62a8c7ed
--- /dev/null
+++ b/src/components/ConnectionStatus.vue
@@ -0,0 +1,109 @@
+
+ .connection-status(:class='status.css')
+ loading-bar(:step='waitingPercentage')
+ .line-item
+ waiting-dots.line-item(v-if='!connected && isWaiting')
+ .message(v-else) {{status.msg}}
+ .time(v-if='showTime') {{status.time | m-seconds-ago}}
+
+
+
diff --git a/src/config/types.js b/src/config/types.js
index bdc781c9..503822bb 100644
--- a/src/config/types.js
+++ b/src/config/types.js
@@ -49,3 +49,10 @@ export const SORT = 'sort'
export const Q = 'q'
export const SEPARATOR = '__'
+
+export const CONNECTION_STATUS = {
+ CONNECTED: 'Connected',
+ WAITING: 'Waiting for connection',
+ LOST: 'Connection lost',
+ UNABLE: 'Cannot connect to backend'
+}
diff --git a/src/lib/styl/classes.styl b/src/lib/styl/classes.styl
index d5a410aa..49d190da 100644
--- a/src/lib/styl/classes.styl
+++ b/src/lib/styl/classes.styl
@@ -99,4 +99,8 @@ ul.inline
margin-top 0
.section + .subtitle
- margin-top 2em
\ No newline at end of file
+ margin-top 2em
+
+.line-item
+ margin .5em 1em
+ flex 1 0
\ No newline at end of file