Files
malkuthro-ComfyUI-Koolook/web/guide/guide.css
T
malkuthroandClaude Opus 4.7 972accfd22 docs(guide): onboarding guide overhaul — visuals, layout, and copy (#110)
* docs(guide): refine overview, mental-model diagram, cards, and recipes

- Sidebar overview: replace screenshot with post-#108 redesign, re-tune
  marker percentages and grid layout, bring markers flush to image edge,
  rewrite Nodes/Workflows action-bar callouts.
- Snapshot mental-model SVG: drop the U-shaped return arrow, restyle
  boxes with ForgeFlow accent strips, show actual on-disk file paths
  (Client_Shot010.json + Client_Shot010_autosave/periodic.json), rename
  Project library to Custom Folder, replace dramatic caption with a
  single-line equation-style summary of manual vs auto-save behaviour.
- Function cards: convert chip spans to bullet lists, replace "Safety /
  setup" with "Smart organization" (folders/drag-drop/move), tighten
  Search description, "Group" -> "Smart view" on Nodes chip.
- Recipes: hide focus-dot overlays, restore wrapper panel with darker
  #111111 fill, strip all styling from images, scale screenshots to 70%,
  right-align callouts to screenshot edge, split callout text into
  separate paragraphs, pin figcaption to bottom.
- Crop save-snapshot.png and load-snapshot.png to remove backdrop
  padding.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(guide): refreshed screenshots, recipe layout overhaul, marker re-tuning

Sidebar overview
- Replace sidebar-overview.png with the taller 666x1202 redesign so the
  screenshot fills more of the column height alongside the callouts.
- Re-measure section dividers (y=76/152/262/342/418/1202) and re-tune
  the six marker percentages to match the new image with ~0.4% inset
  inside each row band.

Recipes
- Replace all-icons-new.png, search-B.png, search-C.png with the
  redesigned screenshots showing post-#108 letter-glyph buttons.
- Recipe layout: outer wrapper restored with #111111 fill (darker than
  the screenshots' edge color), screenshots scaled to 70% with no inner
  border or shadow, callout right-aligned to the screenshot's right
  edge (margin-right: 15%), figcaption pinned to bottom via flex
  margin-top: auto, screenshot+callout pair vertically centered above
  the figcaption.
- Add folder-actions.png as a new "Smart organization" recipe with
  callout text covering create/delete/drag-drop.
- Add right-click-functions.png replacing the workflow-search recipe;
  callout describes the right-click action menu on saved workflows.
- Drop the autosave-recovery.svg in favor of the all-icons recipe; the
  recovery topic is already covered upstream in the Snapshot file box.
- Workflow save-selection callout rewritten with two paragraphs
  (Save / Save selection) and explains the 'Module' tag.
- Load snapshot callout split into two paragraphs and shortened.
- Search-C callout broadened to "Search narrows displayed items so
  useful nodes and workflows are easier to find."
- Re-enable .focus-module overlay as a translucent yellow rectangle
  anchored bottom-right of the all-icons screenshot, highlighting the
  two workflow action buttons.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(guide): remove orphan image assets

- web/guide/img/autosave-recovery.svg — replaced upstream by the
  folder-actions recipe; the SVG is no longer referenced from
  index.html.
- web/guide/img/screenshots/search-B.png — replaced upstream by
  right-click-functions.png in the workflow-actions recipe.

Tree now contains only the 9 image assets actually used by the guide
(2 SVGs + 7 PNG screenshots).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(guide): add Two-layer save band, dedupe Snapshot band header

- New band "Two-layer save" sits between the snapshot mental-model band
  and the simple-workflow section. Explains in prose: named save vs
  background autosave, the <snapshot>_autosave/ recovery copy, the
  YES/NO load-prompt when autosave is newer, and pre-load recovery
  files for reversible Loads.
- Style the new band with .band-text + scoped <code> styling for
  inline path fragments (subtle tinted bg, monospace).
- Snapshot mental-model band: replace h2 ("Snapshot = your project
  kit") with the SVG's previous inner header ("Snapshot saves the
  whole project kit.") since the two were redundant. Drop the inner
  header from the SVG and shift boxes/arrows/caption up to absorb the
  freed space (SVG height 460 -> 320).
- Drop max-width: 760px on .band > p so the band's intro paragraph
  spans full panel width.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 21:29:27 +02:00

572 lines
11 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* SPDX-FileCopyrightText: 2025-2026 Kforge Labs <https://github.com/malkuthro/ComfyUI-Koolook> */
/* SPDX-License-Identifier: GPL-3.0-only */
:root {
color-scheme: dark;
/* ForgeFlow-inspired static guide skin.
Source reference: ../ForgeFlow/docs/UI_DESIGN_SYSTEM.md */
--bg: #0e0e0e;
--panel: #151515;
--panel-2: #1a1a1f;
--titlebar: #24242c;
--text: #f9fafb;
--muted: #707982;
--muted-deep: #4d535d;
--line: #302f2f;
--blue: #4268ba;
--sky: #052f4a;
--sky-hover: #1a6d94;
--green: #4a8058;
--amber: #461901;
--purple: #452e83;
--pink: #77234d;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-width: 320px;
background:
radial-gradient(rgba(150, 150, 150, 0.08) 1px, transparent 1px),
var(--bg);
background-size: 13px 13px;
color: var(--text);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
.hero,
main {
width: min(1180px, calc(100% - 32px));
margin: 0 auto;
}
.hero {
padding: 48px 0 24px;
}
.eyebrow {
margin: 0 0 8px;
color: var(--blue);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
h1,
h2,
h3,
p {
margin-top: 0;
}
h1 {
max-width: 780px;
margin-bottom: 14px;
font-size: clamp(34px, 7vw, 68px);
line-height: 1;
letter-spacing: 0;
}
h2 {
margin-bottom: 12px;
font-size: clamp(27px, 4vw, 42px);
line-height: 1.05;
letter-spacing: 0;
}
h3 {
margin-bottom: 8px;
font-size: 18px;
letter-spacing: 0;
}
.lead {
max-width: 700px;
color: var(--muted);
font-size: 19px;
}
.section {
display: grid;
grid-template-columns: minmax(240px, 0.82fr) minmax(0, 1.18fr);
gap: 28px;
align-items: center;
padding: 34px 0;
}
.section-copy {
max-width: 440px;
padding-left: 16px;
border-left: 4px solid var(--blue);
}
.section-copy.wide {
max-width: 720px;
grid-column: 1 / -1;
}
.section-copy p,
.band > p,
.cards p,
figcaption {
color: var(--muted);
}
.visual {
margin: 0;
}
.visual img {
display: block;
width: 100%;
height: auto;
border: 1px solid var(--line);
background: var(--panel);
border-radius: 8px;
}
.overview-map {
display: grid;
/* Slightly wider screenshot column + tighter gap so the sidebar shot's
natural portrait height grows to roughly match the callouts column
height (image aspect 728:1206 → ~1.656x width). Markers scale with the
image since they use percentage positioning. */
grid-template-columns: minmax(240px, 0.84fr) minmax(220px, 0.66fr);
gap: 24px;
align-items: center;
padding: 22px 28px 22px 22px;
border: 1px solid var(--line);
border-radius: 8px;
background: #101010;
}
.overview-shot {
position: relative;
width: min(100%, 450px);
margin: 0 auto;
overflow: visible;
}
.overview-shot img {
border-color: #3c3c3c;
background: #151515;
}
.overview-box {
position: absolute;
right: -4px;
width: 4px;
border: 0;
border-radius: 999px;
background: currentColor;
opacity: 0.78;
pointer-events: none;
}
.overview-box::after {
content: none;
}
/* Marker percentages tuned to the redesigned 666×1202 sidebar-overview.png.
Section dividers measured at y = 76 / 152 / 262 / 342 / 418 / 1202
(= 6.32% / 12.65% / 21.80% / 28.45% / 34.78% / 100%). Each bar is inset
~0.4% from its dividers so the marker sits cleanly inside the row band
instead of straddling the divider line. */
.overview-snapshot {
top: 0.5%;
height: 5.3%;
color: #4a8058;
}
.overview-tools {
top: 6.8%;
height: 5.3%;
color: #4268ba;
}
.overview-search {
top: 13.2%;
height: 8.2%;
color: #d59b3d;
}
.overview-nodes {
top: 22.3%;
height: 5.7%;
color: #b64747;
}
.overview-workflows {
top: 28.9%;
height: 5.4%;
color: #452e83;
}
.overview-saved {
top: 35.3%;
height: 63.7%;
color: #4a8058;
}
.overview-callouts {
display: grid;
gap: 22px;
}
.overview-callout {
position: relative;
padding-left: 18px;
color: var(--blue);
}
.overview-callout::before {
content: "";
position: absolute;
top: 4px;
bottom: 4px;
left: 0;
width: 4px;
border-radius: 999px;
background: currentColor;
opacity: 0.82;
}
.overview-callout::after {
content: none;
}
.overview-callout h3 {
margin: 0 0 2px;
color: currentColor;
font-size: 20px;
}
.overview-callout p {
margin: 0;
color: var(--muted);
font-size: 14px;
}
.overview-callout.snapshot::before,
.overview-callout.saved::before,
.overview-callout.snapshot,
.overview-callout.saved {
color: var(--green);
}
.overview-callout.tools {
color: var(--blue);
}
.overview-callout.search {
color: #d59b3d;
}
.overview-callout.nodes {
color: #b64747;
}
.overview-callout.workflows {
color: var(--purple);
}
figcaption {
margin-top: 10px;
color: var(--muted);
font-size: 13px;
}
.band {
margin: 28px 0;
padding: 0;
border: 1px solid var(--line);
border-radius: 6px;
background: var(--panel);
overflow: hidden;
}
.band > div {
position: relative;
padding: 16px 22px;
background: var(--panel);
border-bottom: 1px solid var(--line);
}
.band > div::before {
content: "";
position: absolute;
inset: 0 auto 0 0;
width: 4px;
background: var(--green);
}
.band > p {
padding: 18px 22px 0;
font-size: 17px;
}
/* Text-only band (no figure to provide bottom padding) — its trailing
paragraph needs explicit bottom space so the body text doesn't sit
flush against the panel's bottom edge. */
.band-text > p:last-child {
padding-bottom: 22px;
}
/* Inline code spans — used for filename / path fragments inside body
prose like <snapshot>_autosave/. Slight tinted bg + monospace stack
so they read as code without dominating the line. */
.band p code,
.band-text p code {
padding: 1px 6px;
border-radius: 4px;
background: rgb(255 255 255 / 6%);
color: var(--text);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 0.92em;
}
.full {
margin: 18px 22px 22px;
}
.steps {
margin: 0;
padding-left: 20px;
color: var(--muted);
}
.steps li {
margin-bottom: 9px;
}
.steps strong {
color: var(--text);
font-weight: 650;
}
.cards {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px;
padding: 30px 0;
}
.cards article {
position: relative;
min-height: 142px;
padding: 18px 16px 16px 20px;
border: 1px solid var(--line);
border-radius: 6px;
background: var(--panel);
overflow: hidden;
}
.cards article::before {
content: "";
position: absolute;
inset: 0 auto 0 0;
width: 4px;
background: var(--blue);
}
.cards article:nth-child(2)::before {
background: var(--sky-hover);
}
.cards article:nth-child(3)::before {
background: var(--purple);
}
.cards article:nth-child(4)::before {
background: var(--green);
}
.cards article:nth-child(5)::before {
background: var(--pink);
}
.function-list {
margin: 14px 0 0;
padding-left: 18px;
list-style: disc;
}
.function-list li {
color: var(--text);
font-size: 12px;
font-weight: 700;
line-height: 1.6;
}
.recipes {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 40px 32px;
padding: 34px 0 64px;
}
/* Each recipe is wrapped in its own panel so the row of recipes reads as a
set of self-contained "case studies" — same outer container shape, same
inner layout (screenshot above, callout below, caption at bottom).
Wrapper is a flex column so the figcaption uses `margin-top: auto` and
sits flush at the bottom of every panel, aligned across the row even when
the callouts above vary in height. Wrapper bg is intentionally darker
than --panel so the screenshots inside read as the lighter focal subject. */
.recipe-real {
display: flex;
flex-direction: column;
padding: 22px 22px 22px;
border: 1px solid var(--line);
border-radius: 8px;
/* Darker than the screenshot's own edge color (#171718) so the screenshot
reads as the lighter focal subject inside a darker frame. */
background: #111111;
}
.recipe-real figcaption {
margin-top: auto;
padding-top: 22px;
text-align: center;
}
.recipe-shot {
position: relative;
max-width: 70%;
/* `margin-top: auto` + figcaption's existing `margin-top: auto` distribute
the leftover vertical space equally — top space above the shot equals
space between callout and figcaption, so the shot+callout pair is
vertically centered in the panel above the bottom-pinned figcaption. */
margin: auto auto 0;
}
.recipes .recipe-shot img {
display: block;
width: 100%;
height: auto;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
outline: none;
}
/* Focus-dot overlays were visually noisy and frequently misaligned over the
underlying screenshots; hidden by default until they can be redrawn
against the new sidebar imagery. Aria-hidden already, so nothing changes
for AT users. Specific overlays (e.g. .focus-module) re-enable themselves
below with positioning tuned to the new screenshots. */
.focus-dot {
display: none;
}
/* Workflow save-selection recipe — translucent yellow overlay highlighting
the two action buttons (floppy + grid-2x2) at the bottom-right of the
Workflows row in all-icons-new.png. Anchored to the bottom-right corner
of the screenshot since that's where the buttons sit in the PNG. */
.recipes .focus-module {
display: block;
position: absolute;
bottom: 0;
right: 0;
width: 22%;
height: 15.6%;
background: rgb(255 210 74 / 30%);
border-radius: 6px;
box-shadow: none;
}
.recipe-callout {
width: fit-content;
/* About two-thirds the width of the recipe screenshot, so the callout
reads as a sub-element rather than a full-width banner. Right-aligned
to the SCREENSHOT'S right edge: the screenshot is `max-width: 70%`
centered, so its right edge sits at the 85% mark of the wrapper, which
is 15% from the wrapper's right side. `margin-right: 15%` reproduces
that offset, `margin-left: auto` pushes the callout right against it. */
max-width: min(240px, calc(100% - 24px));
margin: 22px 15% 0 auto;
padding: 14px 18px 14px 20px;
border-left: 4px solid var(--blue);
border-radius: 6px;
background: #111111;
box-shadow: 0 10px 22px rgb(0 0 0 / 22%);
}
.recipe-callout p {
margin: 0;
color: var(--muted);
font-size: 14px;
line-height: 1.55;
}
/* Paragraph chapters inside a callout — when a recipe explains two distinct
actions (e.g. Save vs. Save as new), each gets its own paragraph and they
are separated by a small gap so they read as visually distinct topics. */
.recipe-callout p + p {
margin-top: 8px;
}
.recipe-callout strong {
color: var(--text);
font-size: 14px;
font-weight: 700;
}
.recipe-callout.amber {
border-left-color: #c9944b;
}
.recipe-callout.green {
border-left-color: var(--green);
}
.recipe-callout.purple {
border-left-color: var(--purple);
}
@media (max-width: 980px) {
.cards {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 860px) {
.section,
.recipes {
grid-template-columns: 1fr;
}
.overview-map {
grid-template-columns: 1fr;
}
.cards article {
min-height: 0;
}
}
@media (max-width: 520px) {
.hero,
main {
width: min(100% - 20px, 1180px);
}
.hero {
padding-top: 34px;
}
.band {
padding: 18px;
}
.cards {
grid-template-columns: 1fr;
}
}