ui: videos colapsables por defecto con header clickeable

This commit is contained in:
Ricardo Monla
2026-05-03 04:13:30 -03:00
parent 7c5f673d78
commit 4708b466c0
3 changed files with 497 additions and 56 deletions
+50 -6
View File
@@ -937,14 +937,46 @@ body {
}
/* ── VIDEO PLAYER ── */
.video-container {
.video-viewer-wrap {
margin: 1rem 0;
border-radius: 10px;
border: 1px solid #2c3e50;
border-radius: 8px;
overflow: hidden;
background: #1a1a2e;
}
.video-viewer-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.7rem 1rem;
background: linear-gradient(135deg, #1a1a2e, #16213e);
color: #eee;
cursor: pointer;
user-select: none;
font-size: 0.9rem;
transition: background 0.2s;
}
.video-viewer-header:hover {
background: linear-gradient(135deg, #16213e, #0f3460);
}
.video-toggle {
transition: transform 0.3s;
font-size: 0.8rem;
opacity: 0.6;
color: #aaa;
}
.video-viewer-wrap.collapsed .video-toggle {
transform: rotate(-90deg);
}
.video-viewer-wrap.collapsed .video-container,
.video-viewer-wrap.collapsed .video-placeholder {
display: none;
}
.video-container {
border-radius: 0;
overflow: hidden;
background: #000;
box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.video-container video {
width: 100%;
display: block;
@@ -1158,9 +1190,21 @@ body {
if (tema.vimeoID) {
const videoFile = videosMap[tema.vimeoID];
if (videoFile) {
bodyHTML += `<div class="video-container"><video controls preload="metadata"><source src="videos_offline/${videoFile}" type="video/mp4">Tu navegador no soporta video HTML5.</video></div>\n`;
bodyHTML += `<div class="video-viewer-wrap collapsed">
<div class="video-viewer-header" onclick="this.parentElement.classList.toggle('collapsed')">
<span>🎬 <strong>${tema.titulo}</strong></span>
<span class="video-toggle">▼</span>
</div>
<div class="video-container"><video controls preload="metadata"><source src="videos_offline/${videoFile}" type="video/mp4">Tu navegador no soporta video HTML5.</video></div>
</div>\n`;
} else {
bodyHTML += `<div class="video-placeholder"><div class="play-icon">▶</div><div class="placeholder-text">Video en proceso de descarga</div><div class="placeholder-label">${tema.titulo}</div></div>\n`;
bodyHTML += `<div class="video-viewer-wrap collapsed">
<div class="video-viewer-header" onclick="this.parentElement.classList.toggle('collapsed')">
<span>🎬 <strong>${tema.titulo}</strong> <em style="opacity:0.5;font-size:0.8em">(descargando...)</em></span>
<span class="video-toggle">▼</span>
</div>
<div class="video-placeholder"><div class="play-icon">▶</div><div class="placeholder-text">Video en proceso de descarga</div></div>
</div>\n`;
}
}