diff --git a/resources/assets/javascripts/bootstrap/sidebar.js b/resources/assets/javascripts/bootstrap/sidebar.js
deleted file mode 100644
index f308e6cf02ba2a7835d425ea4392b46378d0c3d5..0000000000000000000000000000000000000000
--- a/resources/assets/javascripts/bootstrap/sidebar.js
+++ /dev/null
@@ -1,15 +0,0 @@
-STUDIP.ready(() => {
-    // Apply sidebar magic only on admin/courses
-    if (
-        document.body.id === 'admin-courses-index'
-        && !document.documentElement.classList.contains('responsive-display')
-    ) {
-        STUDIP.Sidebar.observeFooter();
-        STUDIP.Sidebar.observeSidebar();
-
-        document.defaultView.addEventListener('resize', () => {
-            STUDIP.Sidebar.reset();
-        });
-    }
-
-});
diff --git a/resources/assets/javascripts/entry-base.js b/resources/assets/javascripts/entry-base.js
index 7ba4f45b6504dc7ec77ebaf251ac9244f55d05bc..70ef84e571f30a6a2266b64a4668d672489b483c 100644
--- a/resources/assets/javascripts/entry-base.js
+++ b/resources/assets/javascripts/entry-base.js
@@ -85,7 +85,6 @@ import "./bootstrap/contentmodules.js"
 import "./bootstrap/responsive-navigation.js"
 import "./bootstrap/treeview.js"
 import "./bootstrap/stock-images.js"
-import "./bootstrap/sidebar.js"
 
 import "./mvv_course_wizard.js"
 import "./mvv.js"
diff --git a/resources/assets/javascripts/lib/sidebar.js b/resources/assets/javascripts/lib/sidebar.js
index 13418761fdb3806319c274caf2f38ba17db71082..3cb1c05eba8f9177d108fbe3f4d9e5167d7b9cad 100644
--- a/resources/assets/javascripts/lib/sidebar.js
+++ b/resources/assets/javascripts/lib/sidebar.js
@@ -1,72 +1,20 @@
-const Sidebar = {
-
-    observeSidebar() {
-        const options = {
-            root: null,
-            rootMargin: '0px 0px 35px 0px',
-            threshold: 1
-        };
-
-        /**
-         * Observe if sidebar fits into viewport.
-         */
-        const sidebar = document.getElementById('sidebar');
-        if (sidebar) {
-            const sObserver = new IntersectionObserver(STUDIP.Sidebar.fits, options);
-            sObserver.observe(sidebar, options);
-        }
-    },
-
-    observeFooter() {
-        const options = {
-            root: null,
-            rootMargin: '0px',
-            threshold: 1
-        };
-
-        /**
-         * Observe if the footer is visible in viewport.
-         */
-        const fObserver = new IntersectionObserver(STUDIP.Sidebar.footerVisible, options);
-        fObserver.observe(document.getElementById('main-footer'), options);
+import Scroll from './scroll.js';
 
+const Sidebar = {
+    open () {
+        this.toggle(true);
     },
-
-    reset() {
-        const sidebar = document.getElementById('sidebar');
-        if (sidebar) {
-            sidebar.classList.remove('oversized', 'was-oversized', 'fixed');
-            sidebar.style.top = '';
-            STUDIP.Sidebar.observeSidebar();
-        }
+    close () {
+        this.toggle(false);
     },
+    toggle (visible = null) {
+        visible = visible ?? !$('#sidebar').hasClass('visible-sidebar');
 
-    fits(entries, observer) {
-        const sidebar = document.getElementById('sidebar');
-        if (sidebar) {
-            entries.forEach(entry => {
-                // Sidebar fits onto current page.
-                if (entry.isIntersecting) {
-                    sidebar.classList.remove('oversized');
-                } else {
-                    sidebar.classList.add('oversized', 'was-oversized');
-                }
-            });
-        }
-    },
+        // Hide navigation
+        $('#responsive-toggle').prop('checked', false);
+        $('#responsive-navigation').removeClass('visible');
 
-    footerVisible(entries, observer) {
-        const sidebar = document.getElementById('sidebar');
-        if (sidebar) {
-            entries.forEach(entry => {
-                // Footer is visible on current page.
-                if (entry.isIntersecting) {
-                    sidebar.classList.remove('no-footer');
-                } else {
-                    sidebar.classList.add('no-footer');
-                }
-            });
-        }
+        $('#sidebar').toggleClass('visible-sidebar', visible);
     }
 };
 
diff --git a/resources/assets/stylesheets/scss/sidebar.scss b/resources/assets/stylesheets/scss/sidebar.scss
index 49cdb4f0dbbcfe4551e78bab9c40d555f8f0f3d5..fd885af8a9cbb52d4657d19eef4afcf055d731f5 100644
--- a/resources/assets/stylesheets/scss/sidebar.scss
+++ b/resources/assets/stylesheets/scss/sidebar.scss
@@ -112,67 +112,6 @@
     }
 }
 
-html {
-    &:not(.responsive-display) {
-        #admin-courses-index {
-            #sidebar {
-                top: 50px;
-                transition: all var(--transition-duration) ease-in-out;
-
-                &.was-oversized {
-                    height: calc(100vh - 250px);
-                    overflow-y: auto;
-                    position: fixed;
-                    top: 155px;
-
-                    &.no-footer {
-                        height: calc(100vh - 200px);
-                    }
-                }
-
-                .widget-links {
-                    li.active {
-                        &::before,
-                        &::after {
-                            border: 0;
-                        }
-                    }
-                }
-            }
-
-            &.fixed {
-                #sidebar {
-                    height: calc(100vh - 125px);
-                    top: 35px;
-
-                    &.no-footer {
-                        height: calc(100vh - 100px);
-                    }
-                }
-            }
-
-            &.fullscreen-sidebar-shown {
-                #sidebar {
-                    top: 110px;
-
-                    &.was-oversized {
-                        height: calc(100vh - 200px);
-
-                        &.no-footer {
-                            height: calc(100vh - 150px);
-                        }
-
-                        &.fixed {
-                            top: 110px;
-                        }
-                    }
-                }
-            }
-
-        }
-    }
-}
-
 ul.widget-list {
     list-style: none;
     margin: 0;
diff --git a/resources/vue/components/responsive/ResponsiveNavigation.vue b/resources/vue/components/responsive/ResponsiveNavigation.vue
index 70e46a7311c97e6b910f168ba2d265e69de9c6ae..691ebb70d5833d12c773ecba92cd3ae24892cd7c 100644
--- a/resources/vue/components/responsive/ResponsiveNavigation.vue
+++ b/resources/vue/components/responsive/ResponsiveNavigation.vue
@@ -321,8 +321,7 @@ export default {
                 this.showMenu = false;
                 cache.remove('fullscreen-mode');
                 document.getElementById('responsive-toggle-focusmode').style.display = 'none';
-                document.body.classList.remove('fullscreen-sidebar-shown');
-                document.body.style.display = '';
+                document.body.style.display = null;
 
                 const siteTitle = document.getElementById('site-title');
                 if (siteTitle.dataset.originalTitle) {