From f9062bc4d7ced16737c9abe358e48984bc5f938c Mon Sep 17 00:00:00 2001 From: DeNNiiInc Date: Sun, 28 Dec 2025 11:06:57 +1100 Subject: [PATCH] Add missing video modal HTML and CSS components --- styles.css | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) diff --git a/styles.css b/styles.css index 433eef9..6465b11 100644 --- a/styles.css +++ b/styles.css @@ -695,3 +695,157 @@ body::before { margin-top: var(--spacing-lg); gap: var(--spacing-md); } + +/* =================================== + VIDEO PLAYER MODAL + =================================== */ +.modal { + display: none; + position: fixed; + z-index: 9999; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.8); + backdrop-filter: blur(5px); +} + +.modal-content { + position: relative; + background: var(--color-bg-secondary); + margin: 5% auto; + padding: 0; + border: 1px solid var(--color-border); + border-radius: var(--radius-xl); + width: 90%; + max-width: 900px; + box-shadow: var(--shadow-lg); + animation: slideIn 0.3s ease-out; +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(-50px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-header { + padding: var(--spacing-lg); + border-bottom: 1px solid var(--color-border); + display: flex; + justify-content: space-between; + align-items: center; +} + +.modal-header h2 { + margin: 0; + color: var(--color-text-primary); + font-size: 1.5rem; +} + +.close-btn { + background: none; + border: none; + font-size: 2rem; + color: var(--color-text-secondary); + cursor: pointer; + transition: color var(--transition-fast); + padding: 0; + width: 2rem; + height: 2rem; + display: flex; + align-items: center; + justify-content: center; +} + +.close-btn:hover { + color: var(--color-accent-danger); +} + +.video-modal-content { + max-width: 800px; + background: var(--color-bg-secondary); +} + +.video-player-container { + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; + padding: var(--spacing-lg); +} + +.video-frame { + width: 100%; + aspect-ratio: 16/9; + background: #000; + display: flex; + align-items: center; + justify-content: center; + border-radius: var(--radius-md); + overflow: hidden; + position: relative; +} + +.video-frame img { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} + +.video-controls { + display: flex; + align-items: center; + gap: 1rem; + width: 100%; + padding: var(--spacing-sm); + background: var(--color-bg-tertiary); + border-radius: var(--radius-md); +} + +#video-play-btn { + background: var(--color-accent-primary); + color: white; + border: none; + padding: var(--spacing-sm) var(--spacing-lg); + border-radius: var(--radius-sm); + cursor: pointer; + font-weight: 600; + transition: all var(--transition-fast); + white-space: nowrap; +} + +#video-play-btn:hover { + background: var(--color-accent-secondary); + transform: translateY(-1px); +} + +.video-progress-bar { + flex: 1; + height: 8px; + background: var(--color-bg-secondary); + border-radius: var(--radius-sm); + overflow: hidden; + cursor: pointer; +} + +.video-progress-fill { + height: 100%; + width: 0%; + background: var(--color-accent-primary); + transition: width 0.1s linear; +} + +#video-time { + font-family: var(--font-mono); + font-size: 0.9rem; + color: var(--color-text-primary); + min-width: 4rem; + text-align: right; +}