Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
The exp() CSS function is an exponential function that takes a number as an argument and returns the mathematical constant e raised to the power of the given number.
The mathematical constant e is the base of natural logarithms, and is approximately 2.718281828459045.
The exp(number) function contains a calculation which returns the same value as pow(e, number).
/* A <number> value */ width: calc(100px * exp(-1)); /* 100px * 0.367879441171442 = 36.8px */ width: calc(100px * exp(0)); /* 100px * 1 = 100px */ width: calc(100px * exp(1)); /* 100px * 2.718281828459045 = 271.8px */
The exp(number) function accepts only one value as its parameter.
Returns a non-negative <number> representing enumber, which is the result of calculating e raised to the power of number.
number is -Infinity, the result is 0.number is 0, the result is 1.number is 1, the result is e (i.e., 2.718281828459045).number is Infinity, the result is Infinity.<exp()> =
exp( <calc-sum> )
<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*
<calc-product> =
<calc-value> [ [ '*' | / ] <calc-value> ]*
<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )
<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN
The exp() function can be used to rotate elements as it return a <number>.
<div class="box box-1"></div> <div class="box box-2"></div> <div class="box box-3"></div> <div class="box box-4"></div> <div class="box box-5"></div>
div.box {
width: 100px;
height: 100px;
background: linear-gradient(orange, red);
}
div.box-1 {
transform: rotate(calc(1turn * exp(-1))); /* 0.3678794411714423turn */
}
div.box-2 {
transform: rotate(calc(1turn * exp(-0.75))); /* 0.4723665527410147turn */
}
div.box-3 {
transform: rotate(calc(1turn * exp(-0.5))); /* 0.6065306597126334turn */
}
div.box-4 {
transform: rotate(calc(1turn * exp(-0.25))); /* 0.7788007830714049turn */
}
div.box-5 {
transform: rotate(calc(1turn * exp(0))); /* 1turn */
}
The exp() function can be useful for strategies like CSS modular scale, which relates all the font-sizes on a page to each other by a fixed ratio.
<h1>Heading 1</h1> <h2>Heading 2</h2> <h3>Heading 3</h3> <h4>Heading 4</h4> <h5>Heading 5</h5> <h6>Heading 6</h6>
h1 {
font-size: calc(1rem * exp(1.25)); /* 3.4903429574618414rem */
}
h2 {
font-size: calc(1rem * exp(1)); /* 2.718281828459045rem */
}
h3 {
font-size: calc(1rem * exp(0.75)); /* 2.117000016612675rem */
}
h4 {
font-size: calc(1rem * exp(0.5)); /* 1.6487212707001282rem */
}
h5 {
font-size: calc(1rem * exp(0.25)); /* 1.2840254166877414rem */
}
h6 {
font-size: calc(1rem * exp(0)); /* 1rem */
}
| Specification |
|---|
| CSS Values and Units Module Level 4> # exponent-funcs> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
exp |
120 | 120 | 118 | 106 | 15.4 | 120 | 118 | 80 | 15.4 | 25.0 | 120 | 15.4 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/exp