diff --git a/src/renderer-streamers.ts b/src/renderer-streamers.ts index 00a1b15..7ef3e56 100644 --- a/src/renderer-streamers.ts +++ b/src/renderer-streamers.ts @@ -248,6 +248,9 @@ function buildVodCardHtml(vod: VOD, streamer: string, downloadedIds?: Set { + if (e.key !== 'Enter' && e.key !== ' ') return; + const target = e.target as HTMLElement | null; + if (!target) return; + const card = target.closest('.vod-card') as HTMLElement | null; + if (!card || card !== target) return; + const ctx = readVodCardContext(card); + if (!ctx) return; + e.preventDefault(); + void window.api.openExternal(ctx.url); + }); } let activeVodContextMenu: HTMLElement | null = null; diff --git a/src/styles.css b/src/styles.css index 12f5913..e3261e9 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1288,6 +1288,12 @@ select option { border-color: rgba(145, 70, 255, 0.35); } +.vod-card:focus-visible { + outline: none; + border-color: rgba(145, 70, 255, 0.7); + box-shadow: 0 0 0 3px rgba(145, 70, 255, 0.35); +} + .vod-card.selected { box-shadow: 0 0 0 2px #9146FF, 0 8px 25px rgba(145, 70, 255, 0.25); }