files/en-us/web/css/reference/values/sign/index.md
The sign() CSS function contains one calculation, and returns -1 if the numeric value of the argument is negative, +1 if the numeric value of the argument is positive, 0⁺ if the numeric value of the argument is 0⁺, and 0⁻ if the numeric value of the argument is 0⁻.
[!NOTE] While {{CSSxRef("abs")}} returns the absolute value of the argument,
sign()returns the sign of the argument.
/* property: sign( expression ) */
top: sign(20vh - 100px);
The sign(x) function accepts only one value as its parameter.
x
A number representing the sign of A:
x is positive, returns 1.x is negative, returns -1.x is positive zero, returns 0.x is negative zero, returns -0.NaN.{{CSSSyntax}}
For example, in {{cssxref("background-position")}} positive percentages resolve to a negative length, and vice versa, if the background image is larger than the background area. Thus sign(10%) might return 1 or -1, depending on how the percentage is resolved! (Or even 0, if it's resolved against a zero length.)
div {
background-position: sign(10%);
}
Another use case is to control the {{cssxref("position")}} of the element. Either a positive or a negative value.
div {
position: absolute;
top: calc(100px * sign(var(--value)));
}
{{Specifications}}
{{Compat}}