diff --git a/app/assets/styles/main.scss b/app/assets/styles/main.scss index c014f50..5ccf224 100644 --- a/app/assets/styles/main.scss +++ b/app/assets/styles/main.scss @@ -1,5 +1,6 @@ @use "utils.scss"; @use "overrides-components.scss"; +@use "scrollbar.scss"; :root { font-size: 15px; diff --git a/app/assets/styles/scrollbar.scss b/app/assets/styles/scrollbar.scss new file mode 100644 index 0000000..f5bec72 --- /dev/null +++ b/app/assets/styles/scrollbar.scss @@ -0,0 +1,14 @@ +// Fix: Scrollbar causing layout shift +* { + scrollbar-width: thin; + scrollbar-color: #888 transparent; +} + +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: transparent; +} diff --git a/app/components/AppLoading.vue b/app/components/AppLoading.vue deleted file mode 100644 index b9fcc80..0000000 --- a/app/components/AppLoading.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/app/components/Modal.vue b/app/components/Modal.vue index c247016..4d66d9e 100644 --- a/app/components/Modal.vue +++ b/app/components/Modal.vue @@ -141,13 +141,18 @@ function closeOnEsc(e) { onMounted(() => { window.addEventListener("keydown", closeOnEsc); + const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + document.documentElement.style.cssText += ` ;padding-right: ${scrollbarWidth}px;`; document.documentElement.classList.add("is-clipped"); }); onUnmounted(() => { window.removeEventListener("keydown", closeOnEsc); const remaining = document.getElementsByClassName("modal-background").length; - if (remaining === 0) document.documentElement.classList.remove("is-clipped"); + if (remaining === 0) { + document.documentElement.classList.remove("is-clipped"); + document.documentElement.style.removeProperty("padding-right"); + } }); const loaded = ref(false); diff --git a/app/pages/index.vue b/app/pages/index.vue index 43e6710..f28ddff 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,8 +1,5 @@