#HTML

    The html package provides wrapper functions for all HTML elements. Basic usage:

    ///|
    fn view(emit : Emit[Msg], model : Model) -> Html {
    div(id="counter", style=["border: 1px solid black"], [
    h1(id="title", "the count is \{model.count}"),
    button(class="...", on_click=emit(Inc), "+"),
    button(class="...", on_click=emit(Dec), "-"),
    ])
    }

    Frequently used attributes are exposed as optional arguments. To access any HTML attribute, see Attribute Builder. Most HTML wrappers accept a positional argument whose type is constrained by IsChildren, so you can pass an Array[Html] or a String. See Children for details.

    There are also a few special helpers you will use frequently:

    • text()

      To represent text in HTML, use the text function.

      ///|
      let _ = p([text("hello world")])
      let _ = p("hello world") // equivalent to above

    • nothing

      It does not represent an actual HTML element. This is useful when handling multiple Option values in your model:

      ///|
      fn bad(path : Path, tag : Tag?) {
      let path = foo(path)
      let tag = match tag {
      None => []
      Some(x) => [view(x)] // Yuck!
      }
      div([path] + tag) // Don't do this
      }

      ///|
      fn good(path : Path, tag : Tag?) {
      let path = foo(path)
      let tag = match tag {
      None => nothing
      Some(x) => view(x)
      }
      div([path, tag]) // Use @html.nothing
      }

    #Children

    Almost every HTML element accepts a positional argument whose type is bounded by the IsChildren trait. This means you can pass any type that implements this trait as children to the HTML wrapper.

    Currently it accepts the following types:

    typeexample
    Array[Html]div([html1, html2])
    Stringdiv("string here")
    Htmldiv(p([...]))
    Map[String,Html]div({"k1": html1, "k2": html2})

    #Keyed Children

    When children are passed as Map[String, Html], Rabbita treats them as keyed children. Keys are used to match and reuse nodes across updates, which helps preserve DOM and Cell state when items are inserted, removed, or reordered.

    • Keys must be unique and stable (use a business ID, not an array index).
    • Changing a key means the old node is removed and a new one is created.

    Example:

    ///|
    let html : Html = ul({
    "todo-1": li("Buy milk"),
    "todo-2": li("Write docs"),
    "todo-3": li("Write code"),
    })

    #Event Handlers

    Rabbita separates event callbacks from UI views to manage side effects and avoid stale state, keeping UI predictable as code grows.

    HTML wrappers provide common events as optional arguments like on_click, on_mouseup, on_scroll, and on_submit. Each requires a Cmd binding to a Msg you define. When an event fires, the Msg (and any extra payload) is forwarded to the centralized state update function.

    Registering the same event more than once composes the handlers in registration order. When a wrapper receives both an event in attrs and its matching named event argument, the attrs handler runs first and the named handler runs second. Non-event attributes and properties keep their usual last-write-wins behavior.

    Example:

    ///|
    #cfg(target="js")
    fn update2(msg : Msg2, _ : Model2) -> Model2 {
    match msg {
    StartDraw(mouse) => println("start at \{mouse.offset_pos()}")
    EndDraw(mouse) => println("end at \{mouse.offset_pos()}")
    }
    }

    ///|
    fn view2(emit : Emit[Msg2], _ : Model2) -> Html {
    canvas(
    on_mousedown=m => emit(StartDraw(m)),
    on_mouseup=m => emit(EndDraw(m)),
    nothing,
    )
    }

    #Advanced Usage

    #Attribute Builder

    The attribute builder is a workaround for cases where the HTML wrapper does not expose a specific attribute or event. It is not the primary API and may be less ergonomic or less type-safe than the dedicated wrapper parameters. Prefer the wrapper options when available, and fall back to the builder only when needed.

    Example:

    ///|
    let html1 : Html = div(
    attrs=Attrs::build().class("card").style("gap", "12px").data("..."),
    [text("Hello")],
    )

    #Escape Hatch

    The wrapper functions and properties provided here may not cover all possible use cases. If you encounter missing functionality, feel free to file an issue or use the node() function as a workaround. The node() function allows you to manually specify the tag name, attributes, and children for your HTML element, offering flexibility for advanced or uncommon scenarios.

    ///|
    let html2 : Html = node(
    "div",
    Attrs::build().class("card").style("gap", "12px").data("..."),
    [p("text1"), p("text2")],
    )

    Attrs

    type Attrs

    Attrs::abbr

    fn Attrs::abbr(self : Attrs, value : String) -> Attrs

    Attrs::accept

    fn Attrs::accept(self : Attrs, value : String) -> Attrs

    Attrs::accept_charset

    fn Attrs::accept_charset(self : Attrs, value : String) -> Attrs

    Attrs::accesskey

    fn Attrs::accesskey(self : Attrs, value : String) -> Attrs

    Attrs::action

    fn Attrs::action(self : Attrs, value : String) -> Attrs

    Attrs::align

    fn Attrs::align(self : Attrs, value : String) -> Attrs

    Attrs::allow

    fn Attrs::allow(self : Attrs, value : String) -> Attrs

    Attrs::allowfullscreen

    fn Attrs::allowfullscreen(self : Attrs, value : Bool) -> Attrs

    Attrs::alpha

    fn Attrs::alpha(self : Attrs, value : String) -> Attrs

    Attrs::alt

    fn Attrs::alt(self : Attrs, value : String) -> Attrs

    Attrs::anchor

    fn Attrs::anchor(self : Attrs, value : String) -> Attrs

    Attrs::aria_activedescendant

    fn Attrs::aria_activedescendant(self : Attrs, value : String) -> Attrs

    Attrs::aria_atomic

    fn Attrs::aria_atomic(self : Attrs, value : String) -> Attrs

    Attrs::aria_autocomplete

    fn Attrs::aria_autocomplete(self : Attrs, value : String) -> Attrs

    Attrs::aria_braillelabel

    fn Attrs::aria_braillelabel(self : Attrs, value : String) -> Attrs

    Attrs::aria_brailleroledescription

    fn Attrs::aria_brailleroledescription(self : Attrs, value : String) -> Attrs

    Attrs::aria_busy

    fn Attrs::aria_busy(self : Attrs, value : String) -> Attrs

    Attrs::aria_checked

    fn Attrs::aria_checked(self : Attrs, value : String) -> Attrs

    Attrs::aria_colcount

    fn Attrs::aria_colcount(self : Attrs, value : String) -> Attrs

    Attrs::aria_colindex

    fn Attrs::aria_colindex(self : Attrs, value : String) -> Attrs

    Attrs::aria_colindextext

    fn Attrs::aria_colindextext(self : Attrs, value : String) -> Attrs

    Attrs::aria_colspan

    fn Attrs::aria_colspan(self : Attrs, value : String) -> Attrs

    Attrs::aria_controls

    fn Attrs::aria_controls(self : Attrs, value : String) -> Attrs

    Attrs::aria_current

    fn Attrs::aria_current(self : Attrs, value : String) -> Attrs

    Attrs::aria_describedby

    fn Attrs::aria_describedby(self : Attrs, value : String) -> Attrs

    Attrs::aria_description

    fn Attrs::aria_description(self : Attrs, value : String) -> Attrs

    Attrs::aria_details

    fn Attrs::aria_details(self : Attrs, value : String) -> Attrs

    Attrs::aria_disabled

    fn Attrs::aria_disabled(self : Attrs, value : String) -> Attrs

    Attrs::aria_dropeffect

    fn Attrs::aria_dropeffect(self : Attrs, value : String) -> Attrs

    Attrs::aria_errormessage

    fn Attrs::aria_errormessage(self : Attrs, value : String) -> Attrs

    Attrs::aria_expanded

    fn Attrs::aria_expanded(self : Attrs, value : String) -> Attrs

    Attrs::aria_flowto

    fn Attrs::aria_flowto(self : Attrs, value : String) -> Attrs

    Attrs::aria_grabbed

    fn Attrs::aria_grabbed(self : Attrs, value : String) -> Attrs

    Attrs::aria_haspopup

    fn Attrs::aria_haspopup(self : Attrs, value : String) -> Attrs

    Attrs::aria_hidden

    fn Attrs::aria_hidden(self : Attrs, value : String) -> Attrs

    Attrs::aria_invalid

    fn Attrs::aria_invalid(self : Attrs, value : String) -> Attrs

    Attrs::aria_keyshortcuts

    fn Attrs::aria_keyshortcuts(self : Attrs, value : String) -> Attrs

    Attrs::aria_label

    fn Attrs::aria_label(self : Attrs, value : String) -> Attrs

    Attrs::aria_labelledby

    fn Attrs::aria_labelledby(self : Attrs, value : String) -> Attrs

    Attrs::aria_level

    fn Attrs::aria_level(self : Attrs, value : String) -> Attrs

    Attrs::aria_live

    fn Attrs::aria_live(self : Attrs, value : String) -> Attrs

    Attrs::aria_modal

    fn Attrs::aria_modal(self : Attrs, value : String) -> Attrs

    Attrs::aria_multiline

    fn Attrs::aria_multiline(self : Attrs, value : String) -> Attrs

    Attrs::aria_multiselectable

    fn Attrs::aria_multiselectable(self : Attrs, value : String) -> Attrs

    Attrs::aria_orientation

    fn Attrs::aria_orientation(self : Attrs, value : String) -> Attrs

    Attrs::aria_owns

    fn Attrs::aria_owns(self : Attrs, value : String) -> Attrs

    Attrs::aria_placeholder

    fn Attrs::aria_placeholder(self : Attrs, value : String) -> Attrs

    Attrs::aria_posinset

    fn Attrs::aria_posinset(self : Attrs, value : String) -> Attrs

    Attrs::aria_pressed

    fn Attrs::aria_pressed(self : Attrs, value : String) -> Attrs

    Attrs::aria_readonly

    fn Attrs::aria_readonly(self : Attrs, value : String) -> Attrs

    Attrs::aria_relevant

    fn Attrs::aria_relevant(self : Attrs, value : String) -> Attrs

    Attrs::aria_required

    fn Attrs::aria_required(self : Attrs, value : String) -> Attrs

    Attrs::aria_roledescription

    fn Attrs::aria_roledescription(self : Attrs, value : String) -> Attrs

    Attrs::aria_rowcount

    fn Attrs::aria_rowcount(self : Attrs, value : String) -> Attrs

    Attrs::aria_rowindex

    fn Attrs::aria_rowindex(self : Attrs, value : String) -> Attrs

    Attrs::aria_rowindextext

    fn Attrs::aria_rowindextext(self : Attrs, value : String) -> Attrs

    Attrs::aria_rowspan

    fn Attrs::aria_rowspan(self : Attrs, value : String) -> Attrs

    Attrs::aria_selected

    fn Attrs::aria_selected(self : Attrs, value : String) -> Attrs

    Attrs::aria_setsize

    fn Attrs::aria_setsize(self : Attrs, value : String) -> Attrs

    Attrs::aria_sort

    fn Attrs::aria_sort(self : Attrs, value : String) -> Attrs

    Attrs::aria_valuemax

    fn Attrs::aria_valuemax(self : Attrs, value : String) -> Attrs

    Attrs::aria_valuemin

    fn Attrs::aria_valuemin(self : Attrs, value : String) -> Attrs

    Attrs::aria_valuenow

    fn Attrs::aria_valuenow(self : Attrs, value : String) -> Attrs

    Attrs::aria_valuetext

    fn Attrs::aria_valuetext(self : Attrs, value : String) -> Attrs

    Attrs::as_

    fn Attrs::as_(self : Attrs, value : String) -> Attrs

    Attrs::async_

    fn Attrs::async_(self : Attrs, value : Bool) -> Attrs

    Attrs::autocapitalize

    fn Attrs::autocapitalize(self : Attrs, value : String) -> Attrs

    Attrs::autocomplete

    fn Attrs::autocomplete(self : Attrs, value : AutoComplete) -> Attrs

    Attrs::autocorrect

    fn Attrs::autocorrect(self : Attrs, value : String) -> Attrs

    Attrs::autofocus

    fn Attrs::autofocus(self : Attrs, value : Bool) -> Attrs

    Attrs::autoplay

    fn Attrs::autoplay(self : Attrs, value : Bool) -> Attrs

    Attrs::background

    fn Attrs::background(self : Attrs, value : String) -> Attrs

    Attrs::bgcolor

    fn Attrs::bgcolor(self : Attrs, value : String) -> Attrs

    Attrs::border

    fn Attrs::border(self : Attrs, value : Int) -> Attrs

    Attrs::build

    fn Attrs::build() -> Attrs

    Attrs::capture

    fn Attrs::capture(self : Attrs, value : String) -> Attrs

    Attrs::charset

    fn Attrs::charset(self : Attrs, value : String) -> Attrs

    Attrs::checked

    fn Attrs::checked(self : Attrs, value : Bool) -> Attrs

    Attrs::cite

    fn Attrs::cite(self : Attrs, value : String) -> Attrs

    Attrs::class

    fn Attrs::class(self : Attrs, value : String) -> Attrs

    Attrs::closedby

    fn Attrs::closedby(self : Attrs, value : String) -> Attrs

    Set the dialog closedby attribute.

    Browser support is limited. Rabbita only emits the attribute; it does not polyfill dismissal behavior. Values include "none", "closerequest", and "any". MDN

    Attrs::color

    fn Attrs::color(self : Attrs, value : String) -> Attrs

    Attrs::colorspace

    fn Attrs::colorspace(self : Attrs, value : String) -> Attrs

    Attrs::cols

    fn Attrs::cols(self : Attrs, value : Int) -> Attrs

    Attrs::colspan

    fn Attrs::colspan(self : Attrs, value : Int) -> Attrs

    Attrs::content

    fn Attrs::content(self : Attrs, value : String) -> Attrs

    Attrs::contenteditable

    fn Attrs::contenteditable(self : Attrs, value : String) -> Attrs

    Attrs::controls

    fn Attrs::controls(self : Attrs, value : Bool) -> Attrs

    Attrs::coords

    fn Attrs::coords(self : Attrs, value : String) -> Attrs

    Attrs::copy

    fn Attrs::copy(self : Attrs) -> Attrs

    Return an independent copy that can be extended without mutating self.

    Attrs::crossorigin

    fn Attrs::crossorigin(self : Attrs, value : String) -> Attrs

    Attrs::csp

    fn Attrs::csp(self : Attrs, value : String) -> Attrs

    Attrs::data

    fn Attrs::data(self : Attrs, value : String) -> Attrs

    Attrs::data_set

    fn Attrs::data_set(self : Attrs, name : String, value : String) -> Attrs

    Attrs::datetime

    fn Attrs::datetime(self : Attrs, value : String) -> Attrs

    Attrs::decoding

    fn Attrs::decoding(self : Attrs, value : String) -> Attrs

    Attrs::default

    fn Attrs::default(self : Attrs, value : Bool) -> Attrs

    Attrs::defer_

    fn Attrs::defer_(self : Attrs, value : Bool) -> Attrs

    Attrs::dir

    fn Attrs::dir(self : Attrs, value : String) -> Attrs

    Attrs::dirname

    fn Attrs::dirname(self : Attrs, value : String) -> Attrs

    Attrs::disabled

    fn Attrs::disabled(self : Attrs, value : Bool) -> Attrs

    Attrs::download

    fn Attrs::download(self : Attrs, value : String) -> Attrs

    Attrs::draggable

    fn Attrs::draggable(self : Attrs, value : String) -> Attrs

    Attrs::elementtiming

    fn Attrs::elementtiming(self : Attrs, value : String) -> Attrs

    Attrs::enctype

    fn Attrs::enctype(self : Attrs, value : String) -> Attrs

    Attrs::enterkeyhint

    fn Attrs::enterkeyhint(self : Attrs, value : String) -> Attrs

    Attrs::exportparts

    fn Attrs::exportparts(self : Attrs, value : String) -> Attrs

    Attrs::fetchpriority

    fn Attrs::fetchpriority(self : Attrs, value : String) -> Attrs

    Attrs::for_

    fn Attrs::for_(self : Attrs, value : String) -> Attrs

    Attrs::form

    fn Attrs::form(self : Attrs, value : String) -> Attrs

    Attrs::formaction

    fn Attrs::formaction(self : Attrs, value : String) -> Attrs

    Attrs::formenctype

    fn Attrs::formenctype(self : Attrs, value : String) -> Attrs

    Attrs::formmethod

    fn Attrs::formmethod(self : Attrs, value : String) -> Attrs

    Attrs::formnovalidate

    fn Attrs::formnovalidate(self : Attrs, value : Bool) -> Attrs

    Attrs::formtarget

    fn Attrs::formtarget(self : Attrs, value : String) -> Attrs

    Attrs::headers

    fn Attrs::headers(self : Attrs, value : String) -> Attrs

    Attrs::height

    fn Attrs::height(self : Attrs, value : Int) -> Attrs

    Attrs::hidden

    fn Attrs::hidden(self : Attrs, value : Bool) -> Attrs

    Attrs::high

    fn Attrs::high(self : Attrs, value : Int) -> Attrs

    Attrs::href

    fn Attrs::href(self : Attrs, value : String) -> Attrs

    Attrs::hreflang

    fn Attrs::hreflang(self : Attrs, value : String) -> Attrs

    Attrs::http_equiv

    fn Attrs::http_equiv(self : Attrs, value : String) -> Attrs

    Attrs::id

    fn Attrs::id(self : Attrs, value : String) -> Attrs

    Attrs::inert

    fn Attrs::inert(self : Attrs, value : Bool) -> Attrs

    Attrs::inner_html

    #internal(xss_vulnerable, "This function may cause xss attack.")
    fn Attrs::inner_html(self : Attrs, html : String) -> Attrs

    Sets raw HTML and bypasses normal escaping.

    Vulnerability Warning

    This is XSS‑prone and should only be used with trusted or sanitized input. It affects both HTML and SVG content since the browser will parse the string into DOM nodes.

    Attrs::inputmode

    fn Attrs::inputmode(self : Attrs, value : String) -> Attrs

    Attrs::integrity

    fn Attrs::integrity(self : Attrs, value : String) -> Attrs

    Attrs::is_

    fn Attrs::is_(self : Attrs, value : String) -> Attrs

    Attrs::ismap

    fn Attrs::ismap(self : Attrs, value : Bool) -> Attrs

    Attrs::itemid

    fn Attrs::itemid(self : Attrs, value : String) -> Attrs

    Attrs::itemprop

    fn Attrs::itemprop(self : Attrs, value : String) -> Attrs

    Attrs::itemref

    fn Attrs::itemref(self : Attrs, value : String) -> Attrs

    Attrs::itemscope

    fn Attrs::itemscope(self : Attrs, value : Bool) -> Attrs

    Attrs::itemtype

    fn Attrs::itemtype(self : Attrs, value : String) -> Attrs

    Attrs::kind

    fn Attrs::kind(self : Attrs, value : String) -> Attrs

    Attrs::label

    fn Attrs::label(self : Attrs, value : String) -> Attrs

    Attrs::lang

    fn Attrs::lang(self : Attrs, value : String) -> Attrs

    Attrs::language

    fn Attrs::language(self : Attrs, value : String) -> Attrs

    Attrs::list

    fn Attrs::list(self : Attrs, value : String) -> Attrs

    Attrs::loading

    fn Attrs::loading(self : Attrs, value : String) -> Attrs

    Attrs::loop_

    fn Attrs::loop_(self : Attrs, value : Bool) -> Attrs

    Attrs::low

    fn Attrs::low(self : Attrs, value : Int) -> Attrs

    Attrs::max

    fn Attrs::max(self : Attrs, value : Int) -> Attrs

    Attrs::maxlength

    fn Attrs::maxlength(self : Attrs, value : Int) -> Attrs

    Attrs::media

    fn Attrs::media(self : Attrs, value : String) -> Attrs

    Attrs::method_

    fn Attrs::method_(self : Attrs, value : String) -> Attrs

    Attrs::min

    fn Attrs::min(self : Attrs, value : Int) -> Attrs

    Attrs::minlength

    fn Attrs::minlength(self : Attrs, value : Int) -> Attrs

    Attrs::multiple

    fn Attrs::multiple(self : Attrs, value : Bool) -> Attrs

    Attrs::muted

    fn Attrs::muted(self : Attrs, value : Bool) -> Attrs

    Attrs::name

    fn Attrs::name(self : Attrs, value : String) -> Attrs

    Attrs::nonce

    fn Attrs::nonce(self : Attrs, value : String) -> Attrs

    Attrs::novalidate

    fn Attrs::novalidate(self : Attrs, value : Bool) -> Attrs

    Attrs::on_beforeinput

    fn Attrs::on_beforeinput(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_blur

    fn Attrs::on_blur(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_change

    fn Attrs::on_change(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_click

    fn Attrs::on_click(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_compositionend

    fn Attrs::on_compositionend(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_compositionstart

    fn Attrs::on_compositionstart(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_compositionupdate

    fn Attrs::on_compositionupdate(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_contextmenu

    fn Attrs::on_contextmenu(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_copy

    fn Attrs::on_copy(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_cut

    fn Attrs::on_cut(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_dbclick

    fn Attrs::on_dbclick(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_dblclick

    fn Attrs::on_dblclick(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_dragend

    fn Attrs::on_dragend(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_dragenter

    fn Attrs::on_dragenter(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_dragleave

    fn Attrs::on_dragleave(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_dragover

    fn Attrs::on_dragover(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_dragstart

    fn Attrs::on_dragstart(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_drop

    fn Attrs::on_drop(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_focus

    fn Attrs::on_focus(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_input

    fn Attrs::on_input(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_keydown

    fn Attrs::on_keydown(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_keyup

    fn Attrs::on_keyup(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_mousedown

    fn Attrs::on_mousedown(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_mouseenter

    fn Attrs::on_mouseenter(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_mouseleave

    fn Attrs::on_mouseleave(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_mousemove

    fn Attrs::on_mousemove(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_mouseout

    fn Attrs::on_mouseout(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_mouseover

    fn Attrs::on_mouseover(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_mouseup

    fn Attrs::on_mouseup(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_paste

    fn Attrs::on_paste(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_pointercancel

    fn Attrs::on_pointercancel(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Handle browser cancellation of an active pointer interaction.

    Attrs::on_pointerdown

    fn Attrs::on_pointerdown(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Handle a primary or auxiliary pointer starting contact with the element.

    PointerEvent extends the browser's mouse-event surface, so the callback uses Rabbita's existing MouseEvent wrapper while preserving pointer-only fields for JavaScript FFI helpers.

    Attrs::on_pointermove

    fn Attrs::on_pointermove(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Handle movement from a captured mouse, pen, or touch pointer.

    Attrs::on_pointerup

    fn Attrs::on_pointerup(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Handle the end of a mouse, pen, or touch pointer interaction.

    Attrs::on_reset

    fn Attrs::on_reset(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_scroll

    fn Attrs::on_scroll(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_submit

    fn Attrs::on_submit(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::on_wheel

    fn Attrs::on_wheel(self : Attrs, msg : (Unit) ->
    Cmd
    ) -> Attrs

    Attrs::open

    fn Attrs::open(self : Attrs, value : Bool) -> Attrs

    Attrs::optimum

    fn Attrs::optimum(self : Attrs, value : Int) -> Attrs

    Attrs::part

    fn Attrs::part(self : Attrs, value : String) -> Attrs

    Attrs::pattern

    fn Attrs::pattern(self : Attrs, value : String) -> Attrs

    Attrs::ping

    fn Attrs::ping(self : Attrs, value : String) -> Attrs

    Attrs::placeholder

    fn Attrs::placeholder(self : Attrs, value : String) -> Attrs

    Attrs::playsinline

    fn Attrs::playsinline(self : Attrs, value : Bool) -> Attrs

    Attrs::popover

    fn Attrs::popover(self : Attrs, value : String) -> Attrs

    Attrs::poster

    fn Attrs::poster(self : Attrs, value : String) -> Attrs

    Attrs::preload

    fn Attrs::preload(self : Attrs, value : String) -> Attrs

    Attrs::readonly_

    fn Attrs::readonly_(self : Attrs, value : Bool) -> Attrs

    Attrs::referrerpolicy

    fn Attrs::referrerpolicy(self : Attrs, value : String) -> Attrs

    Attrs::rel

    fn Attrs::rel(self : Attrs, value : String) -> Attrs

    Attrs::required

    fn Attrs::required(self : Attrs, value : Bool) -> Attrs

    Attrs::reversed

    fn Attrs::reversed(self : Attrs, value : Bool) -> Attrs

    Attrs::role

    fn Attrs::role(self : Attrs, value : String) -> Attrs

    Attrs::rows

    fn Attrs::rows(self : Attrs, value : Int) -> Attrs

    Attrs::rowspan

    fn Attrs::rowspan(self : Attrs, value : Int) -> Attrs

    Attrs::sandbox

    fn Attrs::sandbox(self : Attrs, value : String) -> Attrs

    Attrs::scope

    fn Attrs::scope(self : Attrs, value : Scope) -> Attrs

    Attrs::selected

    fn Attrs::selected(self : Attrs, value : Bool) -> Attrs

    Attrs::shape

    fn Attrs::shape(self : Attrs, value : String) -> Attrs

    Attrs::size

    fn Attrs::size(self : Attrs, value : Int) -> Attrs

    Attrs::sizes

    fn Attrs::sizes(self : Attrs, value : String) -> Attrs

    Attrs::slot

    fn Attrs::slot(self : Attrs, value : String) -> Attrs

    Attrs::span

    fn Attrs::span(self : Attrs, value : Int) -> Attrs

    Attrs::spellcheck

    fn Attrs::spellcheck(self : Attrs, value : Bool) -> Attrs

    Attrs::src

    fn Attrs::src(self : Attrs, value : String) -> Attrs

    Attrs::srcdoc

    fn Attrs::srcdoc(self : Attrs, value : String) -> Attrs

    Attrs::srclang

    fn Attrs::srclang(self : Attrs, value : String) -> Attrs

    Attrs::srcset

    fn Attrs::srcset(self : Attrs, value : String) -> Attrs

    Attrs::start

    fn Attrs::start(self : Attrs, value : Int) -> Attrs

    Attrs::step

    fn Attrs::step(self : Attrs, value : Int) -> Attrs

    Attrs::style

    fn Attrs::style(self : Attrs, key : String, value : String) -> Attrs

    Set a style declaration.

    Attrs::style_attr

    fn Attrs::style_attr(self : Attrs, value : String) -> Attrs

    Attrs::summary

    fn Attrs::summary(self : Attrs, value : String) -> Attrs

    Attrs::tabindex

    fn Attrs::tabindex(self : Attrs, value : Int) -> Attrs

    Attrs::target

    fn Attrs::target(self : Attrs, value : Target) -> Attrs

    Attrs::title

    fn Attrs::title(self : Attrs, value : String) -> Attrs

    Attrs::translate

    fn Attrs::translate(self : Attrs, value : String) -> Attrs

    Attrs::type_

    fn Attrs::type_(self : Attrs, value : String) -> Attrs

    Attrs::usemap

    fn Attrs::usemap(self : Attrs, value : String) -> Attrs

    Attrs::value

    fn Attrs::value(self : Attrs, value : String) -> Attrs

    Attrs::value_int

    fn Attrs::value_int(self : Attrs, value : Int) -> Attrs

    Attrs::value_prop

    fn Attrs::value_prop(self : Attrs, value : String) -> Attrs

    Attrs::width

    fn Attrs::width(self : Attrs, value : Int) -> Attrs

    Attrs::wrap

    fn Attrs::wrap(self : Attrs, value : String) -> Attrs

    AutoComplete

    pub(all) enum AutoComplete {
    On
    Off
    }

    Html

    #alias(T)
    pub(all) struct Html(
    VNode
    ) derive(Eq)

    An HTML value produced by the constructors in this package.

    Html::from_vnode

    Html::to_virtual_dom

    InputType

    pub(all) enum InputType {
    Button
    Checkbox
    Color
    Date
    DateTimeLocal
    Email
    File
    Hidden
    Image
    Month
    Number
    Password
    Radio
    Range
    Reset
    Search
    Submit
    Tel
    Text
    Time
    Url
    Week
    }

    Scope

    pub(all) enum Scope {
    Row
    Col
    RowGroup
    ColGroup
    }

    Target

    pub(all) enum Target {
    Self
    Blank
    }

    fn[C : IsChildren] a(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, href~ : String, target? : Target, rel? : String, download? : String, attrs? : Attrs, children : C, escape? : Bool) -> Html

    MDN Create a element.

    Parameters

    • escape: an optional boolean that determines whether the link should be escaped. By default, it is set to false.

      When escape is set to true, clicking the escaped link will cause the browser to immediately navigate to the href target, bypassing any interception logic. As a result, the UrlRequest message will not be triggered.

    • target: an optional Target that specifies where to open the link.

    If the user holds the ctrl key (or the command key on macOS) while clicking the link, the click event will be handled by the browser, and the UrlRequest will not be triggered either.

    If App::with_route(url_request=...) is not configured, browser native navigation is used as well.

    abbr

    fn[C : IsChildren] abbr(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    address

    fn[C : IsChildren] address(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    area

    fn area(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, alt? : String, coords? : String, shape? : String, href? : String, target? : String, attrs? : Attrs) -> Html

    article

    fn[C : IsChildren] article(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    aside

    fn[C : IsChildren] aside(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    audio

    fn[C : IsChildren] audio(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, src? : String, controls? : Bool, autoplay? : Bool, loop_? : Bool, muted? : Bool, preload? : String, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] b(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    base

    fn base(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, href? : String, target? : String, attrs? : Attrs) -> Html

    bdi

    fn[C : IsChildren] bdi(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    bdo

    fn[C : IsChildren] bdo(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    blockquote

    fn[C : IsChildren] blockquote(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    body

    fn[C : IsChildren] body(style? : Array[String], id? : String, class? : String, title? : String, lang? : String, dir? : String, hidden? : Bool, on_scroll? :
    Emit
    [
    Scroll
    ], on_keydown? :
    Emit
    [
    Keyboard
    ], on_keyup? :
    Emit
    [
    Keyboard
    ], attrs? : Attrs, children : C) -> Html
    fn br(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs) -> Html

    button

    fn[C : IsChildren] button(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, type_? : String, disabled? : Bool, name? : String, value? : String, autofocus? : Bool, on_click? :
    Cmd
    , attrs? : Attrs, children : C) -> Html

    caption

    fn[C : IsChildren] caption(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    cite

    fn[C : IsChildren] cite(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    code

    fn[C : IsChildren] code(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    col

    fn col(style? : Array[String], id? : String, span? : Int, class? : String, title? : String, hidden? : Bool, attrs? : Attrs) -> Html

    colgroup

    fn[C : IsChildren] colgroup(style? : Array[String], id? : String, span? : Int, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    data

    fn[C : IsChildren] data(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    datalist

    fn[C : IsChildren] datalist(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] dd(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    del

    fn[C : IsChildren] del(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    details

    fn[C : IsChildren] details(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, open? : Bool, attrs? : Attrs, children : C) -> Html

    dfn

    fn[C : IsChildren] dfn(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    dialog

    fn[C : IsChildren] dialog(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, open? : Bool, closedby? : String, on_close? :
    Emit
    [String], on_cancel? :
    Cmd
    , attrs? : Attrs, children : C) -> Html

    MDN Dialog element.

    Hint: You can use the show and close commands in the @dialog package to manipulate the dialog.

    Attributes

    • open: indicates whether the dialog is open or closed by default.

    • closedby: emits the limited-support browser closedby attribute. Rabbita does not polyfill dismissal behavior.

    Messages

    • close: triggered when the dialog is closed.

      The string payload of the close message is the return value of the dialog.

    • cancel: triggered when the user instructs the browser that they wish to dismiss the current open dialog.

      It can be triggered when the user presses esc or uses the request_close command.

      If the cancel argument is provided, the dialog will not close automatically after this message is triggered. You can use the @dialog.close command to close it or @cmd.none to keep it open.

    Example

    typealias Model = String

    enum Msg {
    Open
    Closed(String)
    YesNo(Bool)
    }

    fn update(msg : Msg, model : Model) -> (Cmd[Msg], Model) {
    match msg {
    Open => (@dialog.show("confirm"), model)
    YesNo(answer) => (@dialog.close("confirm", return_value=answer.to_string()), model)
    Closed(value) => (none(), value)
    }
    }

    fn view(model : Model) -> Html {
    div([
    h1([text(model)]),
    button(on_click=Msg::Open, [text("open")]),
    dialog(id="confirm", on_close=Msg::Closed, [
    p([text("Are you sure?")]),
    button(on_click=YesNo(true), [text("Yes")]),
    button(on_click=YesNo(false), [text("No")]),
    ]),
    ])
    }

    fn[C : IsChildren] dl(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] dt(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] em(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    embed

    fn embed(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs) -> Html

    fencedframe

    fn fencedframe(style? : Array[String], id? : String, class? : String, hidden? : Bool, src? : String, title? : String, width? : Int, height? : Int, loading? : String, allow? : String, sandbox? : String, allowfullscreen? : Bool, attrs? : Attrs) -> Html

    fieldset

    fn[C : IsChildren] fieldset(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, disabled? : Bool, name? : String, attrs? : Attrs, children : C) -> Html

    figcaption

    fn[C : IsChildren] figcaption(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    figure

    fn[C : IsChildren] figure(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] footer(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    form

    fn[C : IsChildren] form(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, action? : String, name? : String, on_submit? :
    Cmd
    , attrs? : Attrs, children : C) -> Html

    on_submit will call prevent_default() before dispatching the command. If you need the browser default behavior, use attrs with Attrs::on_submit.

    fragment

    fn fragment(children : Array[Html]) -> Html

    geolocation

    fn[C : IsChildren] geolocation(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] h1(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, cite? : String, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] h2(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] h3(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] h4(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] h5(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] h6(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] head(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] header(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    hgroup

    fn[C : IsChildren] hgroup(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn hr(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs) -> Html

    html

    fn html(style? : Array[String], id? : String, class? : String, title? : String, lang? : String, dir? : String, hidden? : Bool, attrs? : Attrs, children : Array[Html]) -> Html

    Constructs the root of an HTML document.

    Use this constructor only with exactly one head followed by exactly one body:

    html(...) [
    head(...),
    body(...),
    ]

    This restriction follows the Web platform's special handling of document roots: while parsing HTML, browsers may supply missing <html>, <head>, and <body> elements. Rabbita therefore leaves any other child count, order, tag, or nesting undefined.

    For the Web behavior behind this restriction, see MDN: DOMParser.parseFromString().
    fn[C : IsChildren] i(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    iframe

    fn iframe(style? : Array[String], id? : String, class? : String, hidden? : Bool, src? : String, title? : String, width? : Int, height? : Int, loading? : String, allow? : String, sandbox? : String, allowfullscreen? : Bool, attrs? : Attrs) -> Html

    img

    fn img(style? : Array[String], id? : String, class? : String, hidden? : Bool, src? : String, alt? : String, title? : String, width? : Int, height? : Int, srcset? : String, sizes? : String, loading? : String, decoding? : String, attrs? : Attrs) -> Html

    input

    fn input(input_type? : InputType, name? : String, value? : String, checked? : Bool, read_only? : Bool, multiple? : Bool, accept? : String, placeholder? : String, auto_complete? : AutoComplete, style? : Array[String], max? : Int, min? : Int, step? : Int, maxlength? : Int, minlength? : Int, pattern? : String, size? : Int, width? : Int, height? : Int, id? : String, class? : String, title? : String, hidden? : Bool, required? : Bool, autofocus? : Bool, list? : String, inputmode? : String, on_change? :
    Emit
    [String], on_input? :
    Emit
    [String], attrs? : Attrs) -> Html

    ins

    fn[C : IsChildren] ins(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    kbd

    fn[C : IsChildren] kbd(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    label

    fn[C : IsChildren] label(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, for_? : String, attrs? : Attrs, children : C) -> Html

    legend

    fn[C : IsChildren] legend(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] li(style? : Array[String], value? : Int, id? : String, class? : String, title? : String, hidden? : Bool, on_click? :
    Cmd
    , attrs? : Attrs, children : C) -> Html
    fn link(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, href? : String, rel? : String, type_? : String, media? : String, sizes? : String, attrs? : Attrs) -> Html

    main_

    fn[C : IsChildren] main_(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    map

    fn[C : IsChildren] map(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, name? : String, attrs? : Attrs, children : C) -> Html

    mark

    fn[C : IsChildren] mark(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    math

    fn[C : IsChildren] math(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] menu(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    meta

    fn meta(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, charset? : String, name? : String, content? : String, http_equiv? : String, attrs? : Attrs) -> Html

    meter

    fn[C : IsChildren] meter(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, value? : Int, min? : Int, max? : Int, low? : Int, high? : Int, optimum? : Int, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] nav(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    node

    fn[C : IsChildren] node(tag : String, attrs : Attrs, children : C) -> Html

    noscript

    fn[C : IsChildren] noscript(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    nothing

    let nothing : Html

    Represents an empty element

    object

    fn[C : IsChildren] object(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] ol(style? : Array[String], reversed? : Bool, start? : Int, id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    MDN Notice that the type attribute for ol is not important for the browser now. If you want to change the type of the list, you should use the list-style-type property in CSS.

    optgroup

    fn[C : IsChildren] optgroup(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, label? : String, disabled? : Bool, attrs? : Attrs, children : C) -> Html

    option

    fn[C : IsChildren] option(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, label? : String, disabled? : Bool, value? : String, selected? : Bool, attrs? : Attrs, children : C) -> Html

    output

    fn[C : IsChildren] output(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, name? : String, for_? : String, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] p(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    picture

    fn[C : IsChildren] picture(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    pre

    fn[C : IsChildren] pre(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    progress

    fn[C : IsChildren] progress(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, value? : Int, max? : Int, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] q(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] rp(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] rt(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    ruby

    fn[C : IsChildren] ruby(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] s(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    samp

    fn[C : IsChildren] samp(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    script

    fn[C : IsChildren] script(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, src? : String, type_? : String, async_? : Bool, defer_? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] search(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    section

    fn[C : IsChildren] section(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    select

    fn[C : IsChildren] select(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, disabled? : Bool, name? : String, multiple? : Bool, size? : Int, required? : Bool, autofocus? : Bool, on_change? :
    Emit
    [String], attrs? : Attrs, children : C) -> Html

    selectedcontent

    fn[C : IsChildren] selectedcontent(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    slot

    fn[C : IsChildren] slot(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    small

    fn[C : IsChildren] small(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    source

    fn source(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, src? : String, srcset? : String, media? : String, type_? : String, sizes? : String, attrs? : Attrs) -> Html

    span

    fn[C : IsChildren] span(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    strong

    fn[C : IsChildren] strong(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    style_tag

    fn[C : IsChildren] style_tag(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    sub

    fn[C : IsChildren] sub(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    summary

    fn[C : IsChildren] summary(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    sup

    fn[C : IsChildren] sup(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    svg

    fn[C : IsChildren] svg(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    table

    fn[C : IsChildren] table(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    tbody

    fn[C : IsChildren] tbody(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] td(style? : Array[String], id? : String, colspan? : Int, rowspan? : Int, headers? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    template

    fn[C : IsChildren] template(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    text

    fn text(str : String) -> Html

    textarea

    fn[C : IsChildren] textarea(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, name? : String, value? : String, rows? : Int, cols? : Int, placeholder? : String, read_only? : Bool, disabled? : Bool, maxlength? : Int, minlength? : Int, required? : Bool, autofocus? : Bool, wrap? : String, on_change? :
    Emit
    [String], on_input? :
    Emit
    [String], attrs? : Attrs, children : C) -> Html

    tfoot

    fn[C : IsChildren] tfoot(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] th(style? : Array[String], id? : String, abbr? : String, colspan? : Int, rowspan? : Int, headers? : String, scope? : Scope, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    thead

    fn[C : IsChildren] thead(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    time

    fn[C : IsChildren] time(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, datetime? : String, attrs? : Attrs, children : C) -> Html

    title

    fn[C : IsChildren] title(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] tr(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    track

    fn track(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, kind? : String, srclang? : String, label? : String, default? : Bool, src? : String, attrs? : Attrs) -> Html
    fn[C : IsChildren] u(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html
    fn[C : IsChildren] ul(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, on_click? :
    Cmd
    , attrs? : Attrs, children : C) -> Html

    var_

    fn[C : IsChildren] var_(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs, children : C) -> Html

    video

    fn[C : IsChildren] video(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, src? : String, controls? : Bool, autoplay? : Bool, loop_? : Bool, muted? : Bool, preload? : String, poster? : String, attrs? : Attrs, children : C) -> Html

    wbr

    fn wbr(style? : Array[String], id? : String, class? : String, title? : String, hidden? : Bool, attrs? : Attrs) -> Html