Mercurial
diff medi/src/index.html @ 217:7ef4c9d2a72d hg-web
[DO NOT PUSH] Random values.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Sun, 25 Jan 2026 10:44:04 -0800 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/medi/src/index.html Sun Jan 25 10:44:04 2026 -0800 @@ -0,0 +1,191 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Medi - Media Upload</title> + <style> + :root { + --bg: #0d1117; + --bg-secondary: #161b22; + --border: #30363d; + --text: #e6edf3; + --text-secondary: #8b949e; + --accent: #58a6ff; + --success: #3fb950; + --error: #f85149; + } + + * { + box-sizing: border-box; + margin: 0; + padding: 0; + } + + body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + background: var(--bg); + color: var(--text); + min-height: 100vh; + } + + #root { + max-width: 1200px; + margin: 0 auto; + padding: 40px 20px; + } + + h1 { + font-size: 2rem; + margin-bottom: 8px; + } + + .subtitle { + color: var(--text-secondary); + margin-bottom: 32px; + } + + .upload-area { + border: 2px dashed var(--border); + border-radius: 12px; + padding: 60px 40px; + text-align: center; + cursor: pointer; + transition: all 0.2s; + background: var(--bg-secondary); + margin-bottom: 32px; + } + + .upload-area:hover, .upload-area.dragover { + border-color: var(--accent); + background: rgba(88, 166, 255, 0.1); + } + + .upload-area svg { + width: 64px; + height: 64px; + margin-bottom: 16px; + color: var(--text-secondary); + } + + .upload-area h3 { + margin-bottom: 8px; + } + + .upload-area p { + color: var(--text-secondary); + font-size: 14px; + } + + .upload-area input { + display: none; + } + + .media-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 20px; + } + + .media-card { + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: 12px; + overflow: hidden; + } + + .media-preview { + aspect-ratio: 16/9; + background: #000; + display: flex; + align-items: center; + justify-content: center; + position: relative; + } + + .media-preview img, .media-preview video { + max-width: 100%; + max-height: 100%; + object-fit: contain; + } + + .media-info { + padding: 16px; + } + + .media-info h4 { + font-size: 14px; + margin-bottom: 4px; + word-break: break-all; + } + + .media-info .type { + font-size: 12px; + color: var(--text-secondary); + text-transform: uppercase; + } + + .media-info .status { + font-size: 12px; + margin-top: 8px; + padding: 4px 8px; + border-radius: 4px; + display: inline-block; + } + + .status.processing { + background: rgba(88, 166, 255, 0.2); + color: var(--accent); + } + + .status.completed { + background: rgba(63, 185, 80, 0.2); + color: var(--success); + } + + .status.error { + background: rgba(248, 81, 73, 0.2); + color: var(--error); + } + + .media-links { + padding: 0 16px 16px; + display: flex; + gap: 8px; + } + + .media-links a { + font-size: 12px; + color: var(--accent); + text-decoration: none; + } + + .media-links a:hover { + text-decoration: underline; + } + + .loading-spinner { + width: 40px; + height: 40px; + border: 3px solid var(--border); + border-top-color: var(--accent); + border-radius: 50%; + animation: spin 1s linear infinite; + } + + @keyframes spin { + to { transform: rotate(360deg); } + } + + .empty-state { + text-align: center; + padding: 60px 20px; + color: var(--text-secondary); + } + </style> +</head> +<body> + <div id="root"></div> + <script src="/medi_bundle.js"></script> +</body> +</html>