CSS math functions allow you to perform calculations directly in CSS, enabling responsive layouts, dynamic sizing, flexible positioning, and more advanced design logic.
They include:
calc()min()max()clamp()sin(),cos(),tan()(CSS trigonometric functions)asin(),acos(),atan(),atan2()pow(),sqrt(),hypot(),log(),exp()round(),mod(),rem(),sign()
(Most advanced math functions are CSS Values Level 4 and may have limited support)
This guide focuses first on the fully supported ones, then introduces advanced ones.
Why CSS Math Functions Matter
Math functions help you:
✔ Build responsive components
✔ Mix units (%, px, vw, vh, rem)
✔ Create fluid typography
✔ Animate smartly
✔ Avoid excessive media queries
✔ Apply mathematical precision
1. calc(): The Workhorse of CSS Math
calc() performs arithmetic in CSS using + − × ÷.
➤ Basic Syntax
width: calc(100% - 40px);
✔ Use Case 1: Responsive Box With Fixed Padding
.card {
width: calc(50% - 2rem);
padding: 1rem;
background: #222;
color: white;
}
✔ Use Case 2: Perfectly Centering an Absolutely Positioned Box
.box {
position: absolute;
top: calc(50% - 100px / 2);
left: calc(50% - 100px / 2);
width: 100px;
height: 100px;
background: purple;
}
✔ Use Case 3: Mixing Units
.hero {
height: calc(100vh - 60px); /* responsive viewport minus header */
}
2. min(): Choose the Smallest Value
min() evaluates multiple values and picks the smallest.
✔ Example: Image scales but never exceeds container
img {
width: min(90%, 400px);
}
✔ Example: Text shrinks but stays readable
.title {
font-size: min(5vw, 32px);
}
This allows fluid scaling without media queries.
3. max(): Choose the Largest Value
max() picks the largest among multiple values.
✔ Example: Ensure a minimum size
.box {
width: max(300px, 40vw);
}
✔ Example: Safe padding that grows on large screens
.section {
padding: max(1rem, 4vw);
}
4. clamp(): Min + Preferred + Max
clamp(min, ideal, max) restricts a value between a lower and upper bound.
✔ Perfect for fluid typography
h1 {
font-size: clamp(1.8rem, 5vw, 3.5rem);
}
Meaning:
- Never smaller than 1.8rem
- Grow fluidly with 5vw
- Never larger than 3.5rem
✔ Fluid Buttons
button {
padding: clamp(0.5rem, 2vw, 1.2rem);
}
✔ Responsive Sidebar
.sidebar {
width: clamp(200px, 25vw, 350px);
}
5. Advanced CSS Math Functions (Level 4+)
Modern CSS now supports real mathematical functions, including trigonometry, powers, logs, rounding, etc.
Support varies across browsers.
5.1 Trigonometric Functions: sin(), cos(), tan()
These are great for animations, rotations, and circular layouts.
✔ Example: Circular motion animation
@keyframes orbit {
from {
transform: translate(calc(100px * cos(0deg)), calc(100px * sin(0deg)));
}
to {
transform: translate(calc(100px * cos(360deg)), calc(100px * sin(360deg)));
}
}
.planet {
position: absolute;
animation: orbit 4s infinite linear;
}
5.2 Power and Root Functions: pow(), sqrt()
✔ Example: Smart scale based on area
.box {
scale: calc(sqrt(16)); /* = 4 */
}
✔ Example: Exponential growth animation
div {
width: calc(pow(2, 5) * 1px); /* 2^5 = 32px */
}
5.3 Logarithmic & Exponential Functions: log(), exp()
Useful for natural-feeling motion curves.
✔ Example (illustrative)
.element {
opacity: calc(1 / log(10));
}
5.4 Rounding Functions: round(), mod(), rem(), sign()
✔ Example: Pixel-perfect border radius
✔ Example: Alternating pattern with modulus
.item:nth-child(odd) {
left: calc(mod(100px, 60px));
}
6. Visual Demonstrations
✔ Fluid Box Layout Combining All Functions
.card {
width: clamp(250px, 50vw, 600px);
padding: min(2rem, 5vw);
margin: calc(2rem + 1vh);
border-radius: max(10px, 2vw);
background: linear-gradient(
135deg,
hsl(calc(200 + 50 * sin(30deg)), 80%, 60%),
hsl(calc(200 + 50 * cos(30deg)), 80%, 50%)
);
}
This card:
- Uses
clamp()for responsive width - Uses
min()for flexible padding - Uses
max()for rounded corners - Uses
calc()for mixed-unit margins - Even uses trigonometry inside
hsl()for dynamic color effects
7. Real-World Use Cases
✔ Instagram/TikTok-style fluid text
✔ Dynamic dashboards
✔ Resizable cards and grids
✔ Precise geometric animations
✔ Mathematical art and patterns
✔ Avoiding unnecessary media queries
8. Summary
CSS math functions help you:
| Function | Purpose |
|---|---|
calc() | Combine values with arithmetic |
min() | Choose the smallest |
max() | Choose the largest |
clamp() | Set min, ideal, max |
sin()/cos()/tan() | Trigonometry-based animations |
pow()/sqrt() | Power and roots |
log()/exp() | Scientific & natural curves |
round()/mod()/rem() | Rounding and remainder logic |
They enable more dynamic, elegant, responsive, and scalable CSS.

Latest tech news and coding tips.