feat(design): players on touch and the C5 control set, restart on the card (E28 S3f2)
Plex player: a finger's tap on the picture only shows or hides the controls, the hide timer starts with playback, a double-tap on a side third skips 10 s, the seek bar is a 2.75rem touch-none hit area with its head shown on touch. The row is play/pause, Back by position, Next only with a next item, mute, time, tracks, a fixed ⋯ (settings, media info, stats, shortcuts, download) and fullscreen; Stop, Restart and the ±10 s buttons are gone. A started card shows the video card's Continue + Restart pair (one shared MediaResumeButtons, beside the picture's button), and its menu lists the restart; the player opens that item at 0 (fromStart). YouTube modal: the description opens from an ⓘ, the queue arrows sit inside the screen.
This commit is contained in:
@@ -4,49 +4,6 @@ import { RotateCcw } from "lucide-react";
|
||||
import { IconButton } from "./ui/IconButton";
|
||||
import { Slider as Range, Checkbox } from "./ui/NativeControls";
|
||||
|
||||
// ±10s skip glyph: an outline circular arrow with a "10" in the centre — the YouTube/Plex-native
|
||||
// muscle-memory shape. Deliberately distinct from the episode-level SkipBack/SkipForward (double
|
||||
// triangles) and from Restart's plain RotateCcw. The arrowhead is an L-corner at the arc's open end,
|
||||
// the same construction lucide uses for RotateCcw/RotateCw, so it sits consistently in the bar.
|
||||
export function Skip10({ dir }: { dir: "back" | "forward" }) {
|
||||
const back = dir === "back";
|
||||
return (
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
className="w-6 h-6"
|
||||
aria-hidden="true"
|
||||
>
|
||||
{back ? (
|
||||
<>
|
||||
<path d="M4 8.5 A8 8 0 1 1 4 12" />
|
||||
<path d="M4 8.5 L4 4 M4 8.5 L8.5 8.5" />
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<path d="M20 8.5 A8 8 0 1 0 20 12" />
|
||||
<path d="M20 8.5 L20 4 M20 8.5 L15.5 8.5" />
|
||||
</>
|
||||
)}
|
||||
<text
|
||||
x="12"
|
||||
y="14.5"
|
||||
textAnchor="middle"
|
||||
fontSize="8"
|
||||
fontWeight={700}
|
||||
fill="currentColor"
|
||||
stroke="none"
|
||||
>
|
||||
10
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
// --- settings-panel building blocks ------------------------------------------------------------
|
||||
export function PanelHead({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user