mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-03-30 18:35:59 +00:00
* xftp-web: add "Upload your file" link after download completes * xftp-web: call initUpload directly instead of hashchange dispatch
146 lines
4.2 KiB
CSS
146 lines
4.2 KiB
CSS
#app, [data-xftp-app] {
|
|
font-family: system-ui, -apple-system, sans-serif;
|
|
color: #333;
|
|
width: 100%;
|
|
max-width: 480px;
|
|
padding: 16px;
|
|
box-sizing: border-box;
|
|
--xftp-ring-fg: #3b82f6;
|
|
}
|
|
|
|
:is(#app, [data-xftp-app]) .card {
|
|
background: #fff;
|
|
border-radius: 12px;
|
|
padding: 32px 24px;
|
|
box-shadow: 0 1px 3px rgba(0,0,0,.1);
|
|
text-align: center;
|
|
}
|
|
|
|
:is(#app, [data-xftp-app]) h1 {
|
|
font-size: 1.25rem;
|
|
font-weight: 600;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
:is(#app, [data-xftp-app]) .stage { margin-top: 16px; }
|
|
|
|
/* Drop zone */
|
|
:is(#app, [data-xftp-app]) .drop-zone {
|
|
border: 2px dashed #ccc;
|
|
border-radius: 8px;
|
|
padding: 32px 16px;
|
|
transition: border-color .15s, background .15s;
|
|
}
|
|
:is(#app, [data-xftp-app]) .drop-zone.drag-over {
|
|
border-color: #3b82f6;
|
|
background: #eff6ff;
|
|
}
|
|
|
|
/* Buttons */
|
|
:is(#app, [data-xftp-app]) .btn {
|
|
display: inline-block;
|
|
padding: 10px 24px;
|
|
border: none;
|
|
border-radius: 6px;
|
|
background: #3b82f6;
|
|
color: #fff;
|
|
font-size: .9rem;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: background .15s;
|
|
}
|
|
:is(#app, [data-xftp-app]) .btn:hover { background: #2563eb; }
|
|
:is(#app, [data-xftp-app]) .btn-secondary { background: #6b7280; }
|
|
:is(#app, [data-xftp-app]) .btn-secondary:hover { background: #4b5563; }
|
|
|
|
/* Hints */
|
|
:is(#app, [data-xftp-app]) .hint { color: #999; font-size: .85rem; margin-top: 8px; }
|
|
:is(#app, [data-xftp-app]) .expiry { margin-top: 12px; }
|
|
|
|
/* Progress */
|
|
:is(#app, [data-xftp-app]) .progress-ring { display: block; margin: 0 auto 12px; }
|
|
:is(#app, [data-xftp-app]) #upload-status,
|
|
:is(#app, [data-xftp-app]) #dl-status { font-size: .9rem; color: #666; margin-bottom: 12px; }
|
|
|
|
/* Share link row */
|
|
:is(#app, [data-xftp-app]) .link-row {
|
|
display: flex;
|
|
gap: 8px;
|
|
margin-top: 12px;
|
|
}
|
|
:is(#app, [data-xftp-app]) .link-row input {
|
|
flex: 1;
|
|
padding: 8px 10px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 6px;
|
|
font-size: .85rem;
|
|
background: #f9fafb;
|
|
}
|
|
|
|
/* Upload link */
|
|
:is(#app, [data-xftp-app]) .upload-link {
|
|
margin-top: 12px;
|
|
color: #3b82f6;
|
|
font-size: .9rem;
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
}
|
|
:is(#app, [data-xftp-app]) .upload-link:not([hidden]) {
|
|
display: inline-block;
|
|
}
|
|
:is(#app, [data-xftp-app]) .upload-link:hover { text-decoration: underline; }
|
|
|
|
/* Messages */
|
|
:is(#app, [data-xftp-app]) .success { color: #16a34a; font-weight: 600; }
|
|
:is(#app, [data-xftp-app]) .error { color: #dc2626; font-weight: 500; margin-bottom: 12px; }
|
|
|
|
/* Security note */
|
|
:is(#app, [data-xftp-app]) .security-note {
|
|
margin-top: 20px;
|
|
padding: 12px;
|
|
background: #f0fdf4;
|
|
border-radius: 6px;
|
|
font-size: .8rem;
|
|
color: #555;
|
|
text-align: left;
|
|
}
|
|
:is(#app, [data-xftp-app]) .security-note p + p { margin-top: 6px; }
|
|
:is(#app, [data-xftp-app]) .security-note a { color: #3b82f6; text-decoration: none; }
|
|
:is(#app, [data-xftp-app]) .security-note a:hover { text-decoration: underline; }
|
|
|
|
/* ── Dark mode ─────────────────────────────────── */
|
|
.dark :is(#app, [data-xftp-app]) {
|
|
color: #e5e7eb;
|
|
--xftp-ring-bg: #374151;
|
|
--xftp-ring-fg: #60a5fa;
|
|
--xftp-ring-text: #e5e7eb;
|
|
--xftp-ring-done: #4ade80;
|
|
}
|
|
.dark :is(#app, [data-xftp-app]) .card {
|
|
background: #1f2937;
|
|
box-shadow: 0 1px 3px rgba(0,0,0,.4);
|
|
}
|
|
.dark :is(#app, [data-xftp-app]) .drop-zone { border-color: #4b5563; }
|
|
.dark :is(#app, [data-xftp-app]) .drop-zone.drag-over {
|
|
border-color: #60a5fa;
|
|
background: rgba(59,130,246,.15);
|
|
}
|
|
.dark :is(#app, [data-xftp-app]) .btn-secondary { background: #4b5563; }
|
|
.dark :is(#app, [data-xftp-app]) .btn-secondary:hover { background: #374151; }
|
|
.dark :is(#app, [data-xftp-app]) .hint { color: #9ca3af; }
|
|
.dark :is(#app, [data-xftp-app]) #upload-status,
|
|
.dark :is(#app, [data-xftp-app]) #dl-status { color: #9ca3af; }
|
|
.dark :is(#app, [data-xftp-app]) .link-row input {
|
|
background: #374151;
|
|
border-color: #4b5563;
|
|
color: #e5e7eb;
|
|
}
|
|
.dark :is(#app, [data-xftp-app]) .success { color: #4ade80; }
|
|
.dark :is(#app, [data-xftp-app]) .error { color: #f87171; }
|
|
.dark :is(#app, [data-xftp-app]) .security-note {
|
|
background: rgba(34,197,94,.1);
|
|
color: #d1d5db;
|
|
}
|
|
.dark :is(#app, [data-xftp-app]) .upload-link { color: #60a5fa; }
|
|
.dark :is(#app, [data-xftp-app]) .security-note a { color: #60a5fa; }
|