Mercurial
view 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 source
<!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>