aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/style.css
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/style.css')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/style.css149
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 {