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

Full Recipes Hub

My WordPress Blog

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

Full Recipes Hub

My WordPress Blog

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About Me
  • Contact
Healthy / Healthy Mediterranean Hummus Bowl

Healthy Mediterranean Hummus Bowl

January 14, 2026 by Olivia

Jump to Recipe·Print Recipe

If you’re looking for a meal that’s not only delicious but also quick and healthy, then this Healthy Mediterranean Hummus Bowl is just what you need. It’s my go-to recipe when I want something nutritious without spending hours in the kitchen. The combination of creamy hummus, fresh veggies, and protein makes it satisfying and vibrant. Plus, it’s perfect for busy weeknights or laid-back family gatherings where everyone can customize their bowls just the way they like!

Healthy Mediterranean Hummus Bowl image 2

This recipe is special to me because it embodies the flavors of the Mediterranean while being incredibly easy to whip up. Whether you’re serving it for lunch or dinner, each bite is a burst of freshness that delights your taste buds.

Healthy Mediterranean Hummus Bowl image 3

Why You’ll Love This Recipe

  • Quick and easy: With just 30 minutes from start to finish, you can have a wholesome meal ready in no time.
  • Customizable: Each person can add their favorite toppings, making it a fun option for everyone at the table.
  • Packed with nutrients: Fresh vegetables, whole grains, and protein come together to create a balanced meal that fuels your day.
  • Make-ahead friendly: Prepare ingredients in advance so you can assemble your bowl whenever hunger strikes.
  • Flavorful and satisfying: The mix of spices and textures ensures every bite is delicious and fulfilling.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Ingredients You’ll Need

Let’s dive into the world of fresh ingredients! The great thing about this Healthy Mediterranean Hummus Bowl is that it uses simple, wholesome ingredients that are easy to find. You might even have some of these staples in your pantry already!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
Healthy Mediterranean Hummus Bowl image 4

For the Base

  • 1 ½ cups hummus (homemade or store-bought)
  • 1 cup quinoa or couscous (cooked)

Fresh Vegetables

  • 1 cup cherry tomatoes (halved)
  • 1 cucumber (diced)
  • 1 red bell pepper (diced)
  • ¼ red onion (thinly sliced)

Toppings

  • ¼ cup Kalamata olives (pitted and halved)
  • ¼ cup feta cheese (crumbled; optional)
  • 1 cup protein of choice (falafel, grilled chicken, or tofu)
  • ½ cup roasted chickpeas (optional, for crunch)
  • Fresh parsley or mint (chopped; about ¼ cup)

For the Lemony Tahini Dressing

  • 1 tbsp olive oil
  • 1 tbsp lemon juice
  • 1 tsp za’atar or paprika
  • ¼ cup tahini
  • 2 tbsp lemon juice
  • 2 tbsp water (or more for desired consistency)
  • 1 garlic clove (minced)
  • Salt and pepper to taste

Variations

One of the best parts about this recipe is its flexibility! Feel free to mix things up based on what you have on hand or what flavors you’re craving.

  • Swap the protein: If falafel isn’t your thing, try grilled chicken or marinated tofu for a different twist.
  • Change up the grains: Quinoa isn’t your only option—couscous works wonderfully too!
  • Add seasonal vegetables: Swap out cherry tomatoes for roasted bell peppers or add zucchini during summer months.
  • Explore different dressings: Try using a yogurt-based dressing for a tangy alternative to tahini.

How to Make Healthy Mediterranean Hummus Bowl

Step 1: Prepare Your Base

Start by cooking your quinoa or couscous according to package instructions. This step is essential as it provides a hearty base for your bowl. Once cooked, let it cool slightly while you prep your other ingredients.

Step 2: Chop Fresh Vegetables

Next, chop all those vibrant veggies! Dice cucumbers, halve cherry tomatoes, and slice red onions. This step adds color and crunch to your bowl—trust me; it makes all the difference!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Step 3: Mix Up Your Dressing

In a small bowl, whisk together olive oil, lemon juice, tahini, minced garlic, and your choice of za’atar or paprika. Adding water bit by bit until you reach your desired consistency creates a creamy dressing that ties everything together beautifully.

Step 4: Assemble Your Bowls

Now comes the fun part! In large bowls or plates, start layering with hummus as your base. Follow with quinoa or couscous before adding chopped vegetables and protein on top. Don’t forget those Kalamata olives!

Step 5: Drizzle with Dressing

Finally, drizzle your homemade tahini dressing over everything. Sprinkle with fresh herbs like parsley or mint for an extra touch. Enjoy immediately while everything is fresh!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

This Healthy Mediterranean Hummus Bowl is sure to become one of your favorites too! Whether you’re enjoying it solo or sharing with friends and family, each scoop will make you smile.

Pro Tips for Making Healthy Mediterranean Hummus Bowl

Creating your own Mediterranean hummus bowl is both fun and rewarding! Here are some tips to enhance your dish and ensure it’s a hit every time.

  • Choose Quality Hummus: Whether you make it at home or buy it, opt for high-quality hummus. This will serve as the flavorful base of your bowl, making a significant difference in taste.

    REMEMBER

    WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

    PIN
  • Cook Grains Ahead of Time: Prepare your quinoa or couscous in advance and store it in the fridge. This saves time on busy days and ensures a quick assembly when you’re ready to eat.

  • Customize Your Protein: Feel free to mix up the protein options based on your preferences. Falafel gives a great crunch, grilled chicken adds heartiness, while tofu provides plant-based goodness—each brings its own unique flavor!

  • Pack in the Veggies: Don’t be shy about adding more vegetables! Spinach, arugula, or roasted zucchini can add even more nutrients and flavor, making this bowl a powerhouse meal.

    REMEMBER

    WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

    PIN
  • Adjust the Dressing Consistency: If you prefer a thicker or thinner tahini dressing, adjust the water accordingly. This way, you’ll have the perfect drizzle that enhances each bite!

How to Serve Healthy Mediterranean Hummus Bowl

Presenting your Mediterranean hummus bowl can turn an ordinary meal into an extraordinary experience. Here are some ideas to make it visually appealing and appetizing.

Garnishes

  • Chopped Fresh Herbs: Sprinkle fresh parsley or mint over the top for added color and freshness.
  • Lemon Wedges: Serve with lemon wedges on the side for an extra zing that guests can squeeze over their portions.

Side Dishes

  • Cucumber Yogurt Dip: A refreshing dip made from yogurt and cucumber pairs beautifully with the flavors of the hummus bowl. It adds creaminess and coolness.
  • Pita Bread: Warm pita bread slices are perfect for scooping up all the delicious ingredients in your bowl. They also make for a satisfying addition.
  • Tabbouleh Salad: This bright salad made with bulgur wheat, parsley, tomatoes, and lemon juice complements the flavors of your dish perfectly while adding extra fiber.
  • Roasted Vegetable Medley: A mix of seasonal roasted vegetables like bell peppers, zucchini, and eggplant can bring warmth and depth to your meal.

With these serving suggestions and pro tips, you’re all set to create a delightful Healthy Mediterranean Hummus Bowl that’s sure to impress! Enjoy every vibrant bite!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Make Ahead and Storage

This Healthy Mediterranean Hummus Bowl is perfect for meal prep! You can prepare the components ahead of time, making it easy to assemble a nutritious meal when you need it. Here’s how to store and preserve your delicious bowl.

Storing Leftovers

  • Store leftovers in an airtight container in the refrigerator.
  • Keep the dressing separate until ready to serve to maintain freshness.
  • Leftovers can last up to 3 days in the fridge.

Freezing

  • While it’s best enjoyed fresh, you can freeze individual portions of hummus and grains.
  • Place them in freezer-safe containers or bags, removing as much air as possible.
  • Use frozen items within 1-2 months for optimal flavor.

Reheating

  • If using quinoa or couscous, reheat in a microwave-safe dish with a splash of water to prevent drying out.
  • Heat hummus gently on the stove over low heat or in the microwave until warmed through (avoid overheating).
  • Assemble your bowl fresh after reheating for the best texture and flavor!

FAQs

Here are some common questions about the Healthy Mediterranean Hummus Bowl:

Can I make this Healthy Mediterranean Hummus Bowl vegan?

Absolutely! Just make sure to skip any optional feta cheese and choose plant-based protein options like falafel or tofu.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

How can I customize my Healthy Mediterranean Hummus Bowl?

You can add or substitute any toppings you love, such as avocado, roasted vegetables, or different herbs. The possibilities are endless!

What grains can I use for this recipe?

Quinoa and couscous work wonderfully, but feel free to use brown rice, farro, or any grain that you prefer.

Final Thoughts

I hope you enjoy making this Healthy Mediterranean Hummus Bowl as much as I do! It’s not only vibrant and delicious but also filled with nutritious ingredients that will keep you satisfied. Whether you’re planning a quick lunch or a light dinner, this recipe is sure to become a favorite. Happy cooking!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Print

Healthy Mediterranean Hummus Bowl

Print Recipe

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Enjoy a delicious Healthy Mediterranean Hummus Bowl packed with veggies and flavors. Perfect for meal prep—try it today!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
  • Author: Olivia
  • Prep Time: 15 minutes
  • Cook Time: 15 minutes
  • Total Time: 30 minutes
  • Yield: Serves 4
  • Category: Main
  • Method: No cooking method specified
  • Cuisine: Mediterranean

Ingredients


Scale
  • 1 ½ cups hummus (homemade or store-bought)
  • 1 cup quinoa or couscous (cooked)
  • 1 cup cherry tomatoes (halved)
  • 1 cucumber (diced)
  • 1 red bell pepper (diced)
  • ¼ red onion (thinly sliced)
  • ¼ cup Kalamata olives (pitted and halved)
  • 1 cup protein of choice (falafel, grilled chicken, or tofu)
  • ½ cup roasted chickpeas (optional, for crunch)
  • Fresh parsley or mint (chopped; about ¼ cup)
  • 1 tbsp olive oil
  • 1 tbsp lemon juice
  • 1 tsp za’atar or paprika
  • ¼ cup tahini
  • 2 tbsp lemon juice
  • 2 tbsp water (or more for desired consistency)
  • 1 garlic clove (minced)
  • Salt and pepper to taste


Instructions

  1. Prepare quinoa or couscous according to package instructions and set aside to cool.
  2. Chop cherry tomatoes, cucumber, red bell pepper, and red onion.
  3. In a small bowl, whisk together olive oil, lemon juice, tahini, minced garlic, and za’atar or paprika until smooth.
  4. In serving bowls, layer hummus as the base followed by quinoa/couscous, chopped veggies, and your chosen protein.
  5. Drizzle with dressing and top with Kalamata olives and fresh herbs.

Nutrition

  • Serving Size: 1 bowl (400g)
  • Calories: 550
  • Sugar: 6g
  • Sodium: 600mg
  • Fat: 23g
  • Saturated Fat: 3g
  • Unsaturated Fat: 20g
  • Trans Fat: 0g
  • Carbohydrates: 66g
  • Fiber: 15g
  • Protein: 18g
  • Cholesterol: 10mg

Did you make this recipe?

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/www.fullrecipeshub.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”a20791664b”,”postId”:1008};
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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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()
);

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

(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]};

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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 = () => {

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

if ( ! printButton ) {
return;
}

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

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

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

(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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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’ );

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

},
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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

// 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’;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

« Previous Post
Delicious Philly Cheesesteak Sloppy Joes Recipe in 10 Minutes
Next Post »
Keto Pancake Breakfast Smashburgers

If you enjoyed this…

Baked Gnocchi Recipe

Baked Gnocchi Recipe

Roasted Delicata Squash with Crispy Onions

Roasted Delicata Squash with Crispy Onions

Creamy Lemon Garlic Chicken Pasta

Creamy Lemon Garlic Chicken Pasta

Reader Interactions

Leave a Comment Cancel reply

Helpful comments include feedback on the post or changes you made.

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Chicken Parmesan Sliders

Chicken Parmesan Sliders

Honey Sweet Potato Summer Salad

Honey Sweet Potato Summer Salad

White Peach Raspberry Almond Salad

White Peach Raspberry Almond Salad

  • Recipe Index
  • Disclaimer
  • Terms and Conditions
  • Privacy Policy

© 2026 · © Full Recipes Hub · All Rights Reserved