Coffee to Water Ratio Calculator
About this app
Calculate the coffee to water ratio for your perfect cup of coffee.
Coffee Brewing Calculator Coffee Brewing Calculator Brewing Method Autodrip Pour Over Chemex French Press AeroPress Moka Pot Siphon Espresso Strength Preference Mild Average Robust Desired Coffee Amount Grind Size (Optional) Brew Length Adjustment Water Temperature Recommendation Calculate Ratio The coffee to water ratio is
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Coffee Brewing Calculator</title>
<meta name="description" content="Calculate the coffee to water ratio for your perfect cup of coffee.">
<meta name="keywords" content="coffee, water, ratio, calculator">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.2/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Open Sans', sans-serif;
background-color: #f3f3f3;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
h1 {
text-align: center;
font-weight: 700;
color: #333;
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
font-weight: 600;
color: #333;
}
.form-group input, .form-group select {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.form-group .btn {
width: 100%;
padding: 10px;
color: #fff;
background-color: #333;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.form-group .btn:hover {
background-color: #555;
}
.result-container {
margin-top: 30px;
display: none;
}
.result {
font-weight: 600;
color: #333;
}
.result span {
color: #555;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Coffee Brewing Calculator</h1>
<div class="form-group">
<label for="brewing-method">Brewing Method</label>
<select id="brewing-method">
<option value="autodrip">Autodrip</option>
<option value="pour-over">Pour Over</option>
<option value="chemex">Chemex</option>
<option value="french-press">French Press</option>
<option value="aeropress">AeroPress</option>
<option value="moka-pot">Moka Pot</option>
<option value="siphon">Siphon</option>
<option value="espresso">Espresso</option>
</select>
</div>
<div class="form-group">
<label for="strength">Strength Preference</label>
<select id="strength">
<option value="mild">Mild</option>
<option value="average">Average</option>
<option value="robust">Robust</option>
</select>
</div>
<div class="form-group">
<label for="coffee-amount">Desired Coffee Amount</label>
<input type="number" id="coffee-amount" placeholder="Enter the amount of coffee">
</div>
<div class="form-group">
<label for="grind-size">Grind Size (Optional)</label>
<input type="text" id="grind-size" placeholder="Enter the grind size">
</div>
<div class="form-group">
<label for="brew-length">Brew Length Adjustment</label>
<input type="number" id="brew-length" placeholder="Enter the brew length (in minutes)">
</div>
<div class="form-group">
<label for="water-temp">Water Temperature Recommendation</label>
<input type="text" id="water-temp" value="195-205 °F" readonly>
</div>
<div class="form-group">
<button class="btn" onclick="calculateRatio()">Calculate Ratio</button>
</div>
<div class="result-container">
<p class="result">The coffee to water ratio is <span id="ratio"></span></p>
</div>
</div>
<script type="text/javascript">
function calculateRatio() {
var brewingMethod = document.getElementById("brewing-method").value;
var strength = document.getElementById("strength").value;
var coffeeAmount = document.getElementById("coffee-amount").value;
var grindSize = document.getElementById("grind-size").value;
var brewLength = document.getElementById("brew-length").value;
if (brewingMethod && strength && coffeeAmount) {
var ratio;
if (brewingMethod === "autodrip") {
if (strength === "mild") {
ratio = "1:15";
} else if (strength === "average") {
ratio = "1:16";
} else if (strength === "robust") {
ratio = "1:17";
}
} else if (brewingMethod === "pour-over") {
ratio = "1:15-17";
} else if (brewingMethod === "chemex") {
if (strength === "mild") {
ratio = "1:15";
} else if (strength === "average") {
ratio = "1:16";
} else if (strength === "robust") {
ratio = "1:17";
}
} else if (brewingMethod === "french-press") {
if (strength === "mild") {
ratio = "1:15";
} else if (strength === "average") {
ratio = "1:16";
} else if (strength === "robust") {
ratio = "1:17";
}
} else if (brewingMethod === "aeropress") {
if (strength === "mild") {
ratio = "1:15";
} else if (strength === "average") {
ratio = "1:16";
} else if (strength === "robust") {
ratio = "1:17";
}
} else if (brewingMethod === "moka-pot") {
if (strength === "mild") {
ratio = "1:15";
} else if (strength === "average") {
ratio = "1:16";
} else if (strength === "robust") {
ratio = "1:17";
}
} else if (brewingMethod === "siphon") {
if (strength === "mild") {
ratio = "1:15";
} else if (strength === "average") {
ratio = "1:16";
} else if (strength === "robust") {
ratio = "1:17";
}
} else if (brewingMethod === "espresso") {
if (strength === "mild") {
ratio = "1:15";
} else if (strength === "average") {
ratio = "1:16";
} else if (strength === "robust") {
ratio = "1:17";
}
}
var totalCoffeeAmount = coffeeAmount;
var totalWaterAmount = coffeeAmount * ratio;
if (brewLength) {
totalWaterAmount *= brewLength;
}
document.getElementById("ratio").innerHTML = ratio;
document.getElementById("ratio").style.fontWeight = "700";
document.getElementById("ratio").style.color = "#333";
document.getElementsByClassName("result-container")[0].style.display = "block";
}
}
</script>
</body>
</html>
NEW APPS
These are apps made by the community!