Default realization posture for the standardized button widget
FROG - Free Open Graphical Language
- Default realization package posture
- Machine-readable button realization manifest
- Button default realization assets
- Button widget class law
- Executable UI primitives
This document describes the default realization posture for frog.widgets.button.
The class law belongs to Libraries/Widgets/Button.md.
This document describes how the default realization family can embody that law through SVG template resources, state-specific overrides, part bindings, state maps, and realization variants.
rectangular
Libraries/Realizations/Default/button.default.wfrogrootlabelcaptionframefacestate_facestate_textfocus_ring
assets/button/templates/button_rectangular.svgassets/button/states/button_false.svgassets/button/states/button_true.svgassets/button/states/button_hover_false.svgassets/button/states/button_hover_true.svgassets/button/states/button_transition_false_to_true.svgassets/button/states/button_transition_true_to_false.svg
The state-specific files are optional realization overrides. They do not redefine button semantics.
The rectangular Button template is accepted for the bounded
Examples/10_button_press_to_boolean corridor as of 2026-05-15 and
is reused by the bounded switch corridors. That acceptance covers the
SVG-published public parts, configurable face and state-text styling, hover and
pressed state visuals, and host overlay alignment to the published
face part. It remains a Default realization asset acceptance, not
a runtime-defined HTML/CSS skin.
The default realization visualizes the state produced by the class-owned mechanical-action model. It does not define the mechanical-action semantics itself.
The manifest publishes the canonical action vocabulary
switch_when_pressed, switch_when_released,
switch_until_released, latch_when_pressed,
latch_when_released, and latch_until_released,
including the realization posture needed by host overlays.
Runtime families must still validate each action before accepting it as
executable behavior. The current accepted corridors validate
switch_until_released in Example 10 and
switch_when_pressed in Example 11. Example 12 introduces a C++
first switch_when_released corridor; Python and Rust parity must
not be claimed until those runtimes are explicitly aligned and validated.