Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions ui/assets/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,36 @@
outline: 2px solid currentColor;
outline-offset: 1px;
}

/* Touch-only message action affordance (freenet/river#402).
*
* The per-message hover action bar (reply / edit / delete) is built with
* Tailwind `group-hover:` utilities, which Tailwind v4 automatically wraps in
* `@media (hover: hover)`. On a touch device (phone, tablet) there is no hover
* pointer, so that bar can NEVER become visible and touch users have no way to
* reach reply / edit / delete / react.
*
* `.touch-actions` is the exact complement: hidden by default (so mouse users
* keep the clean hover-reveal desktop UI) and shown only where `hover: none`
* matches — i.e. precisely the devices where the hover bar cannot appear. It
* decorates the always-visible kebab (⋮) button that opens the touch action
* menu. */
.touch-actions {
display: none;
}

@media (hover: none) {
.touch-actions {
display: flex;
}

/* The hover action bar (reply/edit/delete) is opacity-0 until hovered, but
* an opacity-0 element still captures taps. On a touch device (no hover) it
* can never become visible, so make it non-interactive there; otherwise a
* tap on the gutter where it sits would fire an invisible reply/edit/delete.
* Left interactive on desktop (@media hover:hover) so slow mouse travel
* across the gap to the bar still works. (#402) */
.hover-actions {
pointer-events: none;
}
}
Loading
Loading