From 11f8cdb9bdef118aafdcd96e24fe1e48caa93d0a Mon Sep 17 00:00:00 2001 From: Johnpaul Chiwetelu <49923152+Myestery@users.noreply.github.com> Date: Wed, 7 Jan 2026 07:29:39 +0100 Subject: [PATCH] fix: make hover-based buttons accessible on touch devices (#7872) ## Summary - Define `touch:` Tailwind variant using `@media (hover: none)` to target touch devices - Add `touch:opacity-100` to `TreeExplorerTreeNode` for node action buttons - Add `useMediaQuery('(hover: none)')` to `MediaAssetCard` for action overlay visibility ## Problem On touch devices, sidebar buttons that appear on hover are inaccessible because: 1. The `touch:` Tailwind variant was used but never defined (classes silently ignored) 2. `TreeExplorerTreeNode` had no touch support for action buttons 3. `MediaAssetCard` used JS-based `useElementHover` which doesn't work on touch ## Screenshots (Touch Device Emulation) ### Before (main branch) - No "Generated"/"Imported" tabs visible in header - Only duration chips shown on cards, no action buttons (zoom, menu) ![Before - Touch Device](https://i.imgur.com/V0qcr2D.png) ### After (with fix) - "Generated"/"Imported" tabs visible in header - Action buttons (zoom, menu) visible on left of cards - Duration chips moved to right side ![After - Touch Device](https://i.imgur.com/vQ3dUBc.png) ## Test plan - [ ] On touch device: verify Media Assets sidebar "Imported"/"Generated" tabs are visible - [ ] On touch device: verify Node Library filter buttons are visible - [ ] On touch device: verify tree node action buttons (bookmark, help) are visible - [ ] On touch device: verify media asset card zoom/menu buttons are visible - [ ] On desktop with mouse: verify hover behavior still works as expected --- packages/design-system/src/css/style.css | 2 ++ .../common/TreeExplorerTreeNode.vue | 2 +- .../assets/components/MediaAssetCard.vue | 29 +++++++++++++++---- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/packages/design-system/src/css/style.css b/packages/design-system/src/css/style.css index 7fc951496..551e26c62 100644 --- a/packages/design-system/src/css/style.css +++ b/packages/design-system/src/css/style.css @@ -9,6 +9,8 @@ @config '../../tailwind.config.ts'; +@custom-variant touch (@media (hover: none)); + @theme { --text-xxs: 0.625rem; --text-xxs--line-height: calc(1 / 0.625); diff --git a/src/components/common/TreeExplorerTreeNode.vue b/src/components/common/TreeExplorerTreeNode.vue index 186769c19..cea8ba451 100644 --- a/src/components/common/TreeExplorerTreeNode.vue +++ b/src/components/common/TreeExplorerTreeNode.vue @@ -28,7 +28,7 @@ />
diff --git a/src/platform/assets/components/MediaAssetCard.vue b/src/platform/assets/components/MediaAssetCard.vue index 4514846fc..07992e9c5 100644 --- a/src/platform/assets/components/MediaAssetCard.vue +++ b/src/platform/assets/components/MediaAssetCard.vue @@ -68,9 +68,10 @@ - - @@ -124,7 +131,7 @@