• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Simple Daily Eats

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Simple Daily Eats

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals

Jump to Recipe·Print Recipe

If you’re looking for a delightful way to impress your friends and family at your next gathering, the Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals is just what you need. This vibrant platter is not only visually stunning but also brimming with fresh, wholesome flavors that everyone will love. It’s perfect for casual snacking, light meals, or even as a centerpiece at larger gatherings. You’ll find that it comes together in no time, making it a go-to recipe for busy weeknights or weekend get-togethers.

Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals image 2

What makes this dish truly special is its versatility. You can customize it based on what you have on hand or what flavors you crave. Plus, it’s a fantastic way to encourage everyone to dig in and share—after all, food tastes better when enjoyed together!

Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals image 3
Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals image 4

Why You’ll Love This Recipe

  • Super simple assembly: No cooking required; just chop and arrange for a beautiful presentation!
  • Healthy and delicious: Packed with fresh vegetables and wholesome ingredients, this platter is guilt-free indulgence.
  • Perfect for sharing: Great for parties or family dinners—everyone can grab their favorites!
  • Make ahead friendly: Prepare components in advance for a stress-free serving experience.
  • Endless variations: Switch up the ingredients to suit your taste or dietary needs—it’s always a hit!

Ingredients You’ll Need

Gathering these simple, wholesome ingredients will make your Mediterranean Mezze Tapas Platter come to life! Each one contributes to the colorful and flavorful experience that brings joy to every bite.

For the Dips

  • 1/2 cup hummus
  • 1/2 cup tzatziki sauce

For the Veggies and Extras

  • 1/2 cup roasted red peppers, sliced
  • 1/2 cup marinated artichoke hearts
  • 1/4 cup Kalamata olives
  • 1 cup cucumber slices
  • 1 cup cherry tomatoes

For Serving

  • 4 whole wheat pita breads, cut into wedges
  • 2 tbsp extra virgin olive oil
  • Fresh parsley, chopped, for garnish

Variations

This Mediterranean Mezze Tapas Platter is wonderfully flexible! Here are some easy ways to adapt it to fit your preferences:

  • Add more dips: Experiment with baba ghanoush or olive tapenade for an extra layer of flavor.
  • Include different veggies: Swap in bell pepper strips, radishes, or carrot sticks for a colorful crunch.
  • Make it vegan: Simply omit the feta cheese and add more plant-based protein sources like chickpeas or edamame.
  • Spice it up: Incorporate spicy roasted nuts or drizzle hot honey over the platter for that sweet-and-spicy kick!

How to Make Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals

Step 1: Warm the Pita

Preheat your oven to 350°F (175°C). Warming the pita bread enhances its flavor and texture, making each bite even more enjoyable. Arrange the pita wedges on a baking tray and let them warm up for about 5 minutes until they’re soft and slightly toasted.

Step 2: Prepare Your Dips

While the pita warms up, place the creamy hummus and tangy tzatziki sauce into small serving bowls. These dips are essential—they’re not just tasty; they’re also perfect for slathering on pita or dipping veggies!

Step 3: Arrange Your Ingredients

On a large platter, artistically arrange the roasted red peppers, marinated artichokes, Kalamata olives, cucumbers, cherry tomatoes, and crumbled feta around the dips. This step is all about visual appeal—take your time to create a beautiful spread that makes everyone excited to dig in.

Step 4: Drizzle with Olive Oil

To elevate your mezze platter further, drizzle some extra virgin olive oil over everything. This adds richness and flavor that ties all the components together beautifully. A sprinkle of fresh parsley on top not only adds color but also gives a nice herby finish.

Step 5: Serve Immediately

Once everything is beautifully arranged on your platter with warm pita wedges alongside it, serve immediately! The combination of flavors and textures will surely be a hit at any gathering—enjoy sharing this delightful appetizer with friends and family!

Pro Tips for Making Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals

Creating a stunning mezze platter is all about freshness and presentation—here are some tips to make it shine!

  • Use Fresh Ingredients: Always opt for the freshest vegetables and herbs. Fresh produce not only enhances flavor but also adds vibrant colors to your platter.

  • Arrange Thoughtfully: Place dips in the center and arrange veggies, olives, and other items around them. A visually appealing layout encourages guests to dig in and makes your platter more inviting.

  • Balance Textures: Include a variety of textures—creamy hummus, crunchy cucumbers, and chewy pita. This variety keeps each bite interesting and satisfying.

  • Make It Ahead: Prepare ingredients ahead of time, but assemble the platter just before serving. This keeps everything fresh and prevents sogginess.

  • Offer Variety in Dips: While hummus and tzatziki are classics, consider adding a spicy harissa or baba ghanoush for an extra kick. This will cater to different tastes and add excitement to your spread.

How to Serve Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals

Presenting your Mediterranean Mezze Platter beautifully can enhance the enjoyment of this delightful appetizer. Here are some ideas to elevate your serving style.

Garnishes

  • Fresh Herbs: A sprinkle of fresh dill or mint can bring a burst of flavor and color that complements the dishes beautifully.
  • Lemon Wedges: Adding lemon wedges not only brightens up the visual appeal but also provides a refreshing citrusy zing that pairs well with the dips.

Side Dishes

  • Stuffed Grape Leaves: These tangy, savory bites filled with rice and herbs complement your mezze platter perfectly, enhancing the Mediterranean experience.
  • Tabbouleh Salad: This light, herby salad made with parsley, bulgur wheat, tomatoes, and lemon adds freshness that balances the richness of dips.
  • Grilled Vegetables: Serve a side of grilled zucchini or eggplant for added smoky flavors; they pair wonderfully with hummus.
  • Falafel: Crispy falafel balls offer a delicious protein option alongside your fresh veggies and dips, making your meal more filling.

Make Ahead and Storage

This Mediterranean Mezze Tapas Platter is perfect for meal prep, allowing you to enjoy a fresh, flavorful appetizer any time! Here are some tips for making it ahead and storing leftovers.

Storing Leftovers

  • Place leftover dips in airtight containers and store them in the refrigerator.
  • Keep vegetables and pita wedges separate to maintain their crispness.
  • Consume leftovers within 2-3 days for optimal freshness.

Freezing

  • While it’s best to enjoy this platter fresh, you can freeze the hummus and tzatziki separately.
  • Use freezer-safe containers, leaving some space for expansion.
  • Thaw in the refrigerator overnight before serving.

Reheating

  • For pita bread, reheat in the oven at 350°F (175°C) for about 5 minutes until warm.
  • Dips should be served cold; simply remove from the fridge before serving.

FAQs

Here are some common questions about the Mediterranean Mezze Tapas Platter.

Can I customize my Mediterranean Mezze Tapas Platter?

Absolutely! This platter is versatile. Feel free to add or substitute ingredients like roasted eggplant, different olives, or various cheeses to suit your taste.

How long can I store a Mediterranean Mezze Tapas Platter?

Leftovers should be stored in airtight containers in the refrigerator and ideally consumed within 2-3 days for best quality.

Is this Mediterranean Mezze Tapas Platter suitable for special diets?

Yes! It’s vegetarian-friendly and can easily be made vegan by omitting the feta cheese or using a plant-based alternative.

Final Thoughts

The Mediterranean Mezze Tapas Platter is not just a feast for the eyes but also a delightful blend of flavors that brings people together. I hope you enjoy making this vibrant appetizer as much as I do! Dive into this easy recipe, share it with friends and family, and savor every delicious bite. Happy cooking!

Print

Mediterranean Mezze Tapas Platter – Easy Shareable Appetizer for Parties & Light Meals

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Experience the vibrant flavors of the Mediterranean with this delightful Mezze Tapas Platter, an easy shareable appetizer that will impress your guests at any gathering. Perfect for casual snacking or light meals, this colorful spread features a variety of fresh vegetables and delicious dips like hummus and tzatziki. No cooking is required—just chop, arrange, and serve! It’s a versatile dish that encourages sharing and can be customized to fit your taste preferences or dietary needs. With endless variations possible, this platter is sure to become a favorite for parties or family dinners.

  • Author: Sarah Mitchell
  • Prep Time: 10 minutes
  • Cook Time: 5 minutes
  • Total Time: 15 minutes
  • Yield: Serves approximately 8 people 1x
  • Category: Appetizer
  • Method: No cooking required
  • Cuisine: Mediterranean

Ingredients


Scale

  • 1/2 cup hummus
  • 1/2 cup tzatziki sauce
  • 1/2 cup sliced roasted red peppers
  • 1/2 cup marinated artichoke hearts
  • 1/4 cup Kalamata olives
  • 1 cup cucumber slices
  • 1 cup cherry tomatoes
  • 4 whole wheat pita breads, cut into wedges
  • 2 tbsp extra virgin olive oil
  • Fresh parsley for garnish

Instructions

  1. Preheat oven to 350°F (175°C) and warm pita wedges for about 5 minutes until soft.
  2. Place hummus and tzatziki in small bowls.
  3. Arrange roasted red peppers, marinated artichokes, olives, cucumbers, and cherry tomatoes on a large platter around the dips.
  4. Drizzle with olive oil and sprinkle with fresh parsley.
  5. Serve immediately with warm pita wedges.

Nutrition

  • Serving Size: 1 plate (150g)
  • Calories: 220
  • Sugar: 3g
  • Sodium: 350mg
  • Fat: 9g
  • Saturated Fat: 1g
  • Unsaturated Fat: 7g
  • Trans Fat: 0g
  • Carbohydrates: 31g
  • Fiber: 6g
  • Protein: 6g
  • Cholesterol: 0mg

Did you make this recipe?

Share a photo and tag us — we can’t wait to see what you’ve made!

window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/www.simpledailyeats.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”df5f2f5181″,”postId”:2461};
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()
);

(function(){

var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};

var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”));

window.tastyRecipesFormatAmount = function(amount, el) {
if ( parseFloat( amount ) === parseInt( amount ) ) {
return amount;
}
var roundType = ‘frac’;
if (typeof el.dataset.amountShouldRound !== ‘undefined’) {
if (‘false’ !== el.dataset.amountShouldRound) {
if ( ‘number’ === el.dataset.amountShouldRound ) {
roundType = ‘number’;
} else if (‘frac’ === el.dataset.amountShouldRound) {
roundType = ‘frac’;
} else if (‘vulgar’ === el.dataset.amountShouldRound) {
roundType = ‘vulgar’;
} else {
roundType = ‘integer’;
}
}
}
if (‘number’ === roundType) {
amount = Number.parseFloat(amount).toPrecision(2);
} else if (‘integer’ === roundType) {
amount = Math.round(amount);
} else if (‘frac’ === roundType || ‘vulgar’ === roundType) {
var denom = 8;
if (typeof el.dataset.unit !== ‘undefined’) {
var unit = el.dataset.unit;
if ([‘cups’,’cup’,’c’].includes(unit)) {
denom = 4;
if (0.125 === amount) {
denom = 8;
}
if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) {
denom = 6;
}
}
if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) {
denom = 2;
}
if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) {
denom = 8;
}
}
var amountArray = frac.cont( amount, denom, true );
var newAmount = ”;
if ( amountArray[1] !== 0 ) {
newAmount = amountArray[1] + ‘/’ + amountArray[2];
if (‘vulgar’ === roundType) {
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {
newAmount = vulgar;
}
});
}
}
if ( newAmount ) {
newAmount = ‘ ‘ + newAmount;
}
if ( amountArray[0] ) {
newAmount = amountArray[0] + newAmount;
}
amount = newAmount;
}
return amount;
};

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( ‘.tasty-recipes-print-button’ );

if ( ! printButton ) {
return;
}

const printURL = new URL( printButton.href );
const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ );
const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ );

let unit = ”;
let scale = ”;

if ( unitButton ) {
unit = unitButton.dataset.unitType;
searchParams.delete(‘unit’);
searchParams.set( ‘unit’, unit );
}

if ( scaleButton ) {
scale = scaleButton.dataset.amount;
searchParams.set( ‘scale’, scale );
}

const paramString = searchParams.toString();
const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString;
const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ );

printLinks.forEach( ( el ) => {
el.href = newURL;
});

const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ );
printButtons.forEach( ( el ) => {
el.href = newURL;
});
};

document.addEventListener( ‘DOMContentLoaded’, () => {

if ( ! window.location.href.includes( ‘/print/’ ) ) {
return;
}

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( ‘unit’ );
const scale = searchParams.get( ‘scale’ );

if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) {
document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click();
}

if ( scale && Number(scale) > 0 ) {
document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click();
}
});
}());

(function(){
var buttonClass = ‘tasty-recipes-scale-button’,
buttonActiveClass = ‘tasty-recipes-scale-button-active’,
buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’);
if ( ! buttons ) {
return;
}

buttons.forEach(function(button){
button.addEventListener(‘click’, function(event){
event.preventDefault();
var recipe = event.target.closest(‘.tasty-recipes’);
if ( ! recipe ) {
return;
}
var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass);
otherButtons.forEach(function(bt){
bt.classList.remove(buttonActiveClass);
});
button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll(‘span[data-amount]’);
var buttonAmount = parseFloat( button.dataset.amount );
scalables.forEach(function(scalable){
if (typeof scalable.dataset.amountOriginalType === ‘undefined’
&& typeof scalable.dataset.nfOriginal === ‘undefined’) {
if (-1 !== scalable.innerText.indexOf(‘/’)) {
scalable.dataset.amountOriginalType = ‘frac’;
}
if (-1 !== scalable.innerText.indexOf(‘.’)) {
scalable.dataset.amountOriginalType = ‘number’;
}
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (-1 !== scalable.innerText.indexOf(vulgar)) {
scalable.dataset.amountOriginalType = ‘vulgar’;
}
});
if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) {
scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;
}
}
var amount = parseFloat( scalable.dataset.amount ) * buttonAmount;
amount = window.tastyRecipesFormatAmount(amount, scalable);
if ( typeof scalable.dataset.unit !== ‘undefined’ ) {
if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) {
if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) {
amount += ‘ ‘ + scalable.dataset.unit;
}
}
}
scalable.innerText = amount;
});

var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’);
nonNumerics.forEach(function(nonNumeric){
var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’);
if ( indicator ) {
nonNumeric.removeChild(indicator);
}
if ( 1 !== buttonAmount ) {
indicator = document.createElement(‘span’);
indicator.setAttribute(‘data-non-numeric-label’, true);
var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’);
indicator.appendChild(text);
nonNumeric.appendChild(indicator);
}
});

window.tastyRecipesUpdatePrintLink();
});
});
}());

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 {
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 {
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 );
});

« Previous Post
Strawberry Iced Oatmeal Cookies Recipe
Next Post »
Delicious Baked Honey BBQ Popcorn Chicken Recipe

If you enjoyed this…

Tuna Croquettes Baked or Air Fryer Mozzarella Delight

Tuna Croquettes Baked or Air Fryer Mozzarella Delight

Air Fryer Artichoke Hearts with Garlic Aioli (Keto and Low Carb)

Air Fryer Artichoke Hearts with Garlic Aioli (Keto and Low Carb)

BBQ Chicken Flatbread

BBQ Chicken Flatbread

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Chili-Lime Quinoa Black Bean Salad with Corn

Chili-Lime Quinoa Black Bean Salad with Corn

Garlic Butter Beef Bites with Potatoes

Garlic Butter Beef Bites with Potatoes

Mediterranean Bean Salad

Mediterranean Bean Salad

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

© 2026 Simple Daily Eats · All Rights Reserved · Created with heart by Sarah Mitchell · About · Privacy Policy · Terms & Conditions · Disclaimer · Affiliate Disclosure · Contact