Files
Oxicloud/static/css/components/spinner.css
T

97 lines
2.4 KiB
CSS
Raw Normal View History

/* Loading spinner overlay */
.files-loading-spinner {
2026-04-07 22:48:59 +02:00
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: var(--space-20) var(--space-5);
gap: var(--space-4);
2026-04-07 22:48:59 +02:00
grid-column: 1 / -1;
}
.files-loading-spinner .spinner {
2026-04-07 22:48:59 +02:00
width: 36px;
height: 36px;
border: 3px solid var(--color-border);
border-top-color: var(--color-accent);
2026-04-07 22:48:59 +02:00
border-radius: 50%;
animation: spin 0.7s linear infinite;
}
/* @keyframes spin → base/animations.css (canonical, loaded via main.css). */
.files-loading-spinner span {
font-size: var(--text-base);
color: var(--color-text-placeholder);
font-weight: var(--weight-medium);
}
/* Full-area drop overlay. Hidden by default; shown over the content region
(right of the sidebar) while files are dragged into the Files section
(toggled in ui.js). Frosted backdrop + dashed border = a clear "drop here"
affordance instead of a small inline box. */
.dropzone {
position: fixed;
top: var(--space-4);
right: var(--space-4);
bottom: var(--space-4);
left: calc(var(--sidebar-width) + var(--space-4));
z-index: var(--z-overlay);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: var(--space-4);
border: 3px dashed var(--color-border-medium);
border-radius: var(--radius-3xl);
background: var(--color-scrim-control);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
color: var(--color-text-secondary);
font-size: var(--text-lg);
font-weight: var(--weight-semibold);
2026-04-07 22:48:59 +02:00
text-align: center;
}
/* Children don't catch pointer events, so moving over the icon/text doesn't
fire dragleave on the overlay (avoids show/hide flicker). */
.dropzone > * {
pointer-events: none;
}
.dropzone-icon {
font-size: var(--text-6xl);
color: var(--color-accent);
}
.dropzone.active {
border-color: var(--color-accent);
color: var(--color-accent-text);
}
@media (max-width: 768px) {
.dropzone {
left: var(--space-4);
}
}
.upload-progress {
2026-04-07 22:48:59 +02:00
margin-top: 15px;
width: 100%;
display: block;
}
.progress-bar {
background-color: var(--color-bg-empty);
2026-04-07 22:48:59 +02:00
height: 6px;
border-radius: 3px;
overflow: hidden;
}
.progress-fill {
2026-04-07 22:48:59 +02:00
height: 100%;
background-color: var(--color-accent);
2026-04-07 22:48:59 +02:00
width: 0%;
transition: width 0.3s;
}