slider#
The slider
property creates a numeric input using a draggable slider UI. It is ideal for values like font sizes, widths, percentages, spacing, or opacity. The result is stored in l.settings:instance
as a number within a defined range.
Slider
Definition#
{
"code": "banner_opacity",
"prompt": "Banner Opacity",
"type": "slider",
"range_low": 0,
"range_high": 100,
"precision": 0,
"scale": 1
}
Supported Fields#
Field | Type | Required | Description |
---|---|---|---|
code |
string | Yes | Unique key used in l.settings:instance . |
prompt |
string | Yes | Label shown in the admin interface. |
type |
string | Yes | Must be "slider" . |
required |
boolean | No | If true , a value must be selected before saving. |
range_low |
number | Yes | Minimum allowed value. |
range_high |
number | Yes | Maximum allowed value. |
precision |
number | No | Number of decimal places to display. |
scale |
number | No | Multiplier applied to the stored value. |
preview_property_selector |
string | No | Target element for PageBuilder Inspector. |
visibility_conditions |
object | No | Shows/hides field based on logic. |
Field Behavior: range_low
& range_high
#
These two fields define the minimum and maximum values the user can select.
range_low
: Lowest possible value on the sliderrange_high
: Highest possible value on the slider
Example:
"range_low": 10,
"range_high": 100
This creates a slider from 10 to 100.
Field Behavior: precision
#
Controls the number of decimal places allowed in the value.
0
= integer only1
= one decimal place (e.g.,12.3
)2
= two decimal places (e.g.,12.34
)-1
= use default precision
Example:
"precision": 2
This allows values like 50.25
.
Field Behavior: scale
#
Applies a multiplier to the stored value when it’s rendered.
scale: 1
→ No effect (actual value is displayed)scale: 100
→ Value of0.5
would become50
for renderingscale: -1
→ Use default behavior
Example:
"scale": 10
This means a value of 6.5
would become 65
in the template or preview.
Combined Example
{
"code": "image_scale",
"prompt": "Image Scale %",
"type": "slider",
"range_low": 0.5,
"range_high": 1.5,
"precision": 2,
"scale": 100
}
- Admin UI range =
0.50 – 1.50
- Template output (with
scale
) =50 – 150
Output
:image_scale:value=1.2
<img style="transform: scale(&mvte:instance:image_scale:value;);" />
l.settings:instance
Structure#
:banner_opacity:value=80
The value is a number based on the current slider position.
Template Usage#
<div style="opacity: &mvte:instance:banner_opacity:value;%;">Banner</div>
<mvt:if expr="l.settings:instance:banner_opacity:value GT 75">
<p>High opacity mode</p>
</mvt:if>
JavaScript Access#
<script>
var instance = <mvt:eval expr="miva_json_encode( l.settings:instance, '' )" />;
var opacity = instance.banner_opacity.value;
</script>
defaults
Definition#
Set a default value in your defaults
block:
"defaults": {
"banner_opacity": {
"value": 100
}
}
Best Practices#
range_low
andrange_high
must be provided.- Use
precision: 0
for whole numbers, or increase it for decimals. - Use
scale
to format or convert values — e.g. 0.5 × 100 = 50%. - Sliders provide strong UX for real-time feedback, especially when controlling spacing, sizes, or visual elements.
- The
value
is stored as a plain number — not a percentage string or unit-based string.
Complete Example#
{
"code": "spacing_size",
"prompt": "Spacing Size",
"type": "slider",
"required": true,
"range_low": 0,
"range_high": 50,
"precision": 1,
"scale": 1
}
Output#
:spacing_size:value=25.0
Template#
<div style="margin-bottom: &mvte:instance:spacing_size:value;px;">
Spaced content
</div>