diff --git a/frontend/src/components/PlayerModal.tsx b/frontend/src/components/PlayerModal.tsx
index 6d9cac7f..ae4f2b94 100644
--- a/frontend/src/components/PlayerModal.tsx
+++ b/frontend/src/components/PlayerModal.tsx
@@ -145,6 +145,9 @@ const metaSep = (
);
const META_OWN_LINE = "w-full [&>span:first-child>[data-meta-sep]]:hidden";
+// Beside the channel name the meta takes what is left of the line, but never less than this: under it
+// the line wraps and the meta, or the actions after it, move down instead of squeezing.
+const META_MIN = "min-w-48 flex-1";
export default function PlayerModal({
video,
@@ -961,10 +964,13 @@ export default function PlayerModal({
- {/* Channel + meta on one line, with the watched toggle pushed to the right.
+ {/* Channel + meta on one line, with the actions pushed to the right.
When navigated to a linked video we only have its author (from the player),
- so we show that as plain text and hide feed-video-specific bits. */}
-
+ so we show that as plain text and hide feed-video-specific bits.
+ It wraps: the meta never gets narrower than META_MIN, and the actions move down as one
+ group. Unwrapped, a narrow card (a tablet, a zoomed window) squeezed the meta into a
+ one-word column between the name and the buttons. */}
+
{!navigated && (
{active.view_count != null && (
@@ -1043,7 +1049,7 @@ export default function PlayerModal({
) : (
// Linked video's stats come from the (already-fetched) video detail.
{detail.data?.view_count != null && (
@@ -1076,51 +1082,48 @@ export default function PlayerModal({
own (which hides our chrome). Mirrors the F key (maximise, a CSS big view); from there
the docked bar offers OUR true fullscreen. */}
{!navigated && (
-
-
-
- )}
- {!navigated && }
- {!navigated && (
-
- )}
- {!navigated && onRemoveFromList && (
- void removeFromList()}
- // Named with its object, like the list's menu row: a bare "Remove" among Fullscreen /
- // Download / Mark watched reads as "delete this video".
- label={t("playlists.removeItemOf", { title: active.title })}
- title={t("playlists.removeItem")}
- >
-
-
- )}
- {!navigated && (
-
+ // Narrow: the actions end the channel line. Wide: their own line in the panel.
+
+
+
+
+
+
+ {onRemoveFromList && (
+ void removeFromList()}
+ // Named with its object, like the list's menu row: a bare "Remove" among Fullscreen /
+ // Download / Mark watched reads as "delete this video".
+ label={t("playlists.removeItemOf", { title: active.title })}
+ title={t("playlists.removeItem")}
+ >
+
+
+ )}
+
+