diff --git a/src/client/app/common/views/components/frac.vue b/src/client/app/common/views/components/frac.vue
new file mode 100644
index 000000000..1840bd28f
--- /dev/null
+++ b/src/client/app/common/views/components/frac.vue
@@ -0,0 +1,49 @@
+
+{{ pad }}{{ value }} / {{ total }}
+
+
+
+
+
diff --git a/src/client/app/common/views/components/index.ts b/src/client/app/common/views/components/index.ts
index d5392fb8c..4253118ba 100644
--- a/src/client/app/common/views/components/index.ts
+++ b/src/client/app/common/views/components/index.ts
@@ -33,6 +33,7 @@ import fileTypeIcon from './file-type-icon.vue';
import emoji from './emoji.vue';
import welcomeTimeline from './welcome-timeline.vue';
import userList from './user-list.vue';
+import frac from './frac.vue';
import uiInput from './ui/input.vue';
import uiButton from './ui/button.vue';
import uiHorizonGroup from './ui/horizon-group.vue';
@@ -82,6 +83,7 @@ Vue.component('mk-file-type-icon', fileTypeIcon);
Vue.component('mk-emoji', emoji);
Vue.component('mk-welcome-timeline', welcomeTimeline);
Vue.component('mk-user-list', userList);
+Vue.component('mk-frac', frac);
Vue.component('ui-input', uiInput);
Vue.component('ui-button', uiButton);
Vue.component('ui-horizon-group', uiHorizonGroup);