Navigation
News
- Crime
- Education
- Election
- Environment
- Government
- LGBTQ+
- Politics
- Real Estate
- Sports
- Restaurant Guide
- Restaurant Reviews
- Top 100 Bars
- Top 100 Restaurants
- Celebrities
- Photos
- Theater
- Visual Art
Music
- Concert Calendar
- Concert Reviews
- Hip-Hop
- Local Music
- Nightlife
- Touring Artists
- Venues
- Cannabis
Things To Do
Best of Miami
- Vote Now: Best of 2024 Readers' Choice Poll
- Readers' Choice
- Best of Miami Party
- Classifieds
More
- About Us
- Advertise with Us
- Contact Us
- Flipbook Archive
- Newsletters
- Staff
- Support Us
- Where To Find Miami New Times In Print
Restaurant Reviews
Bill WisserFebruary 9, 20168:00AM
"); }) document.addEventListener('slideshow:ad_disappear', function(event) { // Omnomnom. console.log('#' + event.adId + " disappear") jQuery('#' + event.adId).empty(); })
Skip ad in seconds.
Skip ad in seconds.
Skip ad in seconds.
More slideshows
Miami Beach Observes Varying Degrees of Social DistancingKarli Evans59 imagesThe Bazaar by José Andrés Welcomes Back Guests as Miami Beach ReopensMichele Eve Sandberg28 imagesSOBEWFF 2021: Foodies Take a Bite Out of Burger BashMichele Eve Sandberg47 imagesSOBEWFF 2021: Grand Tasting Village Served Up Bites and Booze on the BeachMichele Eve Sandberg42 images
1 of 31
Mussels and clams
Despite the casual environs, the kitchen and bar at Beaker & Gray burst with ambition. Here,there are a few simple bright spots tucked into the mostly small-plates menu. Click here for the full review by Zachary fa*genson.
Related Articles
Related Locations
2637 N. Miami Ave., MiamiMidtown/Wynwood/Design District
305-699-2637
73articles
Additional Slideshows
Photos
On Saturday, May 22, and Sunday, May 23, South Beach Wine & Food Festival's Grand Tasting Village invited hungry crowds to taste…
By Michele Eve Sandberg
Photos
On Friday, May 21, the South Beach Wine & Food Festival's most anticipated event, Burger Bash, sizzled once again at the beachside…
By Michele Eve Sandberg
Photos
On May 27, the Bazaar by José Andrés at the SLS South Beach was once again serving dinner to guests, albeit with…
By Michele Eve Sandberg
Photos
On Tuesday, March 17, after orders from Gov. Ron DeSantis for all Florida bars and nightclubs to close from 11 p.m. to…
By Karli Evans
Photos
Goya Foods' Grant Tasting Village returned to the sands of Miami Beach during the South Beach Wine & Food Festival. This year,…
By FujifilmGirl
Photos
South Beach Wine & Food Festival's beloved Burger Bash returned on Friday, February 21, with food personality and talk-show hostRachael Rayonce again…
By FujifilmGirl
More »
`); sm.containerWidth = options.containerWidth || 640; sm.containerHeight = options.containerHeight || 480; sm.containerWidthSmall = options.containerWidthSmall || 300; sm.containerHeightSmall = options.containerHeightSmall || 300; // sm.slideModalStylesText = `#${sm.containerId} { position: fixed; width: ${sm.containerWidth}px; height: ${sm.containerHeight}px; max-width: 100%; background-color: #FFF; box-sizing: border-box; transition-timing-function: cubic-bezier(.65,.05,.36,1); transition-duration: 750ms;}#${sm.containerId}.origin-top { left: calc(50% - ${sm.containerWidth/2}px); top: -${sm.containerHeight}px; transition-property: top;}#${sm.containerId}.origin-bottom { left: calc(50% - ${sm.containerWidth/2}px); bottom: -${sm.containerHeight}px; transition-property: bottom;}#${sm.containerId}.origin-left { top: calc(50% - ${sm.containerHeight/2}px); left: -${sm.containerWidth}px; transition-property: left;}#${sm.containerId}.origin-right { top: calc(50% - ${sm.containerHeight/2}px); right: -${sm.containerWidth}px; transition-property: right;}#${sm.containerId}.origin-top.slide-to-edge { top: 0; }#${sm.containerId}.origin-bottom.slide-to-edge { bottom: 0; }#${sm.containerId}.origin-left.slide-to-edge { left: 0; }#${sm.containerId}.origin-right.slide-to-edge { right: 0; }#${sm.containerId}.origin-top.slide-to-center { top: calc(50% - ${sm.containerHeight/2}px); }#${sm.containerId}.origin-bottom.slide-to-center { bottom: calc(50% - ${sm.containerHeight/2}px); }#${sm.containerId}.origin-left.slide-to-center { left: calc(50% - ${sm.containerWidth/2}px); }#${sm.containerId}.origin-right.slide-to-center { right: calc(50% - ${sm.containerWidth/2}px); }@media (max-width:${sm.containerWidth - 1}px) or (max-height:${sm.containerHeight - 1}px) { #${sm.containerId} { width: ${sm.containerWidthSmall}px; height: ${sm.containerHeightSmall}px; } #${sm.containerId}.origin-top { left: calc(50% - ${sm.containerWidthSmall/2}px); top: -${sm.containerHeightSmall}px; transition-property: top; } #${sm.containerId}.origin-bottom { left: calc(50% - ${sm.containerWidthSmall/2}px); bottom: -${sm.containerHeightSmall}px; transition-property: bottom; } #${sm.containerId}.origin-left { top: calc(50% - ${sm.containerHeightSmall/2}px); left: -${sm.containerWidthSmall}px; transition-property: left; } #${sm.containerId}.origin-right { top: calc(50% - ${sm.containerHeightSmall/2}px); right: -${sm.containerWidthSmall}px; transition-property: right; } #${sm.containerId}.origin-top.slide-to-center { top: calc(50% - ${sm.containerHeightSmall/2}px); } #${sm.containerId}.origin-bottom.slide-to-center { bottom: calc(50% - ${sm.containerHeightSmall/2}px); } #${sm.containerId}.origin-left.slide-to-center { left: calc(50% - ${sm.containerWidthSmall/2}px); } #${sm.containerId}.origin-right.slide-to-center { right: calc(50% - ${sm.containerWidthSmall/2}px); }} `; // sm.getLocalStorageVersion = function () { return parseInt(window.localStorage.getItem(sm.localStorageVersionKey)) || sm.version; } sm.getLastDismissedTime = function () { return parseInt(window.localStorage.getItem(sm.localStorageDismissedKey)) || 0; } sm.getLastDismissedForeverTime = function () { return parseInt(window.localStorage.getItem(sm.localStorageDismissedForeverKey)) || 0; } sm.getLastDeniedTime = function () { return parseInt(window.localStorage.getItem(sm.localStorageDeniedKey)) || 0; } sm.resetSlideModalLocalStorage = function () { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.removeItem(sm.localStorageDismissedKey); window.localStorage.removeItem(sm.localStorageDismissedForeverKey); window.localStorage.removeItem(sm.localStorageDeniedKey); } sm.showSlideModal = function () { sm.container.addClass(`slide-to-${sm.slideTo}`); } sm.hideSlideModal = function () { sm.container.removeClass(`slide-to-${sm.slideTo}`); } sm.dismissSlideModal = function () { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.setItem(sm.localStorageDismissedKey, new Date().getTime()); console.log(`SlideModal dismissed.`); sm.hideSlideModal(); } sm.dismissForeverSlideModal = function () { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.setItem(sm.localStorageDismissedForeverKey, new Date().getTime()); console.log(`SlideModal dismissed.`); sm.hideSlideModal(); } sm.denySlideModal = function (e) { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.setItem(sm.localStorageDeniedKey, new Date().getTime()); console.log(`SlideModal denied.`); sm.hideSlideModal(); } injectSlideModalStyles = function () { console.log(`SlideModal styles added.`); const slideModalStyleContainer = jQuery(`
`); slideModalStyleContainer.text(sm.slideModalStylesText); jQuery('head').append(slideModalStyleContainer); } injectSlideModalBlock = function () { console.log(`SlideModal element added.`); sm.container = jQuery(`
`); sm.container .attr(`id`, sm.containerId) .attr(`fdn-slide-modal`,``) .addClass(`origin-${sm.slideOrigin}`) .html(sm.htmlBlock) jQuery('body').append(sm.container); } setupSlideModalBehavior = function () { console.log(`SlideModal behavior setup.`); jQuery(document).on(`keydown`, (e) => { if (e.key === `Escape` && sm.escClose === true) { sm.hideSlideModal(); } }); jQuery(document).on(`click`, (e) => { const myTarget = jQuery(e.target); const notSlideModal = myTarget.not(`#${sm.containerId} *`).length > 0; const isDismissTarget = myTarget.closest(sm.dismissSelector).length > 0; const isDismissForeverTarget = myTarget.closest(sm.dismissForeverSelector).length > 0; const isDenyTarget = myTarget.closest(sm.deniedSelector).length > 0; window.console.log(`notSlideModal: ${notSlideModal}; isDismissTarget: ${isDismissTarget}; isDenyTarget: ${isDenyTarget}; sm.bgClose: ${sm.bgClose}`); if (notSlideModal && sm.bgClose === true) sm.hideSlideModal(); if (isDismissTarget || isDismissForeverTarget || isDenyTarget) e.preventDefault(); if (isDismissTarget) sm.dismissSlideModal(); if (isDismissForeverTarget) sm.dismissForeverSlideModal(); if (isDenyTarget) sm.denySlideModal(); }); } if (sm.getLocalStorageVersion() < sm.version) { sm.resetSlideModalLocalStorage(); } const notDismissed = new Date().getTime() > sm.getLastDismissedTime() + sm.delayAfterDismissed; const notDismissedForever = new Date().getTime() > sm.getLastDismissedForeverTime() + sm.delayAfterDismissedForever; const notDenied = new Date().getTime() > sm.getLastDeniedTime() + sm.delayAfterDenied; jQuery(() => { if (notDismissed && notDenied && notDismissedForever) { injectSlideModalStyles(); injectSlideModalBlock(); setupSlideModalBehavior(); const contentReady = new Event(sm.contentReadyEventId); console.log(`Content ready fired. EventId: ${sm.contentReadyEventId}`); window.dispatchEvent(contentReady); // 100 milliseconds added to ensure setup is complete before show setTimeout(sm.showSlideModal, sm.delayBeforeShow + 100); } }); Foundation.SlideModal[slideModalId] = sm;}
Stay in the Know
Sign up for the latest news, free stuff and more!