Skip to content

🏷️ Dynamic Labels and Text

izom.PropUI includes five independent systems for changing displayed labels and text at runtime based on entry values, states, and other entries.

Dynamic Label and Text Systems

System A: Boolean per-state labels

Used by boolean entries. You choose alternate labels for the off and on states.

System B: Numeric per-value labels

Used by float and integer entries. Different labels can be assigned at different numeric thresholds.

System C: Other-entry-driven entry labels

Used by any entry that enables Per Other Entry State/Value Labels. Another entry's state or numeric value can override this entry's label.

System D: Text other-entry rules

Used by text entries via Per Other Entry State/Value Text. Another entry's state or numeric value can override the displayed text and optionally the whole text style.

System E: Value-bucket nested other-entry rules

Used inside numeric value buckets. After a value bucket is chosen, another entry can further refine the result.


Numeric Per-Value Labels

Per-value labels

Numeric per-value labels let float and integer entries show different labels at different thresholds.

Numeric per-value labels are available on FLOAT and INT entries through Per Value Labels. Each row stores a threshold, a label, an optional nested conditional-by-other-entry rule, and a rule kind.

Threshold matching

Thresholds are inclusive — the highest threshold at or below the current value wins. In code terms, matching is compare_value >= threshold.

Example: with thresholds 0, 5, and 10, a current value of 7 selects the bucket at threshold 5.

📌 Order matters

Per-value label rows are evaluated by their threshold value (highest matching wins). When thresholds have nested conditional-by-other-entry rules, list order is only used as a tiebreaker when multiple nested rules are matching simultaneously at runtime — the earlier matching source entry wins. Within the same source entry, the highest matching threshold still wins. If no nested rule matches, the bucket's own label is used.

Fallback rows reset to the current fallback label for that rule set instead of supplying a label.

Threshold uniqueness: thresholds are normalized and kept unique within the applicable scope. If no unique threshold remains in the allowed range, add/duplicate can be refused.

Keyboard shortcut target: Per Value Labels.

Boolean Per-State Labels

Boolean per-state labels are available through Per State Labels, with two fields: When Off and When On.

If a state label is blank, it falls back to the entry's base label or prop ID fallback. The resolution order on BOOL entries is: base label, then per-state label, then entry-level other-entry label rules can refine it further.

Per Other Entry State/Value Labels

This system is available through Per Other Entry State/Value Labels and lets another entry control this entry's displayed label.

Supported source types: BOOL, FLOAT, and INT entries.

Source type Rule Matching
BOOL source_bool_state When Off / When On
FLOAT / INT source threshold Inclusive — matches when source_value >= threshold

Rule kinds: Label Override or Fallback. A fallback returns to the general label.

📌 Order matters

When multiple other-entry label rules are defined, list order is only used as a tiebreaker when multiple rules are matching simultaneously at runtime. If only one rule matches, it wins regardless of position. For example, position 1 FLOAT entry >= 0.5"dog" and position 2 INT entry >= 5"cat": if both match, "dog" wins because it appears first; swap them and "cat" wins instead. Within the same source entry, the highest matching threshold still wins. You can reorder rules using the move operators or keyboard shortcuts.

Per Other Entry State/Value Text

This system is available only on TEXT entries through Per Other Entry State/Value Text. It uses value-label style rows but for text display.

A text rule can override only the displayed text, or — when Override Display Style is enabled — override the entire text style: text, alignment, body mode, linked spacing, vertical alignment, top/bottom spacing, lines and line positions, use box, alert style, and before/after icons.

A fallback row restores the base text block.

📌 Order matters

Text other-entry rules use list order only as a tiebreaker when multiple rules are matching simultaneously at runtime. If only one rule matches, it wins regardless of position. For example, position 1 FLOAT entry >= 0.5"dog" and position 2 INT entry >= 5"cat": if both match, "dog" wins because it appears first; swap them and "cat" wins instead. Within the same source entry, the highest matching threshold still wins. If no rule matches, the base text block is shown. Reorder rules to control priority.

Keyboard shortcut target: Per Other Entry Value Text.

Conditional by Other Entry Labels

Conditional labels driven by another entry

Conditional-by-other-entry rules let one entry change its label based on another entry's value or state.

This is the nested rule system available inside numeric value buckets. It lets a chosen value bucket be further conditioned by another entry.

Supported source types: BOOL, FLOAT, and INT entries.

For BOOL target entries, nested rules also have an Applies When / target_bool_scope setting: Any, When Off, or When On.

A bucket-level nested fallback returns to the current bucket label.

Keyboard shortcut target: Conditional by Other Entry Labels.

Dynamic Label and Text Resolution Order

The resolution order depends on entry type:

  1. Start from the base label.
  2. Apply per-state label if enabled.
  3. Apply entry-level other-entry label rules; if multiple source-entry rules are matching simultaneously, the earlier matching entry in the list wins, while within the same source entry the highest matching threshold still wins.
  1. Start from the base label.
  2. Choose the highest matching value bucket if enabled; apply that bucket's label or fallback.
  3. Apply that bucket's nested other-entry rules; if multiple source-entry rules are matching simultaneously, the earlier matching entry in the list wins, while within the same source entry the highest matching threshold still wins.
  4. Apply entry-level other-entry label rules; if multiple source-entry rules are matching simultaneously, the earlier matching entry in the list wins, while within the same source entry the highest matching threshold still wins.
  1. Start from the base text block.
  2. Scan text other-entry rules; if multiple source-entry rules are matching simultaneously, the earlier matching entry in the list wins, while within the same source entry the highest matching threshold still wins.
  3. A fallback restores the base text block.
  4. A style override can replace the entire block style.

Note

Tooltips always stay at the base tooltip — they are not dynamically swapped.