diff --git a/dashboard/src/Index.vue b/dashboard/src/Index.vue
index b511cb1d2..ec98c4921 100644
--- a/dashboard/src/Index.vue
+++ b/dashboard/src/Index.vue
@@ -1,5 +1,9 @@
-
@@ -199,77 +134,6 @@ onMounted(() => {
scrollbar-color: var(--color-neutral-border) transparent;
}
-.sidebar-item {
- display: block;
- color: var(--pankow-text-color);
- border-radius: 3px;
- padding: 10px 15px;
- white-space: nowrap;
- cursor: pointer;
- transition: all 180ms ease-out;
-}
-
-.sidebar-item i {
- opacity: 0.5;
- margin-right: 10px;
-}
-
-.sidebar-item.active {
- color: var(--pankow-color-primary);
- text-decoration: none;
- font-weight: bold;
-}
-
-.sidebar-item:hover {
- background-color: #e9ecef;
- text-decoration: none;
-}
-
-@media (prefers-color-scheme: dark) {
- .sidebar-item:hover {
- background-color: var(--card-background);
- }
-}
-
-.sidebar-item.active i ,
-.sidebar-item:hover i {
- opacity: 1;
-}
-
-.sidebar-item-group {
- padding-left: 20px;
- height: auto;
- overflow: hidden;
- /* we need height to auto so we animate max-height. needs to be bigger than we need */
- max-height: 300px;
-}
-
-.sidebar-item-group-animation-enter-active,
-.sidebar-item-group-animation-leave-active {
- transition: all 0.2s linear;
-}
-
-.sidebar-item-group-animation-leave-to,
-.sidebar-item-group-animation-enter-from {
- transform: translateX(-100px);
- opacity: 0;
- max-height: 0;
-}
-
-.slide-fade-enter-active {
- transition: all 0.1s ease-out;
-}
-
-.slide-fade-leave-active {
- transition: all 0.1s ease-out;
-}
-
-.slide-fade-enter-from,
-.slide-fade-leave-to {
- transform: translateX(20px);
- opacity: 0;
-}
-
@media (max-width: 576px) {
.sidebar {
position: fixed;
diff --git a/dashboard/src/components/SideBarItem.vue b/dashboard/src/components/SideBarItem.vue
new file mode 100644
index 000000000..2c2d42267
--- /dev/null
+++ b/dashboard/src/components/SideBarItem.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file