{"id":25202,"date":"2024-07-18T00:00:00","date_gmt":"2024-07-18T04:00:00","guid":{"rendered":"http:\/\/www.theleangreenbean.com\/?p=25202"},"modified":"2024-07-19T11:51:17","modified_gmt":"2024-07-19T15:51:17","slug":"easy-banana-oat-bars","status":"publish","type":"post","link":"https:\/\/www.theleangreenbean.com\/easy-banana-oat-bars\/","title":{"rendered":"Easy Banana Oat Bars"},"content":{"rendered":"\n<p><em>These Easy Banana Oat Bars are gluten-free, dairy-free, kid-friendly and make the perfect snack. \u00a0Grab the kids and try this recipe today!<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"1020\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-1.jpg\" alt=\"These Easy Banana Oat Bars are gluten-free, dairy-free, kid-friendly and make the perfect snack. Grab the kids and try this recipe today!\" class=\"wp-image-25204\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-1.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-1-133x200.jpg 133w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-1-367x550.jpg 367w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\">*Originally published in Jan 2017. Updated July 2024*<\/p>\n\n\n\n<p>Hi friends!<\/p>\n\n\n\n<p>These Healthy Banana Oat Bars are a kid favorite around here and they&#8217;re so darn easy. We make them frequently because they&#8217;re pretty forgiving. They don&#8217;t require exact measurements and always taste good. Plus I always have ripe bananas on hand. <\/p>\n\n\n\n<p>Looking for other banana recipes? Find all my <a href=\"https:\/\/www.theleangreenbean.com\/search\/?_sft_post_tag=banana\">banana recipes<\/a> here including things like <a href=\"https:\/\/www.theleangreenbean.com\/lentil-banana-muffins\/\">Lentil Banana Muffins<\/a> and <a href=\"https:\/\/www.theleangreenbean.com\/banana-flax-waffles\/\">Banana Flax Muffins<\/a>.<\/p>\n\n\n\n<p>Plus they&#8217;re the perfect recipe for having the kids help! You guys know I&#8217;m a huge proponent of kids in the kitchen! Here&#8217;s the <a href=\"https:\/\/www.theleangreenbean.com\/teaching-kids-to-cook\/\">Ultimate Guide for Teaching Kids To Cook<\/a> and  I&#8217;ve got a whole roundup of <a href=\"https:\/\/www.theleangreenbean.com\/kid-friendly-baking-recipes\/\" target=\"_blank\" rel=\"noopener\">Kid-Friendly Baking Recipes<\/a> if you&#8217;re looking for a place to start.\u00a0<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ingredients for Healthy Banana Oat Bars<\/h2>\n\n\n\n<p>So what ingredients do you need for these banana breakfast bars?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bananas &#8211; The riper the better because we don&#8217;t add a ton of added sugar to this recipe.<\/li>\n\n\n\n<li>Oats &#8211; Rolled oats work best. Instant oat will change the texture.<\/li>\n\n\n\n<li>Peanut Butter &#8211; Adds some healthy fats and boosts the protein content.<\/li>\n\n\n\n<li>Maple syrup &#8211; Depending on how ripe your bananas are, you can adjust how much maple syrup you need. You could also sub regular sugar or leave it out completely.<\/li>\n\n\n\n<li>Egg- adds some structure.<\/li>\n\n\n\n<li>Baking powder &#8211; adds a little lift to the bars.<\/li>\n\n\n\n<li>Vanilla and cinnamon &#8211; for flavor!<\/li>\n\n\n\n<li>Chocolate chips &#8211; optional. <\/li>\n<\/ul>\n\n\n\n<p>As you can see, there&#8217;s nothing fancy and you probably have all these ingredients on hand already!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"1020\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-4.jpg\" alt=\"These Easy Banana Oat Bars are gluten-free, dairy-free, kid-friendly and make the perfect snack. Grab the kids and try this recipe today!\" class=\"wp-image-25205\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-4.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-4-133x200.jpg 133w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/Banana-Oat-Bars-4-367x550.jpg 367w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">How To Make Banana Peanut Butter Oatmeal Bars<\/h2>\n\n\n\n<p>Making these bars couldn&#8217;t be easier!<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mash the bananas in a large bowl. <\/li>\n\n\n\n<li>Mix in the peanut butter, maple syrup, egg and vanilla and stir until well combined.<\/li>\n\n\n\n<li>Stir in the oats, baking powder, cinnamon and chocolate chips.<\/li>\n\n\n\n<li>Pour into an 8&#215;8 or 9&#215;9 pan and bake. <\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Grab your kids and head to the kitchen to make these today!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Healthy Banana Oat Bars Recipe<\/h2>\n\n\n<svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print tasty-recipes-print-above-card\" href=\"https:\/\/www.theleangreenbean.com\/easy-banana-oat-bars\/print\/33729\/\">Print<\/a><span class=\"tasty-recipes-jump-target\" id=\"tasty-recipes-33729-jump-target\" style=\"display:block;padding-top:2px;margin-top:-2px;\"><\/span><div id=\"tasty-recipes-33729\" data-tr-id=\"33729\" class=\"tasty-recipes tasty-recipes-33729 tasty-recipes-display tasty-recipes-has-image\" data-tasty-recipes-customization=\"primary-color.background-color primary-color.outline-color\">\n\n\n<h2 class=\"tasty-recipes-title\" data-tasty-recipes-customization=\"h2-color.color h2-transform.text-transform\">Easy Banana Oat Bars<\/h2>\n<div class=\"tasty-recipes-image-button-container\">\n\t\t\t<div class=\"tasty-recipes-image\">\n\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2018\/06\/Banana-Oat-Bars-1-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" data-pin-nopin=\"true\" title=\"\">\t\t<\/div>\n\t\t<div class=\"tasty-recipes-buttons\">\n\t\t\t\t<div class=\"tasty-recipes-button-wrap\">\n\t\t\t\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print\" href=\"https:\/\/www.theleangreenbean.com\/easy-banana-oat-bars\/print\/33729\/\" target=\"_blank\" data-tasty-recipes-customization=\"\">\n\t\t\t<svg viewBox=\"0 0 24 24\" class=\"svg-print\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-print\"><\/use><\/svg>\n\t\tPrint Recipe<\/a>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n<\/div>\n\t<div class=\"tasty-recipes-rating\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t\t\t<p><svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<span class=\"tasty-recipes-ratings-buttons tasty-recipes-no-ratings-buttons\"\tdata-tr-default-rating=\"4.8\"\t>\t\t<span class=\"tasty-recipes-rating\" data-tr-checked=\"1\">\t\t<i class=\"checked\" data-rating=\"5\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"80\">\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"9 9 46 42\" width=\"18\" height=\"17\">\t<defs>\t\t<linearGradient id=\"tasty-recipes-clip-10\">\t\t\t<stop offset=\"10%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-20\">\t\t\t<stop offset=\"20%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-30\">\t\t\t<stop offset=\"30%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-40\">\t\t\t<stop offset=\"40%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-50\">\t\t\t<stop offset=\"50%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-60\">\t\t\t<stop offset=\"60%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-70\">\t\t\t<stop offset=\"70%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-80\">\t\t\t<stop offset=\"80%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t\t<linearGradient id=\"tasty-recipes-clip-90\">\t\t\t<stop offset=\"90%\" stop-color=\"currentColor\" \/>\t\t\t<stop stop-opacity=\"var(--tr-star-opacity)\" offset=\"0%\" stop-color=\"currentColor\" \/>\t\t<\/linearGradient>\t<\/defs>\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t5 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"4\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"100\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t4 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"3\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"100\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t3 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"2\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"100\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t2 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"1\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"100\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t1 Star\t\t\t<\/span>\t\t<\/i>\t<\/span><\/span><\/p>\n\t\t\t\t\t\t\t<p><span data-tasty-recipes-customization=\"detail-label-color.color\" class=\"rating-label\"><span class=\"average\">4.8<\/span> from <span class=\"count\">9<\/span> reviews<\/span><\/p>\n\t\t\t<\/div>\n\n\n\t<div class=\"tasty-recipes-description\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t<p>These Easy Banana Oat Bars are gluten-free, kid-friendly and make the perfect snack.<\/p>\n\t<\/div>\n\n\t<div class=\"tasty-recipes-details\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t<ul>\n\t\t\t\t\t\t\t<li class=\"prep-time\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Prep Time:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-prep-time\">5 minutes<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"cook-time\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Cook Time:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-cook-time\">20 minutes<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"total-time\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Total Time:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-total-time\">25 minutes<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"yield\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Yield:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-yield\"><span data-amount=\"8\">8<\/span>x8 or <span data-amount=\"9\">9<\/span>x9 pan <span class=\"tasty-recipes-yield-scale\"><span data-amount=\"1\">1<\/span>x<\/span><\/span><\/li>\n\t\t\t\t\t<\/ul>\n\t<\/div>\n\n\t<div class=\"tasty-recipes-ingredients\">\n\t\t<div class=\"tasty-recipes-ingredients-header\">\n\t\t\t<div class=\"tasty-recipes-ingredients-clipboard-container\">\n\t\t\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Ingredients<\/h3>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<div class=\"tasty-recipes-units-scale-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tasty-recipes-scale-container\">\n\t\t\t\t\t\t<span class=\"tasty-recipes-scale-label\">Scale<\/span>\n\t\t\t\t\t\t<button class=\"tasty-recipes-scale-button tasty-recipes-scale-button-active\" data-amount=\"1\" type=\"button\">1x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"2\" type=\"button\">2x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"3\" type=\"button\">3x<\/button>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<div class=\"tasty-recipes-ingredients-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<ul>\n<li><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> ripe bananas (approx <span data-amount=\"3\">3<\/span> medium-large)<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"cup\">1\/2 cup<\/span> peanut butter<\/li>\n<li><span data-amount=\"2\">2<\/span>&#8211;<span data-amount=\"4\">4<\/span> Tbsp maple syrup<\/li>\n<li><span data-amount=\"1\">1<\/span> egg<\/li>\n<li><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> vanilla<\/li>\n<li><span data-amount=\"2\" data-unit=\"cup\">2 cups<\/span> rolled oats<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"tsp\">1\/2 tsp<\/span> baking powder<\/li>\n<li><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> cinnamon<\/li>\n<li>optional mix-ins: chocolate chips, hemp seeds, ground flax<\/li>\n<\/ul>\n<!--INSIDE_INGREDIENTS-->\t\t<\/div>\n\t\t<div class=\"tasty-recipes-cook-mode\">\n\t<div class=\"tasty-recipes-cook-mode__container\">\n\t\t<label class=\"tasty-recipes-cook-mode__switch\">\n\t\t\t<input type=\"checkbox\" id=\"tasty_recipes_696e562ae7e62_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__switch-slider tasty-recipes-cook-mode__switch-round\"\n\t\t\t\tdata-tasty-recipes-customization=\"button-color.background button-text-color.color\"><\/span>\n\t\t<\/label>\n\t\t<label for=\"tasty_recipes_696e562ae7e62_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__label\">Cook Mode<\/span>\n\t\t\t<span class=\"tasty-recipes-cook-mode__helper\">\n\t\t\t\tPrevent your screen from going dark\t\t\t<\/span>\n\t\t<\/label>\n\t<\/div>\n<\/div>\n\t<\/div>\n\n\t<div class=\"tasty-recipe-instructions\">\n\t\t<div class=\"tasty-recipes-instructions-header\">\n\t\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Instructions<\/h3>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"tasty-recipes-instructions-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<ol>\n<li id=\"instruction-step-1\">Mash bananas in a bowl.<\/li>\n<li id=\"instruction-step-2\">Add peanut butter, maple syrup and egg and mix well.<\/li>\n<li id=\"instruction-step-3\">Stir in oats, cinnamon, baking powder and chocolate chips and mix until combined.<\/li>\n<li id=\"instruction-step-4\">Pour into a 8&#215;8 baking pan lined with parchment paper.<\/li>\n<li id=\"instruction-step-5\">Bake at 350 for 20-22 minutes.<\/li>\n<li id=\"instruction-step-6\">Let cool, cut and serve.<\/li>\n<\/ol>\n\t\t<\/div>\n\t<\/div>\n\n\n\n\t<div class=\"tasty-recipes-notes\">\n\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Notes<\/h3>\n\t\t<div class=\"tasty-recipes-notes-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<p>This recipe is very forgiving. A little extra banana or oats won&#8217;t hurt. You can leave out the maple syrup or chocolate chips if you want.<\/p>\n<p>Feel free to bake in a 9&#215;9 pan if desired. Bars will just be a bit thinner.<\/p>\n\t\t<\/div>\n\t<\/div>\n\n\n\n\n\n<footer class=\"tasty-recipes-entry-footer\">\n\t<h3 data-tasty-recipes-customization=\"footer-heading-color.color h3-transform.text-transform footer-heading.innerText\">Did you make this recipe?<\/h3>\n\t<div data-tasty-recipes-customization=\"footer-description-color.color footer-description.innerHTML\"><p>Tag <a href=\"https:\/\/www.instagram.com\/theleangreenbean\" target=\"_blank\" rel=\"noreferrer noopener\">@theleangreenbean<\/a> on Instagram<\/p><\/div>\n<\/footer>\n\n\n\n<script>\nwindow.trCommon={\"minRating\":6,\"ajaxurl\":\"https:\\\/\\\/www.theleangreenbean.com\\\/wp-admin\\\/admin-ajax.php\",\"ratingNonce\":\"\",\"postId\":25202};\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.smoothScroll = {\ninit() {\ndocument.addEventListener( 'click', ( e ) => {\nlet anchor = e.target;\nif ( anchor.tagName !== 'A' ) {\nanchor = anchor.closest( 'a.tasty-recipes-scrollto' );\n}\n\nif ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {\nreturn;\n}\n\nconst elementHref = anchor.getAttribute( 'href' );\nif ( ! elementHref ) {\nreturn;\n}\n\ne.preventDefault();\nthis.goToSelector( elementHref );\n});\n},\ngoToSelector( selector ) {\nconst element = document.querySelector( selector );\nif ( ! element ) {\nreturn;\n}\nelement.scrollIntoView( { behavior: 'smooth' } );\n}\n};\n\ndocument.addEventListener(\n'DOMContentLoaded',\n() => window.TastyRecipes.smoothScroll.init()\n);\n\n(function(){\n\n\nvar bothEquals = function( d1, d2, D ) {\nvar ret = 0;\nif (d1<=D) {\nret++;\n}\nif (d2<=D) {\nret++;\n}\nreturn ret === 2;\n};\n\nvar frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)\/(d1+d2);if(x===m){if(d1+d2<=D){d1+=d2;n1+=n2;d2=D+1}else if(d1>d2){d2=D+1;}else {d1=D+1;}break}else if(x<m){n2=n1+n2;d2=d1+d2}else{n1=n1+n2;d1=d1+d2}}}if(d1>D){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1\/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-A<5e-8){break;}B=1\/(B-A);P_2=P_1;P_1=P;Q_2=Q_1;Q_1=Q}if(Q>D){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P\/Q);return[q,sgn*P-q*Q,Q]};\n\n\nwindow.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(\"%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D\"));\n\nwindow.tastyRecipesFormatAmount = function(amount, el) {\nif ( parseFloat( amount ) === parseInt( amount ) ) {\nreturn amount;\n}\nvar roundType = 'frac';\nif (typeof el.dataset.amountShouldRound !== 'undefined') {\nif ('false' !== el.dataset.amountShouldRound) {\nif ( 'number' === el.dataset.amountShouldRound ) {\nroundType = 'number';\n} else if ('frac' === el.dataset.amountShouldRound) {\nroundType = 'frac';\n} else if ('vulgar' === el.dataset.amountShouldRound) {\nroundType = 'vulgar';\n} else {\nroundType = 'integer';\n}\n}\n}\nif ('number' === roundType) {\namount = Number.parseFloat(amount).toPrecision(2);\n} else if ('integer' === roundType) {\namount = Math.round(amount);\n} else if ('frac' === roundType || 'vulgar' === roundType) {\nvar denom = 8;\nif (typeof el.dataset.unit !== 'undefined') {\nvar unit = el.dataset.unit;\nif (['cups','cup','c'].includes(unit)) {\ndenom = 4;\nif (0.125 === amount) {\ndenom = 8;\n}\nif (\"0.1667\" === Number.parseFloat( amount ).toPrecision(4)) {\ndenom = 6;\n}\n}\nif (['tablespoons','tablespoon','tbsp'].includes(unit)) {\ndenom = 2;\n}\nif (['teaspoons','teaspoon','tsp'].includes(unit)) {\ndenom = 8;\n}\n}\nvar amountArray = frac.cont( amount, denom, true );\nvar newAmount = '';\nif ( amountArray[1] !== 0 ) {\nnewAmount = amountArray[1] + '\/' + amountArray[2];\nif ('vulgar' === roundType) {\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {\nnewAmount = vulgar;\n}\n});\n}\n}\nif ( newAmount ) {\nnewAmount = ' ' + newAmount;\n}\nif ( amountArray[0] ) {\nnewAmount = amountArray[0] + newAmount;\n}\namount = newAmount;\n}\nreturn amount;\n};\n\n\nwindow.tastyRecipesUpdatePrintLink = () => {\n\nconst printButton = document.querySelector( '.tasty-recipes-print-button' );\n\n\nif ( ! printButton ) {\nreturn;\n}\n\nconst printURL = new URL( printButton.href );\nconst searchParams = new URLSearchParams( printURL.search );\n\nconst unitButton = document.querySelector( '.tasty-recipes-convert-button-active' );\nconst scaleButton = document.querySelector( '.tasty-recipes-scale-button-active' );\n\nlet unit = '';\nlet scale = '';\n\nif ( unitButton ) {\nunit = unitButton.dataset.unitType;\nsearchParams.delete('unit');\nsearchParams.set( 'unit', unit );\n}\n\nif ( scaleButton ) {\nscale = scaleButton.dataset.amount;\nsearchParams.set( 'scale', scale );\n}\n\nconst paramString = searchParams.toString();\nconst newURL = '' === paramString ? printURL.href : printURL.origin + printURL.pathname + '?' + paramString;\nconst printLinks = document.querySelectorAll( '.tasty-recipes-print-link' );\n\nprintLinks.forEach( ( el ) => {\nel.href = newURL;\n});\n\nconst printButtons = document.querySelectorAll( '.tasty-recipes-print-button' );\nprintButtons.forEach( ( el ) => {\nel.href = newURL;\n});\n};\n\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\n\nif ( ! window.location.href.includes( '\/print\/' ) ) {\nreturn;\n}\n\nconst searchParams = new URLSearchParams( window.location.search );\n\nconst unit = searchParams.get( 'unit' );\nconst scale = searchParams.get( 'scale' );\n\nif ( unit && ( 'metric' === unit || 'usc' === unit ) ) {\ndocument.querySelector( '.tasty-recipes-convert-button[data-unit-type=\"' + unit + '\"]' ).click();\n}\n\nif ( scale && Number(scale) > 0 ) {\ndocument.querySelector( '.tasty-recipes-scale-button[data-amount=\"' + Number(scale) + '\"]' ).click();\n}\n});\n}());\n\n(function(){\nvar buttonClass = 'tasty-recipes-scale-button',\nbuttonActiveClass = 'tasty-recipes-scale-button-active',\nbuttons = document.querySelectorAll('.tasty-recipes-scale-button');\nif ( ! buttons ) {\nreturn;\n}\n\nbuttons.forEach(function(button){\nbutton.addEventListener('click', function(event){\nevent.preventDefault();\nvar recipe = event.target.closest('.tasty-recipes');\nif ( ! recipe ) {\nreturn;\n}\nvar otherButtons = recipe.querySelectorAll('.' + buttonClass);\notherButtons.forEach(function(bt){\nbt.classList.remove(buttonActiveClass);\n});\nbutton.classList.add(buttonActiveClass);\n\n\nvar scalables = recipe.querySelectorAll('span[data-amount]');\nvar buttonAmount = parseFloat( button.dataset.amount );\nscalables.forEach(function(scalable){\nif (typeof scalable.dataset.amountOriginalType === 'undefined'\n&& typeof scalable.dataset.nfOriginal === 'undefined') {\nif (-1 !== scalable.innerText.indexOf('\/')) {\nscalable.dataset.amountOriginalType = 'frac';\n}\nif (-1 !== scalable.innerText.indexOf('.')) {\nscalable.dataset.amountOriginalType = 'number';\n}\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (-1 !== scalable.innerText.indexOf(vulgar)) {\nscalable.dataset.amountOriginalType = 'vulgar';\n}\n});\nif (typeof scalable.dataset.amountOriginalType !== 'undefined') {\nscalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;\n}\n}\nvar amount = parseFloat( scalable.dataset.amount ) * buttonAmount;\namount = window.tastyRecipesFormatAmount(amount, scalable);\nif ( typeof scalable.dataset.unit !== 'undefined' ) {\nif ( ! scalable.classList.contains('nutrifox-quantity') ) {\nif ( ! scalable.classList.contains('nutrifox-second-quantity') ) {\namount += ' ' + scalable.dataset.unit;\n}\n}\n}\nscalable.innerText = amount;\n});\n\nvar nonNumerics = recipe.querySelectorAll('[data-has-non-numeric-amount]');\nnonNumerics.forEach(function(nonNumeric){\nvar indicator = nonNumeric.querySelector('span[data-non-numeric-label]');\nif ( indicator ) {\nnonNumeric.removeChild(indicator);\n}\nif ( 1 !== buttonAmount ) {\nindicator = document.createElement('span');\nindicator.setAttribute('data-non-numeric-label', true);\nvar text = document.createTextNode(' (x' + buttonAmount + ')');\nindicator.appendChild(text);\nnonNumeric.appendChild(indicator);\n}\n});\n\nwindow.tastyRecipesUpdatePrintLink();\n});\n});\n}());\n\nwindow.TastyRecipes = window.TastyRecipes || {};\nwindow.TastyRecipes.cookMode = {\nwakeLockApi: false,\nwakeLock: false,\ncookModeSelector: '.tasty-recipes-cook-mode',\ninit() {\nif (\"wakeLock\" in navigator && \"request\" in navigator.wakeLock) {\nthis.wakeLockApi = navigator.wakeLock;\n}\n\nconst cookModes = document.querySelectorAll(this.cookModeSelector);\n\nif (cookModes.length > 0) {\nfor (const cookMode of cookModes) {\nif (this.wakeLockApi) {\ncookMode.querySelector('input[type=\"checkbox\"]').addEventListener(\"change\", event => {\nthis.checkboxChange(event.target);\n}, false);\n} else {\ncookMode.style.display = \"none\";\n}\n}\n}\n},\ncheckboxChange(checkbox) {\nif (checkbox.checked) {\nthis.lock();\n} else {\nthis.unlock();\n}\n},\nsetCheckboxesState(state) {\nconst checkboxes = document.querySelectorAll(this.cookModeSelector + ' input[type=\"checkbox\"]');\nfor (const checkbox of checkboxes) {\ncheckbox.checked = state;\n}\n},\nasync lock() {\ntry {\nthis.wakeLock = await this.wakeLockApi.request(\"screen\");\nthis.wakeLock.addEventListener(\"release\", () => {\nthis.wakeLock = false;\nthis.setCheckboxesState(false);\n});\nthis.setCheckboxesState(true);\n} catch (error) {\nthis.setCheckboxesState(false);\n}\n},\nunlock() {\nif (this.wakeLock) {\nthis.wakeLock.release();\nthis.wakeLock = false;\n}\nthis.setCheckboxesState(false);\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\ndocument.addEventListener(\"DOMContentLoaded\", callback);\n}\n})(() => {\nwindow.TastyRecipes.cookMode.init();\n});\n\n\n\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.staticTooltip = {\nelement: null,\ntooltipElement: null,\ndeleting: false,\ninit( element ) {\nif ( this.deleting ) {\nreturn;\n}\nthis.element = element;\nthis.buildElements();\n},\ndestroy() {\nif ( ! this.tooltipElement || this.deleting ) {\nreturn;\n}\n\nthis.deleting = true;\nthis.tooltipElement.classList.remove( 'opened' );\n\nsetTimeout( () => {\nthis.tooltipElement.remove();\nthis.deleting = false;\n}, 500 );\n},\nbuildElements() {\nconst tooltipElement = document.createElement( 'div' );\ntooltipElement.classList.add( 'tasty-recipes-static-tooltip');\ntooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );\n\nconst currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\nif ( currentTooltipElement ) {\ndocument.body.replaceChild( tooltipElement, currentTooltipElement );\n} else {\ndocument.body.appendChild( tooltipElement );\n}\n\nthis.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\n},\nshow() {\nif ( ! this.tooltipElement ) {\nreturn;\n}\n\nconst tooltipTop = this.element.getBoundingClientRect().top\n+ window.scrollY\n- 10 \/\/ 10px offset.\n- this.tooltipElement.getBoundingClientRect().height;\nconst tooltipLeft = this.element.getBoundingClientRect().left\n- ( this.tooltipElement.getBoundingClientRect().width \/ 2 )\n+ ( this.element.getBoundingClientRect().width \/ 2 ) - 1;\nconst posLeft = Math.max( 10, tooltipLeft );\nthis.maybeRemoveTail( posLeft !== tooltipLeft );\n\nthis.tooltipElement.setAttribute( 'style', 'top:' + tooltipTop + 'px;left:' + posLeft + 'px;' );\nthis.tooltipElement.classList.add( 'opened' );\n\n},\nmaybeRemoveTail( removeTail ) {\nif ( removeTail ) {\nthis.tooltipElement.classList.add( 'tr-hide-tail' );\n} else {\nthis.tooltipElement.classList.remove( 'tr-hide-tail' );\n}\n},\nchangeMessage( message ) {\nif ( ! this.tooltipElement ) {\nreturn;\n}\nthis.tooltipElement.innerHTML = message;\n}\n};\n\nwindow.TastyRecipes.ajax = {\nsendPostRequest( url, data, success, failure ) {\nconst xhr = new XMLHttpRequest();\nxhr.open( 'POST', url, true );\nxhr.send( this.preparePostData( data ) );\n\nxhr.onreadystatechange = () => {\nif ( 4 !== xhr.readyState ) {\nreturn;\n}\nif ( xhr.status === 200 ) {\nsuccess( JSON.parse( xhr.responseText ) );\nreturn;\n}\n\nfailure( xhr );\n};\n\nxhr.onerror = () => {\nfailure( xhr );\n};\n},\npreparePostData( data ) {\nconst formData = new FormData();\n\nfor ( const key in data ) {\nformData.append( key, data[key] );\n}\nreturn formData;\n},\n};\n\nwindow.TastyRecipes.ratings = {\ndefaultRating: 0,\ncurrentRatingPercentage: 100,\nsavingRating: false,\ninit( minRating ) {\nthis.minRating = minRating;\n\nthis.formWatchRating();\nthis.closeTooltipWhenClickOutside();\nthis.addBodyClassBasedOnSelectedRating();\nthis.backwardCompFormRatingPosition();\n},\nformWatchRating() {\nconst ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');\nif ( ratings.length <= 0 ) {\nreturn;\n}\nfor ( const rating of ratings ) {\nrating.addEventListener( 'click', event => {\nevent.preventDefault();\nthis.defaultRating = event.target.closest( '.checked' ).dataset.rating;\nthis.setCheckedStar( event.target );\nthis.maybeSendRating( this.defaultRating, event.target );\nthis.setRatingInForm( this.defaultRating );\n} );\n}\n},\ncloseTooltipWhenClickOutside() {\nwindow.addEventListener( 'click', e => {\n\/\/ Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.\nif ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {\nreturn;\n}\n\nwindow.TastyRecipes.staticTooltip.destroy();\n} );\n},\n setRatingInForm( rating ) {\nconst ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value=\"' + rating + '\"]' );\nif ( ! ratingInput ) {\nreturn;\n}\nratingInput.click();\n},\naddBodyClassBasedOnSelectedRating() {\nconst ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );\nif ( ! ratingInputs ) {\nreturn;\n}\nfor ( const ratingInput of ratingInputs ) {\nratingInput.addEventListener( 'click', currentEvent => {\nconst selectedRating = currentEvent.target.getAttribute( 'value' );\nthis.handleBodyClassByRating( selectedRating );\nthis.toggleCommentTextareaRequired( selectedRating );\n} );\n}\n},\nhandleBodyClassByRating( rating ) {\nif ( rating < this.minRating ) {\ndocument.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );\nreturn;\n}\ndocument.body.classList.add( 'tasty-recipes-selected-minimum-rating' );\n},\ntoggleCommentTextareaRequired( rating ) {\nconst commentTextarea = document.getElementById( 'comment' );\nif ( ! commentTextarea ) {\nreturn;\n}\n\nif ( rating < this.minRating ) {\ncommentTextarea.setAttribute( 'required', '' );\nreturn;\n}\n\ncommentTextarea.removeAttribute( 'required' );\n},\nmaybeSendRating( rating, element ) {\nif ( this.savingRating === rating ) {\nreturn;\n}\n\nthis.savingRating = rating;\nwindow.TastyRecipes.staticTooltip.init( element );\n\nconst recipeCardElement = element.closest( '.tasty-recipes' );\nif ( ! recipeCardElement ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nreturn;\n}\n\nwindow.TastyRecipes.ajax.sendPostRequest(\nwindow.trCommon.ajaxurl,\n{\naction: 'tasty_recipes_save_rating',\nrating,\nnonce: window.trCommon.ratingNonce,\npost_id: window.trCommon.postId,\nrecipe_id: recipeCardElement.dataset.trId,\n},\n( response ) => {\nwindow.TastyRecipes.staticTooltip.changeMessage( response.data.message );\nwindow.TastyRecipes.staticTooltip.show();\nthis.updateAverageText( response.data, recipeCardElement );\nthis.maybeFillCommentForm( response.data );\n\n\/\/ Hide the tooltip after 5 seconds.\nsetTimeout( () => {\nthis.maybeResetTooltip( recipeCardElement, response.data, rating );\n}, 5000 );\n},\n() => {\nthis.resetTooltip( recipeCardElement );\n}\n);\n},\nupdateAverageText( data, recipeCardElement ) {\nif ( ! data.average ) {\nreturn;\n}\nthis.setRatingPercent( data );\n\nif ( ! data.count ) {\nreturn;\n}\n\nconst quickLink = document.querySelector( '.tasty-recipes-rating-link' );\nif ( quickLink ) {\nthis.setTextInContainer( quickLink, data );\nthis.setPartialStar( quickLink );\n}\n\nconst cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\ncardStars.dataset.trDefaultRating = data.average;\nthis.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );\n},\nsetTextInContainer( container, data ) {\nif ( ! container ) {\nreturn;\n}\n\nif ( data.label ) {\nconst ratingLabelElement = container.querySelector( '.rating-label' );\nif ( ratingLabelElement ) {\nratingLabelElement.innerHTML = data.label;\n}\nreturn;\n}\n\nconst averageElement = container.querySelector( '.average' );\nif ( averageElement ) {\naverageElement.textContent = data.average;\n}\n\nconst countElement = container.querySelector( '.count' );\nif ( countElement ) {\ncountElement.textContent = data.count;\n}\n},\nsetPartialStar( container ) {\nconst highestStar = container.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( highestStar ) {\nhighestStar.dataset.trClip = this.currentRatingPercentage;\n}\n},\nsetRatingPercent( data ) {\nthis.defaultRating = data.average.toFixed( 1 );\nconst parts = data.average.toFixed( 2 ).toString().split( '.' );\nthis.currentRatingPercentage = parts[1] ? parts[1] : 100;\nif ( this.currentRatingPercentage === '00' ) {\nthis.currentRatingPercentage = 100;\n}\n},\nsetCheckedStar( target ) {\nconst cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( selectedRatingElement ) {\ndelete selectedRatingElement.dataset.trChecked;\n}\n\nconst thisStar = target.closest( '.tasty-recipes-rating' );\nthisStar.dataset.trChecked = 1;\nthisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;\n},\nmaybeFillCommentForm( data ) {\nif ( ! data.comment || ! data.comment.content ) {\nreturn;\n}\n\nconst commentForm = document.querySelector( '#commentform' );\nif ( ! commentForm ) {\nreturn;\n}\n\nconst commentBox = commentForm.querySelector( '[name=comment]' );\nif ( ! commentBox || commentBox.value ) {\nreturn;\n}\n\n\/\/ Add comment details for editing.\ncommentBox.innerHTML = data.comment.content;\nif ( data.comment.name ) {\ncommentForm.querySelector( '[name=author]' ).value = data.comment.name;\ncommentForm.querySelector( '[name=email]' ).value = data.comment.email;\n}\n},\nmaybeResetTooltip( recipeCardElement, data, rating ) {\nif ( this.savingRating === rating ) {\nthis.resetTooltip( recipeCardElement, data );\n}\n},\nresetTooltip( recipeCardElement, data ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nthis.savingRating = false;\n\n\/\/ Reset the default rating.\nconst cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\nif ( cardRatingContainer ) {\nthis.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;\ncardRatingContainer.dataset.trDefaultRating = this.defaultRating;\n\nthis.resetSelectedStar( cardRatingContainer, data );\n}\n},\nresetSelectedStar( cardRatingContainer ) {\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( selectedRatingElement ) {\nselectedRatingElement.querySelector( '[data-tr-clip]' ).dataset.trClip = this.currentRatingPercentage;\nselectedRatingElement.parentNode.dataset.trChecked = 1;\n}\n\nconst previousSelectedElement= cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( previousSelectedElement ) {\nconst currentSelectedRating = previousSelectedElement.querySelector('[data-rating]');\nif ( currentSelectedRating !== selectedRatingElement ) {\ndelete previousSelectedElement.dataset.trChecked;\n}\n}\n},\nbackwardCompFormRatingPosition() {\nconst ratingsButtons = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );\nif ( ! ratingsButtons ) {\nreturn;\n}\nconst ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);\nif ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {\nratingsButtons.style.direction = 'rtl';\n}\n\nif ( typeof tastyRecipesRating !== 'undefined' ) {\n\/\/ Select the rating that was previously selected in admin.\nratingsButtons.querySelector( '.tasty-recipes-rating[value=\"' + tastyRecipesRating + '\"]' ).checked = true;\n}\n\nconst ratingSpans = ratingsButtons.querySelectorAll( '.tasty-recipes-rating' );\nfor (const ratingSpan of ratingSpans) {\nratingSpan.addEventListener( 'click', event => {\nif ( ratingSpan === event.target ) {\nreturn;\n}\nratingSpan.previousElementSibling.click();\n} );\n}\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\nwindow.addEventListener( 'load', callback );\n}\n})(() => {\nwindow.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );\n});\n<\/script><\/div>\n\n\n<p>See what I mean by super easy? This recipe is very forgiving. If your measurements aren&#8217;t exact, don&#8217;t worry! <\/p>\n\n\n\n<p>You can use an 8&#215;8 pan for thicker bars or a 9&#215;9 pan if you like them a bit thinner.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Banana Oat Bars FAQS<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Can I make blueberry banana oat bars?<\/h3>\n\n\n\n<p>Yes! Feel free to substitute fresh or frozen blueberries for the chocolate chips if you prefer. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to make chocolate banana oat bars?<\/h3>\n\n\n\n<p>Try adding 1\/4 cup cocoa powder to give these a chocolate twist. If using cocoa powder, I would use 1\/4 cup maple syrup as well. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to make vegan banana oat bars?<\/h3>\n\n\n\n<p>To make these bars vegan, sub 1\/4 cup applesauce for the egg.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to store these bars?<\/h3>\n\n\n\n<p>Once the bars are cooled and cut, you can store in a container on the counter for 3-4 days.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Are these gluten-free banana oat bars?<\/h3>\n\n\n\n<p>Yes! This recipe is naturally gluten-free. Be sure to use certified gluten-free oats if needed. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How can I make no-bake banana oat bars?<\/h3>\n\n\n\n<p>These bars require an oven but if you&#8217;re looking for a no-bake recipe, try these <a href=\"https:\/\/www.slenderkitchen.com\/recipe\/no-bake-peanut-butter-banana-oat-bars\" target=\"_blank\" rel=\"noopener\">No Bake Peanut Butter Banana Oat Bars<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can these be carrot banana oat bars?<\/h3>\n\n\n\n<p>Yes! You could easily add 1\/2 &#8211; 3\/4 cup of shredded carrots to these bars!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How can I make 4 ingredient banana oat bars?<\/h3>\n\n\n\n<p>The 4 main ingredients in these bars are mashed bananas, peanut butter, oats and an egg so if you really want to keep it simple you can try that. The cinnamon, vanilla, and maple syrup just add a little more flavor. Mix-ins are extra ingredients but a fun way to customize these bars to your liking.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chocolate Chip Banana Oat Bars<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"2040\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/banana-oat-bars.jpg\" alt=\"These Easy Banana Oat Bars are gluten-free, dairy-free, kid-friendly and make the perfect snack. Grab the kids and try this recipe today!\" class=\"wp-image-25206\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/banana-oat-bars.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/banana-oat-bars-67x200.jpg 67w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2017\/01\/banana-oat-bars-183x550.jpg 183w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<p>Let&#8217;s chat:<\/p>\n\n\n\n<p>Do your kids help you in the kitchen? What&#8217;s your favorite thing to make?<\/p>\n\n\n\n<p>Enjoy!<br>&#8211;Lindsay&#8211;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>These Easy Banana Oat Bars are gluten-free, dairy-free, kid-friendly and make the perfect snack. \u00a0Grab the kids and try this recipe today! *Originally published in Jan 2017. Updated July 2024* Hi friends! These Healthy Banana Oat Bars are a kid favorite around here and they&#8217;re so darn easy. We make them frequently because they&#8217;re pretty [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":25204,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[73,77,74,247,254],"tags":[178,162,123,159,133,113],"class_list":{"0":"post-25202","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-snack","8":"category-baking","9":"category-breakfast","10":"category-gluten-free","11":"category-healthy-muffins-bars","12":"tag-banana","13":"tag-chocolate-chips","14":"tag-egg","15":"tag-maple-syrup","16":"tag-oats","17":"tag-peanut-butter","18":"entry"},"_links":{"self":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/25202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/comments?post=25202"}],"version-history":[{"count":9,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/25202\/revisions"}],"predecessor-version":[{"id":43104,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/25202\/revisions\/43104"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/media\/25204"}],"wp:attachment":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/media?parent=25202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/categories?post=25202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/tags?post=25202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}