We never share it.
Hypermedia Components
- Chip
Native elements like button, dialog, and
popover are the primary building blocks.
No Shadow DOM. htmx attributes, form behavior, and progressive enhancement work as expected.
Themes, density, and component values come from token files exported as CSS custom properties.
Confirm action, live search, remote dialog, filter popover — with documented server contracts.
The markup is the contract
Section titled “The markup is the contract”What you write is what ships — a semantic class on a native element, state in attributes, no wrapper runtime. The Code tab below is the wire format a server (or template engine, or code generator) emits:
We never share it.
<div class="hc-field"> <label class="hc-field__label" for="email">Email</label> <input class="hc-input" id="email" name="email" type="email"> <p class="hc-field__hint">We never share it.</p></div>
<button class="hc-button" data-variant="primary">Save</button><button class="hc-button">Cancel</button><span class="hc-badge" data-variant="info">Draft</span>Theming rides the same markup — try the color / density / dark switchers in the header and everything on this page follows.
HTML over the wire
Section titled “HTML over the wire”The server answers with fragments, htmx swaps them in, and the components just work — no JSON, no client state. Type below: a debounced request hits this site’s demo API and the results fragment swaps back.
Every one of the 25 recipes works this way — each page documents the server contract and runs it live against this site’s Worker. The page templates compose them into full screens.