Reference

UI elements

Every element the compiler knows, straight from src/elements.ts. All of them also take class, style, id and ref, and any DOM event with on:event.
ElementContent-> fires onPropsFlagsHTML
texttext—role tagbold muted small large danger primary success<span>
titletext—role tagbold muted small large danger primary success<h2>
buttontextclickdisabled roleprimary danger small<button>
inputstate to bindenterplaceholder type disabled label min max step rolerequired<input>
textareastate to bind—placeholder rows disabled label rolerequired<textarea>
selectstate to bindchangeoptions placeholder disabled label role—<select>
checkboxstate to bindchangelabel disabled role—<input>
radiostate to bindchangeoptions label role—<div>
tabsstate to bindchangeoptions label role—<div>
filestate to bindchangeaccept label disabled rolemultiple<input>
modalstate to bind—gap pad align justify role—<dialog>
imagesource URL—alt width height role—<img>
videosource URL—width height poster rolecontrols autoplay loop muted<video>
audiosource URL—rolecontrols autoplay loop muted<audio>
linktext—to href target rolemuted<a>
badgetext—roleprimary success danger<span>
icontext—size label rolemuted primary success danger<span>
spinner——role—<span>
divider——role—<hr>
row——gap pad align justify role tagwrap<div>
column——gap pad align justify role tag—<div>
grid——gap pad align justify cols role tag—<div>
card——gap pad align justify role tag—<div>
form—submitgap pad align justify rolenovalidate<form>
list——role—<ul>
itemtextclickrolemuted<li>
table——role—<table>
tr—clickrole—<tr>
thtext—role—<th>
tdtext—rolemuted bold<td>
canvas——width height role—<canvas>
ArtScript
column gap=4 align=center {
  title "Users"
  input draft placeholder="Name" -> add(draft)
  button "Add" primary -> add(draft)
  for u in users key u.id {
    UserCard user=u
  }
}