From 8d507c2de7d2d3a97c6ccb0d29cdf04cdb927cd4 Mon Sep 17 00:00:00 2001 From: Freeplay <freeplay@duck.com> Date: Thu, 8 Jun 2023 14:16:00 -0400 Subject: [PATCH] allow scrolling from body again, keep scrollbar in widgets --- packages/client/src/init.ts | 1 - packages/client/src/style.scss | 2 -- packages/client/src/ui/universal.vue | 16 +++++++++------- packages/client/src/ui/universal.widgets.vue | 20 ++++++++++++-------- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/packages/client/src/init.ts b/packages/client/src/init.ts index 13d3d31b1..5d9ae12f3 100644 --- a/packages/client/src/init.ts +++ b/packages/client/src/init.ts @@ -219,7 +219,6 @@ import { getAccountFromId } from "@/scripts/get-account-from-id"; const rootEl = document.createElement("div"); rootEl.id = MISSKEY_MOUNT_DIV_ID; - rootEl.style.height = "100%"; document.body.appendChild(rootEl); return rootEl; })(); diff --git a/packages/client/src/style.scss b/packages/client/src/style.scss index 454751da3..b225c77ca 100644 --- a/packages/client/src/style.scss +++ b/packages/client/src/style.scss @@ -73,7 +73,6 @@ html { body::-webkit-scrollbar { width: 12px; height: 12px; - } body::-webkit-scrollbar-thumb { border-radius: 100px; @@ -111,7 +110,6 @@ html._themeChanging_ { html, body { margin: 0; padding: 0; - height: 100%; } .swiper-slide { diff --git a/packages/client/src/ui/universal.vue b/packages/client/src/ui/universal.vue index ff942c5f7..d376ad1fe 100644 --- a/packages/client/src/ui/universal.vue +++ b/packages/client/src/ui/universal.vue @@ -19,7 +19,7 @@ </main> </MkStickyContainer> - <div v-if="isDesktop" ref="widgetsEl" class="widgets"> + <div v-if="isDesktop" ref="widgetsEl" class="widgets-container"> <XWidgets /> </div> @@ -523,7 +523,7 @@ console.log(mainRouter.currentRoute.value.name); width: 750px; background: var(--panel); border-radius: 0; - overflow: auto; + overflow: clip; --margin: 12px; background: var(--bg); } @@ -543,19 +543,21 @@ console.log(mainRouter.currentRoute.value.name); > .contents { width: 100%; min-width: 0; - overflow: auto; $widgets-hide-threshold: 1090px; @media (max-width: $widgets-hide-threshold) { padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 96px); } } - > .widgets { - padding: 0 var(--margin); - width: 300px; + > .widgets-container { + margin-right: calc(var(--margin) / 2); + width: calc(300px + (var(--margin) * 1.5)); flex: 0 0 auto; box-sizing: content-box; - overflow: auto; + > :deep(.widgets) { + padding-left: var(--margin); + padding-right: calc(var(--margin) / 2); + } @media (max-width: $widgets-hide-threshold) { display: none; diff --git a/packages/client/src/ui/universal.widgets.vue b/packages/client/src/ui/universal.widgets.vue index d86d41ed8..deb5c27eb 100644 --- a/packages/client/src/ui/universal.widgets.vue +++ b/packages/client/src/ui/universal.widgets.vue @@ -1,5 +1,5 @@ <template> - <aside class="efzpzdvf" :aria-label="i18n.ts._deck._columns.widgets"> + <aside class="widgets" :aria-label="i18n.ts._deck._columns.widgets"> <MkAd class="a" :prefer="['widget']" /> <XWidgets :edit="editMode" @@ -83,20 +83,24 @@ function updateWidgets(widgets) { </script> <style lang="scss" scoped> -.efzpzdvf { +.widgets { position: sticky; + top: var(--stickyTop, 0px); height: min-content; min-height: 100vh; - padding: var(--margin) 0; - box-sizing: border-box; + max-height: 100vh; + box-sizing: content-box; + overflow: hidden auto; + &:not(:hover):not(:focus-within)::-webkit-scrollbar { + width: 0; + } > * { margin: var(--margin) 0; width: 300px; - - &:first-child { - margin-top: 0; - } + } + > :first-child { + margin-top: calc(var(--margin) * 2); } > .add {