satdetect-dev / static /css /dda-modernist-library.css
coderuday21's picture
Cursor
Deploy latest uday app code to Hugging Face (skip research binaries).
c682b53
Raw History Blame Contribute Delete
8.48 kB
/* ============================================================
Modernist Image Library theme (Claude Design redesign).
Scoped entirely to #tab-library so the rest of the app keeps its
existing look until/unless it gets redesigned too: flat surfaces,
hairline dividers, sharp corners, one accent color, Archivo for
headings. Tokens (--dm-*) are shared globals declared once at
:root in dda.css — reused here, not redeclared.
Note: the image-viewer / manage-folders / bulk-upload modals and
the folder right-click menu are rendered outside the #tab-library
DOM subtree (they're siblings appended at the end of <body> in
library_dda.html), but their ids (#dda-image-viewer-modal,
#dda-manage-modal, #dda-bulk-upload-modal, #dda-tree-menu) only
ever exist on this page's markup, so anchoring rules to those ids
is just as safe as nesting under #tab-library — no other page can
be affected.
============================================================ */
#tab-library h1,
#tab-library .card-header h3,
#tab-library #lib-grid-title,
#dda-image-viewer-title,
#dda-manage-title,
#dda-bulk-upload-title {
font-family: var(--dm-font);
font-weight: 800;
letter-spacing: -0.01em;
}
/* Flat, hairline-bordered surfaces instead of soft shadow cards */
#tab-library .card,
#tab-library .dda-storage-info,
#dda-image-viewer-modal .dda-modal-panel,
#dda-manage-modal .dda-modal-panel,
#dda-bulk-upload-modal .dda-modal-panel {
background: var(--dm-surface);
border: 1px solid var(--dm-line);
border-radius: 0;
box-shadow: none;
}
#tab-library .card-header { border-bottom-color: var(--dm-line); }
#dda-image-viewer-modal .card-header,
#dda-manage-modal .card-header,
#dda-bulk-upload-modal .card-header { border-bottom-color: var(--dm-line); }
/* Buttons — flat accent instead of the app-wide purple gradient,
scoped to this page (+ its modals) only so other pages are
untouched. */
#tab-library .btn,
#dda-image-viewer-modal .btn,
#dda-manage-modal .btn,
#dda-bulk-upload-modal .btn,
#dda-tree-menu button {
border-radius: 0;
font-family: var(--dm-font);
font-weight: 700;
}
#tab-library .btn-primary,
#dda-image-viewer-modal .btn-primary,
#dda-manage-modal .btn-primary,
#dda-bulk-upload-modal .btn-primary {
background: var(--dm-accent);
}
#tab-library .btn-primary:hover,
#dda-image-viewer-modal .btn-primary:hover,
#dda-manage-modal .btn-primary:hover,
#dda-bulk-upload-modal .btn-primary:hover {
background: var(--dm-accent-hover);
filter: none;
box-shadow: none;
}
#tab-library .btn-secondary,
#dda-image-viewer-modal .btn-secondary,
#dda-manage-modal .btn-secondary,
#dda-bulk-upload-modal .btn-secondary {
background: transparent;
border-color: var(--dm-line);
color: var(--dm-ink);
}
#tab-library .btn-secondary:hover,
#dda-image-viewer-modal .btn-secondary:hover,
#dda-manage-modal .btn-secondary:hover,
#dda-bulk-upload-modal .btn-secondary:hover {
background: var(--dm-bg);
border-color: var(--dm-line);
}
#tab-library .btn-danger,
#dda-image-viewer-modal .btn-danger,
#dda-manage-modal .btn-danger {
box-shadow: none;
}
#tab-library .btn-danger:hover,
#dda-image-viewer-modal .btn-danger:hover,
#dda-manage-modal .btn-danger:hover {
box-shadow: none;
}
#tab-library .btn-ghost { color: var(--dm-accent); }
#tab-library .btn-ghost:hover { background: var(--dm-accent-100); color: var(--dm-accent-hover); }
/* Inputs, selects, search fields — sharp corners + hairline border */
#tab-library input[type="text"],
#tab-library input[type="search"],
#tab-library input[type="date"],
#tab-library input[type="url"],
#tab-library select,
#tab-library .dda-search,
#dda-image-viewer-modal select,
#dda-image-viewer-modal input[type="url"],
#dda-manage-modal input[type="text"],
#dda-manage-modal select,
#dda-bulk-upload-modal input[type="text"] {
border-radius: 0;
border-color: var(--dm-line);
background: var(--dm-surface);
}
#tab-library input:focus,
#tab-library select:focus,
#dda-image-viewer-modal select:focus,
#dda-manage-modal input:focus,
#dda-manage-modal select:focus {
border-color: var(--dm-accent);
box-shadow: 0 0 0 3px var(--dm-accent-100);
}
/* --- Folder tree sidebar --- */
#tab-library .dda-folder-path,
#tab-library .dda-tree-hint { color: var(--dm-ink-muted); }
#tab-library .dda-tree-toolbar-btn { color: var(--dm-ink-muted); }
#tab-library .dda-tree-toolbar-btn:hover { color: var(--dm-accent); }
#tab-library .dda-tree-all,
#tab-library .dda-tree-node-btn,
#tab-library .dda-tree-year,
#tab-library .dda-tree-zone > button,
#tab-library .dda-tree-village {
border-radius: 0;
color: var(--dm-ink);
}
#tab-library .dda-tree-all:hover,
#tab-library .dda-tree-node-btn:hover,
#tab-library .dda-tree-year:hover,
#tab-library .dda-tree-zone > button:hover,
#tab-library .dda-tree-village:hover {
background: var(--dm-accent-100);
color: var(--dm-accent);
}
#tab-library .dda-tree-all.active,
#tab-library .dda-tree-node-btn.active,
#tab-library .dda-tree-year.active,
#tab-library .dda-tree-village.active {
background: var(--dm-accent-100);
color: var(--dm-accent);
border-left: 2px solid var(--dm-accent);
padding-left: calc(0.5rem - 2px);
}
#tab-library .dda-tree-children { border-left-color: var(--dm-line); }
#tab-library .dda-tree-hit { background: var(--dm-accent-100); border-radius: 0; }
#tab-library .dda-tree-node-btn.is-drop-target {
outline-color: var(--dm-accent);
background: var(--dm-accent-100);
color: var(--dm-accent);
}
#dda-tree-menu {
border-radius: 0;
border-color: var(--dm-line);
box-shadow: none;
}
#dda-tree-menu button:hover { background: var(--dm-accent-100); color: var(--dm-accent); }
/* --- Upload card --- */
#tab-library .dda-dropzone {
border-radius: 0;
border-color: var(--dm-line);
background: var(--dm-bg);
}
#tab-library .dda-dropzone.is-dragover {
border-color: var(--dm-accent);
background: var(--dm-accent-100);
}
#tab-library .dda-progress-bar { border-radius: 0; background: var(--dm-line); }
#tab-library .dda-progress-fill { background: var(--dm-accent); }
#tab-library .dda-storage-info summary { color: var(--dm-ink-muted); }
#tab-library .dda-storage-info summary:hover { color: var(--dm-accent); }
#tab-library .dda-path-code { border-radius: 0; border-color: var(--dm-line); background: var(--dm-bg); }
/* --- Same-area pairs --- */
#tab-library .dda-area-pair {
border-radius: 0;
border-color: var(--dm-line);
background: var(--dm-surface);
}
/* --- Image grid --- */
#tab-library .dda-grid { gap: 1px; background: var(--dm-line); border: 1px solid var(--dm-line); }
#tab-library .dda-card-img {
border-radius: 0;
border: none;
background: var(--dm-surface);
transition: none;
}
#tab-library .dda-card-img:hover { border-color: transparent; outline: 2px solid var(--dm-accent); outline-offset: -2px; }
#tab-library .dda-card-delete-btn { border-radius: 0; background: rgba(32, 30, 29, 0.68); }
#tab-library .dda-card-delete-btn:hover { background: var(--dm-accent); }
#tab-library .dda-card-img .meta { color: var(--dm-ink-muted); }
/* --- Pagination --- */
#tab-library .pagination button { border-radius: 0; }
#tab-library .pagination button.active { background: var(--dm-accent); border-color: var(--dm-accent); }
#tab-library .pagination button:hover:not(:disabled):not(.active) {
border-color: var(--dm-accent);
color: var(--dm-accent);
}
/* --- Modals (viewer / manage folders / bulk upload) --- */
#dda-image-viewer-modal .dda-image-viewer-wrap { border-radius: 0; border-color: var(--dm-line); background: var(--dm-bg); }
#dda-image-viewer-modal .dda-view-btn { border-radius: 0; }
#dda-image-viewer-modal .dda-view-btn.active { background: var(--dm-accent-100); color: var(--dm-accent); }
#dda-image-viewer-modal .dda-map-canvas { border-radius: 0; }
#dda-manage-modal .dda-manage-section h4,
#dda-bulk-upload-modal .dda-manage-section h4 { font-family: var(--dm-font); font-weight: 700; color: var(--dm-ink); }
#dda-bulk-upload-modal .dda-logs-table th { color: var(--dm-ink-muted); }
#dda-bulk-upload-modal .dda-logs-table td,
#dda-bulk-upload-modal .dda-logs-table th { border-bottom-color: var(--dm-line); }
@media (max-width: 900px) {
#tab-library .dda-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}
/* Required-field marker on the upload form's Zone/Village labels — these
are now mandatory (see upload_image()'s validation). */
#tab-library .dda-required-mark { color: var(--dm-accent); }