Date: Sun, 19 Jul 2026 11:24:51 +0000
Subject: [PATCH 05/12] Use a different approach for the overflow gradient
because CSS `mask-image` was cutting of dragged cards.
Signed-off-by: Theo <36564257+theoholl@users.noreply.github.com>
---
src/components/board/Stack.vue | 38 ++++++++++++++++++++--------------
1 file changed, 23 insertions(+), 15 deletions(-)
diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue
index f9a2cb38a0..1068a33552 100644
--- a/src/components/board/Stack.vue
+++ b/src/components/board/Stack.vue
@@ -522,21 +522,16 @@ export default {
}
&.stack--add-card-at-top {
- .dnd-container {
- -webkit-mask-image: linear-gradient(
- 180deg,
- transparent 0,
- black $stack-gap,
- black calc(100% - #{$stack-gap}),
- transparent 100%
- );
- mask-image: linear-gradient(
- 180deg,
- transparent 0,
- black $stack-gap,
- black calc(100% - #{$stack-gap}),
- transparent 100%
- );
+ &:after {
+ content: '';
+ display: block;
+ position: absolute;
+ width: 100%;
+ height: $stack-gap;
+ bottom: 0;
+ z-index: 99;
+ pointer-events: none;
+ background-image: linear-gradient(0deg, var(--color-main-background) 0%, transparent 100%);
}
}
@@ -661,6 +656,19 @@ export default {
&--top {
padding-top: $stack-gap;
+
+ &:after {
+ content: '';
+ display: block;
+ position: absolute;
+ width: 100%;
+ height: $stack-gap;
+ bottom: 0;
+ z-index: 99;
+ pointer-events: none;
+ background-image: linear-gradient(180deg, var(--color-main-background) 0%, transparent 100%);
+ transform: translateY(100%);
+ }
}
&--bottom {
From 60aa2d00e7939f0955dda40bb62c8e7a2ff1cc35 Mon Sep 17 00:00:00 2001
From: Theo <36564257+theoholl@users.noreply.github.com>
Date: Sun, 19 Jul 2026 11:29:11 +0000
Subject: [PATCH 06/12] Forms to add a new card can be close by pressing enter
key
Signed-off-by: Theo <36564257+theoholl@users.noreply.github.com>
---
src/components/board/Stack.vue | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue
index 1068a33552..099f516ee1 100644
--- a/src/components/board/Stack.vue
+++ b/src/components/board/Stack.vue
@@ -125,7 +125,7 @@
required
pattern=".*\S+.*"
@focus="onCreateCardFocus"
- @keydown.esc="stopCardCreation">
+ @keydown.esc.stop="closeCardCreation">
+ @keydown.esc.stop="closeCardCreation">
Date: Sun, 19 Jul 2026 13:37:22 +0000
Subject: [PATCH 07/12] Improve position of 'Add card' button for empty stacks
when setting is set to 'add to bottom'
Signed-off-by: Theo <36564257+theoholl@users.noreply.github.com>
---
src/components/board/Stack.vue | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue
index 43f9da64b9..2e69e75de3 100644
--- a/src/components/board/Stack.vue
+++ b/src/components/board/Stack.vue
@@ -9,6 +9,7 @@
:class="{
'stack--done-column': isDoneColumn,
'stack--bottom-add-inline': bottomAddCardInline,
+ 'stack--bottom-add-empty': isEmptyBottomAddCardStack,
'stack--add-card-at-top': canAddCardAtTop,
}"
:data-cy-stack="stack.title">
@@ -289,6 +290,12 @@ export default {
canAddCardAtBottom() {
return this.canEdit && !this.showArchived && !this.isArchived && !this.stackAddCardAtTop
},
+ isEmptyStack() {
+ return this.cardsByStack.length === 0
+ },
+ isEmptyBottomAddCardStack() {
+ return this.canAddCardAtBottom && this.isEmptyStack
+ },
},
watch: {
cardsByStack() {
@@ -528,6 +535,21 @@ export default {
}
}
+ &.stack--bottom-add-empty {
+ .dnd-container {
+ order: 2;
+ flex-grow: 0;
+ padding-block: 0;
+ }
+
+ .stack__card-add--bottom {
+ order: 1;
+ padding-top: $stack-gap;
+ padding-bottom: 0;
+ position: relative;
+ }
+ }
+
&.stack--add-card-at-top {
&:after {
content: '';
From 89888310d4ed7a72cc3b01981e39182fc7c06c9b Mon Sep 17 00:00:00 2001
From: Theo <36564257+theoholl@users.noreply.github.com>
Date: Sun, 19 Jul 2026 13:53:39 +0000
Subject: [PATCH 08/12] Keep the default setting adding cards to the bottom of
a list
Signed-off-by: Theo <36564257+theoholl@users.noreply.github.com>
---
lib/Service/ConfigService.php | 2 +-
src/components/DeckAppSettings.vue | 2 +-
src/components/board/Stack.vue | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/Service/ConfigService.php b/lib/Service/ConfigService.php
index 0b9dde777b..6cf4a20cdd 100644
--- a/lib/Service/ConfigService.php
+++ b/lib/Service/ConfigService.php
@@ -146,7 +146,7 @@ public function isStackAddCardAtTopEnabled(): bool {
return false;
}
- return (bool)$this->config->getUserValue($userId, Application::APP_ID, 'stackAddCardAtTop', true);
+ return (bool)$this->config->getUserValue($userId, Application::APP_ID, 'stackAddCardAtTop', false);
}
public function ensureFederationEnabled() {
diff --git a/src/components/DeckAppSettings.vue b/src/components/DeckAppSettings.vue
index 8045bcc2df..4d095b3448 100644
--- a/src/components/DeckAppSettings.vue
+++ b/src/components/DeckAppSettings.vue
@@ -123,7 +123,7 @@ export default {
},
stackAddCardAtTop: {
get() {
- return this.$store.getters.config('stackAddCardAtTop') !== false
+ return this.$store.getters.config('stackAddCardAtTop') === true
},
set(newValue) {
this.$store.dispatch('setConfig', { stackAddCardAtTop: newValue })
diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue
index 2e69e75de3..a1ab65cf2c 100644
--- a/src/components/board/Stack.vue
+++ b/src/components/board/Stack.vue
@@ -282,7 +282,7 @@ export default {
},
},
stackAddCardAtTop() {
- return this.$store.getters.config('stackAddCardAtTop') !== false
+ return this.$store.getters.config('stackAddCardAtTop') === true
},
canAddCardAtTop() {
return this.canEdit && !this.showArchived && !this.isArchived && this.stackAddCardAtTop
From 5a12a1a14e591f2895c4ba928d596418d9634792 Mon Sep 17 00:00:00 2001
From: Theo <36564257+theoholl@users.noreply.github.com>
Date: Sun, 19 Jul 2026 15:57:39 +0000
Subject: [PATCH 09/12] Use a real + icon instead of using text for 'Add card'
button
Signed-off-by: Theo <36564257+theoholl@users.noreply.github.com>
---
src/components/board/Stack.vue | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue
index a1ab65cf2c..3a5851ce1e 100644
--- a/src/components/board/Stack.vue
+++ b/src/components/board/Stack.vue
@@ -110,7 +110,10 @@
type="tertiary"
:wide="true"
@click.stop="showAddCard=true">
- {{ t('deck', '+ Add card') }}
+
+
+
+ {{ t('deck', 'Add card') }}