Skip to main content
The General tab is the first of a widget’s four tabs, and the one you touch on every widget. It has a fixed skeleton — the same shape for every widget, so once you know it, you know it everywhere:
General tab
├── Basic          ← always first: Title · ID · Type · Visible
├── (widget's own) ← Content & Behavior — varies per widget
└── Layout         ← always last: Position · Size
Basic is always at the top and Layout always at the bottom; only the middle changes from one widget to the next. That predictability is the point.

Basic

The identity of the widget. Present on every widget.

Widget Title

A human-readable name for the widget (copyable). It’s for you — organizing and recognizing widgets in the designer. It is not the binding key.

Widget ID

The most important field on the tab. The widget ID is how everything else addresses this widget:
  • Firmware pushes values to it — device.updateWidget(targetId, "myWidgetId", value)
  • The core loop is built on it
  • It’s copyable, so you can paste the exact ID into firmware
e.g.  tempGauge   ·   my_button_1   ·   relaySwitch
Pick a clear ID and keep it stable. Change it after firmware ships and the device will push to an ID no widget listens to — the widget goes silent. Treat the ID as a contract between the dashboard and the device.
Use IDs you can type from memory in firmware — short, descriptive, no spaces (pumpSwitch, not Pump Switch 1).

Widget Type

Read-only — the kind of widget this is (button, gauge, slider, …), copyable for reference. You can’t change a widget’s type here; add a different widget instead.

Visible

A toggle for whether the widget shows on the dashboard. Hide a widget without deleting it — useful for work-in-progress, or to reveal it later from a script or a trigger.

Content & Behavior (per widget)

The middle of the General tab is the widget’s functional options — what it shows and how it behaves. This is the part that changes per widget. Style (colors, fonts, borders) lives in the Style tab; this section is about function, not looks. Typical content/behavior options by widget:
WidgetGeneral options here
SliderDefault value · min · max · step
SwitchInitial state (ON/OFF) · state labels
Text InputInput type · placeholder · default · max length · pattern · options
GaugeValue range · thresholds
ButtonLabel / pressed text · icon
Form / Database FormThe fields, their IDs, types, and validation
Countdown TimerInitial duration · auto-start
LabelText / bound value
The full option list for each widget lives in the Widget Reference. This section is where those functional settings appear in the tab; the reference documents each one.

Layout

Always at the bottom — where the widget sits and how big it is.

Position

  • X — horizontal position on the canvas
  • Y — vertical position

Size

  • Width
  • Height
Set these numerically for pixel-precise placement, or drag/resize on the canvas — the fields and the canvas stay in sync. (Pixel-level styling — padding, borders, transforms — lives in the Style tab.)

How the tabs fit together

TabThis widget’s…
Generalidentity (ID), function, and placement
Styleappearance — colors, fonts, borders, effects
Triggerswhat it does — event → command
Datawhat it reads — binding to device data

Binding by widget ID

How the ID connects to device data.

Triggers

Make the widget send commands.