jevcrates.git / jev-ui / CLAUDE.md
1@README.md
2
3- **Pure, and nothing fetched.** No file, clock or network, and no address to
4  another site in anything served (`asset`'s tests hold the stylesheet and the
5  page to it). A site's content security policy is `default-src 'none'`; this
6  crate must keep working under it, which is why `Assets::Linked` exists.
7- **One look.** Do not add a theme switch, a dark mode or a per-site palette:
8  the look is the Jev sites' shared identity. A site's own rules go in its own
9  stylesheet, after this one.
10- **Site-specific things are parameters, never branches.** Nothing here may
11  name lmjtfy or whiskers (their words are theirs).
12- **`ui.css` and `ui.js` are the shared half only.** The ask flow, the rules
13  diagram, the code pages and the toasts are lmjtfy's and stay there. The
14  script must not fetch (`asset`'s test).
15- **`datastar.js` is upstream's release build, not edited.** Move it by
16  replacing the file and checking the `data-*` syntax of the sites against it.
17- **A new asset is a line in `asset::ALL`** and nothing else: `find` reads it.
18- Work here, not in a consumer's submodule checkout (see the root).