Files
olivv-cs-ComfyUI-FunPack/app/composer/elements/text.css
T
digital-garbage 62f92ecaf8 app: a menu bar, a timeline, and the prompt in a window of its own
v4's arrangement, which is the one that reads as an editor: a zone head
holds what acts on THAT zone, so the app grows a bar of its own for what
acts on the app.

* The menu bar. Brand, View and Settings, and whether ComfyUI is still on
  the other end. Only menus with something real in them exist -- an empty
  File menu is a promise the app does not keep.
* The prompt is written in the CONSTRUCTOR, a window. v4 called this the
  Composer; that name is taken here by the element kit, and two things
  called Composer in one repo is one thing nobody can search for. It is
  the longest thing a person writes and the least often read, and a
  permanent third of the centre column is the room the timeline needs.
  The host is built at startup and outlives every opening, so a window
  that opens twice does not throw away what was typed.
* The timeline replaces it, and Generate moves into its head with what
  the run is doing at the far end of the same head. No bar across the
  bottom: one that spans the window belongs to no region.

Four faults found on the way, three of them mine and one much older:

* THE OVERLAY ROOT WAS A STACKING CONTEXT. It documents at length that it
  must never be one -- and then set `position: fixed`, which makes one on
  its own. So the whole z ladder was measured inside that single element:
  an open menu at z 500 painted UNDER a button at z 1. Every overlay in
  the app was one positive z-index away from being buried, and the only
  reason nobody had seen it is that almost nothing claims a z-index. The
  root is static and zero-sized now; every layer in it is fixed already.
* Generate's hover ran `filter: brightness()`, which lightens the LABEL
  along with the fill under it -- the one thing that had to stay readable
  lost contrast in both themes. Only the fill moves now, and which way it
  moves depends on the theme: dark's accent carries near-black text so it
  goes lighter, light's carries white so it goes darker. Measured: no
  gradient stop under 4.1:1, hovered or at rest.
* A fixed-height head could not shrink below the width of everything in
  it, and a head now holds a title, three controls and a status. That
  min-content became the centre column's, so a 768px window laid out
  878px wide and scrolled sideways. It wraps now, as v4's does.
* A CSS patch of mine silently did nothing because its anchor text had
  moved and I had left the assertion off that one replacement. Every
  patch asserts now.
2026-08-30 22:11:53 +03:00

45 lines
2.1 KiB
CSS

.cx-h { font-family: var(--font-display); font-weight: var(--fw-semibold); color: var(--text); }
.cx-h-display { font-size: var(--fs-d2); line-height: var(--lh-d2); font-weight: var(--fw-bold); letter-spacing: -0.02em; }
.cx-h-xl { font-size: var(--fs-d3); line-height: var(--lh-d3); font-weight: var(--fw-bold); letter-spacing: -0.015em; }
.cx-h-lg { font-size: var(--fs-1); line-height: var(--lh-1); }
.cx-h-md { font-size: var(--fs-2); line-height: var(--lh-2); }
.cx-h-sm { font-size: var(--fs-3); line-height: var(--lh-3); }
.cx-t { color: var(--text); }
.cx-t-lg { font-size: var(--fs-2); line-height: var(--lh-2); }
.cx-t-md { font-size: var(--fs-3); line-height: var(--lh-3); }
.cx-t-sm { font-size: var(--fs-4); line-height: var(--lh-4); }
.cx-t-xs { font-size: var(--fs-6); line-height: var(--lh-6); }
.cx-hint { font-size: var(--fs-6); line-height: var(--lh-6); color: var(--muted); }
.cx-label { font-size: var(--fs-5); line-height: var(--lh-5); color: var(--text); }
.cx-eyebrow {
font-size: var(--fs-7); line-height: var(--lh-7);
letter-spacing: .08em; text-transform: uppercase;
color: var(--faint);
}
.cx-code { font-family: var(--font-mono); font-size: 0.92em; color: var(--accent-hi); }
.cx-code-block {
font-family: var(--font-mono); font-size: var(--fs-6); line-height: var(--lh-snug);
color: var(--text); background: var(--elev-2);
border: var(--bw) solid var(--line); border-radius: var(--r-3);
padding: var(--sp-4) var(--sp-5); margin: 0;
overflow-x: auto; /* wide code scrolls itself, never the page */
}
/* The one place the app names itself. The mark carries a little of its own
light, which is what stops a 5px dot reading as a bullet point. */
.cx-brand { display: inline-flex; align-items: center; gap: var(--sp-3); }
.cx-brand-mark {
inline-size: 9px; block-size: 9px; border-radius: var(--r-pill);
border: 2px solid var(--accent);
box-shadow: 0 0 6px var(--accent-soft);
}
.cx-brand-name {
font-family: var(--font-display); font-weight: var(--fw-bold);
font-size: var(--fs-3); letter-spacing: .2px; color: var(--text);
}