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

Simply Home Cooking

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

Simply Home Cooking

  • Homepage
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • Contact
  • About
Quick / DINNER / Creamy Tuna Pesto Pasta (Quick and Easy)

Creamy Tuna Pesto Pasta (Quick and Easy)

January 14, 2026 by Tiffany

Jump to Recipe·Print Recipe

If you’re looking for a quick and comforting meal that the whole family will love, then this Creamy Tuna Pesto Pasta (Quick and Easy) is just what you need! It’s one of those recipes that has become a staple in my kitchen, perfect for busy weeknights when time is short but everyone is hungry. The combination of tender pasta, flaky tuna, and rich basil pesto creates a dish that feels indulgent yet is so simple to whip up.

Creamy Tuna Pesto Pasta (Quick and Easy) image 2

What I adore about this pasta is how easily it adapts to different tastes. Whether you’re cooking for kids or hosting friends, it’s always a hit. Plus, you can have dinner on the table in just 20 minutes! Trust me; this creamy delight will quickly become one of your go-to favorites.

Creamy Tuna Pesto Pasta (Quick and Easy) image 3

Why You’ll Love This Recipe

  • Quick Preparation: This dish comes together in just 20 minutes, making it ideal for hectic evenings.
  • Family-Friendly: With its creamy sauce and tasty ingredients, even picky eaters will ask for seconds!
  • Customizable: Add your favorite veggies or swap out the tuna for another protein to make it your own.
  • Deliciously Comforting: The combination of flavors from the pesto and cream creates a rich taste that’s comforting and satisfying.
  • Make-Ahead Friendly: You can prep the ingredients in advance, making dinnertime even easier!

Ingredients You’ll Need

These are simple, wholesome ingredients that come together beautifully to create a dish everyone will enjoy. Gather these staples from your kitchen, and let’s get cooking!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
Creamy Tuna Pesto Pasta (Quick and Easy) image 4

For the Pasta

  • 8 oz pasta (penne, fusilli, spaghetti or fettucine)

For the Sauce

  • 2 tablespoons olive oil
  • ½ small onion (finely chopped)
  • 2 cloves garlic (minced)
  • 5 oz canned tuna (preferably in olive oil, drained and flaked)
  • ½ cup basil pesto (store-bought or homemade)
  • ½ cup heavy cream
  • ¼ cup grated Parmesan cheese (optional)
  • 1 teaspoon lemon zest (optional)
  • Salt and pepper (to taste)
  • ¼ cup reserved pasta water (if needed)

For the Veggies

  • 1 cup baby spinach
  • ½ cup cherry tomatoes (halved)
  • ¼ teaspoon red pepper flakes

Variations

This Creamy Tuna Pesto Pasta is wonderfully flexible! You can easily adjust it to suit your preferences or what you have on hand. Here are some fun ideas:

  • Swap the protein: Try using canned salmon or chickpeas instead of tuna for a different flavor.
  • Add more veggies: Toss in some steamed broccoli or bell peppers to boost nutrition and color.
  • Change up the cheese: If you want extra creaminess without dairy, consider using nutritional yeast instead of Parmesan.
  • Make it spicy: Add more red pepper flakes or a dash of hot sauce for those who love a bit of heat.

How to Make Creamy Tuna Pesto Pasta (Quick and Easy)

Step 1: Cook the Pasta

Start by bringing a large pot of salted water to a boil. Add your chosen pasta and cook according to package instructions until al dente. Remember to reserve about ¼ cup of pasta water before draining; it helps create a silky sauce later on!

Step 2: Sauté the Aromatics

In a large skillet over medium heat, add olive oil. Once hot, toss in the finely chopped onion. Sauté until translucent—this releases their natural sweetness and builds flavor. Add minced garlic next and sauté briefly until fragrant; be careful not to burn it!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Step 3: Combine with Tuna and Pesto

Once your aromatics are ready, gently fold in the flaked tuna along with basil pesto. Stir well to combine everything evenly; this step infuses all those delightful flavors together.

Step 4: Create the Creamy Sauce

Pour in the heavy cream next! Stir continuously until everything is well-blended. If it’s too thick, add some reserved pasta water until you reach your desired consistency. This creamy mixture coats every piece of pasta beautifully.

Step 5: Finish with Veggies

Now it’s time to add those vibrant veggies! Toss in baby spinach and halved cherry tomatoes along with salt, pepper, lemon zest if using, and red pepper flakes. Cook just until the spinach wilts—this keeps everything fresh while adding color.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Step 6: Serve and Enjoy!

Finally, combine the cooked pasta with your creamy sauce mixture. Give it a good toss so every noodle gets coated with that luscious sauce. Serve immediately while it’s warm—and watch as everyone digs in happily!

Enjoy every bite of this Creamy Tuna Pesto Pasta; it’s sure to bring smiles around your dinner table!

Pro Tips for Making Creamy Tuna Pesto Pasta (Quick and Easy)

Making this dish is a breeze, but a few simple tips can elevate it even more!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
  • Use high-quality tuna: Choosing a premium canned tuna, preferably packed in olive oil, enhances the flavor and texture of your pasta. It makes each bite more satisfying and rich.
  • Don’t skip the pasta water: Reserve a bit of the starchy pasta water before draining. Adding it to your sauce can help create a creamy consistency that clings beautifully to your pasta.
  • Customize with vegetables: Feel free to add your favorite veggies such as peas, bell peppers, or zucchini. They not only boost the nutritional value but also add vibrant colors and fresh flavors.
  • Experiment with different types of pesto: While basil pesto is classic, try using sun-dried tomato or arugula pesto for a unique twist that can change the flavor profile of the dish entirely.
  • Taste as you go: Always check for seasoning before serving. A pinch of salt or a dash of lemon juice can brighten up the entire dish.

How to Serve Creamy Tuna Pesto Pasta (Quick and Easy)

Serving this Creamy Tuna Pesto Pasta is all about presentation and balance. With just a few touches, you can turn this simple dish into an impressive meal!

Garnishes

  • Fresh basil leaves: A few whole leaves scattered on top add a pop of color and an aromatic touch that complements the pesto perfectly.
  • Lemon wedges: Serving lemon wedges on the side allows guests to squeeze some fresh juice over their pasta, adding brightness and acidity that enhances the flavors.

Side Dishes

  • Garlic Bread: Crispy garlic bread is perfect for soaking up any leftover sauce. Its crunchiness pairs well with the creaminess of the pasta.
  • Mixed Green Salad: A light salad with mixed greens, cherry tomatoes, and a simple vinaigrette adds freshness and balances out the richness of the main dish.
  • Roasted Vegetables: Seasonal roasted vegetables like zucchini, bell peppers, or asparagus bring an earthy flavor that complements the pasta beautifully.
  • Steamed Broccoli: This simple side not only offers vibrant color but also adds crunch and essential nutrients, making your meal well-rounded.

Enjoy making this recipe as part of your family meals! It’s sure to become one of your favorites for those busy weeknights.

Make Ahead and Storage

This Creamy Tuna Pesto Pasta is perfect for meal prep, making it easy to enjoy delicious dinners throughout the week. You can whip up a batch in advance and store it, ensuring you have a quick meal ready when time is tight.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Storing Leftovers

  • Allow the pasta to cool completely before storing.
  • Place leftovers in an airtight container.
  • Refrigerate for up to 3 days.
  • When ready to eat, check for any separation in the sauce; you can add a splash of reserved pasta water if needed.

Freezing

  • This dish can be frozen, but it’s best to leave out the cream and fresh veggies until reheating.
  • Freeze in a freezer-safe container or bag, removing as much air as possible.
  • Use within 2-3 months for optimal freshness.

Reheating

  • Thaw overnight in the refrigerator if frozen.
  • Reheat on the stovetop over low heat, adding a little reserved pasta water or cream to loosen the sauce as needed.
  • Stir in fresh spinach and tomatoes just before serving for added freshness.

FAQs

If you have any questions about this recipe, you’re in the right place! Here are some common queries that many readers have.

Can I make Creamy Tuna Pesto Pasta (Quick and Easy) without cream?

Absolutely! You can substitute heavy cream with coconut milk or a dairy-free cream alternative for a lighter version that still tastes great.

How long does Creamy Tuna Pesto Pasta (Quick and Easy) last in the fridge?

When stored correctly in an airtight container, this dish will last up to 3 days in the refrigerator. Be sure to check for freshness before consuming!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

What can I add to Creamy Tuna Pesto Pasta (Quick and Easy) for extra flavor?

Feel free to mix in your favorite vegetables such as bell peppers, zucchini, or mushrooms. A sprinkle of lemon juice or additional seasonings like Italian herbs can enhance the flavors significantly!

Final Thoughts

I hope you find this Creamy Tuna Pesto Pasta not just easy to make but also a delightful addition to your weeknight meals. It’s rich, comforting, and so adaptable—perfect for busy evenings or when you want something special without much fuss. Enjoy creating this dish for your loved ones, and I can’t wait for you to try it! Happy cooking!

Print

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Creamy Tuna Pesto Pasta (Quick and Easy)

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

No reviews

If you’re in search of a quick yet satisfying meal, look no further than this Creamy Tuna Pesto Pasta. In just 20 minutes, you can whip up a delicious dish that combines tender pasta with flaky tuna and rich basil pesto. This recipe is perfect for busy weeknights when everyone is hungry and time is limited. The creamy sauce is both comforting and indulgent, making it a family favorite that pleases even the pickiest eaters. Plus, with the option to customize by adding vegetables or swapping proteins, it’s easy to make this dish your own. Enjoy a delightful dinner that’s simple, flavorful, and ready in no time!

  • Author: Tiffany
  • Prep Time: 10 minutes
  • Cook Time: 10 minutes
  • Total Time: 20 minutes
  • Yield: Serves 4
  • Category: Main
  • Method: Cooking
  • Cuisine: Italian

Ingredients


Scale
  • 8 oz pasta (penne or fusilli)
  • 2 tablespoons olive oil
  • ½ small onion (finely chopped)
  • 2 cloves garlic (minced)
  • 5 oz canned tuna (drained and flaked)
  • ½ cup basil pesto
  • ½ cup heavy cream
  • Salt and pepper (to taste)
  • 1 cup baby spinach
  • ½ cup cherry tomatoes (halved)

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Instructions

  1. Cook the pasta according to package instructions in salted boiling water until al dente. Reserve about ¼ cup of pasta water before draining.
  2. In a large skillet over medium heat, heat olive oil and sauté chopped onion until translucent. Add minced garlic and sauté until fragrant.
  3. Fold in flaked tuna and basil pesto, stirring well to combine.
  4. Pour in heavy cream and stir continuously until well-blended. If too thick, add reserved pasta water for desired consistency.
  5. Add baby spinach and cherry tomatoes; season with salt and pepper. Cook until spinach wilts.
  6. Combine the cooked pasta with the creamy mixture, tossing well to coat every piece.

Nutrition

  • Serving Size: 1 cup (240g)
  • Calories: 495
  • Sugar: 2g
  • Sodium: 410mg
  • Fat: 24g
  • Saturated Fat: 8g
  • Unsaturated Fat: 15g
  • Trans Fat: 0g
  • Carbohydrates: 51g
  • Fiber: 3g
  • Protein: 20g
  • Cholesterol: 50mg

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:\/\/simplyhomecooking.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”31e97e729d”,”postId”:987};
window.TastyRecipes = window.TastyRecipes || {};

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

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

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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
Brownie Swirl Ice Cream
Next Post »
Creamy Salmon and Potato Skillet

If you enjoyed this…

Strawberry & Goat Cheese Salad With Candied Pecans

Strawberry & Goat Cheese Salad With Candied Pecans

Japanese Steakhouse Hibachi Zucchini

Japanese Steakhouse Hibachi Zucchini

No Churn Banana Ice Cream

No Churn Banana Ice Cream

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

HealthyCheat MealKetoQuickVeganBudget
Smoked jalapeño poppers pigs in a blanket

Smoked jalapeño poppers pigs in a blanket

Grilled Shrimp Bowl with Avocado, Corn Salsa & Creamy Sauce

Grilled Shrimp Bowl with Avocado, Corn Salsa & Creamy Sauce

Honey Peach & White Cheddar Grilled Cheese

Honey Peach & White Cheddar Grilled Cheese

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

© 2026 · © Simply Home Cooking · All Rights Reserved · Created by Tiffany ·