### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/chefchaouen/cafe-clock-chefchaouen/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### Restaurant Navigation and Actions Source: https://allmenus.ma/restaurant/casablanca/ofamous/ Provides examples of common navigation links and user actions found on restaurant pages, including calling the restaurant, getting directions, adding to favorites, sharing, and claiming a listing. ```html * [Appeler O’Famous](tel:+212522279330) * [Profile](#) * [Itinéraire](https://maps.google.com/maps?daddr=R%C3%A9sidence+universitaire%2C+236+Boulevard+Ziraoui) * [Téléphone](tel:+212522279330) * [Ajouter aux Favoris](#) * [Partager](#) * [Revendiquer](https://allmenus.ma/claim-listing/?listing_id=2403) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/beni-mellal/mcdonalds-beni-mellal/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### Restaurant Listing Structure Example Source: https://allmenus.ma/restaurant/casablanca/chef-anass/ This snippet demonstrates the HTML structure for displaying a restaurant's details, including its name, description, cuisine types, services, and contact information. It also shows navigation links for actions like calling or getting directions. ```html Chef Anass ========== * [Appeler Chef Anass](tel:0616-258582) * [Profile](#) * prev * next * [Itinéraire](https://maps.google.com/maps?daddr=77+Rue+Ishak%2C+El+Marouni%2C+ain+sbaa+Casablanca) * [Téléphone](tel:0616-258582) * [Ajouter aux Favoris](#) * [Partager](#) * [Revendiquer](https://allmenus.ma/claim-listing/?listing_id=4039) * prev * next ##### Description Chef Anass est un petit restaurant de Grillades, Tacos, Pâtes qui propose des plats sur place ou à la livraison ##### Images Menu ![Menu Chef Anass](https://allmenus.ma/wp-content/uploads/2024/07/chef-anass-300x194.jpg "Menu Chef Anass") ##### Cuisine * [Viande](https://allmenus.ma/cuisine/viande/) * [Grillades](https://allmenus.ma/cuisine/grillades/) * [Tacos](https://allmenus.ma/cuisine/tacos/) * [Pâtes](https://allmenus.ma/cuisine/pates/) ##### Services * [Livraison](https://allmenus.ma/tag/livraison/) * [Sur place](https://allmenus.ma/tag/sur-place/) * [À emporter](https://allmenus.ma/tag/a-emporter/) ##### Region * [Casablanca](https://allmenus.ma/region/casablanca/) ##### Adresse * 77 Rue Ishak, El Marouni, ain sbaa Casablanca [Obtenir l'itinéraire](https://maps.google.com/maps?daddr=77+Rue+Ishak%2C+El+Marouni%2C+ain+sbaa+Casablanca) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/chefchaouen/tissemlal-casa-hassan/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### Restaurant Data Structure Example Source: https://allmenus.ma/restaurant/mohammedia/sushikai/ This section demonstrates the typical data structure for a restaurant listing, including its name, contact information, description, cuisine types, services, region, and address. It also includes links for navigation and actions like calling or getting directions. ```html Sushikai ======== * [Appeler Sushikai](tel:0523300306) * [Profile](#) * prev * next * [Itinéraire](https://maps.google.com/maps?daddr=Parc+Mohammedia) * [Téléphone](tel:0523300306) * [Ajouter aux Favoris](#) * [Partager](#) * [Revendiquer](https://allmenus.ma/claim-listing/?listing_id=3097) * prev * next ##### Description Sushikai est un petit restaurant de Asiatique, Sushis qui propose des plats sur place ou à la livraison ##### Images Menu ![Menu Sushikai](https://allmenus.ma/wp-content/uploads/2024/07/sushikai-3-300x297.jpg "Menu Sushikai") ![Menu Sushikai](https://allmenus.ma/wp-content/uploads/2024/07/sushikai-2-300x297.jpg "Menu Sushikai") ![Menu Sushikai](https://allmenus.ma/wp-content/uploads/2024/07/sushikai-300x297.jpg "Menu Sushikai") ##### Cuisine * [Asiatique](https://allmenus.ma/cuisine/asiatique/) * [Sushis](https://allmenus.ma/cuisine/sushis/) ##### Services * [Sur place](https://allmenus.ma/tag/sur-place/) ##### Region * [Mohammedia](https://allmenus.ma/region/mohammedia/) ##### Adresse * Parc Mohammedia [Obtenir l'itinéraire](https://maps.google.com/maps?daddr=Parc+Mohammedia) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/rabat/venezia-ice-marina-bouregreg/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### Restaurant Navigation and Action Links Source: https://allmenus.ma/restaurant/tanger/restaurant-antartique-tanger/ Provides examples of common navigation and action links found on restaurant pages. These include links to cuisine categories, user account actions (login, register, add listing), and specific restaurant interactions like calling, getting directions, sharing, and claiming. ```html * [Pizza](https://allmenus.ma/cuisine/pizza/) * [Burger](https://allmenus.ma/cuisine/burger/) * [Tacos](https://allmenus.ma/cuisine/tacos/) * [Café](https://allmenus.ma/cuisine/cafe/) * [Petit-déjeuner](https://allmenus.ma/cuisine/petit-dejeuner/) * [Sandwichs](https://allmenus.ma/cuisine/sandwichs/) * [Fast-food](https://allmenus.ma/cuisine/fast-food/) * [Pâtes](https://allmenus.ma/cuisine/pates/) * [Sushis](https://allmenus.ma/cuisine/sushis/) * [Salades](https://allmenus.ma/cuisine/salades/) * [Asiatique](https://allmenus.ma/cuisine/asiatique/) * [Marocain](https://allmenus.ma/cuisine/marocain/) * [Shawarma](https://allmenus.ma/cuisine/shawarma/) * [Poisson](https://allmenus.ma/cuisine/poisson/) * [Tapas](https://allmenus.ma/cuisine/tapas/) [Ajouter un établissement](https://allmenus.ma/add-listing/) [Se connecter](https://allmenus.ma/my-account/) ou [Créer un compte](https://allmenus.ma/my-account/?register) [Ajouter un établissement](https://allmenus.ma/add-listing/) * [Appeler Restaurant antartique tanger](tel:0808559615) * [Profile](#) * [Itinéraire](https://maps.google.com/maps?daddr=109+Avenue+ben+Abi+Zaraa+Braness) * [Téléphone](tel:0808559615) * [Ajouter aux Favoris](#) * [Partager](#) * [Revendiquer](https://allmenus.ma/claim-listing/?listing_id=3371) [Obtenir l'itinéraire](https://maps.google.com/maps?daddr=109+Avenue+ben+Abi+Zaraa+Braness) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/mohammedia/little-mamma-mohammedia/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### JavaScript Configuration Data Example Source: https://allmenus.ma/restaurant/rabat/starbucks-agdal-ryad/ An example of JavaScript configuration data, likely used for tracking or feature flagging. It defines a variable `wpa_field_info` with properties `wpa_field_name` and `wpa_field_value`, and `wpa_add_test`. ```javascript /* */ ``` -------------------------------- ### Related Restaurant Listing Example Source: https://allmenus.ma/restaurant/casablanca/tacos-de-lyon-oulfa/ An example of a related restaurant listing, 'L’Atelier Burger Anfa', including its description and contact information, demonstrating how other establishments are presented. ```html [L’Atelier Burger Anfa] ###### L’Atelier Burger Casablanca est une franchise du restaurant de Burgers fondé en 2016 à Rabat. On y propose un… * 0666-905965 * 7 Rue Franklin ](https://allmenus.ma/restaurant/casablanca/latelier-burger-anfa/) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/rabat/kool-smoothie-arribat-center/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### MutationObserver Setup (Partial) Source: https://allmenus.ma/restaurant/marrakech/palooza-land/ This snippet appears to be a partial setup for a MutationObserver, intended to observe changes in the DOM. It's incomplete and its full functionality cannot be determined without the surrounding code. ```javascript r;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]); ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/tanger/restaurant-antartique-tanger/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/marrakech/mozaikart-coffee-nbrunch/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### MutationObserver Setup Source: https://allmenus.ma/restaurant/marrakech/le-stah/ Initializes a MutationObserver to observe DOM changes. It attaches observers to elements and handles potential errors during observation. ```javascript function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n) ``` -------------------------------- ### MutationObserver Setup Source: https://allmenus.ma/restaurant/casablanca/salmon-sushi/ Initializes a MutationObserver to observe DOM changes. It attaches observers to elements and handles potential errors during observation. ```javascript function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/casablanca/tacos-de-lyon-el-qods/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### PhotoSwipe and Gallery Grid Styling Source: https://allmenus.ma/restaurant/marrakech/allo-nem/ Provides styling for the PhotoSwipe (pswp) UI elements, including buttons, captions, and preloader, as well as styles for a responsive gallery grid layout with hover effects. ```css llout:none;}.pswp__bg{will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1);}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden;}.pswp__item{right:0;bottom:0;overflow:hidden;}.pswp__img,.pswp__item{position:absolute;left:0;top:0;}@media only screen and (min-width:993px){.pswp__bg{background:rgba(29,29,31,.95) !important;}}.pswp__button{width:44px;height:44px;position:relative;background:none;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:right;opacity:.75;transition:opacity .2s;box-shadow:none;}.pswp__button:focus,.pswp__button:hover{opacity:1;}.pswp__button:active{outline:none;opacity:.9;}.pswp__button::-moz-focus-inner{padding:0;border:0;}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:var(--wpr-bg-4bb59f71-0b7b-4c8f-9585-6d5d6397815c) 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px;}.pswp__button--close{background-position:0 -44px;}.pswp__button--share{background-position:-44px -44px;}.pswp__button--fs{display:none;}.pswp__button--zoom{display:none;background-position:-88px 0;}.pswp__button--arrow--left,.pswp__button--arrow--right{background:none;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute;}.pswp__button--arrow--left{left:0;}.pswp__button--arrow--right{right:0;}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";top:35px;background-color:rgba(0,0,0,.3);height:30px;width:32px;position:absolute;}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px;}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px;}.pswp__counter,.pswp__share-modal{-webkit-user-select:none;-ms-user-select:none;user-select:none;}.pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:1600;opacity:0;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity;}.pswp__share-modal--hidden{display:none;}.pswp__share-tooltip{z-index:1620;position:absolute;background:#fff;top:56px;border-radius:2px;display:block;width:auto;right:44px;box-shadow:0 2px 5px rgba(0,0,0,.25);transform:translateY(6px);transition:transform .25s;-webkit-backface-visibility:hidden;will-change:transform;}.pswp__share-tooltip a{display:block;padding:8px 12px;font-size:14px;line-height:18px;}.pswp__share-tooltip a,.pswp__share-tooltip a:hover{color:#000;text-decoration:none;}.pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0;}.pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px;}.pswp__counter{position:absolute;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px;}.pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px;}.pswp__caption__center{text-align:center;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc;}.pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;will-change:opacity;direction:ltr;}@media screen and (max-width:1024px){.pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right;}}@keyframes clockwise{0%{transform:rotate(0deg);}to{transform:rotate(1turn);}}@keyframes donut-rotate{0%{transform:rotate(0);}50%{transform:rotate(-140deg);}to{transform:rotate(0);}}.pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:1550;}.pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%;}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{-webkit-backface-visibility:hidden;will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1);}.pswp__caption,.pswp__top-bar{background-color:rgba(0,0,0,.5);}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001;}.gallery-grid-block .gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:10px;}.gallery-grid-block .gallery-grid a{padding-bottom:75%;overflow:hidden;position:relative;background:#242429;border-radius:5px;}.gallery-grid-block .gallery-grid a i{width:100%;position:absolute;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;transition:.2s ease;overflow:hidden;opacity:0;}.gallery-grid-block .gallery-grid a:hover i{opacity:1;}.gallery-grid-block .gallery-grid a:hover img{opacity:.4;transform:scale(1.1);}.gallery-grid-block .gallery-grid a img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:.2s ease;}.footer{background:#fff;padding-top:50px;border-color:transparent;}.footer-bottom .soci ``` -------------------------------- ### Restaurant Location and Navigation Source: https://allmenus.ma/restaurant/chefchaouen/cafe-sofia/ Specifies the restaurant's address and provides a link to get directions via Google Maps. ```html ##### Region * [Chefchaouen](https://allmenus.ma/region/chefchaouen/) ##### Adresse * 5P9Q+MG Chefchaouen, Maroc [Obtenir l'itinéraire](https://maps.google.com/maps?daddr=5P9Q%2BMG+Chefchaouen%2C+Maroc) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/casablanca/mcdonalds-morocco-mall/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### Related Restaurant Listings Source: https://allmenus.ma/restaurant/casablanca/le-comptoir-a-pizza/ Examples of other restaurant listings on the platform, showcasing similar data structures for name, cuisine, contact, and location. ```APIDOC RelatedRestaurantListing: name: La Donna bouskoura description: "La Dolce Vita 🇮🇹 à bouskoura 7j/7" contact: phone: "05227-81030" address: area: "Bouskoura" map_code: "F9PG+VC5 Bouskoura" cuisine: - "Italien" - "Pâtes" - "Pizza" RelatedRestaurantListing: name: Brandizzo description: "Brandizzo Fast Food à Casablanca Retrouvez ici le menu Brandizzo" contact: phone: "05223-13838" address: city: "Casablanca" street: "22 Rue Faidi Khalifa" cuisine: - "Fast-food" - "Sandwichs" ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/casablanca/dom-petiscos-casablanca/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### MutationObserver Setup Source: https://allmenus.ma/restaurant/tanger/restaurant-annajma/ Configures a MutationObserver to monitor DOM changes. It observes attributes, child list, and the subtree for a specified target element. ```javascript const r=window.MutationObserver; return function(e,t){ if(e&&1===e.nodeType) return(t=new r(t)).observe(e,{ attributes:!0, childList:!0, subtree:!0 }), t } ()(document.querySelector("body"),n) ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/casablanca/sel-poivre-casablanca/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### MutationObserver Setup Source: https://allmenus.ma/restaurant/tanger/osnap/ Configures a MutationObserver to monitor DOM changes. It observes attributes, child list, and the subtree for a specified target element. ```javascript const r=window.MutationObserver; return function(e,t){ if(e&&1===e.nodeType) return(t=new r(t)).observe(e,{ attributes:!0, childList:!0, subtree:!0 }), t } ()(document.querySelector("body"),n) ``` -------------------------------- ### MutationObserver Setup Source: https://allmenus.ma/restaurant/rabat/tapeo/ Initializes a MutationObserver to monitor DOM changes. It observes attributes, child list, and subtree for the specified target element. ```javascript window.MutationObserver; return function(e,t){ if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t } ``` -------------------------------- ### CSS PhotoSwipe (pswp) and Loader Styling Source: https://allmenus.ma/restaurant/casablanca/le-medina-moroccan-taste/ Includes styles for PhotoSwipe gallery visibility and custom loader backgrounds for various contexts. ```css .pswp[aria-hidden=true]{display:none;}.main-loader.loader-bg{position:fixed;height:100%;width:100%;background-color:#fff;z-index:1001;top:0;left:0;display:flex;justify-content:center;align-items:center;opacity:1;transition:opacity .6s;}.loader-bg{position:relative;}.c27-quick-view-modal .loader-bg{height:100%;}.instant-results .loader-bg{height:50px;width:100%;background:#fff;border-bottom-left-radius:2px;border-bottom-right-radius:2px;} ``` -------------------------------- ### PhotoSwipe and Gallery Grid CSS Source: https://allmenus.ma/restaurant/meknes/veranda/ Comprehensive CSS for styling PhotoSwipe components like backgrounds, buttons, captions, and preloaders. Also includes styles for a responsive grid layout with hover effects on images and icons. ```css t:none;}.pswp__bg{will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1);}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden;}.pswp__item{right:0;bottom:0;overflow:hidden;}.pswp__img,.pswp__item{position:absolute;left:0;top:0;}@media only screen and (min-width:993px){.pswp__bg{background:rgba(29,29,31,.95) !important;}}.pswp__button{width:44px;height:44px;position:relative;background:none;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:right;opacity:.75;transition:opacity .2s;box-shadow:none;}.pswp__button:focus,.pswp__button:hover{opacity:1;}.pswp__button:active{outline:none;opacity:.9;}.pswp__button::-moz-focus-inner{padding:0;border:0;}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:var(--wpr-bg-4bb59f71-0b7b-4c8f-9585-6d5d6397815c) 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px;}.pswp__button--close{background-position:0 -44px;}.pswp__button--share{background-position:-44px -44px;}.pswp__button--fs{display:none;}.pswp__button--zoom{display:none;background-position:-88px 0;}.pswp__button--arrow--left,.pswp__button--arrow--right{background:none;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute;}.pswp__button--arrow--left{left:0;}.pswp__button--arrow--right{right:0;}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";top:35px;background-color:rgba(0,0,0,.3);height:30px;width:32px;position:absolute;}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px;}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px;}.pswp__counter,.pswp__share-modal{-webkit-user-select:none;-ms-user-select:none;user-select:none;}.pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:1600;opacity:0;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity;}.pswp__share-modal--hidden{display:none;}.pswp__share-tooltip{z-index:1620;position:absolute;background:#fff;top:56px;border-radius:2px;display:block;width:auto;right:44px;box-shadow:0 2px 5px rgba(0,0,0,.25);transform:translateY(6px);transition:transform .25s;-webkit-backface-visibility:hidden;will-change:transform;}.pswp__share-tooltip a{display:block;padding:8px 12px;font-size:14px;line-height:18px;}.pswp__share-tooltip a,.pswp__share-tooltip a:hover{color:#000;text-decoration:none;}.pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0;}.pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px;}.pswp__counter{position:absolute;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px;}.pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px;}.pswp__caption__center{text-align:center;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc;}.pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;will-change:opacity;direction:ltr;}.pswp__preloader__icn{width:20px;height:20px;margin:12px;}@media screen and (max-width:1024px){.pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right;}}@keyframes clockwise{0%{transform:rotate(0deg);}to{transform:rotate(1turn);}}@keyframes donut-rotate{0%{transform:rotate(0);}50%{transform:rotate(-140deg);}to{transform:rotate(0);}}.pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:1550;}.pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%;}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{-webkit-backface-visibility:hidden;will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1);}.pswp__caption,.pswp__top-bar{background-color:rgba(0,0,0,.5);}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001;}.gallery-grid-block .gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:10px;}.gallery-grid-block .gallery-grid a{padding-bottom:75%;overflow:hidden;position:relative;background:#242429;border-radius:5px;}.gallery-grid-block .gallery-grid a i{width:100%;position:absolute;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;transition:.2s ease;overflow:hidden;opacity:0;}.gallery-grid-block .gallery-grid a:hover i{opacity:1;}.gallery-grid-block .gallery-grid a:hover img{opacity:.4;transform:scale(1.1);}.gallery-grid-block .gallery-grid a img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:.2s ease;}.footer{background:#fff;padding-top:50px;border-color:transparent;}.footer-bottom .social-l ``` -------------------------------- ### MutationObserver Setup Source: https://allmenus.ma/restaurant/dakhla/grillade-poisson-venizia/ Initializes a MutationObserver to monitor DOM changes. It observes attributes, child list, and subtree for the specified target element. ```javascript window.MutationObserver; return function(e,t){ if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t } ``` -------------------------------- ### PhotoSwipe and Gallery Grid Styling Source: https://allmenus.ma/restaurant/kenitra/mini-house/ Provides styling for the PhotoSwipe (pswp) UI elements, including buttons, captions, and preloader, as well as styles for a responsive gallery grid layout with hover effects. ```css llout:none;}.pswp__bg{will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1);}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden;}.pswp__item{right:0;bottom:0;overflow:hidden;}.pswp__img,.pswp__item{position:absolute;left:0;top:0;}@media only screen and (min-width:993px){.pswp__bg{background:rgba(29,29,31,.95) !important;}}.pswp__button{width:44px;height:44px;position:relative;background:none;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:right;opacity:.75;transition:opacity .2s;box-shadow:none;}.pswp__button:focus,.pswp__button:hover{opacity:1;}.pswp__button:active{outline:none;opacity:.9;}.pswp__button::-moz-focus-inner{padding:0;border:0;}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:var(--wpr-bg-4bb59f71-0b7b-4c8f-9585-6d5d6397815c) 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px;}.pswp__button--close{background-position:0 -44px;}.pswp__button--share{background-position:-44px -44px;}.pswp__button--fs{display:none;}.pswp__button--zoom{display:none;background-position:-88px 0;}.pswp__button--arrow--left,.pswp__button--arrow--right{background:none;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute;}.pswp__button--arrow--left{left:0;}.pswp__button--arrow--right{right:0;}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";top:35px;background-color:rgba(0,0,0,.3);height:30px;width:32px;position:absolute;}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px;}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px;}.pswp__counter,.pswp__share-modal{-webkit-user-select:none;-ms-user-select:none;user-select:none;}.pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:1600;opacity:0;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity;}.pswp__share-modal--hidden{display:none;}.pswp__share-tooltip{z-index:1620;position:absolute;background:#fff;top:56px;border-radius:2px;display:block;width:auto;right:44px;box-shadow:0 2px 5px rgba(0,0,0,.25);transform:translateY(6px);transition:transform .25s;-webkit-backface-visibility:hidden;will-change:transform;}.pswp__share-tooltip a{display:block;padding:8px 12px;font-size:14px;line-height:18px;}.pswp__share-tooltip a,.pswp__share-tooltip a:hover{color:#000;text-decoration:none;}.pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0;}.pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px;}.pswp__counter{position:absolute;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px;}.pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px;}.pswp__caption__center{text-align:center;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc;}.pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;will-change:opacity;direction:ltr;}@media screen and (max-width:1024px){.pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right;}}@keyframes clockwise{0%{transform:rotate(0deg);}to{transform:rotate(1turn);}}@keyframes donut-rotate{0%{transform:rotate(0);}50%{transform:rotate(-140deg);}to{transform:rotate(0);}}.pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:1550;}.pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%;}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{-webkit-backface-visibility:hidden;will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1);}.pswp__caption,.pswp__top-bar{background-color:rgba(0,0,0,.5);}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001;}.gallery-grid-block .gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:10px;}.gallery-grid-block .gallery-grid a{padding-bottom:75%;overflow:hidden;position:relative;background:#242429;border-radius:5px;}.gallery-grid-block .gallery-grid a i{width:100%;position:absolute;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;transition:.2s ease;overflow:hidden;opacity:0;}.gallery-grid-block .gallery-grid a:hover i{opacity:1;}.gallery-grid-block .gallery-grid a:hover img{opacity:.4;transform:scale(1.1);}.gallery-grid-block .gallery-grid a img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:.2s ease;}.footer{background:#fff;padding-top:50px;border-color:transparent;}.footer-bottom .soci ``` -------------------------------- ### MutationObserver Setup Source: https://allmenus.ma/restaurant/casablanca/marina-juice/ Configures a MutationObserver to monitor DOM changes. It observes attributes, child list, and the subtree for a specified target element. ```javascript const r=window.MutationObserver; return function(e,t){ if(e&&1===e.nodeType) return(t=new r(t)).observe(e,{ attributes:!0, childList:!0, subtree:!0 }), t } ()(document.querySelector("body"),n) ```