# function-calc-no-invalid Disallow an invalid expression within `calc` functions. ```css .foo {width: calc();} /** ↑ * empty expression */ .foo {width: calc(100% 80px);} /** ↑ /* missing operator */ .foo {width: calc(100% -80px);} /** ↑ /* missing operator */ .foo {width: calc(100% - - 80px);} /** ↑ /* unexpected operator */ .foo {width: calc(100% -);} /** ↑ /* unexpected operator */ .foo {width: calc(- 100%);} /** ↑ /* unexpected operator */ .foo {width: calc(100% / 0);} /** ↑ ↑ /* division by zero */ .foo {width: calc(100px + 80);} /** ↑ ↑ ↑ /* the `resolved type` is invalid */ .foo {width: calc(100% + 80);} /** ↑ ↑ ↑ /* the `resolved type` is invalid */ .foo {width: calc(100px - 80);} /** ↑ ↑ ↑ /* the `resolved type` is invalid */ .foo {width: calc(100px * 80px);} /** ↑ ↑ ↑ /* the `resolved type` is invalid */ .foo {width: calc(100 / 80%);} /** ↑ ↑ ↑ /* the `resolved type` is invalid */ ``` - `calc()` must have an expression. - `calc()` must have an operator between the arguments. - `calc()` must not be division by zero. - [The resolved type](https://www.w3.org/TR/css-values-3/#calc-type-checking) must be valid for where the expression is placed. ## Options ### `true` The following patterns are considered violations: ```css .foo {width: calc();} ``` ```css .foo {width: calc(100% 80px);} ``` ```css .foo {width: calc(100% - - 80px);} ``` ```css .foo {width: calc(100% / 0);} ``` ```css .foo {width: calc(100px + 80);} ``` The following patterns are _not_ considered violations: ```css .foo {width: calc(100% - 80px);} ``` ```css .foo {width: calc(100% - var(--bar));} ``` ```css .foo {width: calc(var(--bar) - var(--baz));} ```