.calculator-container {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 0 auto;
color: #333;
line-height: 1.6;
}
.calc-box {
background: #f8f9fa;
border: 1px solid #e9ecef;
border-radius: 8px;
padding: 30px;
margin-bottom: 40px;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.calc-title {
text-align: center;
margin-top: 0;
margin-bottom: 25px;
color: #2c3e50;
font-size: 24px;
font-weight: 700;
}
.calc-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 20px;
}
.input-group {
display: flex;
flex-direction: column;
}
.input-group label {
font-weight: 600;
margin-bottom: 8px;
font-size: 14px;
color: #495057;
}
.input-group input, .input-group select {
padding: 12px;
border: 1px solid #ced4da;
border-radius: 6px;
font-size: 16px;
transition: border-color 0.15s ease-in-out;
}
.input-group input:focus {
outline: none;
border-color: #4dabf7;
box-shadow: 0 0 0 3px rgba(77, 171, 247, 0.2);
}
.full-width {
grid-column: span 2;
}
.calc-btn {
background-color: #e03131;
color: white;
border: none;
padding: 15px 30px;
font-size: 18px;
font-weight: bold;
border-radius: 6px;
cursor: pointer;
width: 100%;
transition: background-color 0.2s;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.calc-btn:hover {
background-color: #c92a2a;
}
#concrete-results {
display: none;
margin-top: 30px;
background: #fff;
border: 1px solid #dee2e6;
border-radius: 6px;
overflow: hidden;
}
.result-header {
background: #2c3e50;
color: white;
padding: 15px;
font-weight: bold;
text-align: center;
}
.result-row {
display: flex;
justify-content: space-between;
padding: 15px 20px;
border-bottom: 1px solid #eee;
}
.result-row:last-child {
border-bottom: none;
}
.result-label {
color: #6c757d;
font-weight: 500;
}
.result-value {
font-weight: 700;
color: #212529;
font-size: 18px;
}
.highlight-value {
color: #e03131;
font-size: 20px;
}
.article-content h2 {
color: #2c3e50;
border-bottom: 2px solid #e9ecef;
padding-bottom: 10px;
margin-top: 40px;
}
.article-content h3 {
color: #495057;
margin-top: 30px;
}
.article-content p, .article-content ul {
font-size: 17px;
color: #444;
}
.article-content ul li {
margin-bottom: 10px;
}
.info-box {
background-color: #e7f5ff;
border-left: 5px solid #339af0;
padding: 15px;
margin: 20px 0;
font-size: 16px;
}
@media (max-width: 600px) {
.calc-grid {
grid-template-columns: 1fr;
}
.full-width {
grid-column: span 1;
}
}
How to Calculate Concrete for Slabs and Footings
Planning a patio, driveway, or shed foundation? Accurately calculating the amount of concrete needed is critical to the success of your project. Ordering too little can result in a disastrous "cold joint" (where one section hardens before the next is poured), while ordering too much is a waste of money and labor.
This calculator determines the volume of your pour in both cubic yards (for truck delivery) and the number of pre-mix bags (for DIY mixing) required.
The Concrete Calculation Formula
To find the volume of a rectangular slab, we use the standard geometric formula for volume, ensuring all units are consistent:
Formula: Length (ft) × Width (ft) × Thickness (ft) = Cubic Feet
Since slab thickness is usually measured in inches, it must first be divided by 12 to convert it to feet. For example, a 4-inch slab is 0.33 feet thick.
Cubic Yards vs. Pre-Mix Bags
Once you have the total cubic footage, you need to convert it to the unit sold by your supplier:
- Ready-Mix Trucks: Sold by the Cubic Yard. There are 27 cubic feet in 1 cubic yard.
- Pre-Mix Bags (DIY): Sold by weight (usually 60lb or 80lb bags).
How Many Bags Do I Need?
The yield of concrete bags varies slightly by manufacturer, but general estimates are standard across the industry for calculating purposes:
- 80lb Bag: Yields approximately 0.60 cubic feet of cured concrete.
- 60lb Bag: Yields approximately 0.45 cubic feet of cured concrete.
Why Add a Safety Margin?
Professional contractors always include a safety margin (usually 5% to 10%) for several reasons:
- Uneven Subgrade: If your dirt base dips down an inch in the middle, you will need more concrete to fill it.
- Spillage: Some concrete is inevitably lost during mixing or transport.
- Form Deflection: Wooden forms may bow out slightly under the weight of wet concrete, increasing the volume.
Our calculator allows you to select a 5% or 10% waste buffer to ensure you don't run out halfway through the job.
function calculateConcrete() {
// 1. Get Input Values
var len = parseFloat(document.getElementById('slabLength').value);
var wid = parseFloat(document.getElementById('slabWidth').value);
var thickInches = parseFloat(document.getElementById('slabThickness').value);
var waste = parseFloat(document.getElementById('wasteMargin').value);
var price = parseFloat(document.getElementById('pricePerBag').value);
// 2. Validation
if (isNaN(len) || isNaN(wid) || isNaN(thickInches) || len <= 0 || wid <= 0 || thickInches 0) {
costTotal = bags80 * price;
}
// 4. Update UI
document.getElementById('resYards').textContent = volCubicYards.toFixed(2);
document.getElementById('resFeet').textContent = volCubicFeet.toFixed(2);
document.getElementById('resBags80').textContent = bags80;
document.getElementById('resBags60').textContent = bags60;
if (costTotal > 0) {
document.getElementById('resCost').textContent = '$' + costTotal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('costRow').style.display = 'flex';
} else {
document.getElementById('costRow').style.display = 'none';
}
// Show results div
document.getElementById('concrete-results').style.display = 'block';
// Smooth scroll to results
document.getElementById('concrete-results').scrollIntoView({behavior: 'smooth', block: 'nearest'});
}