--- title: "HTMX Setup" audience: [developer] summary: "How HTMX is integrated under a strict CSP, and the conventions for adding external JS and CSS to HTMX partials." --- # HTMX Setup This document describes how the member-console uses HTMX and how its configuration interacts with the Content Security Policy (CSP). ## Overview The member-console uses [HTMX](https://htmx.org/) for dynamic UI updates without full page reloads. All interactive sections (operator tabs, site management, workspace switching) use the **HTMX partial pattern**: the server renders HTML fragments that HTMX swaps into the DOM. ### Version HTMX is vendored as a static asset at `internal/embeds/static/htmx.min.js` (currently v4.0.0; upgraded from v2.0.4 by the `htmx-4` change, 2026-08-31). The migration is complete: no `htmx-2-compat` shim, no `implicitInheritance` flag, and lint fails htmx 2 residue (`hx-disinherit`, camelCase event names, compat references). Attribute inheritance is explicit: only the page shells mark `hx-boost:inherited`; everything else declares its own attributes (see `design-system.md` §7). Requests carry no CSRF token; cross-origin protection is the server's origin check (`internal/middleware/csrf.go`). ### Loading HTMX is loaded via a `