- web/lib/: the shared rgthree-derived layer (mxd_* utils, dialogs, api, runtime) + its CSS, moved as a unit. - web/nodes/: one extension file per node/feature, _mxd suffix dropped. - web/vendor/zip_loader/: vendored zip import addon. - index.js explicitly imports every module; loraloader_mxd_entry.js folded into it and deleted. Power Lora Loader merge: new web/nodes/power_lora_base.js holds the shared node machinery, header row, and single-strength lora row widget. power_lora_loader.js (dual model/clip strengths) and ltx2_power_lora_loader.js (per-layer strength rows) are now thin subclasses (~450 duplicated lines removed). Serialization formats, widget names, extension names, and node targets unchanged. better_combos.js scoped to MXD latent loaders only: removed the pysssss CheckpointLoader/LoraLoader patching (already disabled behind ENABLE_PYSSSS_NODE_ENHANCEMENTS=false, so provably inert), the dead ' MXD' alias config entries, and the no-op refreshComboInNodes wrapper. scripts/check_web.py clean; node schema unchanged (68 identical). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
157 lines
4.8 KiB
CSS
157 lines
4.8 KiB
CSS
:not(#fakeid) .mxd-button-reset {
|
|
position: relative;
|
|
appearance: none;
|
|
cursor: pointer;
|
|
border: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
:not(#fakeid) .mxd-button {
|
|
--padding-top: 7px;
|
|
--padding-bottom: 9px;
|
|
--padding-x: 16px;
|
|
position: relative;
|
|
cursor: pointer;
|
|
border: 1px solid var(--border-color, rgba(255, 255, 255, 0.1));
|
|
border-radius: 6px;
|
|
color: var(--input-text, #fff);
|
|
font-family: system-ui, sans-serif;
|
|
font-size: 1rem;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
text-decoration: none;
|
|
margin: 0.25rem;
|
|
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.35);
|
|
background: var(--comfy-input-bg, #212121);
|
|
transition: all 0.1s ease-in-out;
|
|
padding: var(--padding-top) var(--padding-x) var(--padding-bottom);
|
|
display: inline-flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
:not(#fakeid) .mxd-button::before, :not(#fakeid) .mxd-button::after {
|
|
content: "";
|
|
display: block;
|
|
position: absolute;
|
|
border-radius: 0.33rem;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.12), inset -1px -1px 0px rgba(0, 0, 0, 0.75);
|
|
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.06), rgba(0, 0, 0, 0.15));
|
|
mix-blend-mode: screen;
|
|
}
|
|
:not(#fakeid) .mxd-button::after {
|
|
mix-blend-mode: multiply;
|
|
}
|
|
:not(#fakeid) .mxd-button:hover {
|
|
background: var(--comfy-menu-bg, #303030);
|
|
filter: brightness(120%);
|
|
}
|
|
:not(#fakeid) .mxd-button:active {
|
|
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);
|
|
filter: brightness(90%);
|
|
padding: calc(var(--padding-top) + 1px) calc(var(--padding-x) - 1px) calc(var(--padding-bottom) - 1px) calc(var(--padding-x) + 1px);
|
|
}
|
|
:not(#fakeid) .mxd-button:active::before, :not(#fakeid) .mxd-button:active::after {
|
|
box-shadow: 1px 1px 0px rgba(255, 255, 255, 0.15), inset 1px 1px 0px rgba(0, 0, 0, 0.5), inset 1px 3px 5px rgba(0, 0, 0, 0.33);
|
|
}
|
|
:not(#fakeid) .mxd-button.-blue {
|
|
background: #346599 !important;
|
|
}
|
|
:not(#fakeid) .mxd-button.-blue:hover {
|
|
background: #3b77b8 !important;
|
|
}
|
|
:not(#fakeid) .mxd-button.-blue:active {
|
|
background: #1d5086 !important;
|
|
}
|
|
:not(#fakeid) .mxd-button.-green {
|
|
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.06), rgba(0, 0, 0, 0.15)), #14580b;
|
|
}
|
|
:not(#fakeid) .mxd-button.-green:hover {
|
|
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.06), rgba(0, 0, 0, 0.15)), #1a6d0f;
|
|
}
|
|
:not(#fakeid) .mxd-button.-green:active {
|
|
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0.06)), #0f3f09;
|
|
}
|
|
:not(#fakeid) .mxd-button[disabled] {
|
|
box-shadow: none;
|
|
opacity: 0.6;
|
|
cursor: default;
|
|
pointer-events: none;
|
|
}
|
|
:not(#fakeid) .mxd-button[disabled]::before, :not(#fakeid) .mxd-button[disabled]::after {
|
|
display: none;
|
|
}
|
|
:not(#fakeid) .mxd-button.-mxd-loading {
|
|
color: transparent;
|
|
}
|
|
:not(#fakeid) .mxd-button.-mxd-loading::after {
|
|
content: "";
|
|
display: block;
|
|
box-sizing: border-box;
|
|
position: absolute;
|
|
top: calc(50% - 7px);
|
|
left: calc(50% - 7px);
|
|
width: 14px;
|
|
height: 14px;
|
|
border-radius: 50%;
|
|
border: 2px solid currentColor;
|
|
border-top-color: transparent;
|
|
color: var(--input-text, #fff);
|
|
background: none;
|
|
box-shadow: none;
|
|
mix-blend-mode: normal;
|
|
animation: mxd-button-spin 0.6s linear infinite;
|
|
}
|
|
@keyframes mxd-button-spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
:not(#fakeid) .mxd-comfybar-top-button-group {
|
|
font-size: 0;
|
|
flex: 1 1 auto;
|
|
display: flex;
|
|
align-items: stretch;
|
|
}
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button {
|
|
margin: 0;
|
|
flex: 1 1;
|
|
height: 36px;
|
|
padding: 0 12px;
|
|
border-radius: 0;
|
|
background: var(--p-button-secondary-background);
|
|
color: var(--p-button-secondary-color);
|
|
}
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button.-primary {
|
|
background: var(--p-button-primary-background);
|
|
color: var(--p-button-primary-color);
|
|
}
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button::before, :not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button::after {
|
|
border-radius: 0;
|
|
}
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button svg {
|
|
fill: currentColor;
|
|
width: 28px;
|
|
height: 28px;
|
|
}
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button:first-of-type,
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button:first-of-type::before,
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button:first-of-type::after {
|
|
border-top-left-radius: 0.33rem;
|
|
border-bottom-left-radius: 0.33rem;
|
|
}
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button:last-of-type,
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button:last-of-type::before,
|
|
:not(#fakeid) .mxd-comfybar-top-button-group .mxd-comfybar-top-button:last-of-type::after {
|
|
border-top-right-radius: 0.33rem;
|
|
border-bottom-right-radius: 0.33rem;
|
|
}
|