This festive Christmas mocktail combines cranberry, lime, and ginger beer with a spiced brown sugar rim for a vacation drink everybody can take pleasure in. Prepared in 5 minutes and straightforward to batch for a crowd!

There’s nothing like a signature drink to get folks within the vacation temper As a cocktail professional, I’ve made dozens of Christmas cocktails, however recently I’ve been leaning into non alcoholic drinks. So for this yr’s holidays I’ve created my new favourite zero proof vacation drink: the Christmas Mocktail!
The glowing spiced brown sugar rim provides simply the correct sparkle to the mix of tart fruity juice with zingy ginger beer, just like the cranberry mocktail and pomegranate mocktail I made earlier this season. It comes collectively in simply 5 minutes and is easy to batch up for all of your vacation events!
Elements You’ll Want
This Christmas mocktail recipe was created by my husband Alex, who had the concept so as to add a touch of apple cider vinegar to this mocktail. In the event you’ve tried my pomegranate mocktail, you’ll comprehend it actually makes you say, “Wow, what’s on this?” Right here’s what you’ll want:
- Cranberry Juice: Use 100% cranberry juice for one of the best taste; cranberry juice cocktail has added sugar and the colour isn’t as good.
- Ginger Beer: Ginger beer has a powerful, spicy ginger taste and is nice for mocktails. (Keep away from ginger ale, it’s not as flavorful.) I like to recommend manufacturers like Fever-Tree or Q Ginger Beer.
- Contemporary Lime Juice: For finest taste all the time use recent lime juice in cocktails and mocktails, not bottled.
- Easy Syrup: Only a contact of easy syrup brightens the flavors; you may as well use pure maple syrup.
- Apple Cider Vinegar: Any apple cider vinegar works right here (I take advantage of the unfiltered variety). Keep away from substituting different sorts like white vinegar or wine vinegar as a result of the flavour is just too harsh.
- For the rim: A mix of brown sugar, cinnamon, cloves, and salt makes a scrumptious warm-spiced glass rim.

The way to Make This Christmas Mocktail
I like that this vacation mocktail comes collectively in about 5 minutes. Right here’s my course of:
- Put together the glass by working an orange slice round a stemmed cocktail glass to moisten it. Then dip it right into a plate along with your rim components. (You possibly can additionally serve in a low ball glass on the rocks.)
- Stir all the things in a cocktail shaker or measuring cup, combining the cranberry juice, lime juice, and apple cider vinegar. You too can simply stir it collectively in a glass.
- Add the ginger beer. At all times add carbonated components final to protect the bubbles.
- Add your garnishes. I like utilizing an orange slice and rosemary sprig for this cocktail to up the enjoyable issue.
Batching This Mocktail for a Crowd
In the event you’re internet hosting a big group, the 8-serving batch variation make prep very simple. Multiply the components by 8 (which I’ve finished for you within the recipe beneath!), then combine all the things besides the in a pitcher.
When serving, stir along with ice, then pressure into ready glasses and high with the ginger beer.
Serving Ideas
This Christmas mocktail is nice for Christmas breakfast, Christmas dinner, and any vacation gathering the place you need to provide one thing particular that’s non-alcoholic.
You possibly can additionally serve it alongside this vacation punch as one other mocktail possibility. It really works effectively with brunch choices, like a spinach quiche or cinnamon French toast.
For a vacation dinner, serve this mocktail as the primary course: it’s nice with Christmas appetizers or finger meals.
This drink works effectively for youths’ vacation events too, and feels particular just like the “grown-up” drinks. Each my children tried this and liked it (they stored asking for extra!).

Extra Christmas Mocktail Recipes
In the event you don’t need to make this Christmas mocktail, listed here are a couple of others you would possibly take pleasure in:
Pomegranate Mocktail
Pairs sweet-tart pomegranate juice with lime and ginger beer for a scrumptious non alcoholic drink.
Glowing Cranberry Mocktail
Tart cranberry juice, recent orange, and spicy ginger beer make a festive drink everybody loves.
Christmas Punch
This simple punch stars cranberry juice, pineapple, and ginger ale for a festive crowd-pleaser.
Apple Cider Mocktail
Candy and tangy, the ginger beer provides bubbles, and muddled mint and lemon add fragrant notes.
And don’t overlook a Virgin Mimosa or a Virgin Bloody Mary for Christmas morning! See my 15 Greatest Mocktail Recipes for extra.
Christmas Mocktail with Cranberry (Simple!)
This festive Christmas mocktail combines cranberry, lime, and ginger beer with a spiced brown sugar rim for a vacation drink everybody can take pleasure in. Prepared in 5 minutes and straightforward to batch for a crowd!
- Prep Time: 5 minutes
- Cook dinner Time: 0 minutes
- Complete Time: 5 minutes
- Yield: 1 drink
- Class: Drink
- Technique: No Cook dinner
- Delicacies: Moctail
- Weight-reduction plan: Vegan
Elements
For the rim
- 1 tablespoon brown sugar
- ¼ teaspoon floor cinnamon
- 1 pinch floor cloves
- 1 pinch of flaky sea salt
For the drink
- 2 ounces 100% cranberry juice
- ½ ounce recent lime juice
- ½ ounce easy syrup (or pure maple syrup)
- 1 teaspoon apple cider vinegar
- 2 ounces ginger beer
- Orange slices, for garnish
- Contemporary rosemary, for garnish
Directions
- Put together the rim by stirring the brown sugar, cinnamon, cloves and flaky sea salt on a small plate. Run an orange slice across the rim of your glass to moist it, then dip the rim into the sugar combination to coat.
- In a mixing glass, stir collectively the cranberry juice, lime juice, easy syrup and apple cider vinegar with a handful of ice. Pressure into the rimmed glass and high with the ginger beer. If desired, garnish with an orange wheel and rosemary. Serve instantly.
- 8 serving batch variation: Combine 2 cups cranberry juice, ½ cup lime juice, ½ cup easy syrup, and a pair of ½ tablespoons apple cider vinegar in a pitcher with 3 handfuls ice. Pressure 3 ounces into every glass and high with ginger beer.
Notes
Variations: Substitute maple syrup for the easy syrup for extra cozy, nuanced taste notes. You too can substitute 100% pomegranate juice for the cranberry juice and omit the easy syrup, or hold it for a sweeter drink.
window.trCommon={“minRating”:6,”ajaxurl”:”https://www.acouplecooks.com/wp-admin/admin-ajax.php”,”ratingNonce”:””,”postId”:174626};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
doc.addEventListener( ‘click on’, ( e ) => {
let anchor = e.goal;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}
if ( ! anchor || ! anchor.classList.comprises( ‘tasty-recipes-scrollto’ ) ) {
return;
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const aspect = doc.querySelector( selector );
if ( ! aspect ) {
return;
}
aspect.scrollIntoView( { conduct: ‘clean’ } );
}
};
doc.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 = doc.querySelectorAll(this.cookModeSelector);
if (cookModes.size > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘enter[type=”checkbox”]’).addEventListener(“change”, occasion => {
this.checkboxChange(occasion.goal);
}, false);
} else {
cookMode.fashion.show = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = doc.querySelectorAll(this.cookModeSelector + ‘ enter[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
attempt {
this.wakeLock = await this.wakeLockApi.request(“display”);
this.wakeLock.addEventListener(“launch”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.launch();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(operate(callback) {
if (doc.readyState !== “loading”) {
callback();
} else {
doc.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
aspect: null,
tooltipElement: null,
deleting: false,
init( aspect ) {
if ( this.deleting ) {
return;
}
this.aspect = aspect;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.take away( ‘opened’ );
setTimeout( () => {
this.tooltipElement.take away();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = doc.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
doc.physique.replaceChild( tooltipElement, currentTooltipElement );
} else {
doc.physique.appendChild( tooltipElement );
}
this.tooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
},
present() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.aspect.getBoundingClientRect().high
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().top;
const tooltipLeft = this.aspect.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.aspect.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘fashion’, ‘high:’ + 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.take away( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, knowledge, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.ship( this.preparePostData( knowledge ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.standing === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( knowledge ) {
const formData = new FormData();
for ( const key in knowledge ) {
formData.append( key, knowledge[key] );
}
return formData;
},
};
window.TastyRecipes.rankings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const rankings = doc.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( rankings.size {
occasion.preventDefault();
this.defaultRating = occasion.goal.closest( ‘.checked’ ).dataset.ranking;
this.setCheckedStar( occasion.goal );
this.maybeSendRating( this.defaultRating, occasion.goal );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click on’, e => {
// Bailout (do not take away the tooltip) when the clicked aspect is a ranking star, or it is the tooltip itself.
if ( e.goal.closest( ‘.tasty-recipes-rating’ ) || e.goal.classList.comprises( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( ranking ) {
const ratingInput = doc.querySelector( ‘#reply .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click on();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = doc.querySelectorAll( ‘enter.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click on’, currentEvent => {
const selectedRating = currentEvent.goal.getAttribute( ‘worth’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( ranking ) {
if ( ranking < this.minRating ) {
doc.physique.classList.take away( 'tasty-recipes-selected-minimum-rating' );
return;
}
doc.physique.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( ranking ) {
const commentTextarea = doc.getElementById( 'remark' );
if ( ! commentTextarea ) {
return;
}
if ( ranking {
window.TastyRecipes.staticTooltip.changeMessage( response.knowledge.message );
window.TastyRecipes.staticTooltip.present();
this.updateAverageText( response.knowledge, recipeCardElement );
this.maybeFillCommentForm( response.knowledge );
// Conceal the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.knowledge, ranking );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( knowledge, recipeCardElement ) {
if ( ! knowledge.common ) {
return;
}
this.setRatingPercent( knowledge );
if ( ! knowledge.rely ) {
return;
}
const quickLink = doc.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, knowledge );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = knowledge.common;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), knowledge );
},
setTextInContainer( container, knowledge ) {
if ( ! container ) {
return;
}
if ( knowledge.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = knowledge.label;
}
return;
}
const averageElement = container.querySelector( ‘.common’ );
if ( averageElement ) {
averageElement.textContent = knowledge.common;
}
const countElement = container.querySelector( ‘.rely’ );
if ( countElement ) {
countElement.textContent = knowledge.rely;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( knowledge ) {
this.defaultRating = knowledge.common.toFixed( 1 );
const elements = knowledge.common.toFixed( 2 ).toString().cut up( ‘.’ );
this.currentRatingPercentage = elements[1] ? elements[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( goal ) {
const cardRatingContainer = goal.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = goal.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( knowledge ) {
if ( ! knowledge.remark || ! knowledge.remark.content material ) {
return;
}
const commentForm = doc.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.worth ) {
return;
}
// Add remark particulars for modifying.
commentBox.innerHTML = knowledge.remark.content material;
if ( knowledge.remark.title ) {
commentForm.querySelector( ‘[name=author]’ ).worth = knowledge.remark.title;
commentForm.querySelector( ‘[name=email]’ ).worth = knowledge.remark.electronic mail;
}
},
maybeResetTooltip( recipeCardElement, knowledge, ranking ) {
if ( this.savingRating === ranking ) {
this.resetTooltip( recipeCardElement, knowledge );
}
},
resetTooltip( recipeCardElement, knowledge ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default ranking.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( knowledge && knowledge.common ) ? knowledge.common.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, knowledge );
}
},
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 = doc.querySelector( ‘#reply .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.show.contains( ‘flex’ ) ) {
ratingsButtons.fashion.course = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Choose the ranking that was beforehand chosen 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 on’, occasion => {
if ( ratingSpan === occasion.goal ) {
return;
}
ratingSpan.previousElementSibling.click on();
} );
}
}
};
(operate(callback) {
if (doc.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.rankings.init( window.trCommon ? window.trCommon.minRating : 4 );
});
