{"id":4149,"date":"2026-01-15T00:05:00","date_gmt":"2026-01-15T05:05:00","guid":{"rendered":"http:\/\/www.theleangreenbean.com\/?p=4149"},"modified":"2026-01-15T14:41:28","modified_gmt":"2026-01-15T19:41:28","slug":"caramel-chocolate-bars","status":"publish","type":"post","link":"https:\/\/www.theleangreenbean.com\/caramel-chocolate-bars\/","title":{"rendered":"Caramel Chocolate Bars"},"content":{"rendered":"\n<p><em>These Caramel Chocolate Bars are perfect for everything from birthday parties to holiday cookie trays. Sweet, chewy and stuffed with delicious caramel and chocolate.<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"929\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-6-3.jpg\" alt=\"caramel chocolate bars\" class=\"wp-image-101575\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-6-3.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-6-3-146x200.jpg 146w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-6-3-403x550.jpg 403w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>*Originally published 12\/2011. Updated 1\/2026*<\/em><\/p>\n\n\n\n<p>Hi friends!<\/p>\n\n\n\n<p>I&#8217;m excited to share these Caramel Chocolate Bars with you guys today! This recipe was originally shared on the blog way back in 2011 and now here we are 15 years later! Thery&#8217;re still a favorite so I decided they could use a little refresh!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why You&#8217;ll Love These Caramel Chocolate Bars<\/h2>\n\n\n\n<p>An easy, crowd-pleasing recipe, I&#8217;m sure they&#8217;ll be a hit because:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>They&#8217;re made with simple ingredients<\/li>\n\n\n\n<li>Also known as caramelitas, they are a staple on a lot of holiday cookie trays. <\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Caramel Chocolate Bars Ingredients<\/h2>\n\n\n\n<p>To make these bars, you just need a few simple ingredients including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Butter &#8211; melted and cooled slightly<\/li>\n\n\n\n<li>Brown Sugar &#8211; works better than white sugar in this recipe<\/li>\n\n\n\n<li>Vanilla extract &#8211; for flavor<\/li>\n\n\n\n<li>Flour- can sub a 1:1 gluten-free flour if needed<\/li>\n\n\n\n<li>Oats &#8211; I use quick oats instead of rolled oats because I like texture better in cookies<\/li>\n\n\n\n<li>Baking soda and salt<\/li>\n\n\n\n<li>Chocolate chips &#8211; dark or semi-sweet<\/li>\n\n\n\n<li>Caramels &#8211; the individually wrapped kind, not the the caramel sauce<\/li>\n\n\n\n<li>Heavy cream &#8211; to mix with the caramel<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How To Make Caramel Chocolate Bars<\/h2>\n\n\n\n<p>These bars are met in a few separate phases:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Melt the butter and mix it with the brown sugar, vanilla, flour, oats, baking soda and salt until well combined. The mixture will be a bit crumbly.<\/li>\n\n\n\n<li>Divide the oat mixture in half and press half into a pan.<\/li>\n\n\n\n<li>Bake the bottom layer.<\/li>\n\n\n\n<li>Melt the caramels and cream in the microwave to make a sauce.<\/li>\n\n\n\n<li>Top bottom layer with chocolate chips. Then add caramel sauce.<\/li>\n\n\n\n<li>Top with the remaining oat mixture and bake again!<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"953\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-5-2.jpg\" alt=\"stack of easy caramel chocolate bars with a bowl of oats\" class=\"wp-image-101576\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-5-2.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-5-2-143x200.jpg 143w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-5-2-392x550.jpg 392w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Bar Variations<\/h2>\n\n\n\n<p>If you&#8217;re looking to change things up a little bit, try:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Salted Caramel Chocolate Bars<\/h3>\n\n\n\n<p>You can either sprinkle the layer of caramel with flaky sea salt or add a sprinkle of salt over the oat topping before baking.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pretzel Caramel Chocolate Bars<\/h3>\n\n\n\n<p>Another option if you love the sweet and salty combo, would be to chop up some pretzels and add them to the dough. You could reduce the oats my 1\/4 cup and replace with 1\/4 cup chopped pretzels.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pecan Caramel Chocolate Bars<\/h3>\n\n\n\n<p>These bars are also great with the addition of nuts. Add some chopped pecans on top when you add the chocolate chips and then top with caramel. You could also use walnuts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Coconut Caramel Chocolate Bars<\/h3>\n\n\n\n<p>Try adding some shredded sweetened coconut for a fun twist! You can mix into the crust or sprinkle on top as you add the oat topping over the caramel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Peanut Butter Caramel Chocolate Bars<\/h3>\n\n\n\n<p>Try mixing 1\/3 cup peanut butter into the dough mixture when you add the brown sugar and vanilla.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"958\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-8-2.jpg\" alt=\"caramel chocolate bars wtih caramel and oats\" class=\"wp-image-101578\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-8-2.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-8-2-142x200.jpg 142w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-8-2-390x550.jpg 390w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">How To Freeze and Store Caramel Chocolate Bars<\/h2>\n\n\n\n<p>These bars can be stored at room temperature in a sealed container for a week or two! If you&#8217;d like to freeze them, place in a freezer-safe bag with parchment paper between layers and freeze up to 3 months. To thaw, let sit at room temperature until thawed all the way through.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cutting Caramel Bars<\/h2>\n\n\n\n<p>Perhaps the most important part of this recipe is to let the bars cool completely before trying to cut them. If you try to slice into the bars while they are still warm, you&#8217;ll be left with a gooey, sticky mess. The bars will crumble and the caramel will stick to the knife.<\/p>\n\n\n\n<p>Let the bars cool completely and it should be very easy to cut into bars of your desired size.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cookie Swap &amp; Dessert Bar<\/h2>\n\n\n\n<p>These bars are perfect for a holiday cookie swap or dessert bar. They are nut-free which helps to avoid a common allergen and can also be made gluten-free by using a 1:1 gluten-free flour blend (I like <a href=\"https:\/\/shop.kingarthurbaking.com\/items\/gluten-free-measure-for-measure-flour?srsltid=AfmBOoq61DE_VCpNvt0qJcd4kTVXjvN6RvfNucpF8ipbZokzYaVZBfYM\" target=\"_blank\" rel=\"noopener\">King Arther Gluten-free Measure for Measure<\/a>) as well as certified gluten-free oats.<\/p>\n\n\n\n<p>Bars are great for swaps because you can cut them into whatever size you want &#8211; smaller for a cookie swap where there are going to be a lot of dessert exchanged or larger if they are the star of the show!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"909\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-3-2.jpg\" alt=\"caramel chocolate bars with oats\" class=\"wp-image-101581\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-3-2.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-3-2-150x200.jpg 150w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-3-2-411x550.jpg 411w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Can I make in a 9&#215;13 pan? <\/h3>\n\n\n\n<p>I would not attempt to make these in a 9&#215;13 pan without doubling the recipe. You won&#8217;t have enough dough to split it in half and cover the entire layer of a 9&#215;13 pan with the original recipe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What if the caramel overflows?<\/h3>\n\n\n\n<p>If the caramel overflows around the edges of the bars, you may have used a few too many caramels. But don&#8217;t worry! You can just slice of a very thin bit around the entire outside edge to clean them up and make them look pretty again!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why are my caramel chocolate bars crumbly?<\/h3>\n\n\n\n<p>If you follow the recipe as written, your bars should not be crumbly. They should hold together well UNLESS you try to slice them before they are completely cool.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Caramel Chocolate Bars Recipe<\/h2>\n\n\n\n<p>Here&#8217;s the exact recipe I use:<\/p>\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\/caramel-chocolate-bars\/print\/101433\/\">Print<\/a><span class=\"tasty-recipes-jump-target\" id=\"tasty-recipes-101433-jump-target\" style=\"display:block;padding-top:2px;margin-top:-2px;\"><\/span><div id=\"tasty-recipes-101433\" data-tr-id=\"101433\" class=\"tasty-recipes tasty-recipes-101433 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\">Caramel Chocolate 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\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-6-3-copy-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"caramel chocolate bars square\" 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\/caramel-chocolate-bars\/print\/101433\/\" 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=\"0\"\t>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"5\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\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\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=\"0\">\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=\"0\">\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=\"0\">\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=\"0\">\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\">No 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><em>These Caramel Chocolate Bars are perfect for everything from birthday parties to holiday cookie trays. Sweet, chewy and stuffed with delicious caramel and chocolate.<\/em><\/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=\"author\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Author:<\/strong> <a data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-author-name\" href=\"https:\/\/www.theleangreenbean.com\/about-me\/\">Lindsay<\/a><\/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 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 dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"8\" data-unit=\"tbsp\">8 Tbsp<\/span> butter melted<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"0.75\" data-unit=\"cup\">\u00be cup<\/span> brown sugar<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> vanilla\u00a0<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> flour<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> oats<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> baking soda<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"0.25\" data-unit=\"tsp\">\u00bc tsp<\/span> salt<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> chocolate chips<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"8\" data-unit=\"oz\">8oz<\/span> caramels (approx 30 caramels)<\/span><\/li>\n<li dir=\"ltr\" style=\"line-height: 1.38\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\"><span data-amount=\"0.33333333333333\" data-unit=\"cup\">\u2153 cup<\/span> heavy cream<\/span><span id=\"docs-internal-guid-8d8da0e0-7fff-5cda-fc3a-6a39660b8cad\"><\/span><\/li>\n<li><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Pecans optional<\/span><\/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_696e52f8608e4_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_696e52f8608e4_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\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Melt butter. Mix in brown sugar and vanilla.<\/span><\/li>\n<li id=\"instruction-step-2\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Add flour, oats, baking soda and salt and stir to combine. Mixture will be crumbly.<\/span><\/li>\n<li id=\"instruction-step-3\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Press half of the mixture into 8&#215;8 pan lined with parchment paper.<\/span><\/li>\n<li id=\"instruction-step-4\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Bake 8 minutes at 350 degrees F.<\/span><\/li>\n<li id=\"instruction-step-5\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Remove caramels from their wrappers and place in a microwave safe bowl with the heavy cream. Microwave 60 &#8211; 90 seconds, stirring every 30 seconds. Remove from the microwave and stir continuously while caramels melt and mix with cream. Microwave an additional 30 seconds if needed.\u00a0<\/span><\/li>\n<li id=\"instruction-step-6\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Remove crust from oven after 8 minutes and sprinkle chocolate chips over crust.<\/span><\/li>\n<li id=\"instruction-step-7\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Pour caramel mixture on top and spread evenly to cover the crust, mixing with the chocolate chips.<\/span><\/li>\n<li id=\"instruction-step-8\" dir=\"ltr\" style=\"line-height: 1.38\" role=\"presentation\"><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Crumble the remaining oat mixture over top. Bake 15 &#8211; 17 minutes.<br \/><\/span><span style=\"font-size: 10.5pt;font-family: Arial,sans-serif;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline;white-space: pre-wrap\">Let cool COMPLETELY before cutting.<\/span><\/li>\n<\/ol>\n\t\t<\/div>\n\t<\/div>\n\n\n\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\":4149};\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<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Caramel Chocolate Bars FAQs<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What are caramel chocolate bars made of?<\/h3>\n\n\n\n<p>These bars are a simple mix of butter, sugar, vanilla, oats and flour, with a layer of chocolate and caramel in between the crust and topping.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Are caramel chocolate bars the same as caramelitas?<\/h3>\n\n\n\n<p>If you&#8217;re a super long-time reader, you may remember these were originally published as Caramelitas. The title has been changed to more accurately reflect the ingredients and make it easier to describe the bars! Both names describe these bars.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I make caramel chocolate bars ahead of time?<\/h3>\n\n\n\n<p>Yes! In fact, making caramel chocolate bars ahead of time is a must. They need to cool completely before you can cut them so be sure to plan ahead!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do caramel chocolate bars need to be refrigerated?<\/h3>\n\n\n\n<p>No. These bars can be stored at room temperature.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"858\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-4-2.jpg\" alt=\"caramel chocolate bars with oat crumble topping\" class=\"wp-image-101586\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-4-2.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-4-2-159x200.jpg 159w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/Carmelitas-_-The-Lean-Green-Bean-4-2-436x550.jpg 436w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Can I freeze caramel chocolate bars?<\/h3>\n\n\n\n<p>Yes! These bars can be frozen in a freezer-safe bag or container with parchment paper between the layers for up to 3 months.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I keep caramel chocolate bars from falling apart?<\/h3>\n\n\n\n<p>Be sure to let the bars cool completely before cutting. This will help them firm up so they hold together well. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What&#8217;s the best caramel to use for caramel chocolate bars?<\/h3>\n\n\n\n<p>Any variety of individually wrapped caramels should work. I like <a href=\"https:\/\/www.kraftheinz.com\/caramels\/products\/00070346000095-america-s-classic-individually-wrapped-candy-caramels\" target=\"_blank\" rel=\"noopener\">Kraft&#8217;s caramels<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I make salted caramel chocolate bars?<\/h3>\n\n\n\n<p>Yes. Feel free to add a sprinkle of flaky sea salt to the top of the caramel layer or on top of the oat topping.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Are caramel chocolate bars good for cookie swaps?<\/h3>\n\n\n\n<p>Yes. Bars are great for cookie swaps because you can easily cut them into whatever size bars you need, large or small!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"1500\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/caramel-chocolate-bars.jpg\" alt=\"These Caramel Chocolate Bars are perfect for everything from birthday parties to holiday cookie trays. Sweet, chewy and stuffed with delicious caramel and chocolate.\" class=\"wp-image-101590\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/caramel-chocolate-bars.jpg 600w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/caramel-chocolate-bars-80x200.jpg 80w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2011\/12\/caramel-chocolate-bars-220x550.jpg 220w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>&#8211;Lindsay&#8211;<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>These Caramel Chocolate Bars are perfect for everything from birthday parties to holiday cookie trays. Sweet, chewy and stuffed with delicious caramel and chocolate. *Originally published 12\/2011. Updated 1\/2026* Hi friends! I&#8217;m excited to share these Caramel Chocolate Bars with you guys today! This recipe was originally shared on the blog way back in 2011 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":101583,"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":[77,72],"tags":[],"class_list":{"0":"post-4149","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-baking","8":"category-dessert","9":"entry"},"_links":{"self":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/4149","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=4149"}],"version-history":[{"count":11,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/4149\/revisions"}],"predecessor-version":[{"id":101591,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/4149\/revisions\/101591"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/media\/101583"}],"wp:attachment":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/media?parent=4149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/categories?post=4149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/tags?post=4149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}