diff --git a/src/components/SongBadge.vue b/src/components/SongBadge.vue
new file mode 100644
index 0000000..3202754
--- /dev/null
+++ b/src/components/SongBadge.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ {{ dot ? '' : count }}
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SongModal.vue b/src/components/SongModal.vue
new file mode 100644
index 0000000..dcb3dc0
--- /dev/null
+++ b/src/components/SongModal.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SongProgress.vue b/src/components/SongProgress.vue
new file mode 100644
index 0000000..4430aa9
--- /dev/null
+++ b/src/components/SongProgress.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ {{ percent }}%
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SongTable.vue b/src/components/SongTable.vue
new file mode 100644
index 0000000..40bd014
--- /dev/null
+++ b/src/components/SongTable.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ |
+ {{ c.title }}
+ |
+
+
+
+
+ |
+ {{ row[c.key] }}
+ |
+
+
+
+
+
+
\ No newline at end of file