JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width" />
    <link
          rel="stylesheet"
          href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0.13/dist/fancybox/fancybox.css"
          />
  </head>
  <body>
    <div>
      <a
         href="https://lipsum.app/id/1/800x600"
         data-fancybox="gallery"
         data-media="(max-width: 799px);(min-width: 800px)"
         data-sources="https://lipsum.app/id/1/800x600;https://lipsum.app/id/1/1200x900"
         >
        <img src="https://lipsum.app/id/1/200x150" />
      </a>
      <a
         href="https://lipsum.app/id/2/800x600"
         data-fancybox="gallery"
         data-media="(max-width: 799px);(min-width: 800px)"
         data-sources="https://lipsum.app/id/2/800x600;https://lipsum.app/id/2/1200x900"
         >
        <img src="https://lipsum.app/id/2/200x150" />
      </a>
      <a
         href="https://lipsum.app/id/3/800x600"
         data-fancybox="gallery"
         data-media="(max-width: 799px);(min-width: 800px)"
         data-sources="https://lipsum.app/id/2/800x600;https://lipsum.app/id/2/1200x900"
         >
        <img src="https://lipsum.app/id/3/200x150" />
      </a>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0.13/dist/fancybox/fancybox.umd.js"></script>
    <script>
      Fancybox.bind('[data-fancybox]', {
        Images: {
          content: (_ref, slide) => {
            let rez = "<picture>";
            const media = slide.media.split(";");

            slide.sources.split(";").map((source, index) => {
              rez += `<source
media="${media[index] || ""}"
srcset="${source}"
/>`;
            });

            rez += `<img src="${slide.src}" alt="" />`;

            rez += "</picture>";

            return rez;
          },
        },
      });   
    </script>
  </body>
</html>