Note: This feature is available in Web Workers.
The CSSMathClamp() constructor creates a new CSSMathClamp object representing a CSS clamp() function.
new CSSMathClamp(lower, value, upper)lowerA number or CSSNumericValue that represents the minimum value.
valueA number or CSSNumericValue that represents the preferred value.
upperA number or CSSNumericValue that represents the maximum value.
TypeErrorThrown if the parameters have conflicting unit types. For example, mixing a length value with a time value.
The following code creates a CSSMathClamp instance from three lengths, then reads back its lower, value, and upper properties.
const clamp = new CSSMathClamp(CSS.px(10), CSS.percent(50), CSS.px(500));
console.log(clamp.constructor.name); // "CSSMathClamp"
console.log(clamp.lower); // CSSUnitValue {value: 10, unit: "px"}
console.log(clamp.value); // CSSUnitValue {value: 50, unit: "percent"}
console.log(clamp.upper); // CSSUnitValue {value: 500, unit: "px"}The constructor throws a TypeError if the three arguments don't resolve to a compatible type. In the following code we mix a length with a time, and log the error.
try {
// Mixes a length (px) with a time (s): incompatible types
new CSSMathClamp(CSS.px(10), CSS.s(2), CSS.px(500));
} catch (e) {
console.log(e instanceof TypeError); // true
console.log(e.message);
}