mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-10-11 03:52:13 -03:00
Solid-accent buttons used the page text color (--lora-text) or white, which falls below WCAG AA on the mid-bright accent (L 52-72%) in every theme/preset — e.g. ~1.7:1 in dark+solarized, making primary buttons hard to read. Add --color-accent-contrast (dark, low-chroma, same hue, derived per preset) aliased as --text-on-accent, and switch ~90 accent-background selectors (primary/confirm buttons, nav items, chips, badges, checkmarks) to it. Also define the previously dangling --lora-accent-l/c/h, --lora-accent-hover and --lora-accent-light aliases (fixing ~40 dead declarations), replace the hardcoded rgba(--lora-accent-rgb, 79 70 229) fallbacks with oklch channel syntax, and add the missing margin above .template-custom-input in settings.
161 lines
3.9 KiB
CSS
161 lines
3.9 KiB
CSS
/* Style for selected cards */
|
|
.model-card.selected {
|
|
outline: 2px solid var(--lora-accent);
|
|
outline-offset: -2px;
|
|
position: relative;
|
|
}
|
|
|
|
.model-card.selected::after {
|
|
content: "✓";
|
|
position: absolute;
|
|
top: 10px;
|
|
right: 10px;
|
|
width: 24px;
|
|
height: 24px;
|
|
background: var(--lora-accent);
|
|
color: var(--text-on-accent);
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 14px;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Marquee selection styles */
|
|
.marquee-selection {
|
|
position: fixed;
|
|
border: 2px dashed var(--lora-accent, #007bff);
|
|
background: rgba(0, 123, 255, 0.1);
|
|
pointer-events: none;
|
|
z-index: 9999;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
/* Visual feedback when marquee selecting */
|
|
.marquee-selecting {
|
|
cursor: crosshair;
|
|
user-select: none;
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
}
|
|
|
|
/* Prevent text selection during marquee */
|
|
.marquee-selecting * {
|
|
user-select: none;
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
}
|
|
|
|
/* ── Bulk base model modal — dedicated inline-list layout ───────────────
|
|
Unlike the single-model modal (overlay dropdown), the bulk modal renders
|
|
the option list inline so it never covers the footer buttons and only the
|
|
list itself scrolls. Dropdown internals reuse the shared .base-model-*
|
|
styles from lora-modal.css. */
|
|
|
|
#bulkBaseModelModal .modal-content {
|
|
width: min(720px, calc(100vw - 2rem));
|
|
height: min(640px, calc(100vh - var(--header-height, 48px) - 5.5rem));
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
|
|
#bulkBaseModelModal .modal-header {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
#bulkBaseModelModal .modal-body {
|
|
flex: 1;
|
|
min-height: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
|
|
#bulkBaseModelModal .bulk-add-tags-info {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
#bulkBaseModelModal .bulk-base-model-label {
|
|
flex-shrink: 0;
|
|
display: block;
|
|
font-weight: 500;
|
|
margin-bottom: var(--space-1);
|
|
color: var(--text-color);
|
|
}
|
|
|
|
.bulk-base-model-picker {
|
|
width: 100%;
|
|
}
|
|
|
|
#bulkBaseModelModal .bulk-base-model-picker {
|
|
flex: 1;
|
|
min-height: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
#bulkBaseModelModal .bulk-base-model-picker .base-model-search-wrapper {
|
|
flex: 1;
|
|
min-height: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
width: 100%;
|
|
z-index: auto;
|
|
}
|
|
|
|
#bulkBaseModelModal .base-model-search-input-wrapper {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Inline list instead of overlay dropdown */
|
|
#bulkBaseModelModal .base-model-dropdown {
|
|
position: relative;
|
|
top: auto;
|
|
left: auto;
|
|
right: auto;
|
|
flex: 1;
|
|
min-height: 0;
|
|
max-height: none;
|
|
overflow-y: auto;
|
|
margin-top: var(--space-1);
|
|
border: 1px solid var(--lora-border);
|
|
border-radius: var(--border-radius-xs);
|
|
box-shadow: none;
|
|
z-index: auto;
|
|
overscroll-behavior: contain;
|
|
scrollbar-gutter: stable;
|
|
scrollbar-width: thin;
|
|
scrollbar-color: var(--lora-border) transparent;
|
|
}
|
|
|
|
#bulkBaseModelModal .base-model-dropdown::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
#bulkBaseModelModal .base-model-dropdown::-webkit-scrollbar-thumb {
|
|
background: var(--lora-border);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
#bulkBaseModelModal .base-model-dropdown::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
/* The shared dropdown header uses opacity for its muted look, which makes the
|
|
sticky background translucent — scrolled items bleed through. Keep the
|
|
muted text color but restore a fully opaque background (bulk scope only). */
|
|
#bulkBaseModelModal .base-model-dropdown-header {
|
|
opacity: 1;
|
|
color: var(--text-muted, var(--text-color));
|
|
}
|
|
|
|
#bulkBaseModelModal .bulk-base-model-footer {
|
|
flex-shrink: 0;
|
|
padding-top: var(--space-2);
|
|
margin-top: var(--space-2);
|
|
border-top: 1px solid var(--lora-border);
|
|
} |