<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Joy + OliverHomemade Hot Chocolate Bomb - Joy + Oliver</title>
	<atom:link href="https://joyoliver.com/homemade-hot-chocolate-bomb/feed/" rel="self" type="application/rss+xml" />
	<link>https://joyoliver.com/homemade-hot-chocolate-bomb/</link>
	<description>Dessert &#38; Entertaining Blog</description>
	<lastBuildDate>Wed, 22 Apr 2026 16:09:24 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	
	<item>
		<title>Homemade Hot Chocolate Bomb</title>
		<link>https://joyoliver.com/homemade-hot-chocolate-bomb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=homemade-hot-chocolate-bomb</link>
		<enclosure url="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-683x1024.jpg" type="image/jpeg" /> 
		<comments>https://joyoliver.com/homemade-hot-chocolate-bomb/#respond</comments>
		<pubDate>Tue, 01 Dec 2020 05:20:44 +0000</pubDate>
		<dc:creator><![CDATA[Kristen Massad]]></dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Chocolate]]></category>
		<category><![CDATA[Cocktails + Smoothies Recipes]]></category>
		<category><![CDATA[Gluten Free]]></category>
		<category><![CDATA[Holiday]]></category>
		<category><![CDATA[Kids]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[Christmas Hot Chocolate]]></category>
		<category><![CDATA[Homemade Hot Chocolate]]></category>
		<category><![CDATA[Homemade Hot Chocolate Bomb]]></category>
		<category><![CDATA[hot chocolate]]></category>
		<category><![CDATA[Hot Chocolate Bomb]]></category>
		<category><![CDATA[Hot Cocoa Bomb]]></category>

		<guid isPermaLink="false">https://joyoliver.com/?p=9036</guid>
		<description><![CDATA[When life gives you hot chocolate, make a Homemade Hot Chocolate Bomb!  Melted dark chocolate and white chocolate painted into dome shaped molds, filled with hot cocoa mix and mini marshmallows makes for one exciting and delicious winter drink that kids and adults will love.  ]]></description>
				<content:encoded><![CDATA[<div class="tasty-recipes-quick-links">
<a class="tasty-recipes-jump-link tasty-recipes-scrollto" href="#tasty-recipes-9054-jump-target">Jump to Recipe</a><span>&middot;</span><a class="tasty-recipes-print-link" href="https://joyoliver.com/homemade-hot-chocolate-bomb/print/9054/">Print Recipe</a>
</div>

<div id="dpsp-content-top" class="dpsp-content-wrapper dpsp-shape-circle dpsp-size-medium dpsp-has-spacing dpsp-show-on-mobile dpsp-button-style-5" style="min-height:40px;position:relative">
	<ul class="dpsp-networks-btns-wrapper dpsp-networks-btns-share dpsp-networks-btns-content dpsp-column-auto dpsp-has-button-icon-animation" style="padding:0;margin:0;list-style-type:none">
<li class="dpsp-network-list-item dpsp-network-list-item-facebook" style="float:left">
	<a rel="nofollow noopener" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&#038;t=Homemade%20Hot%20Chocolate%20Bomb" class="dpsp-network-btn dpsp-facebook dpsp-first dpsp-has-label" target="_blank" aria-label="Share on Facebook" title="Share on Facebook" style="font-size:14px;padding:0rem;max-height:40px" >	<span class="dpsp-network-icon "><span class="dpsp-network-icon-inner" ><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 18 32"><path d="M17.12 0.224v4.704h-2.784q-1.536 0-2.080 0.64t-0.544 1.92v3.392h5.248l-0.704 5.28h-4.544v13.568h-5.472v-13.568h-4.544v-5.28h4.544v-3.904q0-3.328 1.856-5.152t4.96-1.824q2.624 0 4.064 0.224z"></path></svg></span></span>
	<span class="dpsp-network-label">Facebook</span></a></li>

<li class="dpsp-network-list-item dpsp-network-list-item-pinterest" style="float:left">
	<button rel="nofollow noopener" data-href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&#038;media=&#038;description=Homemade%20Hot%20Chocolate%20Bomb" class="dpsp-network-btn dpsp-pinterest dpsp-has-label" target="_blank" aria-label="Save to Pinterest" title="Save to Pinterest" style="font-size:14px;padding:0rem;max-height:40px" >	<span class="dpsp-network-icon "><span class="dpsp-network-icon-inner" ><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 23 32"><path d="M0 10.656q0-1.92 0.672-3.616t1.856-2.976 2.72-2.208 3.296-1.408 3.616-0.448q2.816 0 5.248 1.184t3.936 3.456 1.504 5.12q0 1.728-0.32 3.36t-1.088 3.168-1.792 2.656-2.56 1.856-3.392 0.672q-1.216 0-2.4-0.576t-1.728-1.568q-0.16 0.704-0.48 2.016t-0.448 1.696-0.352 1.28-0.48 1.248-0.544 1.12-0.832 1.408-1.12 1.536l-0.224 0.096-0.16-0.192q-0.288-2.816-0.288-3.36 0-1.632 0.384-3.68t1.184-5.152 0.928-3.616q-0.576-1.152-0.576-3.008 0-1.504 0.928-2.784t2.368-1.312q1.088 0 1.696 0.736t0.608 1.824q0 1.184-0.768 3.392t-0.8 3.36q0 1.12 0.8 1.856t1.952 0.736q0.992 0 1.824-0.448t1.408-1.216 0.992-1.696 0.672-1.952 0.352-1.984 0.128-1.792q0-3.072-1.952-4.8t-5.12-1.728q-3.552 0-5.952 2.304t-2.4 5.856q0 0.8 0.224 1.536t0.48 1.152 0.48 0.832 0.224 0.544q0 0.48-0.256 1.28t-0.672 0.8q-0.032 0-0.288-0.032-0.928-0.288-1.632-0.992t-1.088-1.696-0.576-1.92-0.192-1.92z"></path></svg></span></span>
	<span class="dpsp-network-label">Pinterest</span></button></li>

<li class="dpsp-network-list-item dpsp-network-list-item-email" style="float:left">
	<a rel="nofollow noopener" href="mailto:?subject=Homemade%20Hot%20Chocolate%20Bomb&#038;body=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F" class="dpsp-network-btn dpsp-email dpsp-last dpsp-has-label" target="_blank" aria-label="Send over email" title="Send over email" style="font-size:14px;padding:0rem;max-height:40px" >	<span class="dpsp-network-icon "><span class="dpsp-network-icon-inner" ><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 28 32"><path d="M18.56 17.408l8.256 8.544h-25.248l8.288-8.448 4.32 4.064zM2.016 6.048h24.32l-12.16 11.584zM20.128 15.936l8.224-7.744v16.256zM0 24.448v-16.256l8.288 7.776z"></path></svg></span></span>
	<span class="dpsp-network-label">Email</span></a></li>
</ul></div>

<p><em>When life gives you hot chocolate, make a&nbsp;<strong>Homemade Hot Chocolate Bomb</strong>!&nbsp;Melted chocolate painted into dome-shaped molds, filled with hot cocoa mix and mini marshmallows make for one exciting festive drink that kids and adults will love.</em> &nbsp;</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1024" height="1536" data-pin-title="Homemade Hot Chocolate Bomb" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566.jpg" alt="A milk chocolate hot chocolate bomb topped with crushed peppermint" class="wp-image-9040" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-768x1152.jpg 768w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-720x1080.jpg 720w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-360x540.jpg 360w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-180x270.jpg 180w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-150x225.jpg 150w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Happy December, friends!&nbsp;I am so excited to be sharing a super festive recipe that you and your kids will love to make, drink, and gift to others. We all love hot chocolate when there is a chill in the air. There is nothing more fun than a Homemade Hot Chocolate Bomb to take your childhood favorite drink to the next level. We have loved buying these every year during the holiday season, but now we are having even more fun making them in our home and creating our favorite flavors - both kid and adult-friendly! </p>



<p>The process starts by using melted chocolate and dome molds to create the outer shell, then filling one side with hot cocoa mix and marshmallows. Next, you just melt the edge of the other dome and press the two together to seal it. Then, there you have it: a festive and delicious hot chocolate bomb. Now drop it into a mug and pour hot milk over it. Watch the magic happen as your hot chocolate comes together! You can even top it with <a href="https://joyoliver.com/homemade-whipped-cream/" target="_blank" rel="noreferrer noopener">homemade whipped cream</a> if you're feeling extra fancy. It's certainly fun for little ones to be involved in and watch, but really, just as fun for the adults!&nbsp;</p>



<h2 class="wp-block-heading" id="h-ingredients">Ingredients</h2>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1536" data-pin-title="Homemade Hot Chocolate Bomb" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9571.jpg" alt="Half of a hot chocolate bomb filled with hot cocoa mix, marshmallows, and crushed peppermint with more hot chocolate bombs in the background" class="wp-image-9042" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9571.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9571-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9571-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9571-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li><strong>Chocolate Melting Wafers-</strong> Dark or white chocolate will be great for creating the shell</li><li><strong>Hot Cocoa Mix-</strong> The very essence of this festive drink!</li><li><strong>Mini Marshmallows-</strong> To add the ultimate hot chocolate feel</li><li><strong>Additions-</strong> Crushed peppermint, mini chocolate chips, caramel sauce, sprinkles, cinnamon, the options are endless!</li></ul>



<h2 class="wp-block-heading" id="h-directions">Directions</h2>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1662" data-pin-title="Homemade Hot Chocolate Bomb" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9636.jpg" alt="Dome molds covered in melted chocolate next to hardened chocolate domes that have just come out of the molds" class="wp-image-9060" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9636.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9636-380x617.jpg 380w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9636-631x1024.jpg 631w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9636-768x1247.jpg 768w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9636-946x1536.jpg 946w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li>Melt the chocolate wafers in a microwave-safe bowl for 30 seconds, stir and continue melting in 30-second increments until the chocolate is melted and smooth</li><li>Add one tablespoon of chocolate to six silicone dome mold cavities&nbsp;</li><li>Using the back of a small spoon, spread the chocolate up the sides and bottom of the silicone mold to cover it completely (make sure that the chocolate goes up to the edge of the mold)</li><li>Allow the chocolate to set and harden at room temperature or place the silicone mold in the refrigerator for the chocolate to harden quicker (approximately 20 minutes)</li></ul>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1536" data-pin-title="Homemade Hot Chocolate Bomb" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9579.jpg" alt="Above shot of several white and milk chocolate hot chocolate bombs, decorated with peppermint, chocolate, and marshmallows" class="wp-image-9045" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9579.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9579-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9579-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9579-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li><span style="font-weight: 400;">Carefully remove the chocolate domes from the mold and place on a baking sheet&nbsp;</span></li><li><span style="font-weight: 400;">Fill three of the chocolate domes with cocoa powder, marshmallows, and any optional add ons&nbsp;</span></li><li><span style="font-weight: 400;">Using a warm plate, press the other three domes to the warm plate to create a flat surface and to melt the edge of the chocolate dome (the melted chocolate will act like glue to seal the two domes together)</span></li><li><span style="font-weight: 400;">Place the empty dome onto the filled dome and gently hold to seal the chocolate together.&nbsp; Run your finger along the seam to spread the melted chocolate and ensure that it is sealed shut</span></li><li><span style="font-weight: 400;">Drizzle melted chocolate over the top of the chocolate bomb&nbsp;</span></li></ul>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1536" data-pin-title="Homemade Hot Chocolate Bomb" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9646.jpg" alt="A hot chocolate bomb sitting in a clear mug" class="wp-image-9062" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9646.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9646-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9646-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9646-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list" id="block-c42c9dd7-af48-4d70-b81d-15c370d26cb6"><li>Place the hot chocolate bomb in a large glass mug and pour hot milk over it</li><li>The chocolate will melt and will be ready to stir and serve, enjoy!&nbsp;&nbsp;</li></ul>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1536" data-pin-title="Homemade Hot Chocolate Bomb" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9661.jpg" alt="A mug full of hot chocolate topped with marshmallows" class="wp-image-9065" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9661.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9661-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9661-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9661-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-tips-and-faqs-for-homemade-hot-chocolate-bombs">Tips and FAQs for Homemade Hot Chocolate Bombs</h2>



<ul class="wp-block-list"><li>Chocolate candy melts are going to make a smooth start to your chocolate dome. Wafers are created to melt easily and harden once they are dry and this is very important when you are making chocolate domes.&nbsp;If you use regular chocolate you will need to temper the chocolate to be sure that it will harden enough to easily come out of the&nbsp;<a href="https://rstyle.me/+QJHjJSTkHMq6PIfvzzti4w" target="_blank" rel="noreferrer noopener">chocolate molds</a>.</li><li>Using a silicone mold is really important to create a smooth round shape. The silicone makes removing the chocolate dome so easy and fail-proof.</li><li>Feel free to customize your hot chocolate bombs by adding in things like crushed peppermint, mini chocolate chips, caramel sauce, sprinkles, or ground cinnamon. This is where you can get creative!</li></ul>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1652220930998"><strong class="schema-faq-question">What type of chocolate melts should I use?</strong> <p class="schema-faq-answer">Personally, I have loved using <a href="https://rstyle.me/+YnuHGBouOiLjLqXD9jXtnA" target="_blank" rel="noreferrer noopener">Ghirardelli Melting Chocolate Wafers</a>. It's good quality chocolate that tastes great and makes a perfect hard shell.    </p> </div> <div class="schema-faq-section" id="faq-question-1652221034742"><strong class="schema-faq-question">Can I make hot chocolate bombs without a dome mold?</strong> <p class="schema-faq-answer">If you don't have a silicone mold or can't find one online or in a store, the interior of a small coffee cup or small rounded bowl lined with plastic wrap works well for a household hack!</p> </div> </div>



<h2 class="wp-block-heading" id="h-more-festive-recipes-you-will-love">More Festive Recipes You Will Love</h2>


<div class='feast-category-index  feast-recipe-index'><ul class="fsri-list feast-grid-half feast-desktop-grid-fourth"><li class="listing-item"><a href="https://joyoliver.com/spiced-gingerbread-loaf/"><img decoding="async" data-pin-url="https://joyoliver.com/spiced-gingerbread-loaf/" width="360" height="480" src="https://joyoliver.com/wp-content/uploads/2021/11/Spiced-Gingerbread-Loaf-11-360x480.jpeg" class="feast_3x4_thumbnail fsri-image wp-post-image" alt="A sliced bread loaf on a wood board with white glaze on top and fresh cranberries and sage leaf." data-pin-nopin="true" aria-hidden="true" srcset="https://joyoliver.com/wp-content/uploads/2021/11/Spiced-Gingerbread-Loaf-11-360x480.jpeg 360w, https://joyoliver.com/wp-content/uploads/2021/11/Spiced-Gingerbread-Loaf-11-720x960.jpeg 720w, https://joyoliver.com/wp-content/uploads/2021/11/Spiced-Gingerbread-Loaf-11-180x240.jpeg 180w, https://joyoliver.com/wp-content/uploads/2021/11/Spiced-Gingerbread-Loaf-11-640x853.jpeg 640w" sizes="(max-width: 360px) 100vw, 360px" /><div class="fsri-title">Spiced Gingerbread Loaf</div></a></li><li class="listing-item"><a href="https://joyoliver.com/chocolate-chip-cookie-dough-balls/"><img decoding="async" data-pin-url="https://joyoliver.com/chocolate-chip-cookie-dough-balls/" width="360" height="480" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9387-360x480.jpg" class="feast_3x4_thumbnail fsri-image wp-post-image" alt="" data-pin-nopin="true" aria-hidden="true" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9387-360x480.jpg 360w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9387-720x960.jpg 720w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9387-180x240.jpg 180w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9387-640x853.jpg 640w" sizes="(max-width: 360px) 100vw, 360px" /><div class="fsri-title">Chocolate Chip Cookie Dough Balls</div></a></li><li class="listing-item"><a href="https://joyoliver.com/gingerbread-snowball-cookies/"><img decoding="async" data-pin-url="https://joyoliver.com/gingerbread-snowball-cookies/" width="360" height="480" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-360x480.jpg" class="feast_3x4_thumbnail fsri-image wp-post-image" alt="a close up shop of gingerbread snowball cookies one with a bite taken out" data-pin-nopin="true" aria-hidden="true" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-360x480.jpg 360w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-720x960.jpg 720w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-180x240.jpg 180w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-640x853.jpg 640w" sizes="(max-width: 360px) 100vw, 360px" /><div class="fsri-title">Gingerbread Snowball Cookies</div></a></li><li class="listing-item"><a href="https://joyoliver.com/sliceandbakecookies/"><img decoding="async" data-pin-url="https://joyoliver.com/sliceandbakecookies/" width="360" height="480" src="https://joyoliver.com/wp-content/uploads/2018/12/IMG_4316-360x480.jpg" class="feast_3x4_thumbnail fsri-image wp-post-image" alt="" data-pin-nopin="true" aria-hidden="true" srcset="https://joyoliver.com/wp-content/uploads/2018/12/IMG_4316-360x480.jpg 360w, https://joyoliver.com/wp-content/uploads/2018/12/IMG_4316-720x960.jpg 720w, https://joyoliver.com/wp-content/uploads/2018/12/IMG_4316-180x240.jpg 180w, https://joyoliver.com/wp-content/uploads/2018/12/IMG_4316-640x853.jpg 640w" sizes="(max-width: 360px) 100vw, 360px" /><div class="fsri-title">Slice and Bake Cookies</div></a></li></ul></div>


<p>Thank you for visiting Joy + Oliver. If you tried this recipe, please leave a 5 Star Review in the recipe card and save all your favorite recipes to&nbsp;<a rel="noreferrer noopener" href="https://www.pinterest.com/JoyandOliver/" target="_blank">Pinterest</a>! </p>



<p>Please visit us on <a data-type="URL" data-id="https://www.instagram.com/joyandoliver/" href="https://www.instagram.com/joyandoliver/">Instagram</a>, <a data-type="URL" data-id="https://www.facebook.com/joyandoliver/" href="https://www.facebook.com/joyandoliver/">Facebook</a> and <a data-type="URL" data-id="https://www.pinterest.com/JoyandOliver/_created/" href="https://www.pinterest.com/JoyandOliver/_created/">Pinterest</a> for more of our favorite recipes that you will love!  </p>


<a class="button tasty-recipes-print-button tasty-recipes-no-print tasty-recipes-print-above-card" href="https://joyoliver.com/homemade-hot-chocolate-bomb/print/9054/">Print</a><span class="tasty-recipes-jump-target" id="tasty-recipes-9054-jump-target" style="display:block;padding-top:2px;margin-top:-2px;"></span><div id="tasty-recipes-9054" data-tr-id="9054" class="tasty-recipes tasty-recipes-9054 tasty-recipes-display tasty-recipes-has-image" data-tasty-recipes-customization="primary-color.background-color primary-color.outline-color">


<h2 class="tasty-recipes-title" data-tasty-recipes-customization="h2-color.color h2-transform.text-transform">Homemade Hot Chocolate Bomb</h2>
<div class="tasty-recipes-image-button-container">
			<div class="tasty-recipes-image">
			<img decoding="async" width="150" height="150" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9566-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" data-pin-nopin="true" />		</div>
		<div class="tasty-recipes-buttons">
				<div class="tasty-recipes-button-wrap">
			
<a class="button tasty-recipes-print-button tasty-recipes-no-print" href="https://joyoliver.com/homemade-hot-chocolate-bomb/print/9054/" target="_blank" data-tasty-recipes-customization="">
			<img decoding="async" class="svg-print" data-pin-nopin="true" src="https://joyoliver.com/wp-content/plugins/tasty-recipes/templates/buttons/images/icon-print.png">
		Print Recipe</a>
		</div>
					</div>
</div>
	<div class="tasty-recipes-rating" data-tasty-recipes-customization="body-color.color">
					<p><span class="tasty-recipes-ratings-buttons tasty-recipes-no-ratings-buttons"	data-tr-default-rating="0"	>		<span class="tasty-recipes-rating" >		<i class="checked" data-rating="5">			<span class="tasty-recipes-rating-solid" data-tr-clip="0">				<svg xmlns="http://www.w3.org/2000/svg" viewbox="9 9 46 42" width="18" height="17">	<defs>		<linearGradient id="tasty-recipes-clip-10">			<stop offset="10%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-20">			<stop offset="20%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-30">			<stop offset="30%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-40">			<stop offset="40%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-50">			<stop offset="50%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-60">			<stop offset="60%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-70">			<stop offset="70%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-80">			<stop offset="80%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-90">			<stop offset="90%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>	</defs>	<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>			</span>			<span class="tasty-recipes-screen-reader">				5 Stars			</span>		</i>	</span>		<span class="tasty-recipes-rating" >		<i class="checked" data-rating="4">			<span class="tasty-recipes-rating-solid" data-tr-clip="0">				<svg xmlns="http://www.w3.org/2000/svg" viewbox="9 9 46 42" width="18" height="17">	<defs>		<linearGradient id="tasty-recipes-clip-10">			<stop offset="10%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-20">			<stop offset="20%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-30">			<stop offset="30%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-40">			<stop offset="40%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-50">			<stop offset="50%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-60">			<stop offset="60%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-70">			<stop offset="70%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-80">			<stop offset="80%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-90">			<stop offset="90%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>	</defs>	<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>			</span>			<span class="tasty-recipes-screen-reader">				4 Stars			</span>		</i>	</span>		<span class="tasty-recipes-rating" >		<i class="checked" data-rating="3">			<span class="tasty-recipes-rating-solid" data-tr-clip="0">				<svg xmlns="http://www.w3.org/2000/svg" viewbox="9 9 46 42" width="18" height="17">	<defs>		<linearGradient id="tasty-recipes-clip-10">			<stop offset="10%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-20">			<stop offset="20%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-30">			<stop offset="30%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-40">			<stop offset="40%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-50">			<stop offset="50%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-60">			<stop offset="60%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-70">			<stop offset="70%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-80">			<stop offset="80%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-90">			<stop offset="90%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>	</defs>	<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>			</span>			<span class="tasty-recipes-screen-reader">				3 Stars			</span>		</i>	</span>		<span class="tasty-recipes-rating" >		<i class="checked" data-rating="2">			<span class="tasty-recipes-rating-solid" data-tr-clip="0">				<svg xmlns="http://www.w3.org/2000/svg" viewbox="9 9 46 42" width="18" height="17">	<defs>		<linearGradient id="tasty-recipes-clip-10">			<stop offset="10%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-20">			<stop offset="20%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-30">			<stop offset="30%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-40">			<stop offset="40%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-50">			<stop offset="50%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-60">			<stop offset="60%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-70">			<stop offset="70%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-80">			<stop offset="80%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-90">			<stop offset="90%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>	</defs>	<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>			</span>			<span class="tasty-recipes-screen-reader">				2 Stars			</span>		</i>	</span>		<span class="tasty-recipes-rating" >		<i class="checked" data-rating="1">			<span class="tasty-recipes-rating-solid" data-tr-clip="0">				<svg xmlns="http://www.w3.org/2000/svg" viewbox="9 9 46 42" width="18" height="17">	<defs>		<linearGradient id="tasty-recipes-clip-10">			<stop offset="10%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-20">			<stop offset="20%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-30">			<stop offset="30%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-40">			<stop offset="40%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-50">			<stop offset="50%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-60">			<stop offset="60%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-70">			<stop offset="70%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-80">			<stop offset="80%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>		<linearGradient id="tasty-recipes-clip-90">			<stop offset="90%" stop-color="currentColor"/>			<stop stop-opacity="var(--tr-star-opacity)" offset="0%" stop-color="currentColor"/>		</linearGradient>	</defs>	<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>			</span>			<span class="tasty-recipes-screen-reader">				1 Star			</span>		</i>	</span></span></p>
							<p><span data-tasty-recipes-customization="detail-label-color.color" class="rating-label">No reviews</span></p>
			</div>


	<div class="tasty-recipes-description" data-tasty-recipes-customization="body-color.color">
		<p><em>When life gives you hot chocolate, make a <strong>Homemade Hot Chocolate Bomb</strong>!  Melted dark chocolate and white chocolate painted into dome shaped molds, filled with hot cocoa mix and mini marshmallows makes for one exciting and delicious winter drink that kids and adults will love.</em></p>
	</div>

	<div class="tasty-recipes-details" data-tasty-recipes-customization="body-color.color">
		<ul>
							<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://joyoliver.com/about/">kristen massad</a></li>
							<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">45 minutes</span></li>
							<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">45 minutes</span></li>
							<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">3</span></li>
					</ul>
	</div>

	<div class="tasty-recipes-ingredients">
		<div class="tasty-recipes-ingredients-header">
			<div class="tasty-recipes-ingredients-clipboard-container">
				<h3 data-tasty-recipes-customization="h3-color.color h3-transform.text-transform">Ingredients</h3>
							</div>
			<div class="tasty-recipes-units-scale-container">
											</div>
		</div>
		<div class="tasty-recipes-ingredients-body" data-tasty-recipes-customization="body-color.color">
			<p><b>Chocolate Bombs<br />
</b><span style="font-weight: 400">1 Cup <a href="https://rstyle.me/+TlLzc_M25Qn821URavScFg" target="_blank" rel="nofollow noopener">Dark Chocolate or White Chocolate Melting Wafers</a></span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">3 Tablespoons Hot Cocoa Mix </span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">½ Cup Mini Marshmallows</span></p>
<p><b>Optional Add Ons</b><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">Crushed Peppermint<br />
</span><span style="font-weight: 400">Mini Chocolate Chips </span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">Caramel Sauce  </span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">Sprinkles</span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">Ground Cinnamon </span><span style="font-weight: 400"><br />
</span></p>
<!--INSIDE_INGREDIENTS-->		</div>
		<div class="tasty-recipes-cook-mode">
	<div class="tasty-recipes-cook-mode__container">
		<label class="tasty-recipes-cook-mode__switch">
			<input type="checkbox" id="tasty_recipes_69fa1506ec0bd_cookmode">
			<span class="tasty-recipes-cook-mode__switch-slider tasty-recipes-cook-mode__switch-round"
				data-tasty-recipes-customization="button-color.background button-text-color.color"></span>
		</label>
		<label for="tasty_recipes_69fa1506ec0bd_cookmode">
			<span class="tasty-recipes-cook-mode__label">Cook Mode</span>
			<span class="tasty-recipes-cook-mode__helper">
				Prevent your screen from going dark			</span>
		</label>
	</div>
</div>
	</div>

	<div class="tasty-recipe-instructions">
		<div class="tasty-recipes-instructions-header">
			<h3 data-tasty-recipes-customization="h3-color.color h3-transform.text-transform">Instructions</h3>
					</div>
		<div class="tasty-recipes-instructions-body" data-tasty-recipes-customization="body-color.color">
			<ol>
<li id="instruction-step-1" style="font-weight: 400"><span style="font-weight: 400">Place the <a href="https://rstyle.me/+3z3YERI7hAyBAUmIHYZmUA" target="_blank" rel="nofollow noopener">silicone dome mold</a> on a baking sheet; set aside</span></li>
<li id="instruction-step-2" style="font-weight: 400"><span style="font-weight: 400">Melt the chocolate wafers in a microwave safe bowl for 30 seconds, stir and continue melting in 30 second increments until the chocolate is melted and smooth</span></li>
<li id="instruction-step-3" style="font-weight: 400"><span style="font-weight: 400">Add one to two tablespoon of chocolate in six silicone dome mold cavities </span></li>
<li id="instruction-step-4" style="font-weight: 400"><span style="font-weight: 400">Using the back of a small spoon, spread the chocolate up the sides and bottom of the silicone mold to cover it completely (make sure that the chocolate goes up to the edge of the mold)</span></li>
<li id="instruction-step-5" style="font-weight: 400"><span style="font-weight: 400">Allow the chocolate to set and harden at room temperature or place the silicone mold in the refrigerator for the chocolate to harden quicker (approximately 20 minutes)</span></li>
<li id="instruction-step-6" style="font-weight: 400"><span style="font-weight: 400">Carefully remove the chocolate domes from the mold and place on a baking sheet </span></li>
<li id="instruction-step-7" style="font-weight: 400"><span style="font-weight: 400">Fill each chocolate domes with one tablespoon of cocoa powder, marshmallows and any optional add ons </span></li>
<li id="instruction-step-8" style="font-weight: 400"><span style="font-weight: 400">Using a warm plate, press the other three domes to the warm plate to create a flat surface and to melt the edge of the chocolate dome (the melted chocolate will act like glue to seal the two domes together)</span></li>
<li id="instruction-step-9" style="font-weight: 400"><span style="font-weight: 400">Place the empty dome onto the filled dome and gently hold to seal the chocolate together.  Run your finger along the seam to spread the melted chocolate and ensure that it is sealed shut</span></li>
<li id="instruction-step-10" style="font-weight: 400"><span style="font-weight: 400">Drizzle melted chocolate over the top of the chocolate bomb </span></li>
<li id="instruction-step-11" style="font-weight: 400"><span style="font-weight: 400">Place the chocolate bomb in a large glass mug and pour hot milk over the Hot Chocolate Bomb</span></li>
<li id="instruction-step-12" style="font-weight: 400"><span style="font-weight: 400">The chocolate will melt and will be ready to stir and serve, enjoy!  </span></li>
</ol>
		</div>
	</div>








<footer class="tasty-recipes-entry-footer">
	<h3 data-tasty-recipes-customization="footer-heading-color.color h3-transform.text-transform footer-heading.innerText">Did you make this recipe?</h3>
	<div data-tasty-recipes-customization="footer-description-color.color footer-description.innerHTML"><p>Tag <a href="https://www.instagram.com/joyandoliver" target="_blank" rel="noreferrer noopener">@joyandoliver</a> on Instagram</p>
</div>
</footer>



<script>
window.trCommon={"minRating":6,"ajaxurl":"https:\/\/joyoliver.com\/wp-admin\/admin-ajax.php","ratingNonce":"","postId":9036};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( 'click', ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== 'A' ) {
anchor = anchor.closest( 'a.tasty-recipes-scrollto' );
}

if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {
return;
}

const elementHref = anchor.getAttribute( 'href' );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: 'smooth' } );
}
};

document.addEventListener(
'DOMContentLoaded',
() => window.TastyRecipes.smoothScroll.init()
);

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: '.tasty-recipes-cook-mode',
init() {
if ("wakeLock" in navigator && "request" in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector('input[type="checkbox"]').addEventListener("change", event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = "none";
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ' input[type="checkbox"]');
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request("screen");
this.wakeLock.addEventListener("release", () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== "loading") {
callback();
} else {
document.addEventListener("DOMContentLoaded", callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});



window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( 'opened' );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( 'div' );
tooltipElement.classList.add( 'tasty-recipes-static-tooltip');
tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );

const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
- 10 // 10px offset.
- this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
- ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) - 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( 'style', 'top:' + tooltipTop + 'px;left:' + posLeft + 'px;' );
this.tooltipElement.classList.add( 'opened' );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( 'tr-hide-tail' );
} else {
this.tooltipElement.classList.remove( 'tr-hide-tail' );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( 'POST', url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');
if ( ratings.length <= 0 ) {
return;
}
for ( const rating of ratings ) {
rating.addEventListener( 'click', event => {
event.preventDefault();
this.defaultRating = event.target.closest( '.checked' ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( 'click', e => {
// Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.
if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
 setRatingInForm( rating ) {
const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( 'click', currentEvent => {
const selectedRating = currentEvent.target.getAttribute( 'value' );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating < this.minRating ) {
commentTextarea.setAttribute( 'required', '' );
return;
}

commentTextarea.removeAttribute( 'required' );
},
maybeSendRating( rating, element ) {
if ( this.savingRating === rating ) {
return;
}

this.savingRating = rating;
window.TastyRecipes.staticTooltip.init( element );

const recipeCardElement = element.closest( '.tasty-recipes' );
if ( ! recipeCardElement ) {
window.TastyRecipes.staticTooltip.destroy();
return;
}

window.TastyRecipes.ajax.sendPostRequest(
window.trCommon.ajaxurl,
{
action: 'tasty_recipes_save_rating',
rating,
nonce: window.trCommon.ratingNonce,
post_id: window.trCommon.postId,
recipe_id: recipeCardElement.dataset.trId,
},
( response ) => {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( '.tasty-recipes-rating-link' );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( '.rating-label' );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( '.average' );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( '.count' );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( '.' );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === '00' ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );
const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( '.tasty-recipes-rating' );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( '#commentform' );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( '[name=comment]' );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( '[name=author]' ).value = data.comment.name;
commentForm.querySelector( '[name=email]' ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( '[data-tr-clip]' ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( '[data-tr-checked]' );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector('[data-rating]');
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {
ratingsButtons.style.direction = 'rtl';
}

if ( typeof tastyRecipesRating !== 'undefined' ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( '.tasty-recipes-rating[value="' + tastyRecipesRating + '"]' ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( '.tasty-recipes-rating' );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( 'click', event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== "loading") {
callback();
} else {
window.addEventListener( 'load', callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});
</script></div>


<figure class="wp-block-image"><img decoding="async" width="410" height="173" data-pin-title="Homemade Hot Chocolate Bomb" src="https://joyoliver.com/wp-content/uploads/2019/05/Joy-Oliver-Signature-410x173.png" alt="" class="wp-image-4929" srcset="https://joyoliver.com/wp-content/uploads/2019/05/Joy-Oliver-Signature-410x173.png 410w, https://joyoliver.com/wp-content/uploads/2019/05/Joy-Oliver-Signature.png 726w" sizes="(max-width: 410px) 100vw, 410px" /></figure>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&amp;linkname=Homemade%20Hot%20Chocolate%20Bomb" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&amp;linkname=Homemade%20Hot%20Chocolate%20Bomb" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&amp;linkname=Homemade%20Hot%20Chocolate%20Bomb" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_tumblr" href="https://www.addtoany.com/add_to/tumblr?linkurl=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&amp;linkname=Homemade%20Hot%20Chocolate%20Bomb" title="Tumblr" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_yummly" href="https://www.addtoany.com/add_to/yummly?linkurl=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&amp;linkname=Homemade%20Hot%20Chocolate%20Bomb" title="Yummly" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fjoyoliver.com%2Fhomemade-hot-chocolate-bomb%2F&#038;title=Homemade%20Hot%20Chocolate%20Bomb" data-a2a-url="https://joyoliver.com/homemade-hot-chocolate-bomb/" data-a2a-title="Homemade Hot Chocolate Bomb"></a></p>]]></content:encoded>
			<wfw:commentRss>https://joyoliver.com/homemade-hot-chocolate-bomb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
