JSFiddle - React, Tailwind, and code Playground
by krutilin
HTML
<script src="https://rawgit.com/brewcomputer/brewcalc/74f405141695699e8d811b915f1c4e660770aa61/lib/brewcalc.min.js"></script>
<div id="log"></div>
JavaScript
const log = (message) => {
$('#log').append(message + '<br/>');
}
const recipe = {
"name": "RR Summer Bitter",
"batchSize": 40,
"boilSize": 45.6427168,
"boilTime": 60,
"efficiency": 0.75,
"type": "All Grain",
"fermentables": [{
"name": "Pale Malt, Maris Otter",
"addAfterBoil": false,
"amount": 6.9999955,
"color": 3,
"potential": 1.03795,
"type": "Grain"
}, {
"name": "Cara 50",
"addAfterBoil": false,
"amount": 0.9999994,
"color": 25.3807107,
"potential": 1.0345,
"type": "Grain"
}],
"hops": [{
"name": "Target",
"alpha": 0.11,
"amount": 0.04,
"form": "Pellet",
"use": "Boil",
"time": 60
}, {
"name": "Goldings, East Kent",
"alpha": 0.05,
"amount": 0.015,
"form": "Pellet",
"use": "Boil",
"time": 30
}, {
"name": "Goldings, East Kent",
"alpha": 0.05,
"amount": 0.015,
"form": "Pellet",
"use": "Boil",
"time": 15
}],
"mash": {
"grainTemp": 22.2222222,
"tunTemp": 22.2222222,
"equipAdjust": false,
"spargeTemp": 75.5555556,
"mashSteps": [{
"name": "Saccharification",
"endTemp": 68.8888889,
"infuseAmount": 20.8636349,
"rampTime": 15,
"stepTemp": 68.8888889,
"stepTime": 40,
"type": "Infusion"
}, {
"name": "Mash Out",
"endTemp": 75.5555556,
"infuseAmount": 0,
"rampTime": 10,
"stepTemp": 75.5555556,
"stepTime": 10,
"type": "Temperature"
}]
},
"yeasts": [{
"name": "Windsor Yeast",
"amount": 0.023659,
"attenuation": 0.75,
"cultureDate": "13 Jun 2003",
"form": "Dry",
"type": "Ale"
}]
}
const result = brewcalc.calculateRecipe(recipe)
log('Recipe Specs')
log('------------')
log(recipe.name)
log('Original Gravity ' + result.og + ' SG or ' + brewcalc.sgToPlato(result.og).toFixed(1) + ' °P')
log('Final Gravity ' + result.fg + ' SG or ' + brewcalc.sgToPlato(result.fg).toFixed(1) + ' °P')
log('IBU ' +...