diff --git a/src/components/home/navigation.vue b/src/components/home/navigation.vue index 4c700b1dc0..55cf27ab50 100644 --- a/src/components/home/navigation.vue +++ b/src/components/home/navigation.vue @@ -221,7 +221,7 @@ function updateActiveLists(namespace: INamespace, activeLists: IList[]) { // This is a bit hacky: since we do have to filter out the archived items from the list // for vue draggable updating it is not as simple as replacing it. // To work around this, we merge the active lists with the archived ones. Doing so breaks the order - // because now all archived lists are sorted after the active ones. This is fine because they are sorted + // because now all archived lists are sorted after the active ones. This is fine because they are sorted // later when showing them anyway, and it makes the merging happening here a lot easier. const lists = [ ...activeLists, @@ -246,8 +246,8 @@ async function saveListPosition(e: SortableEvent) { // If the list was dragged to the last position, Safari will report e.newIndex as the size of the listsActive // array instead of using the position. Because the index is wrong in that case, dragging the list will fail. // To work around that we're explicitly checking that case here and decrease the index. - const newIndex = e.newIndex === listsActive.length ? e.newIndex - 1 : e.newIndex - + const newIndex = e.newIndex === listsActive.length ? e.newIndex - 1 : e.newIndex + const list = listsActive[newIndex] const listBefore = listsActive[newIndex - 1] ?? null const listAfter = listsActive[newIndex + 1] ?? null @@ -342,13 +342,20 @@ $vikunja-nav-selected-width: 0.4rem; } .menu-list-dropdown { - opacity: 0; + opacity: 1; transition: $transition; } - &:hover .menu-list-dropdown { - opacity: 1; + @media(hover: hover) and (pointer: fine) { + .menu-list-dropdown { + opacity: 0; + } + + &:hover .menu-list-dropdown { + opacity: 1; + } } + } .menu-item-icon { @@ -418,7 +425,6 @@ $vikunja-nav-selected-width: 0.4rem; opacity: 1; } } - &:not(.dragging-disabled) .handle { cursor: grab; } @@ -427,7 +433,7 @@ $vikunja-nav-selected-width: 0.4rem; .top-menu { margin-top: math.div($navbar-padding, 2); - + .menu-list { li { font-weight: 600; @@ -482,17 +488,24 @@ $vikunja-nav-selected-width: 0.4rem; .favorite { margin-left: .25rem; transition: opacity $transition, color $transition; - opacity: 0; + opacity: 1; - &:hover, &.is-favorite { color: var(--warning); + opacity: 1; } } - .favorite.is-favorite, - .list-menu:hover .favorite { - opacity: 1; + + @media(hover: hover) and (pointer: fine) { + .list-menu .favorite { + opacity: 0; + } + + .list-menu:hover .favorite, + .favorite.is-favorite { + opacity: 1; + } } .list-menu-title { diff --git a/src/components/list/partials/ListCard.vue b/src/components/list/partials/ListCard.vue index ca7484b3d0..c053aaed5d 100644 --- a/src/components/list/partials/ListCard.vue +++ b/src/components/list/partials/ListCard.vue @@ -147,7 +147,7 @@ const listStore = useListStore() top: var(--list-card-padding); right: var(--list-card-padding); transition: opacity $transition, color $transition; - opacity: 0; + opacity: 1; &:hover { color: var(--warning); @@ -160,8 +160,14 @@ const listStore = useListStore() } } -.list-card:hover .favorite { - opacity: 1; +@media(hover: hover) and (pointer: fine) { + .list-card .favorite { + opacity: 0; + } + + .list-card:hover .favorite { + opacity: 1; + } } .background-fade-in { @@ -173,4 +179,4 @@ const listStore = useListStore() opacity: 1; } } - \ No newline at end of file + diff --git a/src/components/tasks/partials/singleTaskInList.vue b/src/components/tasks/partials/singleTaskInList.vue index 1056cbaac6..b0fc610fd5 100644 --- a/src/components/tasks/partials/singleTaskInList.vue +++ b/src/components/tasks/partials/singleTaskInList.vue @@ -9,13 +9,13 @@ @change="markAsDone" v-model="task.done" /> - + - +
\ No newline at end of file +