Home Blog Page 235

Strawberry Cake

0
A strawberry cake in a green plate with whipped cream on top and forks on the side

The Italian Plum Torte gets a summery twist with this Strawberry Cake recipe. Savor the sun-ripened flavor of strawberries and build your own version.

Our Strawberry Cake’s Italian Plum Torte Inspiration

This recipe adds to the dozens of versions we’ve read (and of the many we’ve made and enjoyed) of Marian Burros’s legendary 1979 Italian Plum Torte. Her dry batter absorbs fruit liquids in a gorgeous way, even as it rises and reaches up to blanket the fruit placed on top before baking. As strawberry season approaches, this version will help you celebrate the return of summer and delicious, sun-ripened fruits and veggies. After you’ve tried it once or twice, perhaps it will inspire you to build your own flavor profiles into the recipe and make one more delicious version in Ms. Burros’s honor.

Recipe, Story, and Styling by Keith Recker
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Fun Fruit Sammies

0
Three fresh fruit and Creme Cheese Sammies sit stacked on a plate next to a glass filled with green liquid.
What’s for lunch? Fun!

Our longtime Kids Table contributor Kelly Kinsey created this fun fruit sammies recipe featuring fresh fruit and creme cheese. Bring the kids in to participate in the making of these good foods. The fun is part of the process!

Fun Fruit Sammies Recipe

INGREDIENTS

Sliced strawberries
Sliced pineapple
Sliced oranges
Slider buns, Hawaiian buns, pretzel buns, or slices of Italian bread
8 oz package of Philadelphia cream cheese
1 cup Fresh or Frozen blueberries (if frozen, thaw to room temp and drain off excess liquid)
1/2 tbsp sugar
1/2 tbsp orange zest

INSTRUCTIONS

  1. Slice fresh fruits. Depending on the appetites involved, estimate per kid (or adult!) 2 large strawberries, half an orange, 1 slice of pineapple.
  2. Choose your bread. Salty pretzel buns are fun and tasty, but better for older tastebuds and dexterities. Soft breads like slider buns, Hawaiian buns, and slices of Italian bread are great for younger kids.
  3. In a food processor or with a mixer, blend an 8 oz package of cream cheese with the blueberries, sugar, and zest. This will keep, covered in fridge, for about a week after making.
  4. Toast the bread if you like a little bit of melting in the cream cheese.
  5. Spread cream cheese mixture generously on both sides of your bread. Layer sliced fruits on one half of the bread, and top with the other.

Recipe by Kelly Kinsey / Story, Styling, and Photography by Keith Recker

Subscribe to TABLE Magazine’s print edition.

Strawberry Negroni Bianco

0
A Strawberry Negroni Bianco sits in a rocks glass, garnished with a strawberry and twist of a peel of lemon. A hand holds the glass on the right.

Fresh strawberries and Aperol bring fruity, bittersweet flavors to the classic Negroni in this riff crafted by hip, Downtown gastropub, The Commoner. The four-ingredient recipe is easy to blend up at home — give it a quick stir with some ice, and you’re ready for cocktail hour!

Traditionally speaking, the Negroni uses equal parts Campari, gin, and sweet red vermouth and always comes with an orange wheel garnish.

What is Carpano Bianco in This Strawberry Negroni?

Carpano Bianco is one of Carpano’s many vermouth styles, which has been making Italian vermouth since 1786. This specific type one is considered the most aromatic and elegant. This Carpano Bianco has a slight yellow hue and an exotic, citrus flavor. You’ll find light notes of cocoa beans and almonds plus a subtle hint of wine beneath its bold taste. It’s a great choice for our Strawberry Negroni Bianco, adding a floral touch to this already tasteful traditional cocktail.

Print
clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
A Strawberry Negroni Bianco sits in a rocks glass, garnished with a strawberry and twist of a peel of lemon. A hand holds the glass on the right.

Strawberry Negroni Bianco


  • Author: The Commoner

Description

Fresh strawberries and an aromatic vermouth make a sophisticated negroni.


Ingredients

Scale


Instructions

  1. Blend all of the ingredients in a high-powered blender (like a Vitamix/better to do in a batch), and strain through a fine-mesh colander lined with cheesecloth.
  2. Once strained, add 3 oz of the cocktail in a mixing glass with ice and stir 40-48 times.
  3. Strain over fresh ice in a double rocks glass and serve with a half of a strawberry as a garnish.
  4. A twist of a peel of lemon is always a great idea when using strawberry and gin… salud!

Recipe by The Commoner
Photography by Brittany Spinelli

Subscribe to TABLE Magazine’s print edition.

Strawberry Rhubarb Negroni

0
Two Strawberry Rhubarb Negronis sit in short glasses, one slightly in front of the other. Deep red in color, they are garnished with a strawberry and orange slice.

Savor the sweet, summer flavors of strawberries and rhubarb in this riff on the classic negroni from bartenders Cat Cannon and Cecil Usher of Mindful Hospitality Group. The sweet infusions of fresh, summertime fruits blend seamlessly with smooth, sexy spirits into a delicious cocktail.

What Does Rhubarb Add to a This Negroni Recipe?

This springtime ingredient is fantastic for adding a new flavor to cocktail recipes you’re used to making over and over again. Rhubarb is usually pretty tart, almost with a sour undertone. Though, when combined with sweet elements like in our Strawberry Rhubarb Negroni, it becomes the perfect balance of both ends. Not to mention, spirits that you infuse with rhubarb gain this gorgeous light pink color.

Print
clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
Two Strawberry Rhubarb Negronis sit in short glasses, one slightly in front of the other. Deep red in color, they are garnished with a strawberry and orange slice.

Strawberry Rhubarb Negroni


  • Author: Cat Cannon and Cecil Usher

Description

Celebrate the buddings of spring with a combination of sweet strawberry and tart rhubarb.


Ingredients

Scale


Instructions

For the infusion:

  1. To infuse the spirits, take about 1 ½ cup of sliced strawberries, 1½ cup thickly-sliced rhubarb, and 1 ⅔ cup of liquor and place in an airtight jar.
  2. Let sit for about three to five days. When ready to use, strain out the rhubarb and strawberries.

For the cocktail:

  1. Stir all ingredients together with ice, then strain into a rocks glass with one large ice cube.
  2. Garnish with a strawberry and orange wheel, then enjoy! We recommend taking the traditional Italian route and pairing this negroni with pizza.

Notes

All spirits are infused with strawberry and rhubarb.

Recipe by Cat Cannon and Cecil Usher
Styling by Maggie Weaver
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Elevated Strawberry Gelatin Pretzel Cake

0
A plate of Strawberry Gelatin Pretzel Cake on a wooden surface with three forks and fresh strawberries lying on the side. A piece of cake on a smaller plate that's stacked over two empty plates.

We’ve all had it: Strawberry Jell-O Pretzel Salad. It’s sure to show up at every summer picnic pot luck. And, whether you want to admit it or not, you love it. We can’t quite figure out how or why salad became part of its original title, but apparently, it is now referred to as Strawberry Jell-O Pretzel Bars, and that seems to be more appropriate.

However, don’t settle in on that title too quickly. We’re taking this beloved traditional dessert to an elevated status and giving it a new name: Elevated Strawberry Gelatin Pretzel Cake (if you can think of a shorter title, please chime in).

Disclaimers About Our Elevated Strawberry Gelatin Pretzel Cake

This recipe is not meant to swap out the full-fat ingredients. Nothing low-cal here. You can expect a very rich and delicious experience with every bite. Think cheesecake, without the baking, and use the freshest strawberries the summer season has to offer. If you want to get a little creative, try using a different berry in place of the strawberries for a whole new dessert.

Recipe, Food Styling, and Story by Star Laliberte
Prop Styling by Keith Recker
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Pittsburgh Happenings: May 16-22

0
A black child with a painted pink tiger face at the EQT Children's Theatre Festival, Pittsburgh Happenings
Photo by Emily O'Donnell, Courtesy of Children's Theater Festival

Dare we say it… the beautiful weather seems to be here to stay. Capitalize on the gorgeous Pittsburgh days while we have them the local events below.

Photo by Deneka Peniston

Made Local with Leon Ford
Carnegie Library Lecture Hall, May 18
At 19, new father Leon Ford was shot five times during a traffic stop by a Pittsburgh police officer, leaving him paralyzed from the waist down. Ford discusses his discovery of the power of forgiveness while offering a thought-provoking look at the future of policing in the United States in his new memoir, An Unspeakable Hope.

Photo by Tom Little, Courtesy of the Mattress Factory

As Below, So Above
Mattress Factory, Running until May 19, 2024
Mattress Factory’s newest exhibition comes from Japanese American artist Shohei Katayama. The solo installation draws inspiration — and its title — from “As Above, So Below,” an ancient Greek phrase that explores interconnectedness throughout higher and lower realms of existence. Katayama invites viewers to consider and challenge their reality and place in the world.

Photo by Emily O’Donnell, Courtesy of Children’s Theater Festival

EQT Children’s Theater Festival
Pittsburgh Cultural District, May 19 to 21
Find over 50 free activities and performances throughout the Downtown area this weekend during the annual EQT Children’s Theater Festival. Whether the little one in your life enjoys magic, gaming, or crafts, the lineup featuring musicians, magicians, storytellers, street artists, art stations, creative learning workshops, face-painting Leggos, and more is sure to please any particular kiddo (and adults!).

Photo courtesy of the Pittsburgh Ballet Theatre

The Sleeping Beauty
Benedum Center, May 19 to 21
You’ve most likely read the book or seen the movie, but what about the ballet version? Drama and romance take center stage in this production, choreographed by Ronald Hynd and set to an iconic Tchaikovsky score.

Artist Princess Nostalgia, photo by Vondre Clark

Millvale Music Festival
Millvale, May 19 and 20
The largest gathering of free performances by local musicians returns this weekend for two days of rockin’ entertainment. Get ready for the festivities with the festival’s 2023 Spotify playlist below.

Photo courtesy of Square Cafe

Square Cafe 20th Anniversary Party
Square Cafe, May 20
Did you know Square Cafe has been providing Pittsburgh with delectable bites for almost two decades? In honor of 20 magical years, the East Liberty eatery invites the entire family for breakfast, brunch, or lunch to dance with DJ Cake and enjoy Square Cafe’s famous mini biscuits on the house. Alongside a photo booth, balloon art, prizes, and more, the cafe is offering exclusively made 20th-anniversary merch featuring a special Square Cafe unicorn created by Baron Batch. But there’s more! Throughout the day, this custom-made merch will be gifted to customers while one lucky patron gets to take home a piece of Baron Batch’s artwork.

At Home Mother’s Day Brunch Ideas

0
Pancake stack and syrup
Photo by Adam Milliron

Mother’s Day is just around the corner, and what better way to celebrate the special occasion than by treating Mom to a delicious brunch? Whether you’re hosting a small gathering at home or showing up at Mom’s place with something special, we’ve gathered some mouthwatering recipes that are sure to impress. So, let’s get cooking and make this Mother’s Day a memorable one!

Spring Time Salad with Saffron Vinaigrette

An aerial view of a Spring Time Salad with Saffron Vinaigrette, which sits on a white plate. A white fork and knife are positioned to the left of the salad.

For the health-conscious moms: the saffron adds a subtle floral note to the dressing, while the roasted chickpeas provide a satisfying crunch.

Stack ’em High Pancakes

Pancake stack and syrup

For the mamas who like a more traditional meal: serve these pancakes at the table or deliver them in bed.

Espresso Whiskey Martini Recipe

Two Espresso Whiskey Martini fills one purple and one blue martini glasses, adorned with gold accents.

For the mothers who like their coffee strong: the espresso whiskey martini, a dessert and cocktail wrapped into one delicious drink.

Mother’s Day Deviled Eggs

A woman in a white dress and wide brim hat smiles and leans forward as she sprinkles paprika over deviled eggs.

For the moms who like bubbles: a lovely wine pairing sets these hors d’ oeuvres apart from the traditional deviled egg.

Cinnamon Roll Sugar Cookies

An aerial view of five cinnamon rolls on a piece of parchment paper next to a bowl of cinnamon with a spoon in it.

For the moms with a sweet tooth: like a sugar cookie and a cinnamon roll had a delicious baby!

Creamed Spinach with Dippy Eggs

An aerial view of a dippy egg sitting on top of creamed spinach. a few pieces of sliced french bread sits off to the left of the plate.

For the mamas who like a little flare: an easy but decadent breakfast dish.

Mother’s Day Spring Pea Cocktail

A women in a tan ruffled shirt stands behind a kitchen island holding a spring pea cocktail light green in color. The perfect Mother’s Day cocktail.

For the moms who love spring: a Mother’s Day cocktail whose sunny smell of springtime, and gin-forward flavor, get the party started.

Chocolate Zucchini Bread

Chocolate Zucchini Bread cut into small pieces on a wooden serving tray. The corners show two plates cut in half with a small piece of bread on each

For the chocolate-loving mothers: a rich and delicious chocolate zucchini bread that’s a bit more like chocolate cake.

Mother’s Day Deviled Eggs

0
A woman in a white dress and wide brim hat smiles and leans forward as she sprinkles paprika over deviled eggs.

Cooking and hosting are traditions I inherited from the women in my family. They have been passed on from one generation to the next, starting with my great-grandmother. I had an incredibly special bond with my great-grandmother, who I affectionately called Oma, and my first memories with her started in the kitchen. I remember sitting on the countertop while I watched her prepare a special or daily meal. She would always give me a task so that I felt included — mostly peeling a vegetable or another simple task that a 4-year-old could complete safely.

A Family History of Hosting

Hosting is a talent that my grandma thrives on. From creating the most delicious and special meals for birthdays and holidays to the classic Sunday lunches, she makes to bring our family together. Every meal is completed by a bottle of wine that my grandfather carefully selects to support her divine cooking. While food and wine have always brought us together, they are especially appreciated now, after two years of careful distance.

My mother inherited both cooking and hosting from the incredible women that raised her. Something that has always stuck with me is how special small bites can be when hosting a meal, and deviled eggs were always one of her preferred hors d’oeuvres. Since I live far from her these days, cooking certain foods can trigger comforting memories, almost closing the long distance between us. On Mother’s Day, I will raise a glass of bubbly to her and hope that my deviled eggs can be an eighth as good as hers.

Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

A woman in a white dress and wide brim hat smiles and leans forward as she sprinkles paprika over deviled eggs.

Mother’s Day Deviled Eggs


5 Stars 4 Stars 3 Stars 2 Stars 1 Star


  • Author:
    Camila Alarcón Cordón

Description

Spice up your deviled eggs this year with the perfect filling and garnishes.


Ingredients


Scale

  • Thick-cut bacon strips
  • 1 dozen eggs
  • 1 cup mayonnaise
  • 1/4 cup Dijon mustard
  • 1 teaspoon sweet paprika
  • 1 red onion
  • 1/2 cup white vinegar
  • 1/4 cup apple cider vinegar
  • 1 tbsp sugar
  • Additional sweet paprika to garnish


Instructions

  1. Chop bacon into smaller pieces and fry it.
  2. Boil eggs for 8 minutes.
  3. Peel eggs and cut in half; separate yolk and whites.
  4. In a bowl, mix mayo, Dijon, sweet paprika, and egg yolks.
  5. Pipe the egg yolk mixture into egg whites.
  6. Garnish with bacon and pickled onions.
  7. Dust with sweet paprika.

window.trCommon={“minRating”:6,”ajaxurl”:”https://www.tablemagazine.com/wp-admin/admin-ajax.php”,”ratingNonce”:”88012c2521″,”postId”:2627};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

(function(){

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

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

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

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

window.tastyRecipesUpdatePrintLink = () => {

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

if ( ! printButton ) {
return;
}

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

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

let unit = ”;
let scale = ”;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

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

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

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});

How to Make Pickled Onions

In a heat-proof glass jar, place at least 10 peppercorns and sliced onions into half moons. Boil a cup of water, 1/4 cup of apple cider vinegar, 1/2 cup of white vinegar and salt and pepper. When boiling, add 3 tablespoons of sugar and dissolve. Add mixture to jar. Cover and let it come to room temperature. Refrigerate for at least an hour.

An Unusual Wine Pairing

When you have a savory dish with smoky flavors like these bacon-deviled eggs, you want to balance but at the same time highlight the flavors. The Crémant de Loire Brut Rosé is packed with red fruit flavors. The notes of strawberries and raspberries play a great counterpart to the salty flavors of the pork. Champagne is a more traditional pairing for this “bubbles and brunch” combination designed to celebrate the special mom or mother figure in your life.

Traditional wine recommendation: Champagne

Experimental pairing: Crémant de Loire Brut Rosé

Story by Camila Alarcón Cordón
Photography by Dave Bryce
Styling by Keith Recker

Subscribe to TABLE Magazine‘s print edition.

Lentil Asparagus Corn Salad

0
Orange lentil Asparagus Corn Salad sits on a black plate on top of a black wooden table.

Orange lentils make for a witty pairing with corn and asparagus in this vivid Lentil Asparagus Corn Salad that also flirts with edible flowers and snippets of torn mint. We’re especially romanced by Chef Sam DiBattista’s of Vivo Kitchen‘s Lemon-Honey Cayenne Dressing — lip-warming and tart.

Health Benefits of Asparagus and Lentils

Asparagus is low in calories but rich in nutrients, making it a fantastic addition to any healthy meal. It’s an excellent source of fiber, which supports digestive health and helps regulate blood sugar levels. Asparagus is also high in antioxidants, including vitamins A, C, and E, which help fight inflammation and protect the body from oxidative stress. Additionally, asparagus contains prebiotics that nourish beneficial gut bacteria, promoting a healthy microbiome. Lentils are an affordable nd versatile source of plant-based protein, making them an essential food for vegetarians and vegans. Rich in iron, lentils help maintain healthy red blood cells and combat iron deficiency anemia. They are also an excellent source of fiber, which aids in digestion, reduces cholesterol, and supports weight management by promoting feelings of fullness. Together in this Lentil Asparagus Corn Salad, they make a powerfully healthy combination.

Recipe by Sam Dibattista of Vivo’s Kitchen
Photography by Adam Milliron
Styling by Ana Kelly

Subscribe to TABLE Magazine’s print edition.

Mother’s Day Spring Pea Cocktail

0
A women in a tan ruffled shirt stands behind a kitchen island holding a spring pea cocktail light green in color. The perfect Mother’s Day cocktail.
Sip sip hooray! TABLE's Star LaLiberte dreams up a Mother’s Day cocktail whose sunny smell of springtime, and gin-forward flavor, get the party started.

Many of the gatherings I plan for family or friends begin with a cocktail. It may be something cool and refreshing, warm and comforting, a traditional recipe, or one creatively fashioned to fit a theme. Some come with spirits, but not always. No matter the season or the event, the choice of a welcome drink sets the tone for the festivities. Plus, it is the start of a cohesive theme. Yes, I am “that” person. I find great pleasure in creating themed celebrations where new memories are birthed, and fond memories recalled.

Why Make a Spring Pea Mother’s Day Cocktail?

Since having my own children, each year for Mother’s Day, my mom buys me flats of beautiful flowers and herbs for my garden and patio. With the smell of freshly cultivated soil and spring rain wafting upward from the ground, I plant each one. That smell of pure springtime reminds me of the sweetness of my mother and also the treasure of motherhood. It is also the smell of a new season bursting forth with new life, something we all celebrate.

This year, I will toast to my mom and to my kids with a Mother’s Day cocktail that recalls this annual spring planting ritual.

Story by Star Laliberte
Photography by Dave Bryce
Styling by Keith Recker

Subscribe to TABLE Magazine‘s print edition.