- The models page has tabs: All models, Tidy (with its count) and Sources; the type bar keeps the type chips and Import. - Base model chips under the type chips (All, Illustrious, SDXL, Unknown...), one per family the listed models have (model_bases.js; SDXL 1.0 = SDXL); models not scanned are listed by their header's guess (metadata base_guess). - Tidy is cards with the model's cover and name in two steps: models in a folder whose loader cannot read them (from -> to, one plain reason, Move there, Change place), and identical files side by side with the copy to keep marked (the one in the right folder; click another to change) and one button for the extra copies. Models that load anyway and extra copies of a well-placed file are not in step 1. Same-size files up to 256 MB are compared at once; larger ones on Compare. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
130 lines
3.0 KiB
CSS
130 lines
3.0 KiB
CSS
/* Model import (ui_model_import.js): the drop hint over the models page and the import window
|
|
(it reuses the download dialog's look, 22-model-download.css); the settings page's tabs and
|
|
download folder choice (ui_settings_page.js). */
|
|
|
|
.anomalous-import-drop {
|
|
position: fixed;
|
|
z-index: 1000000;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-sizing: border-box;
|
|
border: 2px dashed var(--amb-link);
|
|
border-radius: 12px;
|
|
background: color-mix(in srgb, var(--amb-link) 12%, transparent);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.anomalous-import-drop-text {
|
|
padding: 10px 18px;
|
|
border-radius: 10px;
|
|
background: var(--amb-bg-panel, #24252b);
|
|
color: var(--amb-text-main);
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
|
|
}
|
|
|
|
.anomalous-import-item .anomalous-download-head { align-items: center; }
|
|
|
|
.anomalous-import-item.is-done { opacity: 0.75; }
|
|
|
|
.anomalous-import-remove {
|
|
flex-shrink: 0;
|
|
width: 22px;
|
|
height: 22px;
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: 6px;
|
|
background: transparent;
|
|
color: var(--amb-text-muted);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.anomalous-import-remove:hover {
|
|
background: rgba(var(--amb-ink-rgb), 0.08);
|
|
color: var(--amb-text-main);
|
|
}
|
|
|
|
.anomalous-import-item .anomalous-doctor-level {
|
|
font-size: 12px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.anomalous-import-checking { color: var(--amb-link); }
|
|
|
|
.anomalous-import-status {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.anomalous-import-status:empty { display: none; }
|
|
|
|
.anomalous-download-text.is-ok { color: var(--amb-ok-text); }
|
|
|
|
.anomalous-import-include {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: var(--amb-text-muted);
|
|
font-size: 12.5px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.anomalous-import-include[hidden] { display: none; }
|
|
|
|
/* Settings tabs */
|
|
.anomalous-settings-tabs {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 2;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 2px;
|
|
padding: 3px;
|
|
border: 1px solid var(--amb-border);
|
|
border-radius: 10px;
|
|
background: var(--amb-bg-panel, #24252b);
|
|
}
|
|
|
|
.anomalous-settings-tab {
|
|
flex: 1 1 auto;
|
|
padding: 7px 12px;
|
|
border: none;
|
|
border-radius: 7px;
|
|
background: transparent;
|
|
color: var(--amb-text-muted);
|
|
font: inherit;
|
|
font-size: 13px;
|
|
white-space: nowrap;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.anomalous-settings-tab:hover { color: var(--amb-text-main); }
|
|
|
|
.anomalous-settings-tab[aria-selected="true"] {
|
|
background: color-mix(in srgb, var(--amb-link) 18%, transparent);
|
|
color: var(--amb-text-main);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.anomalous-download-folder-choice {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
gap: 6px;
|
|
flex-shrink: 0;
|
|
max-width: 260px;
|
|
}
|
|
|
|
.anomalous-download-folder-choice .anomalous-download-folder[hidden] { display: none; }
|
|
|
|
.anomalous-download-folder-example {
|
|
color: var(--amb-text-dim, var(--amb-text-muted));
|
|
font-size: 11.5px;
|
|
overflow-wrap: anywhere;
|
|
text-align: right;
|
|
}
|