<?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 + OliverGrapefruit Lemonade - Joy + Oliver</title>
	<atom:link href="https://joyoliver.com/grapefruit-lemonade/feed/" rel="self" type="application/rss+xml" />
	<link>https://joyoliver.com/grapefruit-lemonade/</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>Grapefruit Lemonade</title>
		<link>https://joyoliver.com/grapefruit-lemonade/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=grapefruit-lemonade</link>
		<enclosure url="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4.jpg" type="image/jpeg" /> 
		<comments>https://joyoliver.com/grapefruit-lemonade/#respond</comments>
		<pubDate>Tue, 11 Feb 2014 14:55:22 +0000</pubDate>
		<dc:creator><![CDATA[Kristen Massad]]></dc:creator>
				<category><![CDATA[Cocktails + Smoothies Recipes]]></category>
		<category><![CDATA[Sweets]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://joyoliver.com/?p=1509</guid>
		<description><![CDATA[Facebook Pinterest Email When life gives you lemon and grapefruits....make the most delicious lemonade!&#160; Ever since citrus season started, I have had a grapefruit a day and loving it, but I decided I needed to change it up and juice these beautiful pink fruits.&#160; I can drink the pure grapefruit juice, but the rest of...]]></description>
				<content:encoded><![CDATA[<div class="tasty-recipes-quick-links">
<a class="tasty-recipes-jump-link tasty-recipes-scrollto" href="#tasty-recipes-6328-jump-target">Jump to Recipe</a><span>&middot;</span><a class="tasty-recipes-print-link" href="https://joyoliver.com/grapefruit-lemonade/print/6328/">Print Recipe</a>
</div>

<p style="text-align: center;"><a href="https://joyoliver.com/wp-content/uploads/2014/02/Image-1.png"><img fetchpriority="high" decoding="async" data-pin-title="Grapefruit Lemonade" class="aligncenter  wp-image-1526" alt="Image-1" src="https://joyoliver.com/wp-content/uploads/2014/02/Image-1-677x1024.png" height="655" width="434" srcset="https://joyoliver.com/wp-content/uploads/2014/02/Image-1-677x1024.png 677w, https://joyoliver.com/wp-content/uploads/2014/02/Image-1-198x300.png 198w, https://joyoliver.com/wp-content/uploads/2014/02/Image-1.png 847w" sizes="(max-width: 434px) 100vw, 434px" /></a></p>
<p style="text-align: center;">When life gives you lemon and grapefruits....make the most delicious lemonade!&nbsp; Ever since citrus season started, I have had a grapefruit a day and loving it, but I decided I needed to change it up and juice these beautiful pink fruits.&nbsp; I can drink the pure grapefruit juice, but the rest of my family loves lemonade and this is the most refreshing drink...how can you resist the beautiful color and perfect for your valentine!&nbsp;</p>
<p style="text-align: center;"><a href="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-8.jpg"><img decoding="async" data-pin-title="Grapefruit Lemonade" class="aligncenter size-full wp-image-1522" alt="grapefruit 8" src="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-8.jpg" height="640" width="425" srcset="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-8.jpg 425w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-8-199x300.jpg 199w" sizes="(max-width: 425px) 100vw, 425px" /></a></p>
<p style="text-align: center;">Its very simple and extremely quick to make!&nbsp;<br />
2 grapefruits<br />
2 Lemons<br />
1 cup of simple syrup<br />
fresh mint</p>
<p style="text-align: center;">*** Make this a cocktail...substitute the simple syrup for champagne***</p>
<p style="text-align: center;"><a href="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-7.jpg"><img decoding="async" data-pin-title="Grapefruit Lemonade" class="aligncenter size-full wp-image-1521" alt="grapefruit 7" src="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-7.jpg" height="640" width="425" srcset="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-7.jpg 425w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-7-199x300.jpg 199w" sizes="(max-width: 425px) 100vw, 425px" /></a><a href="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-5.jpg"><img decoding="async" data-pin-title="Grapefruit Lemonade" class="aligncenter size-full wp-image-1519" alt="grapefruit 5" src="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-5.jpg" height="640" width="425" srcset="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-5.jpg 425w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-5-199x300.jpg 199w" sizes="(max-width: 425px) 100vw, 425px" /></a><a href="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4.jpg"><img decoding="async" data-pin-title="Grapefruit Lemonade" class="aligncenter size-full wp-image-1518" alt="grapefruit 4" src="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4.jpg" height="640" width="425" srcset="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4.jpg 425w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4-410x617.jpg 410w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4-360x542.jpg 360w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4-180x271.jpg 180w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4-150x226.jpg 150w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-4-199x300.jpg 199w" sizes="(max-width: 425px) 100vw, 425px" /></a></p>
<p style="text-align: center;">sugar your glass rims for a little added sparkle and a touch of sweet!&nbsp; Enjoy</p>
<p style="text-align: center;"><a href="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-1.jpg"><img decoding="async" data-pin-title="Grapefruit Lemonade" class="aligncenter size-full wp-image-1515" alt="grapefruit 1" src="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-1.jpg" height="640" width="425" srcset="https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-1.jpg 425w, https://joyoliver.com/wp-content/uploads/2014/02/grapefruit-1-199x300.jpg 199w" sizes="(max-width: 425px) 100vw, 425px" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<a class="button tasty-recipes-print-button tasty-recipes-no-print tasty-recipes-print-above-card" href="https://joyoliver.com/grapefruit-lemonade/print/6328/">Print</a><span class="tasty-recipes-jump-target" id="tasty-recipes-6328-jump-target" style="display:block;padding-top:2px;margin-top:-2px;"></span><div id="tasty-recipes-6328" data-tr-id="6328" class="tasty-recipes tasty-recipes-6328 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">Grapefruit Lemonade</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/2014/02/grapefruit-3-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/grapefruit-lemonade/print/6328/" 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-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>
					</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">
			<ul>
<li><span data-amount="1" data-unit="cup">1 cup</span> fresh grapefruit juice</li>
<li><span data-amount="1" data-unit="cup">1 cup</span> fresh lemon juice</li>
<li><span data-amount="0.5" data-unit="cup">½ cup</span> sugar</li>
<li><span data-amount="1" data-unit="cup">1 cup</span> water</li>
<li>fresh mint for garnish</li>
</ul>
<!--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_6a07a853d0ab4_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_6a07a853d0ab4_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">boil sugar and water to make a simple syrup</li>
<li id="instruction-step-2">juice grapefruit and lemon</li>
<li id="instruction-step-3">cool simple syrup completely</li>
<li id="instruction-step-4">combine grapefruit juice, lemon juice and simple syrup</li>
<li id="instruction-step-5">garnish each glass with fresh mint</li>
</ol>
		</div>
	</div>



	<div class="tasty-recipes-notes">
		<h3 data-tasty-recipes-customization="h3-color.color h3-transform.text-transform">Notes</h3>
		<div class="tasty-recipes-notes-body" data-tasty-recipes-customization="body-color.color">
			<ul>
<li>make this a cocktail...substitute the simple syrup for champagne!</li>
</ul>
		</div>
	</div>



	<div class="tasty-recipes-nutrition">
		<h3 data-tasty-recipes-customization="h3-color.color h3-transform.text-transform">Nutrition</h3>
		<ul>
							<li><strong class="tasty-recipes-label" data-tasty-recipes-customization="body-color.color">Serving Size:</strong> <span data-tasty-recipes-customization="body-color.color" class="tasty-recipes-serving-size">4</span></li>
					</ul>
	</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":1509};
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>
<p style="text-align: center;">&nbsp;</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fjoyoliver.com%2Fgrapefruit-lemonade%2F&amp;linkname=Grapefruit%20Lemonade" 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%2Fgrapefruit-lemonade%2F&amp;linkname=Grapefruit%20Lemonade" 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%2Fgrapefruit-lemonade%2F&amp;linkname=Grapefruit%20Lemonade" 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%2Fgrapefruit-lemonade%2F&amp;linkname=Grapefruit%20Lemonade" 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%2Fgrapefruit-lemonade%2F&amp;linkname=Grapefruit%20Lemonade" 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%2Fgrapefruit-lemonade%2F&#038;title=Grapefruit%20Lemonade" data-a2a-url="https://joyoliver.com/grapefruit-lemonade/" data-a2a-title="Grapefruit Lemonade"></a></p>]]></content:encoded>
			<wfw:commentRss>https://joyoliver.com/grapefruit-lemonade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
