Files
Maxed-Out-99-ComfyUI-MaxedOut/web/lib/mxd_buttons.css
T
Maxed-Out-99andClaude Fable 5 4cb19be2e0 Restructure web/ into lib+nodes+vendor; merge power lora loader forks
- 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>
2026-07-10 06:41:35 -07:00

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;
}