Hexpunk
InstallConceptsElementsProsehp-cellhp-codehp-copyhp-hexhp-latexhp-visually-hiddenhp-buttonhp-checkboxhp-formhp-labelhp-radiohp-selecthp-sliderhp-togglehp-toggle-grouphp-badgehp-taghp-progresshp-spinnerhp-backgroundhp-clusterhp-collapsiblehp-demohp-gridhp-scroll-areahp-separatorhp-sidebarhp-toolbarhp-avatarhp-iconhp-pixelhp-linkhp-menubarhp-navigation-menuhp-tabshp-alert-dialoghp-context-menuhp-dialoghp-dropdown-menuhp-hover-cardhp-popoverhp-tooltiphp-bannerhp-toasthp-tetherhp-module-handlehp-unfold-listhp-unfold-overlayhp-unfold-pagehp-bondhp-link-nodePaletteAnimationsReleases

hp-form

Form container — thin wrapper around the native <form> with the hexpunk spacing defaults applied. Forwards method, action, name, novalidate. Stub: form-level validation state and submission lifecycle integration with the input atoms is a follow-up.

Examples API Intent Changelog
accept terms
enable notifications
save reset
<body> <hp-form> <hp-checkbox id="terms"></hp-checkbox> <hp-label for="terms">Accept terms</hp-label> <hp-button type="submit">save</hp-button> </hp-form> </body>

Install

bun add @hexpunk/core lit
import "@hexpunk/core";

Properties

Property Attribute Type Default Description
method method "get" | "post" | "dialog" "post" HTTP method for native submission. Default `post`.
action action string "" Submission endpoint.
name name string | undefined Optional form name.
noValidate no-validate boolean false Skip browser native validation when set — let custom JS handle it.

Slots

Slot Description
(default) Form controls (hp-checkbox, hp-toggle, hp-button, etc.)

Status

Stub — the form container ships the layout chrome; full FormData integration with the hp-* input set (checkbox, toggle, radio, slider, hp-input when added) is on the roadmap.

No per-component entries in CHANGELOG.md yet.

esc