Files
olivv-cs-ComfyUI-FunPack/app/index.html
T
digital-garbage 835fab7864 core+shell: the bridge, and the first module through it
One declaration does three jobs: renders the panel, carries the defaults, names
the values that come back. A module writes no DOM and reads no DOM.

Validation refuses rather than repairs -- unknown type, a renderer its type does
not have, a label that is not text, a default outside its own bounds, a when
naming a key the module never declared. A module that is wrong does not get a
best-effort panel; it does not load, and says why once.

Ordering is by declared relation and stage, never priority numbers, and a cycle
drops only the modules in it. Compatibility is by trait, never model name.

The shell hands a module { composer, values, on, shell } and nothing else: no
node, no document, no kit internals. It cannot style anything because it is
never given anything that could.

catalogue/hide.html puts one good module and five broken ones through the real
shell and shows the result: one panel, five absent, no placeholders. The lint
fixtures make the scanner prove it catches each rule, so a clean scan means
something.

First slice: modules/system/appearance. Two settings, an optional ui.js, and
clicking Light actually turns the app light.
2026-08-28 19:58:06 +03:00

22 lines
690 B
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>FunPack</title>
<script src="/funpack/app/shell/theme.js"></script>
<link rel="stylesheet" href="/funpack/app/composer/composer.css">
<style>
/* The app frame itself: the only rule outside the kit, and it sets no
colours, sizes or type -- just the shape of the page. */
body { display: flex; }
#app { flex: 1; display: flex; min-height: 100vh; padding: var(--sp-6); }
#app > * { flex: 1; }
</style>
</head>
<body>
<div id="app"></div>
<script type="module" src="/funpack/app/boot.js"></script>
</body>
</html>