From 488a448f96a5aa91859d8bf722f2e564dde480a6 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 19 May 2026 16:39:46 +0300 Subject: [PATCH 1/3] small fixes to post form --- src/App.scss | 2 ++ src/components/post_status_form/post_status_form.scss | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/App.scss b/src/App.scss index f556a7d9d..6604d97f1 100644 --- a/src/App.scss +++ b/src/App.scss @@ -815,9 +815,11 @@ option { align-items: baseline; line-height: 1.5; + p, span { display: block; flex: 1 1 auto; + margin: 0; } .dismiss { diff --git a/src/components/post_status_form/post_status_form.scss b/src/components/post_status_form/post_status_form.scss index fb1de718c..3d78884fe 100644 --- a/src/components/post_status_form/post_status_form.scss +++ b/src/components/post_status_form/post_status_form.scss @@ -53,6 +53,7 @@ .preview-heading { display: flex; flex-wrap: wrap; + margin: 0 0.5em; } .preview-toggle { @@ -106,7 +107,6 @@ display: flex; justify-content: space-between; align-items: baseline; - margin-left: -0.5em; } .visibility-notice { From be96fd70b2bf07acb262b748d5996c6280eb8183 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 19 May 2026 16:40:20 +0300 Subject: [PATCH 2/3] changelog --- changelog.d/minor.fix | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.d/minor.fix b/changelog.d/minor.fix index 69d7b11fe..420836364 100644 --- a/changelog.d/minor.fix +++ b/changelog.d/minor.fix @@ -9,3 +9,4 @@ second language input not having header post form's bottom left buttons not showing their toggled state some font overrides not working popovers opening outside of window's boundaries +occasional blank page when showing new posts From b51d0baa66dbf0bffdaab03e04a53505d16f81d8 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 19 May 2026 17:45:58 +0300 Subject: [PATCH 3/3] image description improvements --- src/App.scss | 4 +- src/components/attachment/attachment.js | 6 +-- src/components/attachment/attachment.scss | 24 ++++++++++- src/components/attachment/attachment.vue | 44 ++++++++++--------- src/components/gallery/gallery.vue | 2 +- src/components/media_modal/media_modal.vue | 49 +++++++++++++++++----- src/i18n/en.json | 1 + 7 files changed, 88 insertions(+), 42 deletions(-) diff --git a/src/App.scss b/src/App.scss index 6604d97f1..41fea782b 100644 --- a/src/App.scss +++ b/src/App.scss @@ -50,7 +50,7 @@ body { // have a cursor/pointer to operate them @media (any-pointer: fine) { * { - scrollbar-color: var(--fg) transparent; + scrollbar-color: var(--text) transparent; &::-webkit-scrollbar { background: transparent; @@ -130,7 +130,7 @@ body { } // Body should have background to scrollbar otherwise it will use white (body color?) html { - scrollbar-color: var(--fg) var(--wallpaper); + scrollbar-color: var(--text) var(--wallpaper); background: var(--wallpaper); } } diff --git a/src/components/attachment/attachment.js b/src/components/attachment/attachment.js index fbe77a687..57a969c2a 100644 --- a/src/components/attachment/attachment.js +++ b/src/components/attachment/attachment.js @@ -4,6 +4,7 @@ import nsfwImage from '../../assets/nsfw.png' import Flash from '../flash/flash.vue' import StillImage from '../still-image/still-image.vue' import VideoAttachment from '../video_attachment/video_attachment.vue' +import Popover from '../popover/popover.vue' import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' @@ -65,13 +66,13 @@ const Attachment = { modalOpen: false, showHidden: false, flashLoaded: false, - showDescription: false, } }, components: { Flash, StillImage, VideoAttachment, + Popover, }, computed: { classNames() { @@ -180,9 +181,6 @@ const Attachment = { setFlashLoaded(event) { this.flashLoaded = event }, - toggleDescription() { - this.showDescription = !this.showDescription - }, toggleHidden(event) { if ( this.mergedConfig.useOneClickNsfw && diff --git a/src/components/attachment/attachment.scss b/src/components/attachment/attachment.scss index 97515eb32..0a1f9f5ee 100644 --- a/src/components/attachment/attachment.scss +++ b/src/components/attachment/attachment.scss @@ -134,7 +134,7 @@ width: 2em; height: 2em; margin-left: 0.5em; - font-size: 1.25em; + font-size: 1em; } } @@ -265,3 +265,25 @@ } } } + +.description-popover { + padding: 1em; + width: 50ch; + overflow: hidden; + + summary { + display: inline-block; + margin-bottom: 0.5em; + font-weight: bold; + pointer-events: none; + } + + span { + display: block; + overflow-y: auto; + max-height: 10.5em; + text-wrap: pretty; + line-height: 1.5; + white-space: pre-wrap; + } +} diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue index 0db86ff8a..ca5f395a6 100644 --- a/src/components/attachment/attachment.vue +++ b/src/components/attachment/attachment.vue @@ -30,21 +30,16 @@
- -

- {{ localDescription }} -

+ />
- + trigger="click" + popover-class="popover popover-default description-popover" + :trigger-attrs="{ 'class': 'button-default attachment-button -transparent', 'title': $t('status.attachment_description') }" + > + + +
- -

- {{ localDescription }} -

+ />
diff --git a/src/components/gallery/gallery.vue b/src/components/gallery/gallery.vue index eb1054df6..11637f3c2 100644 --- a/src/components/gallery/gallery.vue +++ b/src/components/gallery/gallery.vue @@ -129,7 +129,7 @@ .gallery-item { margin: 0; - height: 15em; + height: 20em; } } } diff --git a/src/components/media_modal/media_modal.vue b/src/components/media_modal/media_modal.vue index 93587210f..0011e70a5 100644 --- a/src/components/media_modal/media_modal.vue +++ b/src/components/media_modal/media_modal.vue @@ -89,13 +89,16 @@ /> - - {{ description }} - + {{ $t('status.attachment_description') }} + {{ description }} + {{ $t('media_modal.counter', { current: currentIndex + 1, total: media.length }, currentIndex + 1) }} @@ -159,19 +162,43 @@ $modal-view-button-icon-margin: 0.5em; .counter { /* Hardcoded since background is also hardcoded */ color: white; - margin-top: 1em; - text-shadow: 0 0 10px black, 0 0 10px black; - padding: 0.2em 2em; + text-shadow: 0 0 1em black, 0 0 1em black, 0 0 1em black; + margin: 1em 2em; + overflow: hidden; + + } + + .description + .counter { + margin-top: 0; } .description { flex: 0 0 auto; - overflow-y: auto; - min-height: 1em; - max-width: 35.8em; + max-width: 80ch; max-height: 9.5em; - overflow-wrap: break-word; - text-wrap: pretty; + + summary { + margin-bottom: 0.5em; + display: inline-block; + font-weight: bold; + pointer-events: none; + } + + span { + display: block; + overflow-y: auto; + min-height: 1em; + text-wrap: pretty; + max-height: 10.5em; + white-space: pre-wrap; + line-height: 1.5; + scrollbar-color: white transparent; + + &::-webkit-scrollbar-button, + &::-webkit-scrollbar-thumb { + background-color: white; + } + } } .modal-image { diff --git a/src/i18n/en.json b/src/i18n/en.json index 9b5a7439d..510250f73 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1602,6 +1602,7 @@ "show_all_attachments": "Show all attachments", "show_attachment_in_modal": "Show in media modal", "show_attachment_description": "Preview description (open attachment for full description)", + "attachment_description": "Attachment description", "hide_attachment": "Hide attachment", "remove_attachment": "Remove attachment", "attachment_stop_flash": "Stop Flash player",