Home Blog Page 220

4 Refreshing Michelada Recipes Perfect for Summer

0

Refreshing michelada recipes are a great way to liven up your summer parties, and our friends at Round Corner Cantina are sharing 4 michelada recipes with next-level flavors that will keep you sipping all summer long. The Mexican beer cocktail, typically made with lime and assorted juices, is also a great addition to your favorite Tuesday night treat: tacos. Take a look at this line-up. Which michelada will you try first?

Try These Michelada Recipes Perfect for Summer

4 refreshing michelada recipes

Look at these four gorgeous, enticing Micheladas…which one will you choose to sip on this summer?

Rosa

a clear glass with a white background with a pink Mexican Rosa Michelada cocktail being topped off with a can of hard seltzer.

Guava pureé and hibiscus simple syrup combined with ice cold beer deliver a subtly sweet, tropical yet refined flavor in this Rosa Michelada.

Clara Michelada

a tall glass with beer and lime called a Clara Michelada with a bottle of beer in the background

The Clara Michelada is a refreshing Mexican beer and lime drink using one of Mexico’s most classic beers, Modelo.

Verde Michelada

a yellow and green cocktail made of verde and beer in a clear glass garnished with jalapeño and cilantro with a white background

Give your beer a spicy, savory upgrade with this Verde Michelada recipe using Green Bloody Mix.

Rojo Michelada

a look in photo of a tall glass with Bloody Mary mix and beer, called a rogue michelada, with a white back ground and lime wedges

If you’re a fan of the Bloody Mary and a lover of an ice cold beer, this classic Rojo Michelada with tomato sauce and jalapeño is for you. Makes a perfect “hair of the dog” hangover cure!

Story by Star Laliberte
Recipes by Esquina Cantina
Styling by Anna Franklin
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Verde Michelada

0
a yellow and green cocktail made of verde and beer in a clear glass garnished with jalapeño and cilantro with a white background

Give your beer a spicy upgrade with this Verde Michelada Recipe from our friends at Pittsburgh’s Esquina Cantina. The appeal of a beer-based michelada cocktail has a lot to do with refreshing hydration, next level flavors, and a cool drink you can linger over with family and friends.

Speaking of next level flavor: Esquina’s homemade Green Bloody Mix delivers the perfect amount of heat on the back end of this Verde Michelada. The folks at Round Corner were good enough to share it with TABLE Readers. See below.

The History of the Michelada

The drink’s name comes from the phrase “mi chela helada,” which means “my cold beer.” Beer is one of the most refreshing drinks out there on a hot day, and the michelada ups that with its addition of citrus. The most popular story says that Michel Ésper, a member of the Club Deportivo Potosino sports club, invented the michelada after a tennis match. This may be apocrypha, but a cold beer with lime after a tennis match does sound delightful. 
 
 
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 yellow and green cocktail made of verde and beer in a clear glass garnished with jalapeño and cilantro with a white background

Verde Michelada


  • Author: Esquina Cantina

Description

A refreshing green salsa Michelada. 


Ingredients

Scale

For the michelada:

  • 2oz Verde Bloody mix (recipe below)
  • Dos Equis Lager
  • Lime wedge, cilantro spring, and jalapeño slice for garnish

For the Green Bloody mix:

  • 4 tomatillos, skins removed, halved
  • 1 jalapeńo pepper, seeded, halved
  • 1 garlic clove
  • 6 sprigs cilantro, stems removed
  • 3 oz lime
  • 1.5 oz water
  • 1.5 tbsp kosher salt


Instructions

For the michelada:

  1. Fill glass halfway with ice.
  2. Add 2oz verde mix.
  3. Top with Dos Equis Lager or beer of choice, or n/a beer.
  4. Garnish with lime wedge, cilantro sprig, and jalapeño slice.

For the green bloody mix: 

  1. Blend all ingredients until smooth.

Recipe by Esquina Cantina
Styling by Anna Franklin
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Clara Michelada

0
a tall glass with beer and lime with a bottle of beer in the background

The original Michelada recipe, often called a Chelada, is simply a Mexican beer and lime drink. Our friends at Esquina Cantina are sharing their version of the classic cocktail, the Clara Michelada recipe, with TABLE readers.

About Modelo, The Base for the Clara Michelada 

Modelo is one of the most popular summer beers out there. The curvature of its bottle is the perfect shape for holding in one hand while relaxing poolside or over an outdoor table with friends. In our Michelada recipes, we experimented with using different beer brands as the base, all of which have their own merits, but in our opinion, Modelo is one of the best. Its story beings in 1925, when brewers set out to create a “model beer” in Tacuba, Mexico. They looked at German methods, but didn’t want to create as dark of a beer, as it might clash with the flavors of Mexican food. Thus, the Modelo we know and love was born.

 

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 tall glass with beer and lime with a bottle of beer in the background

Clara Michelada


  • Author: Esquina Cantina

Description

A Modelo-based summer beverage. 


Ingredients

  • .75 oz fresh squeezed lime juice
  • Modelo beer, n/a beer or seltzer
  • Salt and lime wedge for garnish


Instructions

  1. Run a lime wedge along the rim of a glass.
  2. Dip the rim of the glass in salt.
  3. Fill the glass halfway with ice.
  4. Add lime juice.
  5. Top with beer, n/a beer or seltzer
  6. Garnish with a lime wedge

Recipe by Esquina Cantina
Styling by Anna Franklin
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Rosa Michelada

0
a clear glass with a white background with a pink Mexican Michelada cocktail being topped off with a can of hard seltzer

You’ll find the fruity, floral twist of this Rosa Michelada, Mexican beer based cocktail to be a true summer sipper. Guava pureé and hibiscus simple syrup combined with ice cold beer deliver a subtly sweet flavor in this recipe from our friends at Esquina Cantina.

What Kind of Fruit Should You Use in Your Michelada?

There are many different takes on Michelada seasoning, including clamato sauce, tomato sauce, and even Worcestershire sauce. The spices all add a savory, umami element to the Michelada and go well with the base of beer. However, this Michelada uses a fruit base. We’ve used guava purée, because guava’s zestiness will add a kick and not get overwhelmed in the beer’s flavor profile. Guava is optimal for refreshing, summer drinks like this one. Also, while it might be a little labor-intensive to find the hibiscus flowers, it’s also well worth it to take the extra effort and make the hibiscus syrup in this Rosa Michelada recipe for an extra touch of tropical flair. 

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 clear glass with a white background with a pink Mexican Michelada cocktail being topped off with a can of hard seltzer

Rosa Michelada


  • Author: Esquina Cantina

Description

A refreshingly fruity summer drink.


Ingredients

Scale

For the michelada:

  • 2 oz guava pureé
  • 1 oz hibiscus syrup (recipe below)
  • 5 oz fresh squeezed lemon juice
  • Beer of your choice
  • Lemon wheel and tamarind candy for garnish

For the hibiscus simple syrup:

  • 5 cup dried hibiscus flowers
  • 1 cup water
  • 1.5 cups sugar


Instructions

For the michelada:

  1. Fill a glass halfway with ice.
  2. Add guava pureé, hibiscus syrup, and lemon juice to the glass.
  3. Top with your favorite ice cold Mexican beer, n/a beer, seltzer or Topo Chico Strawberry Guava Hard Seltzer.
  4. Garnish with lemon Wheel and optional tamarind candy.

For the hibiscus syrup: 

  1. Combine all ingredients into a saucepan and bring to a boil.
  2. Remove from heat and let cool
  3. Once the syrup cools to room temperature, strain and store in a glass jar in the refrigerator.

Recipe by Esquina Cantina
Styling by Anna Franklin
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Rojo Michelada Recipe

0
a look in photo of a tall glass with Bloody Mary mix and beer with a white back ground and lime wedges

Referred to as a Mexican Bloody Mary, this Rojo Michelada cocktail uses Mexican beer instead of vodka, but still mixes it with the classic Bloody Mary . Our friends at Esquina Cantina are sharing their versions of the cocktail with our readers, whether you’re enjoying it for happy hour or as hair of the dog. 

How to Make Your Own Bloody Mary Mix 

The mix you use for a Bloody Mary is important. It’s one of those drinks that’s memorable if it’s done well and equally memorable if it’s done poorly. We hope the Rojo Michelada can be the former and not the latter, and you can make your own sauce if you want to control the proportions. Luckily, making your own Bloody Mary mix is simple. It’s tomato juice, horseradish, lemon juice, Worcestershire sauce, two kinds of salt, black pepper and hot sauce. Combine them together in a mixing bowl, and then decant into a pitcher or bottle before you use the mixture.

 

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 look in photo of a tall glass with Bloody Mary mix and beer with a white back ground and lime wedges

Rojo Michelada Recipe


  • Author: Esquina Cantina

Description

The original Michelada recipe, with hot sauce. 


Ingredients

Scale
  • 3oz Bloody Mary Mix
  • .75 oz fresh squeezed lime juice
  • Modelo beer, n/a beer or seltzer
  • Lime wedge and jalapeño slice for garnish


Instructions

  1. Fill the glass halfway with ice.
  2. Add Bloody Mary mix.
  3. Top with beer, n/a beer or seltzer
  4. Garnish with a lime wedge and jalapeño slice.

Recipe by Esquina Cantina
Styling by Anna Franklin
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

The Best Potato Salad Ever

0
Potato salad, garnished with green herbs, sits in a casserole dish with blue, orange, and yellow flowers on it.

I know what every Black person is thinking right now: who does she think she is? She has the best potato salad ever?

I get it. We, as Black people, take potato salad very seriously. That’s why we side-eye Becky with her raisins. This recipe ain’t your grandmother’s or your favorite auntie’s version. No disrespect, none at all, but this potato salad gives you life in a way that deviates from the traditional heavy mayonnaise, mustard, and sweet relish styles. It’s not a summer potato salad nor some stuck-up French-style either. This potato salad is the code switch that never feels spirit-breaking. It’s the dish that would sell out instantly at my supper club in Oakland. Inevitably, it became the treasured birthday gift or the über-favored contribution to Sunday gatherings with friends.

What Makes This the Best Potato Salad Ever?

The Yukon gold potatoes introduce a rich texture, while the aioli is a more tasty and velvety expression of a creaminess than mayonnaise would render. The tanginess of the yogurt paired with the vinegar gives it the umami that makes it so addictive. The delicate poaching of the eggs brings a sophistication and lends reverence to the outstanding flavor of farm-fresh eggs. My people thought I was crazy to contribute this recipe to this project. They felt that this potato salad is so unique and honestly so ridiculously good that it should rest solely between the pages of my own cookbook. So, let this recipe be my gift to you, family: something for us, a new expression of what Black food is and can be. Bon appétit!

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

The Best Potato Salad served in a steel food container cut from the sides

The Best Potato Salad Ever


5 Stars 4 Stars 3 Stars 2 Stars 1 Star


  • Author:
    Monifa Dayo

Description

This potato salad deserves the superlative.


Ingredients


Scale

  • 4 shallots
  • 1⁄2 cup apple cider vinegar
  • 1 ½ tbsp kosher salt
  • 4 lb medium Yukon gold potatoes, quartered
  • EVOO for drizzling
  • Freshly ground black pepper to taste
  • 1 pint full-fat yogurt (Straus is best)
  • 1 cup aioli (classic recipe will do, or store-bought)
  • 1 cup capers
  • 1 bunch parsley leaves, coarsely chopped
  • 1 bunch cilantro leaves, coarsely chopped
  • 8 farm eggs
  • Fleur de sel to taste
  • 1 bunch tarragon, leaves picked but not chopped, for garnish
  • 1 bunch dill, leaves picked but not chopped, for garnish
  • Fresh coriander seeds for sprinkling (optional)


Instructions

  1. Finely dice the shallots, place in a small bowl and cover with the vinegar and 1½ tablespoons salt.
  2. Place the potatoes in a pot filled with super-salty water. Boil gently until the water is cloudy and the potatoes are fork-tender. Strain the potatoes in a colander, drain off the water, then let cool on a sheet pan.
  3. When the potatoes are cool enough to touch, peel and discard the skins. Once peeled, use your hands to break the potatoes into smaller pieces.
  4. Drain the vinegar from the shallots over the potatoes and drizzle generously with the oil. Add the drained shallots. Gently mix with your hands. sprinkle heavily with the pepper and add more oil. Spoon large dollops of yogurt and aioli in each corner. Add the capers. Sprinkle the parsley and cilantro on top.
  5. Gently mix with your hands or a large spoon, being careful to leave each element intact and distinct.
  6. In the meantime, bring water to boil in a small Dutch oven. Just before the water boils, crack a few eggs in the water, making sure to ever so gently swirl the water. Poach the eggs until the yolks are set but soft, keeping the water below a simmer. Retrieve the eggs from the water and lightly dry on a towel. Season each egg with fleur de sel and oil. Let cool.
  7. Place the eggs atop the potato salad. Using a spoon, cut a few into halves and some into quarters. Ever so gently, with your hands, incorporate the eggs into the salad. You want to show off the yokes, but you also want some of the eggs nestled in the potatoes.
  8. Spoon the salad onto a serving dish, drizzle with additional oil, and season with more black pepper and the fleur de sel. Garnish with the tarragon and dill. If in season, sprinkle fresh coriander seeds on top as well. Enjoy your potato salad!

Notes

Use Straus’s maple-flavored yogurt if you are a sweet potato salad kind of person. Add some butter lettuce hearts (keep them whole) in with the chopped herbs. This aids in stretching the salad and reduces the guilt of eating copious amounts of potato and dairy!

window.trCommon={“minRating”:6,”ajaxurl”:”https://www.tablemagazine.com/wp-admin/admin-ajax.php”,”ratingNonce”:”e450d9aeb6″,”postId”:4056};
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 );
});

Story and Recipe by Monifa Dayo from Black Food: Stories, Art, and Recipes from Across the African Diaspora

Subscribe to TABLE Magazine’s print edition.

Grilled Peach Smash Cocktail

0
Deliciously refreshing grilled peach smash cocktail with fresh mint and a hint of citrus, served in a stylish glass.

We met up with Cecil Usher and Cat Cannon, mixologists from the former East End bar, St. Clair Social. Together, the two mix up a Grilled Peach Smash to heat up your summer cocktail menu.

Tips for Grilling Peaches?

The key to success when grilling peaches begins with what peaches you choose. You want to choose ripe ones that are still a bit firm. Overly soft peaches will turn to mush over the heat. After you halve and pit them, brush the cut sides exposing the flesh lightly olive oil, butter, or grapeseed oil to stop the peaches from sticking. Preheat your grill to medium-high heat. You want to allow enough time for preheating so that when you place your peaches down they’re already on a high-heat. Place the peaches, cut-side down, directly on the grates, without overcrowding the surface. Grill them for 3-5 minutes per side or until the grill marks are to your liking.

Recipe by Cecil Usher and Cat Cannon

Subscribe to TABLE Magazine‘s print edition.

Fennel Orange Salad

0
Fennel Orange Salad served on a plate, which is placed on a blue surface

Fennel Orange Salad with whipped ricotta and olive croutons won our hearts with its seductive combination of textures and wholesome flavors. This bright, elegant salad is the perfect dish to lighten up any meal. It starts by pairing the crisp, anise-like snap of fennel with the zesty sweetness of orange citrus. Then, the creamy whipped ricotta adds a smooth, cooling layer. On the other hand, the savory, crunchy olive croutons provide an irresistible textural contrast. It’s a simple, sophisticated dish that proves healthy eating can be truly decadent.

Recipe by Jennifer Girasole of Girasole
Styling by Keith Recker 
Photography by Laura Petrilla

Subscribe to TABLE Magazine‘s print edition.

Cucumber Kimchi

0
Cucumber Kimchi in a large bowl with two sticks on top of it. On the side, lies a drink and a small bowl of sliced cucumbers
Crisp and tangy Cucumber Kimchi, a flavorful Korean side dish with a spicy kick.

Kimchi is an umami bomb of fermented napa cabbage, but almost anything can be kimchied. Beans, radishes, and cucumbers are popular choices to pair with the side’s signature vinegar, garlic, and spice-filled marinade.

This anything-goes mentality can be applied when serving it, as well: kimchi tastes great on just about everything. Set yourself up for a blast of tangy, spicy flavor by plating it with scrambled eggs, burritos, in pasta sauces, or on pizza. Our friends at Bae Bae’s Kitchen add a cucumber version to their Korean-style grain bowls: start with rice and meat (they use long-marinated, thinly sliced bulgogi), add a few mixed greens, your favorite kimchi, and you’re on your way to deliciousness.

Cucumber Kimchi Recipe

Makes approximately 2 pounds

INGREDIENTS

2 lb cucumbers (Persian cucumbers are best, though English seedless can be used, too)
2 tbsp course sea salt or any course salt
1/2 cup rice vinegar
1/2 cup apple cider vinegar
1/4 cup white vinegar
2 tbsp cup soy sauce
1/4 cup sesame oil
2 tbsp gochujang (Korean pepper paste)
1 cup sugar
1/4 cup Korean pepper powder
1/4 cup roasted sesame seeds

DIRECTIONS

First, cut the cucumber ends and rinse. Slice into wheels or spears and toss with sea salt. Be careful not to bruise or smash them. Put aside to let the water drain from cucumbers. Combine the remaining ingredients to make the marinade. Drain cucumbers and shake off excess salt. Mix in your marinade. Let it soak for at least 30 minutes in the refrigerator before enjoying.

Story by Maggie Weaver / Recipe by Bae Bae’s Kitchen / Photography by Dave Bryce / Styling by Keith Recker 

Subscribe to TABLE Magazine’s print edition.

Pittsburgh Happenings: June 27-July 4

0
Pittsburgh Happenings, Fourth of July Celebrations
Photo by Jingda Chen

May the fourth be with you!… Does that joke work for the Fourth of July? No? Well, we’re still wishing you a restful and fun holiday week and weekend filled with family and good times. But if you need a break from family gatherings, check out the following Pittsburgh events.

Photo courtesy of The Westmoreland Museum of American

Explore Tour: Block Party
The Westmoreland Museum of American Art, June 28
New to The Westmoreland is Block Party, an exhibition honoring the intersection of community and celebration through the lens of innovation of the joyous urban events. The exhibition opened on June 25 and is running until September; however, on Wednesday, Chief Curator Jeremiah William McCarthy and Terra Foundation for American Art Curatorial Fellow Danny Volk invite you to experience the celebration on a deeper level with them as they walk you through the artwork.

Photo by Austin Nelson

My Morning Jacket
Stage AE, June 28
After a multi-year hiatus, modern classic-rock band My Morning Jacket is touring once again “with renewed energy and appreciation for the dream of playing live music,” according to Chicago Sun Times. An optimal time to see Jim James and his crew if you have yet to encounter their concert magic.

Photo courtesy of Carnegie Science Center

Laser Taylor Swift
Carnegie Science Center, Running until August
If you didn’t get enough Taylor Swift during the global pop star’s two-day Eras tour stop in Pittsburgh, head to the Buhl Planetarium for a dazzling display of laser lights set to Swift’s biggest hits.

Photo by Linda Koolish

Toi Derricotte
Museum Lab, June 30
Part of the CreativeMornings Reverie series, renowned poet and writer Toi Derricotte — winner of the PEN/Voelcker Award for Poetry, the Paterson Poetry Prize, and the Anisfield-Wolf Book Award for Nonfiction — visits Pittsburgh for a discussion on the art of wordplay and creativity and its power of transformation.

Photo by Jingda Chen

Independence Day Celebration
Point State Park, July 4
Lights, music, fireworks! The sounds of explosions can only mean one thing: a patriotic celebration in America. Happy Fourth!