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

Week Meal Ideas

  • Recipe Index
  • Homepage
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About

Week Meal Ideas

  • Recipe Index
  • Homepage
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
Healthy / DINNER / Healthy Baked Mac and Cheese

Healthy Baked Mac and Cheese

January 13, 2026 by Alex

Jump to Recipe·Print Recipe

If you’re looking for a comforting dish that brings smiles around the dinner table, look no further than this Healthy Baked Mac and Cheese. It’s a delightful twist on the classic recipe that so many of us adore. What makes this version special is its creamy goodness without the guilt! With wholesome ingredients, it’s the perfect meal for busy weeknights or family gatherings. Plus, you can easily customize it to suit everyone’s tastes!

Healthy Baked Mac and Cheese image 2

This Healthy Baked Mac and Cheese not only satisfies those cheesy cravings but is also packed with nutrition. It’s truly a dish that will warm your heart and nourish your body.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
Healthy Baked Mac and Cheese image 3

Why You’ll Love This Recipe

  • Easy to Prepare: This recipe comes together quickly, making it a breeze for anyone to whip up after a long day.
  • Family-Friendly Appeal: Everyone loves mac and cheese! This healthier version keeps all the flavor while being lighter on calories.
  • Customizable: Feel free to add your favorite veggies or proteins to tailor it to your family’s preferences.
  • Make-Ahead Convenience: You can prep this dish ahead of time and simply bake it before serving—perfect for meal prepping!
  • Delicious Flavor: The blend of cheeses and spices creates a rich, satisfying flavor that you won’t be able to resist.

Ingredients You’ll Need

For this Healthy Baked Mac and Cheese, you’ll need simple and wholesome ingredients that are easy to find at any grocery store. Here’s what you’ll need:

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
Healthy Baked Mac and Cheese image 4

For the Pasta

  • 8 oz whole wheat elbow macaroni (or high-protein pasta)

For the Sauce

  • 1 ½ cups low-fat milk (or unsweetened almond milk)
  • 1 tbsp all-purpose flour (or whole wheat flour)
  • ¾ cup plain Greek yogurt (nonfat or low-fat)
  • 1 ½ cups shredded sharp cheddar cheese
  • ½ cup shredded part-skim mozzarella cheese
  • 1 tsp Dijon mustard
  • ½ tsp garlic powder
  • ½ tsp onion powder
  • ¼ tsp salt (adjust to taste)
  • ¼ tsp black pepper
  • 1 cup steamed cauliflower puree (to blend into the sauce)

For the Topping

  • ⅓ cup whole wheat breadcrumbs (or crushed almonds)
  • 1 tbsp olive oil or melted butter (for mixing into the topping)

Optional Add-Ins

  • Steamed broccoli, spinach, peas, or cooked chicken

Variations

One of the best things about this recipe is how flexible it is! You can easily swap out ingredients or add extras based on what you have at home or what your family enjoys.

  • Add More Veggies: Toss in some steamed broccoli or spinach for an extra nutrient boost.
  • Try Different Cheeses: Experiment with different types of cheese like gouda or pepper jack for a unique flavor twist.
  • Swap the Protein: Add cooked chicken or turkey for a heartier meal!
  • Make it Spicy: If you’re feeling adventurous, sprinkle in some crushed red pepper flakes for a bit of heat.

How to Make Healthy Baked Mac and Cheese

Step 1: Preheat Your Oven

Preheat your oven to 375°F (190°C). This step is crucial because it ensures your mac and cheese bakes evenly and gets that lovely golden top we all love!

Step 2: Cook the Pasta

Cook the pasta according to package instructions until al dente. Drain and set aside. Cooking it just right is important since it’ll continue cooking in the oven later!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Step 3: Make the Roux

In a medium saucepan over medium heat, whisk together flour and milk until smooth and slightly thickened—about 3–4 minutes. This mixture forms the base of our creamy sauce.

Step 4: Add Cheese & Seasonings

Reduce heat to low and stir in Greek yogurt, cheddar, mozzarella, Dijon mustard, garlic powder, onion powder, salt, and pepper. Mix until everything is melted together. If using cauliflower puree, now’s the time to stir it in! This adds creaminess while sneaking in some veggies.

Step 5: Combine with Pasta

Pour that delicious sauce over your cooked pasta and mix well to coat every piece evenly. Each bite should be bursting with cheesy goodness!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Step 6: Transfer to Baking Dish

Spoon this mixture into your prepared baking dish and spread it out evenly. This helps ensure even baking throughout.

Step 7: Make the Topping

Mix breadcrumbs with olive oil or melted butter in a small bowl. Sprinkle this crunchy topping evenly over your pasta mixture—it adds such a wonderful texture!

Step 8: Bake Until Golden

Bake uncovered for 20–25 minutes until bubbly and golden on top. The smell wafting through your kitchen will have everyone anticipating dinner!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Step 9: Cool Slightly Before Serving

Let it cool slightly before diving in—this helps achieve that perfect texture while enhancing flavors as well!

And there you have it—a delightful dish of Healthy Baked Mac and Cheese! Enjoy sharing this comforting meal with friends and family; I’m sure they’ll love it just as much as I do!

Pro Tips for Making Healthy Baked Mac and Cheese

Creating the perfect Healthy Baked Mac and Cheese is easier than you think! Here are some tips to ensure your dish turns out creamy, cheesy, and delightful every time.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
  • Choose high-fiber pasta: Opting for whole wheat or high-protein pasta not only enhances the nutritional value but also keeps you feeling full longer.

  • Mix in veggies: Incorporating steamed broccoli, spinach, or peas adds not just color but also essential nutrients and fiber. Plus, it makes the dish more visually appealing!

  • Experiment with cheeses: Feel free to mix and match your favorite cheeses. Using a combination of sharp cheddar, mozzarella, or even a bit of pepper jack can elevate the flavor profile while keeping things interesting.

    REMEMBER

    WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

    PIN
  • Make it ahead of time: Prepare the casserole in advance and store it in the fridge until you’re ready to bake. This is perfect for busy weeknights when you want a homemade meal without all the last-minute fuss.

  • Don’t skip the topping: A crispy breadcrumb topping adds texture and contrast to the creamy pasta underneath. You can even add herbs or spices to the breadcrumbs for an extra kick!

How to Serve Healthy Baked Mac and Cheese

Serving your Healthy Baked Mac and Cheese can be as fun as making it! Here are some ideas to make your meal look as good as it tastes.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Garnishes

  • Fresh herbs: Chopped parsley or chives sprinkled on top add vibrant color and a fresh flavor that brightens up each bite.
  • Cracked black pepper: A light dusting of freshly cracked pepper provides a hint of spice that complements the creaminess of the dish.

Side Dishes

  • Garden salad: A simple mixed green salad with a light vinaigrette balances out the richness of mac and cheese, adding crunch and freshness.
  • Roasted vegetables: Seasonal roasted vegetables like zucchini, bell peppers, or carrots are colorful, nutritious options that complement the flavors of your dish.
  • Steamed asparagus: Tender asparagus drizzled with lemon juice offers a zesty contrast that pairs perfectly with this creamy pasta.
  • Garlic bread: For those who want an extra indulgent side, warm garlic bread is always a hit and great for scooping up any leftover cheese sauce!

With these tips and serving suggestions, your Healthy Baked Mac and Cheese will not only taste fantastic but also look inviting on your dinner table. Enjoy this comforting yet nutritious twist on a classic!

Make Ahead and Storage

This Healthy Baked Mac and Cheese is perfect for meal prep, allowing you to enjoy a delicious and nutritious dish throughout the week. With just a few simple storage tips, you can keep this comfort food classic on hand for busy nights.

Storing Leftovers

  • Allow the mac and cheese to cool completely before storing.
  • Transfer leftovers to an airtight container.
  • Store in the refrigerator for up to 3-4 days.

Freezing

  • To freeze, let the dish cool completely, then portion it into freezer-safe containers.
  • Label each container with the date and contents.
  • Freeze for up to 2-3 months.

Reheating

  • Thaw frozen mac and cheese in the refrigerator overnight before reheating.
  • For best results, reheat in the oven at 350°F (175°C) until heated through, about 20-25 minutes.
  • You can also microwave individual portions, stirring occasionally to heat evenly.

FAQs

If you’re curious about this recipe, here are some common questions that might help!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Can I make Healthy Baked Mac and Cheese vegan?

Yes! You can substitute Greek yogurt with a plant-based yogurt and use non-dairy cheeses to create a vegan version of this Healthy Baked Mac and Cheese.

How do I add more vegetables to my Healthy Baked Mac and Cheese?

Feel free to mix in steamed broccoli, spinach, or peas into your pasta before adding the sauce. This adds nutrition while keeping it delicious!

Is Healthy Baked Mac and Cheese suitable for meal prep?

Absolutely! This dish is great for meal prep as it stores well in the fridge or freezer. Just follow the storage tips provided above!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Final Thoughts

I hope you find joy in making this Healthy Baked Mac and Cheese as much as I do! It’s a comforting dish that brings together beloved flavors with a healthier twist. Whether shared with family or enjoyed solo, this recipe is bound to become a favorite. Happy cooking!

Print

Healthy Baked Mac and Cheese

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Indulge in the comfort of this Healthy Baked Mac and Cheese, a delightful twist on a classic favorite. This guilt-free recipe combines creamy textures with wholesome ingredients, ensuring you can enjoy a hearty meal without compromising your health goals. With a rich blend of sharp cheddar and mozzarella cheeses, combined with nutritious additions like Greek yogurt and cauliflower puree, this dish is both satisfying and nourishing. Perfect for busy weeknights or family gatherings, it allows for easy customization to cater to everyone’s tastes. Add your choice of veggies or proteins for an even more wholesome experience. Prepare to bring smiles around the dinner table with this delightful dish!

  • Author: Alex
  • Prep Time: 15 minutes
  • Cook Time: 25 minutes
  • Total Time: 40 minutes
  • Yield: Serves 6
  • Category: Main
  • Method: Baking
  • Cuisine: American

Ingredients


Scale
  • 8 oz whole wheat elbow macaroni
  • 1 ½ cups low-fat milk
  • ¾ cup plain Greek yogurt
  • 1 ½ cups shredded sharp cheddar cheese
  • ½ cup shredded part-skim mozzarella cheese
  • 1 cup steamed cauliflower puree
  • ⅓ cup whole wheat breadcrumbs
  • 1 tbsp all-purpose flour
  • 1 tsp Dijon mustard
  • ½ tsp garlic powder
  • ½ tsp onion powder
  • ¼ tsp salt
  • ¼ tsp black pepper
  • 1 tbsp olive oil


Instructions

  1. Preheat your oven to 375°F (190°C).
  2. Cook the pasta according to package instructions until al dente; drain.
  3. In a saucepan over medium heat, whisk flour and milk until smooth and thickened (3–4 minutes).
  4. Stir in Greek yogurt, cheddar, mozzarella, mustard, garlic powder, onion powder, salt, and pepper until melted. Incorporate cauliflower puree for added creaminess.
  5. Combine sauce with cooked pasta thoroughly.
  6. Transfer mixture to a baking dish and spread evenly.
  7. Mix breadcrumbs with olive oil; sprinkle atop pasta mixture.
  8. Bake uncovered for 20–25 minutes until golden and bubbly.
  9. Allow cooling slightly before serving.

Nutrition

  • Serving Size: 1 serving
  • Calories: 300
  • Sugar: 5g
  • Sodium: 400mg
  • Fat: 10g
  • Saturated Fat: 4g
  • Unsaturated Fat: 6g
  • Trans Fat: 0g
  • Carbohydrates: 42g
  • Fiber: 6g
  • Protein: 15g
  • Cholesterol: 20mg

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.weekmealideas.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”39752d73f3″,”postId”:913};
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’ );
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

window.tastyRecipesUpdatePrintLink = () => {

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

if ( ! printButton ) {
return;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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 = ”;

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

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

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

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

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

(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

« Previous Post
How To Make Homemade Applesauce
Next Post »
Healthy Oat Flour Banana Bread

If you enjoyed this…

Air Fryer Chicken Bites and Broccoli

Air Fryer Chicken Bites and Broccoli

Summer Corn and Zucchini Chowder Recipe

Summer Corn and Zucchini Chowder Recipe

Steak Burrito Bowl

Steak Burrito Bowl

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
Healthy Chocolate Banana Bread

Healthy Chocolate Banana Bread

Steak Fajita Bowl Recipe

Steak Fajita Bowl Recipe

Healthy Apple Pie Granola

Healthy Apple Pie Granola

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

© 2026 · © Week Meal Ideas · All Rights Reserved · Created by Alex ·