From e6d36711b114355722867a1cdb0d079bf7ea1561 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 9 Feb 2026 14:50:17 +0000 Subject: [PATCH] Download functionality --- frontend/css/style.css | 168 +++++++++++++++++++++++++++++++++++++++ frontend/index.html | 9 +++ frontend/js/favorites.js | 40 +++++++++- frontend/js/ui.js | 85 +++++++++++++++++++- frontend/js/videos.js | 74 +++++++++++++++++ 5 files changed, 371 insertions(+), 5 deletions(-) diff --git a/frontend/css/style.css b/frontend/css/style.css index 0e14907..7bdb337 100644 --- a/frontend/css/style.css +++ b/frontend/css/style.css @@ -915,6 +915,72 @@ body.theme-light .setting-item select option { font-weight: 500; } +.video-menu-btn { + position: absolute; + top: 10px; + right: 10px; + width: 32px; + height: 32px; + border-radius: 50%; + border: 1px solid var(--border); + background: rgba(0, 0, 0, 0.55); + color: var(--text-primary); + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + line-height: 1; + cursor: pointer; + z-index: 2; + transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease; +} + +body.theme-light .video-menu-btn { + background: rgba(255, 255, 255, 0.8); +} + +.video-menu-btn:hover { + transform: scale(1.05); + background: var(--bg-secondary); +} + +.video-menu { + position: absolute; + top: 48px; + right: 10px; + min-width: 140px; + border-radius: 10px; + border: 1px solid var(--border); + background: var(--bg-secondary); + box-shadow: 0 12px 24px var(--shadow); + opacity: 0; + transform: translateY(-6px); + pointer-events: none; + transition: opacity 0.18s ease, transform 0.18s ease; + z-index: 3; +} + +.video-menu.open { + opacity: 1; + transform: translateY(0); + pointer-events: auto; +} + +.video-menu-item { + width: 100%; + padding: 10px 12px; + text-align: left; + border: none; + background: transparent; + color: var(--text-primary); + cursor: pointer; + font-size: 13px; +} + +.video-menu-item:hover { + background: var(--bg-tertiary); +} + .favorite-btn { position: absolute; top: 10px; @@ -950,6 +1016,108 @@ body.theme-light .favorite-btn { background: rgba(255, 59, 48, 0.12); } +/* Info Modal */ +.info-modal { + position: fixed; + inset: 0; + display: none; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.6); + z-index: 2500; + padding: 20px; +} + +.info-modal.open { + display: flex; +} + +.info-card { + position: relative; + width: min(520px, 92vw); + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: var(--radius-lg); + padding: 20px 22px; + box-shadow: 0 18px 36px var(--shadow); +} + +.info-card h3 { + font-family: var(--font-display); + font-size: 18px; + margin: 0 0 16px 0; +} + +.info-close { + position: absolute; + right: 16px; + top: 16px; + border: none; + background: var(--bg-tertiary); + color: var(--text-primary); + border-radius: 50%; + width: 32px; + height: 32px; + cursor: pointer; +} + +.info-rows, +.info-list { + display: flex; + flex-direction: column; + gap: 10px; +} + +.info-row { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 12px; + font-size: 13px; + color: var(--text-secondary); + border-bottom: 1px solid var(--border); + padding-bottom: 8px; +} + +.info-row:last-child { + border-bottom: none; + padding-bottom: 0; +} + +.info-label { + text-transform: uppercase; + letter-spacing: 0.6px; + font-size: 11px; + color: var(--text-secondary); +} + +.info-value { + text-align: right; + color: var(--text-primary); + word-break: break-all; +} + +.info-json { + margin: 0; + white-space: pre-wrap; + text-align: left; + color: var(--text-primary); + background: var(--bg-tertiary); + border-radius: 8px; + padding: 8px 10px; + font-size: 12px; + line-height: 1.4; + max-height: 180px; + overflow: auto; + flex: 1; +} + +.info-empty { + font-size: 13px; + color: var(--text-secondary); + padding-top: 6px; +} + /* Modal */ .modal { display: none; diff --git a/frontend/index.html b/frontend/index.html index 5e617f7..98f1758 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -113,6 +113,15 @@ + +