From f10f08e209dcd3e27ba14107507b27eaa186aa4b Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 5 May 2026 18:51:57 +0300 Subject: [PATCH 1/5] improve spacings and order of quote/reply selector --- .../post_status_form/post_status_form.scss | 4 ++-- .../post_status_form/post_status_form.vue | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/post_status_form/post_status_form.scss b/src/components/post_status_form/post_status_form.scss index 0e2e982d0..7dcfc356d 100644 --- a/src/components/post_status_form/post_status_form.scss +++ b/src/components/post_status_form/post_status_form.scss @@ -90,10 +90,10 @@ } .reply-or-quote-selector { - flex-wrap: wrap; margin-bottom: 0.5em; - gap: 1em; + gap: 0 1em; display: flex; + flex-wrap: wrap-reverse; grid-template-columns: 1fr 1fr; } diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index a82ffef24..966d7b48d 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -112,6 +112,13 @@ role="radiogroup" class="reply-or-quote-selector" > + + {{ $t('post_status.quote_option') }} + {{ $t('post_status.reply_option') }} - - {{ $t('post_status.quote_option') }} -
Date: Tue, 5 May 2026 19:08:15 +0300 Subject: [PATCH 2/5] reduce opacity of action button separator for less clash with checkmark --- src/components/status_action_buttons/action_button.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/status_action_buttons/action_button.scss b/src/components/status_action_buttons/action_button.scss index 522494cee..7b7f8acda 100644 --- a/src/components/status_action_buttons/action_button.scss +++ b/src/components/status_action_buttons/action_button.scss @@ -31,6 +31,7 @@ align-self: stretch; width: 1px; background-color: var(--icon); + opacity: 0.75; margin: 0.5em 0; } @@ -84,7 +85,7 @@ &.-with-extra { .action-button-inner, .extra-button { - padding-left: 0.2em; + padding-left: 0.25em; padding-right: 0.25em; } } From 17b82be1a4d08d010ed060575e0b00ab335cdd57 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 5 May 2026 19:49:32 +0300 Subject: [PATCH 3/5] make danger buttons less obnoxious --- src/components/button.style.js | 2 +- src/services/theme_data/theme_data_3.service.js | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/button.style.js b/src/components/button.style.js index 3fb308b89..1644accc4 100644 --- a/src/components/button.style.js +++ b/src/components/button.style.js @@ -54,7 +54,7 @@ export default { { variant: 'danger', directives: { - background: '--cRed', + background: '$blend(--cRed 0.25 --inheritedBackground)', }, }, { diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js index 533972a13..7babbaf32 100644 --- a/src/services/theme_data/theme_data_3.service.js +++ b/src/services/theme_data/theme_data_3.service.js @@ -499,7 +499,12 @@ export const init = ({ }), ) const lastVariantRule = variantRules[variantRules.length - 1] - if (lastVariantRule) { + const lastVariantSelector = ruleToSelector( + lastVariantRule, + true, + ) + + if (lastVariantRule && lastVariantSelector !== selector) { inheritRule = lastVariantRule } else { const normalRules = ruleset.filter( From 5cb020430508aedf527eae9ba4195974197f99de Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 5 May 2026 20:16:16 +0300 Subject: [PATCH 4/5] add option to remove all drafts in one go --- src/components/drafts/drafts.js | 23 ++++++++++ src/components/drafts/drafts.vue | 72 ++++++++++++++++++++++---------- src/i18n/en.json | 2 + 3 files changed, 76 insertions(+), 21 deletions(-) diff --git a/src/components/drafts/drafts.js b/src/components/drafts/drafts.js index 8acde3c17..0fdd962fc 100644 --- a/src/components/drafts/drafts.js +++ b/src/components/drafts/drafts.js @@ -1,16 +1,39 @@ import Draft from 'src/components/draft/draft.vue' import List from 'src/components/list/list.vue' +import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue' const Drafts = { components: { Draft, List, + ConfirmModal, + }, + data() { + return { + showingConfirmDialog: false + } }, computed: { drafts() { return this.$store.getters.draftsArray }, }, + methods: { + abandonAll() { + this.showingConfirmDialog = true + }, + doAbandonAll() { + this.drafts.forEach((draft) => { + this.$store.dispatch('abandonDraft', { id: draft.id }).then(() => { + this.hideConfirmDialog() + }) + }) + this.hideConfirmDialog() + }, + hideConfirmDialog() { + this.showingConfirmDialog = false + }, + } } export default Drafts diff --git a/src/components/drafts/drafts.vue b/src/components/drafts/drafts.vue index 1cce255da..3a22969e1 100644 --- a/src/components/drafts/drafts.vue +++ b/src/components/drafts/drafts.vue @@ -13,36 +13,66 @@ > {{ $t('drafts.no_drafts') }}
- - - + + + + {{ $t('drafts.abandon_all_confirm') }} + + diff --git a/src/i18n/en.json b/src/i18n/en.json index 9eae42456..b15f4dbe9 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1884,6 +1884,7 @@ "drafts": { "drafts": "Drafts", "no_drafts": "You have no drafts", + "clean_drafts": "Remove all drafts", "empty": "(No content)", "poll_tooltip": "Draft contains a poll", "continue": "Continue composing", @@ -1893,6 +1894,7 @@ "abandon_confirm": "Do you really want to abandon this draft?", "abandon_confirm_accept_button": "Abandon", "abandon_confirm_cancel_button": "Keep", + "abandon_all_confirm": "Do you really want to abandon all drafts?", "replying": "Replying to {statusLink}", "editing": "Editing {statusLink}", "unavailable": "(unavailable)" From 99d9b572400fb071a1fc332b57bbd9f669ca445c Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 5 May 2026 21:05:56 +0300 Subject: [PATCH 5/5] fix wide logo overlap issues --- src/components/desktop_nav/desktop_nav.scss | 17 ++--- src/components/desktop_nav/desktop_nav.vue | 78 +++++++++++---------- src/components/search_bar/search_bar.vue | 10 +-- 3 files changed, 48 insertions(+), 57 deletions(-) diff --git a/src/components/desktop_nav/desktop_nav.scss b/src/components/desktop_nav/desktop_nav.scss index 35a57d9fe..9755ac590 100644 --- a/src/components/desktop_nav/desktop_nav.scss +++ b/src/components/desktop_nav/desktop_nav.scss @@ -9,7 +9,7 @@ .inner-nav { display: grid; grid-template-rows: var(--navbar-height); - grid-template-columns: 2fr auto 2fr; + grid-template-columns: minmax(5em, 1fr) auto minmax(5em, 1fr); grid-template-areas: "sitename logo actions"; box-sizing: border-box; padding: 0 1.2em; @@ -31,7 +31,7 @@ } &.-logoLeft .inner-nav { - grid-template-columns: auto 2fr 2fr; + grid-template-columns: auto minmax(5em, 1fr) minmax(5em, 1fr); grid-template-areas: "logo sitename actions"; } @@ -92,23 +92,18 @@ .actions { grid-area: actions; + justify-content: flex-end; + text-align: right; + z-index: 1; } .item { - flex: 1; line-height: var(--navbar-height); height: var(--navbar-height); - overflow: hidden; display: flex; - flex-wrap: wrap; - - &.right { - justify-content: flex-end; - text-align: right; - } } .spacer { - width: 1em; + min-width: 1em; } } diff --git a/src/components/desktop_nav/desktop_nav.vue b/src/components/desktop_nav/desktop_nav.vue index a75f8506d..8c7f589b6 100644 --- a/src/components/desktop_nav/desktop_nav.vue +++ b/src/components/desktop_nav/desktop_nav.vue @@ -32,48 +32,50 @@ >
- - - - - +
diff --git a/src/components/search_bar/search_bar.vue b/src/components/search_bar/search_bar.vue index d06b4e77d..9a9c971fb 100644 --- a/src/components/search_bar/search_bar.vue +++ b/src/components/search_bar/search_bar.vue @@ -51,8 +51,6 @@ class="cancel-icon fa-scale-110 fa-old-padding" /> - - @@ -61,18 +59,14 @@