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

Sweet Family Table

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

Sweet Family Table

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

Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads

Jump to Recipe·Print Recipe

If you’re looking for a fresh and vibrant dish to brighten up your summer meals, look no further! Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads is one of my go-to recipes during the warm months. There’s something magical about juicy tomatoes soaking in a zesty marinade that makes them burst with flavor. Whether you’re hosting a family gathering or just need a quick side for dinner, these marinated tomatoes are sure to impress.

Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads image 2

This recipe is not only simple and quick to prepare, but it also highlights the natural sweetness of ripe tomatoes. Trust me, once you try them, you’ll be adding them to everything from salads to sandwiches!

Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads image 3
Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads image 4

Why You’ll Love This Recipe

  • Quick and Easy: With just 15 minutes of prep time, you’ll have a delicious side ready to go!
  • Bursting with Flavor: The combination of olive oil, balsamic vinegar, and fresh herbs elevates the taste of simple tomatoes.
  • Versatile Use: Perfect as a side dish or topping for grilled meats or bruschetta – the possibilities are endless!
  • Make-Ahead Friendly: Marinate these tomatoes ahead of time for an even more robust flavor at your next meal.
  • Healthy and Wholesome: Packed with nutrients, this dish is as good for your body as it is for your taste buds.

Ingredients You’ll Need

Let’s gather some simple, wholesome ingredients that will make this dish shine. You probably already have many of these staples in your kitchen!

For the Tomatoes

  • 4 large ripe tomatoes

For the Marinade

  • 1/4 cup extra virgin olive oil
  • 2 tablespoons balsamic vinegar
  • 1 teaspoon sea salt
  • 1/2 teaspoon freshly ground black pepper
  • 2 cloves garlic, minced
  • 1 tablespoon fresh basil, chopped (or 1 teaspoon dried basil)
  • 1 tablespoon fresh parsley, chopped (or 1 teaspoon dried parsley)
  • 1/2 teaspoon red pepper flakes (optional)

Variations

This recipe is wonderfully flexible! Feel free to get creative with it based on what you have on hand or your personal preferences.

  • Add Some Protein: Toss in some chickpeas or white beans for an extra protein boost.
  • Spice It Up: Experiment with different herbs like oregano or thyme for unique flavor profiles.
  • Go Mediterranean: Mix in some crumbled feta cheese and kalamata olives for a delightful twist.
  • Vegan Option: Keep it plant-based by using maple syrup instead of honey if you want a touch of sweetness.

How to Make Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads

Step 1: Choose Your Tomatoes

Select large, ripe tomatoes that are firm yet slightly soft. Rinse them under cold water and pat them dry. Choosing the right tomatoes ensures every bite is juicy and flavorful!

Step 2: Slice Them Up

Slice the tomatoes into wedges, rounds, or cubes—whatever shape you prefer! Uniform sizes help the tomatoes marinate evenly so that every piece is infused with deliciousness.

Step 3: Prepare the Marinade

In a separate bowl, whisk together olive oil and balsamic vinegar. Add in sea salt and black pepper to taste. This marinade is where all the magic happens; it’s what transforms simple tomatoes into a show-stopping dish!

Step 4: Add Fresh Flavors

Stir in minced garlic along with your chosen herbs—basil and parsley work beautifully here. If you enjoy a little heat, toss in some red pepper flakes for an exciting kick.

Step 5: Combine Everything

Pour the marinade over the sliced tomatoes and gently toss until they’re well coated. This step ensures that each tomato slice absorbs those fantastic flavors.

Step 6: Let It Marinate

Cover the bowl with plastic wrap or transfer everything into a resealable plastic bag (removing excess air). Let it marinate at room temperature for at least 30 minutes—this waiting period allows flavors to deepen beautifully.

Step 7: Serve and Enjoy!

After marinating, give the tomatoes another gentle toss before serving them in a beautiful dish. Drizzle any leftover marinade on top for an extra touch of flavor. Enjoy this vibrant salad as a standout side or incorporate it into your favorite dishes!

Pro Tips for Making Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads

To ensure your marinated tomatoes are bursting with flavor, keep these helpful tips in mind!

  • Choose the ripest tomatoes – The fresher and riper your tomatoes are, the sweeter and more flavorful they will be. Look for vibrant colors and a slight give when gently squeezed.

  • Let them marinate longer – While 30 minutes is great, letting your tomatoes soak in the marinade for up to 2 hours really allows the flavors to penetrate deeply, enhancing their taste.

  • Adjust seasoning to taste – Feel free to modify the salt, pepper, and herbs according to your preference. Tasting as you go ensures a balanced and delicious final dish.

  • Serve at room temperature – For the best flavor experience, allow your marinated tomatoes to come to room temperature before serving. This helps release their natural juices and intensifies their taste.

  • Experiment with other herbs – While basil and parsley are classic choices, don’t hesitate to try fresh oregano or thyme for a different flavor profile that complements your meal beautifully.

How to Serve Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads

Marinated tomatoes not only taste amazing but also add a pop of color to your table. Here are some delightful ways to present this dish!

Garnishes

  • Fresh basil leaves – A few whole leaves on top add freshness and enhance the visual appeal.
  • Crumbled feta cheese (or a vegan alternative) – Adds creaminess and a salty contrast that pairs well with the juicy tomatoes.
  • Toasted pine nuts – Sprinkling these on top provides a delightful crunch and nutty flavor.

Side Dishes

  • Grilled chicken or tofu – Both options offer protein that complements the fresh flavors of the marinated tomatoes while keeping the meal light.

  • Quinoa salad – A light quinoa salad with cucumbers, bell peppers, and lemon dressing pairs wonderfully, adding texture and heartiness.

  • Garlic bread – Crispy garlic bread serves as an excellent vehicle for scooping up those flavorful marinated tomatoes.

  • Mixed green salad – A simple salad of mixed greens with a light vinaigrette can balance out the richness of the marinated dish perfectly.

Make Ahead and Storage

This marinated tomato recipe is fantastic for meal prep, making it a great addition to your weekly cooking routine. You can easily whip up a batch in advance, ensuring you have a flavorful side dish ready to go for any occasion.

Storing Leftovers

  • Store any leftover marinated tomatoes in an airtight container.
  • Keep them in the refrigerator for up to 3 days.
  • Allow the tomatoes to sit at room temperature for about 15 minutes before serving again for optimal flavor.

Freezing

  • While it’s best to enjoy marinated tomatoes fresh, you can freeze them if necessary.
  • Place the marinated tomatoes in a freezer-safe bag or container.
  • Ensure to remove as much air as possible before sealing.
  • Use within 2-3 months; however, note that the texture may change upon thawing.

Reheating

  • Reheating is not typically necessary for marinated tomatoes; they are best served chilled or at room temperature.
  • If desired, gently warm them in a pan over low heat just until slightly warmed through, but avoid cooking them.

FAQs

Can I make marinated tomatoes ahead of time?

Absolutely! Marinated tomatoes taste even better after they have had time to soak in the flavors. You can prepare them a few hours or even a day in advance.

What goes well with marinated tomatoes?

Marinated tomatoes: A delicious recipe for flavorful summer salads pairs wonderfully with grilled meats, bruschetta, or atop fresh greens. They add a burst of freshness and flavor to any dish!

How long do marinated tomatoes last?

When stored properly in an airtight container, marinated tomatoes can last up to 3 days in the refrigerator.

Can I use other types of vinegar instead of balsamic?

Yes! Feel free to experiment with different vinegars like red wine vinegar or apple cider vinegar for varied flavor profiles.

Are there any substitutes for olive oil?

You can substitute olive oil with avocado oil or another neutral oil if preferred, though olive oil provides a lovely richness that complements the tomatoes beautifully.

Final Thoughts

Marinated tomatoes are more than just a simple side dish; they bring vibrant flavors and colors to your table. I hope you enjoy making this recipe as much as I do! It’s perfect for summer meals and gatherings. Don’t hesitate to experiment with variations and find your favorite way to enjoy these delightful tomatoes!

Print

Marinated Tomatoes: A Delicious Recipe for Flavorful Summer Salads

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Marinated tomatoes are a vibrant, flavorful addition to any summer meal, perfect for brightening up your table. This simple recipe features juicy, ripe tomatoes marinated in a zesty blend of olive oil, balsamic vinegar, and fresh herbs. In just 15 minutes of prep time, you can create a refreshing dish that enhances salads, sandwiches, or grilled meats.

  • Author: Mennana
  • Prep Time: 15 minutes
  • Cook Time: N/A
  • Total Time: 0 hours
  • Yield: Serves 4
  • Category: Salad
  • Method: No-Cook
  • Cuisine: Mediterranean

Ingredients


Scale

  • 4 large ripe tomatoes
  • 1/4 cup extra virgin olive oil
  • 2 tablespoons balsamic vinegar
  • 1 teaspoon sea salt
  • 1/2 teaspoon freshly ground black pepper
  • 2 cloves garlic, minced
  • 1 tablespoon fresh basil, chopped (or 1 teaspoon dried basil)
  • 1 tablespoon fresh parsley, chopped (or 1 teaspoon dried parsley)
  • 1/2 teaspoon red pepper flakes (optional)

Instructions

  1. Choose large, ripe tomatoes; rinse and dry them.
  2. Slice the tomatoes into wedges or cubes for even marination.
  3. In a bowl, whisk together olive oil and balsamic vinegar with salt and pepper.
  4. Stir in minced garlic and herbs.
  5. Pour the marinade over the sliced tomatoes; toss gently to coat.
  6. Cover and let marinate at room temperature for at least 30 minutes.
  7. Serve at room temperature or chilled, drizzling leftover marinade on top.

Nutrition

  • Serving Size: 1/4 of salad (approximately 100g)
  • Calories: 130
  • Sugar: 3g
  • Sodium: 200mg
  • Fat: 12g
  • Saturated Fat: 2g
  • Unsaturated Fat: 10g
  • Trans Fat: 0g
  • Carbohydrates: 6g
  • Fiber: 2g
  • Protein: 1g
  • 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.sweetfamilytable.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”6ef55c6681″,”postId”:1803};
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
Blueberry Cinnamon Rolls
Next Post »
Honey Lime Fruit Salad

If you enjoyed this…

Tahini Lemon Chickpea Salad: A Refreshing Delight!

Tahini Lemon Chickpea Salad: A Refreshing Delight!

Brown Butter Iced Oatmeal Cookies Recipe

Brown Butter Iced Oatmeal Cookies Recipe

Leftover cranberry sauce cheese danish

Leftover cranberry sauce cheese danish

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Steak Avocado Corn Bowl: A Delicious and Nutritious Recipe for Any Meal

Steak Avocado Corn Bowl: A Delicious and Nutritious Recipe for Any Meal

Steak Bites and Shell Pasta in Garlic Butter Alfredo Sauce

Steak Bites and Shell Pasta in Garlic Butter Alfredo Sauce

Sizzling Bacon Cheeseburger Queso Dip

Sizzling Bacon Cheeseburger Queso Dip

  • About
  • Contact
  • Disclaimer
  • Homepage
  • PRIVACY POLICY
  • Recipe Index
  • TERMS AND CONDITIONS

© 2026 Sweet Family Table · All Rights Reserved · Created with love by Lalla Mennana · About · Privacy Policy · Terms & Conditions · Disclaimer · Affiliate Disclosure · Contact