<?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 + OliverGingerbread Snowball Cookies - Joy + Oliver</title>
	<atom:link href="https://joyoliver.com/gingerbread-snowball-cookies/feed/" rel="self" type="application/rss+xml" />
	<link>https://joyoliver.com/gingerbread-snowball-cookies/</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>Gingerbread Snowball Cookies</title>
		<link>https://joyoliver.com/gingerbread-snowball-cookies/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gingerbread-snowball-cookies</link>
		<enclosure url="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-683x1024.jpg" type="image/jpeg" /> 
		<comments>https://joyoliver.com/gingerbread-snowball-cookies/#respond</comments>
		<pubDate>Mon, 30 Nov 2020 10:00:06 +0000</pubDate>
		<dc:creator><![CDATA[Kristen Massad]]></dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Cookies Recipes]]></category>
		<category><![CDATA[Dessert]]></category>
		<category><![CDATA[Entertaining]]></category>
		<category><![CDATA[Holiday]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[Sweets]]></category>
		<category><![CDATA[bite size cookies]]></category>
		<category><![CDATA[christmas cookies]]></category>
		<category><![CDATA[cookies for santa]]></category>
		<category><![CDATA[fall cookies]]></category>
		<category><![CDATA[gingerbread cookies]]></category>
		<category><![CDATA[gingerbread snowball cookies]]></category>
		<category><![CDATA[holiday cookies]]></category>
		<category><![CDATA[snowball cookies]]></category>
		<category><![CDATA[twelve days of cookies]]></category>

		<guid isPermaLink="false">https://joyoliver.com/?p=8973</guid>
		<description><![CDATA[Christmas is wrapped up into one bite with this Gingerbread Snowball Cookie.  Sweet, spicy and coated in powdered sugar, you are going to love this cookie for your holiday gatherings.    ]]></description>
				<content:encoded><![CDATA[<div class="tasty-recipes-quick-links">
<a class="tasty-recipes-jump-link tasty-recipes-scrollto" href="#tasty-recipes-8987-jump-target">Jump to Recipe</a><span>&middot;</span><a class="tasty-recipes-print-link" href="https://joyoliver.com/gingerbread-snowball-cookies/print/8987/">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%2Fgingerbread-snowball-cookies%2F&#038;t=Gingerbread%20Snowball%20Cookies" 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%2Fgingerbread-snowball-cookies%2F&#038;media=&#038;description=Gingerbread%20Snowball%20Cookies" 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=Gingerbread%20Snowball%20Cookies&#038;body=https%3A%2F%2Fjoyoliver.com%2Fgingerbread-snowball-cookies%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>
<div class="tasty-pins-hidden-image-container" style="display:none;"><img decoding="async" alt="a close up shop of gingerbread snowball cookies one with a bite taken out" data-pin-title="Gingerbread Snowball Cookies" class="tasty-pins-hidden-image skip-lazy a3-notlazy no-lazyload" data-no-lazy="1" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-150x150.jpg" data-pin-media="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296.jpg"></div>
<div class="tasty-pins-hidden-image-container" style="display:none;"><img decoding="async" alt="a pile of gingerbread cookies on a cake plate showing what the inside of the cookie looks like" data-pin-title="Gingerbread Snowball Cookies" class="tasty-pins-hidden-image skip-lazy a3-notlazy no-lazyload" data-no-lazy="1" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9297-150x150.jpg" data-pin-media="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9297.jpg"></div>
<div class="tasty-pins-hidden-image-container" style="display:none;"><img decoding="async" alt="powdered sugar, flour, brown sugar, molasses, vanilla, spices and butter are prepped and ready to bake cookies" data-pin-title="Gingerbread Snowball Cookies" class="tasty-pins-hidden-image skip-lazy a3-notlazy no-lazyload" data-no-lazy="1" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9301-150x150.jpg" data-pin-media="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9301.jpg"></div>

<p><em>Christmas is wrapped up into one bite with these <strong>Gingerbread Snowball Cookie</strong>s.&nbsp;Sweet, spicy, and coated in powdered sugar, this cookie will be well-loved at your holiday gatherings.</em></p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1024" height="1536" data-pin-title="Gingerbread Snowball Cookies" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296.jpg" alt="a close up shot of gingerbread snowball cookies, one with a bite taken out " class="wp-image-8983" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-768x1152.jpg 768w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-720x1080.jpg 720w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-360x540.jpg 360w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-180x270.jpg 180w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9296-150x225.jpg 150w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>One of my favorite cookies of the season is a <a href="https://joyoliver.com/snowball-cookies/">classic snowball cookie</a>, but what could be better than adding spices and molasses to create the perfect Gingerbread Snowball Cookie? Not much, I'll tell you that!&nbsp;Sweet and&nbsp;spicy, these little cookies are packed with flavor. &nbsp;Gingerbread Snowball Cookies are a fun take on a classic snowball cookie and a gingerbread cookie mixed together, creating a super tender and soft cookie.</p>



<p>They are buttery, tender and the perfect bite-size cookies for a platter or a box of cookies to be delivered to friends and family. If you are participating in a big Christmas cookie exchange, these are a great option! Whatever way you choose to share, these Gingerbread Snowball Cookies will be a perfect addition to your holiday treat lineup. And if you need more amazing cookie recipes, check out this <a href="https://joyoliver.com/christmas-cookie-round-up/" target="_blank" rel="noreferrer noopener">Christmas Cookie Round Up</a>.</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="Gingerbread Snowball Cookies" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9301.jpg" alt="powdered sugar, flour, brown sugar, molasses, vanilla, spices and butter are prepped and ready to bake cookies" class="wp-image-8985" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9301.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9301-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9301-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9301-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li><strong>Flour-</strong> All-purpose will do the trick</li><li><strong>Ground Cinnamon</strong> <strong>&amp;</strong> <strong>Ginger-</strong> For the festive spiced flavors</li><li><strong>Molasses-</strong> For the classic gingerbread flavor</li><li><strong>Vanilla Extract-</strong> To add another layer of flavor</li><li><strong>Butter-</strong> Unsalted and room temperature</li><li><strong>Light brown sugar-</strong> For the perfect rich sweetness</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="1536" data-pin-title="Gingerbread Snowball Cookies" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9280.jpg" alt="One cookie in a bowl of powdered sugar showing how to coat the cookie after it is baked" class="wp-image-8976" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9280.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9280-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9280-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9280-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li>Preheat the oven to 350 degrees F and prepare two baking sheets with parchment paper</li><li>In a medium bowl combine the flour, cinnamon, and ginger; set aside&nbsp;</li><li>In a mixing bowl with the paddle attachment, combine the unsalted butter and light brown sugar; cream together until smooth&nbsp;</li><li>Add the molasses and the vanilla extract to the butter mixture and mix until fully combined, scraping down the sides of the bowl in between&nbsp;</li><li>Slowly add the dry ingredients to the butter mixture and mix to combine</li></ul>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1536" data-pin-title="Gingerbread Snowball Cookies" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9281.jpg" alt="One cookie in a bowl of powdered sugar showing how to coat the cookie after it is baked " class="wp-image-8977" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9281.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9281-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9281-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9281-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li>Using a 1 tablespoon scoop, scoop the cookie dough into balls and place them on the prepared baking sheet</li><li>Bake the cookies for 10-12 minutes or until the bottom of the cookies starts to turn a light golden color&nbsp;</li><li>Remove the cookies from the oven and allow them to cool completely before dredging them in powdered sugar</li><li>Once the cookies are cooled, toss each cookie in powdered sugar and place on a serving platter or in a container</li></ul>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1536" data-pin-title="Gingerbread Snowball Cookies" src="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9297.jpg" alt="a pile of gingerbread cookies on a cake plate showing what the inside of the cookie looks like " class="wp-image-8984" srcset="https://joyoliver.com/wp-content/uploads/2020/11/IMG_9297.jpg 1024w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9297-410x615.jpg 410w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9297-683x1024.jpg 683w, https://joyoliver.com/wp-content/uploads/2020/11/IMG_9297-768x1152.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-tips-and-faqs-for-gingerbread-snowball-cookies">Tips and FAQs for Gingerbread Snowball Cookies</h2>



<ul class="wp-block-list"><li>Start with room temperature butter to make sure that the batter comes together</li><li>Traditional snowball cookies use powdered sugar, but light brown sugar will add great flavor and texture to these cookies</li><li>This cookie dough does not need to be refrigerated before baking</li><li>Scoop the dough using an ice cream scoop for the perfect ball</li><li>Allow the cookies to cool completely before tossing in powdered sugar</li><li>Store the cookies in an airtight container for up to one week for the freshest flavor</li></ul>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1651159597017"><strong class="schema-faq-question">How many Gingerbread Snowball Cookies does this recipe make?</strong> <p class="schema-faq-answer">One batch of these should make about 28-30 cookies.</p> </div> </div>



<h2 class="wp-block-heading" id="h-more-holiday-cookie-recipes-you-will-love">More Holiday Cookie 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/the-best-white-chocolate-gingerbread-cookies/"><img decoding="async" data-pin-url="https://joyoliver.com/the-best-white-chocolate-gingerbread-cookies/" width="360" height="480" src="https://joyoliver.com/wp-content/uploads/2021/12/IMG_9210-360x480.jpeg" class="feast_3x4_thumbnail fsri-image wp-post-image" alt="Three christmas tree plates with three cookies on each next to red twine ribbon." data-pin-nopin="true" aria-hidden="true" srcset="https://joyoliver.com/wp-content/uploads/2021/12/IMG_9210-360x480.jpeg 360w, https://joyoliver.com/wp-content/uploads/2021/12/IMG_9210-720x960.jpeg 720w, https://joyoliver.com/wp-content/uploads/2021/12/IMG_9210-180x240.jpeg 180w, https://joyoliver.com/wp-content/uploads/2021/12/IMG_9210-640x853.jpeg 640w" sizes="(max-width: 360px) 100vw, 360px" /><div class="fsri-title">The Best White Chocolate Gingerbread 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><li class="listing-item"><a href="https://joyoliver.com/soft-almond-sugar-cookies/"><img decoding="async" data-pin-url="https://joyoliver.com/soft-almond-sugar-cookies/" width="360" height="480" src="https://joyoliver.com/wp-content/uploads/2020/12/IMG_9707-360x480.jpg" class="feast_3x4_thumbnail fsri-image wp-post-image" alt="stacked iced snowflake cookies" data-pin-nopin="true" aria-hidden="true" srcset="https://joyoliver.com/wp-content/uploads/2020/12/IMG_9707-360x480.jpg 360w, https://joyoliver.com/wp-content/uploads/2020/12/IMG_9707-720x960.jpg 720w, https://joyoliver.com/wp-content/uploads/2020/12/IMG_9707-180x240.jpg 180w, https://joyoliver.com/wp-content/uploads/2020/12/IMG_9707-640x853.jpg 640w" sizes="(max-width: 360px) 100vw, 360px" /><div class="fsri-title">Soft Almond Sugar Cookie Snowflakes</div></a></li><li class="listing-item"><a href="https://joyoliver.com/chai-spice-madeleines/"><img decoding="async" data-pin-url="https://joyoliver.com/chai-spice-madeleines/" width="360" height="480" src="https://joyoliver.com/wp-content/uploads/2018/12/IMG_4646-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_4646-360x480.jpg 360w, https://joyoliver.com/wp-content/uploads/2018/12/IMG_4646-720x960.jpg 720w, https://joyoliver.com/wp-content/uploads/2018/12/IMG_4646-180x240.jpg 180w, https://joyoliver.com/wp-content/uploads/2018/12/IMG_4646-640x853.jpg 640w" sizes="(max-width: 360px) 100vw, 360px" /><div class="fsri-title">Chai Spice Madeleines</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/gingerbread-snowball-cookies/print/8987/">Print</a><span class="tasty-recipes-jump-target" id="tasty-recipes-8987-jump-target" style="display:block;padding-top:2px;margin-top:-2px;"></span><div id="tasty-recipes-8987" data-tr-id="8987" class="tasty-recipes tasty-recipes-8987 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">Gingerbread Snowball Cookies</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_9296-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="a close up shop of gingerbread snowball cookies one with a bite taken out" 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/gingerbread-snowball-cookies/print/8987/" 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>Christmas is wrapped up into one bite with this <strong>Gingerbread Snowball Cookie</strong>.  Sweet, spicy and coated in powdered sugar, you are going to love this cookie for your holiday gatherings.  </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">10 minutes</span></li>
							<li class="cook-time"><strong data-tasty-recipes-customization="detail-label-color.color" class="tasty-recipes-label">Cook Time:</strong> <span data-tasty-recipes-customization="detail-value-color.color" class="tasty-recipes-cook-time">10-12 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">0 hours</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">30 cookies</span></li>
							<li class="category"><strong data-tasty-recipes-customization="detail-label-color.color" class="tasty-recipes-label">Category:</strong> <span data-tasty-recipes-customization="detail-value-color.color" class="tasty-recipes-category">Cookies</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>GIngerbread Snowball Cookie Dough<br />
</b><span style="font-weight: 400">2 ¼ Cup All Purpose Flour</span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">1 teaspoon Ground Cinnamon<br />
</span><span style="font-weight: 400">1 teaspoon Ground Ginger<br />
</span><span style="font-weight: 400">1 Cup Unsalted Butter, Room Temperature </span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">½ Cup Light Brown Sugar </span><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">1 Tablespoon Molasses<br />
</span><span style="font-weight: 400">1 teaspoon Vanilla Extract </span></p>
<p><b>Powdered Sugar Coating</b><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">1 Cup Powdered Sugar</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_6a0fcfc03b3d9_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_6a0fcfc03b3d9_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"><span style="font-weight: 400">Preheat the oven to 350 degrees F and prepare two baking sheets with parchment paper</span></li>
<li id="instruction-step-2"><span style="font-weight: 400">In a medium bowl combine the flour, cinnamon and ginger; set aside </span></li>
<li id="instruction-step-3"><span style="font-weight: 400">In a mixing bowl with paddle attachment, combine the unsalted butter and light brown sugar; cream together until smooth </span></li>
<li id="instruction-step-4"><span style="font-weight: 400">Add the molasses and the vanilla extract to the butter mixture and mix until fully combined, scraping down the sides of the bowl in between </span></li>
<li id="instruction-step-5"><span style="font-weight: 400">Slowly add the dry ingredients to the butter mixture and mix to combine</span></li>
<li id="instruction-step-6"><span style="font-weight: 400">Using a 1 tablespoon scoop, scoop the cookie dough into balls and place on the prepared baking sheet</span></li>
<li id="instruction-step-7"><span style="font-weight: 400">Bake the cookies for 10-12 minutes or until the bottom of the cookies starts to turn a light golden color </span></li>
<li id="instruction-step-8"><span style="font-weight: 400">Remove the cookies from the oven and allow them to cool completely before dredging them in powdered sugar</span></li>
<li id="instruction-step-9"><span style="font-weight: 400">Once the cookies are cooled, toss each cookie in powdered sugar and place on a serving platter or in a container</span></li>
<li id="instruction-step-10"><span style="font-weight: 400">Cookies will last for one week in an airtight container</span></li>
</ol>
<p><span style="font-weight: 400">Makes 28-30 Cookies </span></p>
<p>&nbsp;</p>
		</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":8973};
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 size-medium"><img decoding="async" width="410" height="173" data-pin-title="Gingerbread Snowball Cookies" 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%2Fgingerbread-snowball-cookies%2F&amp;linkname=Gingerbread%20Snowball%20Cookies" 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%2Fgingerbread-snowball-cookies%2F&amp;linkname=Gingerbread%20Snowball%20Cookies" 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%2Fgingerbread-snowball-cookies%2F&amp;linkname=Gingerbread%20Snowball%20Cookies" 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%2Fgingerbread-snowball-cookies%2F&amp;linkname=Gingerbread%20Snowball%20Cookies" 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%2Fgingerbread-snowball-cookies%2F&amp;linkname=Gingerbread%20Snowball%20Cookies" 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%2Fgingerbread-snowball-cookies%2F&#038;title=Gingerbread%20Snowball%20Cookies" data-a2a-url="https://joyoliver.com/gingerbread-snowball-cookies/" data-a2a-title="Gingerbread Snowball Cookies"></a></p>]]></content:encoded>
			<wfw:commentRss>https://joyoliver.com/gingerbread-snowball-cookies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
