From c95da270191293b8171f4f1197ef609905a9b911 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 26 Dec 2022 08:40:13 +0900 Subject: enhance(client): use container queries if available to improve perf --- packages/client/src/components/MkContainer.vue | 11 ++++ .../client/src/components/MkDateSeparatedList.vue | 2 + packages/client/src/components/MkNote.vue | 18 ++++-- packages/client/src/components/MkNoteDetailed.vue | 68 ++++++++++++++++++++++ packages/client/src/components/MkNotePreview.vue | 20 +++++++ packages/client/src/components/MkNoteSimple.vue | 20 +++++++ packages/client/src/components/MkNoteSub.vue | 10 ++++ packages/client/src/components/MkNotification.vue | 14 +++++ packages/client/src/components/MkPostForm.vue | 57 ++++++++++++++++++ packages/client/src/components/MkUrlPreview.vue | 67 +++++++++++++++++++++ packages/client/src/components/MkWidgets.vue | 2 + packages/client/src/components/global/MkSpacer.vue | 1 + 12 files changed, 286 insertions(+), 4 deletions(-) (limited to 'packages/client/src/components') diff --git a/packages/client/src/components/MkContainer.vue b/packages/client/src/components/MkContainer.vue index c097946c19..6d4d5be2bc 100644 --- a/packages/client/src/components/MkContainer.vue +++ b/packages/client/src/components/MkContainer.vue @@ -246,6 +246,17 @@ export default defineComponent({ } } +@container (max-width: 380px) { + .ukygtjoj { + > header { + > .title { + padding: 8px 10px; + font-size: 0.9em; + } + } + } +} + ._forceContainerFull_ .ukygtjoj { > header { > .title { diff --git a/packages/client/src/components/MkDateSeparatedList.vue b/packages/client/src/components/MkDateSeparatedList.vue index 68903f3526..1f88bdf137 100644 --- a/packages/client/src/components/MkDateSeparatedList.vue +++ b/packages/client/src/components/MkDateSeparatedList.vue @@ -108,6 +108,8 @@ export default defineComponent({ diff --git a/packages/client/src/components/MkNoteSimple.vue b/packages/client/src/components/MkNoteSimple.vue index 1bbbe0e1a6..96d29831d2 100644 --- a/packages/client/src/components/MkNoteSimple.vue +++ b/packages/client/src/components/MkNoteSimple.vue @@ -96,4 +96,24 @@ const showContent = $ref(false); } } } + +@container (min-width: 350px) { + .yohlumlk { + > .avatar { + margin: 0 10px 0 0; + width: 44px; + height: 44px; + } + } +} + +@container (min-width: 500px) { + .yohlumlk { + > .avatar { + margin: 0 12px 0 0; + width: 48px; + height: 48px; + } + } +} diff --git a/packages/client/src/components/MkNoteSub.vue b/packages/client/src/components/MkNoteSub.vue index 95b6b71be9..d03ce7c434 100644 --- a/packages/client/src/components/MkNoteSub.vue +++ b/packages/client/src/components/MkNoteSub.vue @@ -127,4 +127,14 @@ if (props.detail) { padding: 10px 0 0 16px; } } + +@container (max-width: 450px) { + .wrpstxzv { + padding: 14px 16px; + + &.children { + padding: 10px 0 0 8px; + } + } +} diff --git a/packages/client/src/components/MkNotification.vue b/packages/client/src/components/MkNotification.vue index 82965212f3..8b8d3f452d 100644 --- a/packages/client/src/components/MkNotification.vue +++ b/packages/client/src/components/MkNotification.vue @@ -306,4 +306,18 @@ useTooltip(reactionRef, (showing) => { } } } + +@container (max-width: 600px) { + .qglefbjs { + padding: 16px; + font-size: 0.9em; + } +} + +@container (max-width: 500px) { + .qglefbjs { + padding: 12px; + font-size: 0.85em; + } +} diff --git a/packages/client/src/components/MkPostForm.vue b/packages/client/src/components/MkPostForm.vue index eb302ccc96..f79e5a32cd 100644 --- a/packages/client/src/components/MkPostForm.vue +++ b/packages/client/src/components/MkPostForm.vue @@ -990,4 +990,61 @@ onMounted(() => { } } } + +@container (max-width: 500px) { + .gafaadew { + > header { + height: 50px; + + > .cancel { + width: 50px; + line-height: 50px; + } + + > .right { + > .text-count { + line-height: 50px; + } + + > .submit { + margin: 8px; + } + } + } + + > .form { + > .to-specified { + padding: 6px 16px; + } + + > .cw, + > .hashtags, + > .text { + padding: 0 16px; + } + + > .text { + min-height: 80px; + } + + > footer { + padding: 0 8px 8px 8px; + } + } + } +} + +@container (max-width: 310px) { + .gafaadew { + > .form { + > footer { + > button { + font-size: 14px; + width: 44px; + height: 44px; + } + } + } + } +} diff --git a/packages/client/src/components/MkUrlPreview.vue b/packages/client/src/components/MkUrlPreview.vue index ac03559bea..b2d16ddb01 100644 --- a/packages/client/src/components/MkUrlPreview.vue +++ b/packages/client/src/components/MkUrlPreview.vue @@ -313,4 +313,71 @@ onUnmounted(() => { } } } + +@container (max-width: 400px) { + .mk-url-preview { + > .link { + font-size: 12px; + + > .thumbnail { + height: 80px; + } + + > article { + padding: 12px; + } + } + } +} + +@container (max-width: 350px) { + .mk-url-preview { + > .link { + font-size: 10px; + + > .thumbnail { + height: 70px; + } + + > article { + padding: 8px; + + > header { + margin-bottom: 4px; + } + + > footer { + margin-top: 4px; + + > img { + width: 12px; + height: 12px; + } + } + } + + &.compact { + > .thumbnail { + position: absolute; + width: 56px; + height: 100%; + } + + > article { + left: 56px; + width: calc(100% - 56px); + padding: 4px; + + > header { + margin-bottom: 2px; + } + + > footer { + margin-top: 2px; + } + } + } + } + } +} diff --git a/packages/client/src/components/MkWidgets.vue b/packages/client/src/components/MkWidgets.vue index a0c77f91a9..fff89117ce 100644 --- a/packages/client/src/components/MkWidgets.vue +++ b/packages/client/src/components/MkWidgets.vue @@ -111,6 +111,8 @@ function onContextmenu(widget: Widget, ev: MouseEvent) { -- cgit v1.2.3-freya