diff options
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/style.css')
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/style.css | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/style.css b/packages/meshbay-hub/src/meshbay_hub/static/style.css index 3aea648..6e1eedd 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/style.css +++ b/packages/meshbay-hub/src/meshbay_hub/static/style.css @@ -531,6 +531,155 @@ button:disabled { opacity: 0.5; cursor: not-allowed; } font-style: italic; } +/* ── Spinner ─────────────────────────────────────────────────────────────── */ + +.spinner { + display: inline-block; + width: 14px; + height: 14px; + border: 2px solid var(--border); + border-top: 2px solid var(--accent); + border-radius: 50%; + animation: spin 0.8s linear infinite; + vertical-align: middle; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* ── File action menu ───────────────────────────────────────────────────── */ + +.file-actions-cell { + position: relative; + width: 40px; +} + +.file-menu-btn { + background: none; + border: 1px solid var(--border); + color: var(--text-secondary); + width: 30px; + height: 30px; + border-radius: 6px; + font-size: 1.1em; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + line-height: 1; +} +.file-menu-btn:hover { background: var(--bg-raised); border-color: var(--accent); color: var(--accent); } + +.file-menu { + position: absolute; + right: 0; + top: 100%; + background: var(--bg-surface); + border: 1px solid var(--border); + border-radius: 8px; + box-shadow: var(--shadow-lg); + z-index: 30; + min-width: 130px; + padding: 4px 0; + overflow: hidden; +} +.file-menu button { + display: block; + width: 100%; + padding: 8px 14px; + background: none; + border: none; + color: var(--text); + font-size: 0.85em; + text-align: left; + cursor: pointer; + border-radius: 0; +} +.file-menu button:hover { background: var(--bg-raised); } + +/* ── File link (clickable name) ─────────────────────────────────────────── */ + +.file-link { + color: var(--accent); + cursor: pointer; + text-decoration: none; +} +.file-link:hover { text-decoration: underline; } + +/* ── File preview overlay ───────────────────────────────────────────────── */ + +.preview-image-wrap { + display: flex; + align-items: center; + justify-content: center; + max-width: 90vw; + max-height: calc(100vh - 100px); + padding: 40px 20px 20px; +} + +.preview-image { + max-width: 100%; + max-height: calc(100vh - 120px); + object-fit: contain; + border-radius: 4px; +} + +.preview-text-wrap { + width: min(90vw, 900px); + max-height: calc(100vh - 100px); + overflow: auto; + padding: 60px 20px 20px; +} + +.preview-text { + background: var(--bg-surface); + color: var(--text); + padding: 20px; + border-radius: 8px; + font-size: 0.85em; + line-height: 1.6; + white-space: pre-wrap; + word-break: break-word; + overflow-x: auto; + margin: 0; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + tab-size: 4; +} + +/* ── Chat attachment ────────────────────────────────────────────────────── */ + +.chat-attach { + display: flex; + align-items: center; + justify-content: center; + width: 38px; + height: 38px; + font-size: 1.2em; + cursor: pointer; + border-radius: 8px; + flex-shrink: 0; + color: var(--text-secondary); +} +.chat-attach:hover { background: var(--bg-raised); color: var(--accent); } + +.chat-attachment { + display: flex; + flex-direction: column; + gap: 2px; +} +.chat-att-img, .chat-att-file { + font-weight: 500; + font-size: 0.88em; +} +.chat-att-size { + font-size: 0.75em; + color: var(--text-dim); +} +.chat-bubble-own .chat-att-size { color: rgba(255, 255, 255, 0.6); } + /* ── Download button + progress ──────────────────────────────────────────── */ .dl-btn { |