VITSOLS
2025-10-03
CSS calc() Function
The calc() function allows you to perform basic math operations (+, -, *, /) directly in CSS.
Example Usage:
.container {
width: calc(100% - 50px);
}
✅ Here, the container takes full width minus 50px — useful for layouts with sidebars or padding.
Real-Time Use Case:
- Responsive spacing adjustments
- Flexible layouts without fixed values
calc() lets you add, subtract, multiply, or divide values, even with different units.
<style>
.box-calc {
width: calc(100% - 60px);
background: #f4b400;
padding: 20px;
color: #fff;
margin: 10px;
}
</style>
<div class="box-calc">
This box uses <b>calc()</b> to set width (100% - 60px)
</div>
CSS min() Function
The min() function picks the smallest value among the given options.
Example:
CSS
p {
font-size: min(5vw, 18px);
}
✅ The font size will scale with the viewport width but won’t go larger than 18px.
Real-Time Use Case:
- Preventing text from becoming too large on big screens
min() – Set a Maximum Limit - picks the smallest value among the given options.
<style>
.box-min {
width: min(50vw, 300px);
background: #0f9d58;
padding: 20px;
color: #fff;
margin: 10px;
}
</style>
<div class="box-min">
This box uses <b>min()</b> – it will never be wider than 300px
</div>
3. CSS max() Function
The max() function selects the largest value from the provided options.
Example:
CSS
.container {
width: max(300px, 50%);
}
✅ The container will always be at least 300px wide, but grow to 50% if larger.
Real-Time Use Case:
- Ensuring minimum size requirements for UI elements
max() picks the largest value among the given options.
<style>
.box-max {
width: max(300px, 20%);
background: #4285f4;
padding: 20px;
color: #fff;
margin: 10px;
}
</style>
<div class="box-max">
This box uses <b>max()</b> – it will never be smaller than 300px
</div>
4. CSS clamp() Function
The clamp() function is a combination of min, max, and a preferred value. It ensures a property stays within a defined range.
Example:
CSS
h1 {
font-size: clamp(16px, 5vw, 32px);
}
✅ The heading font size will:
- Never go below 16px
- Grow relative to 5vw (viewport width)
- Never exceed 32px
Real-Time Use Case:
- Perfect for fluid typography
- Adaptive layouts across mobile, tablet, and desktop
clamp() combines minimum, preferred, and maximum values.
<style>
.text-clamp {
font-size: clamp(1rem, 2vw + 1rem, 2rem);
background: #db4437;
padding: 10px;
color: #fff;
margin: 10px;
}
</style>
<div class="text-clamp">
This text uses <b>clamp()</b> – – it grows with screen size but stays between 1rem and 2rem
</div>
🆚 Comparison Table
Here’s a quick comparison of all four math functions:
Function | What It Does | Syntax | Real-Time Use Case |
---|---|---|---|
calc() |
Performs calculations | width: calc(100% - 50px); |
Flexible layouts |
min() |
Chooses the smallest value | font-size: min(5vw, 18px); |
Limit text growth |
max() |
Chooses the largest value | width: max(300px, 50%); |
Set minimum sizes |
clamp() |
Sets a range with a preferred value | font-size: clamp(16px, 5vw, 32px); |
Fluid typography |
Real-world Example: Responsive Card
<style>
.text-clamp {
width: clamp(250px, 40%, 500px);
padding: calc(1rem + 1vw);
font-size: clamp(1rem, 2vw + 1rem, 2rem);
background: #673ab7;
color: #fff;
border-radius: 10px;
margin: 10px;
}
</style>
<div class="card">
<p>Responsive Card </p>
<p>This card resizes smoothly with <b>clamp()</b> and <b>calc()</b></p>
</div>