JSFiddle - React, Tailwind, and code Playground

HTML

<script src=" //static.tumblr.com/lxn1yld/5COo5p2zr/fireworks.js"></script>
<link rel="stylesheet" href=" //static.tumblr.com/lxn1yld/IaIo5p31k/app.css">

JavaScript

(function(){

  if (!window.addEventListener || !window.localStorage || !window.requestAnimationFrame)
    return;

  var options = INSTALL_OPTIONS;

  function ensureProtocol(url) {
    if (!url || url === '') {
      return url;
    }
    if (!/^https?:\/\//i.test(url) && /^[^\/]+\.[^\/]+\//.test(url)) {
      return 'http://' + url;
    }
    return url;
  }

  function setOptions(opts) {
    options = opts;

    render();

    if (!shown)
      show();
  }

  var backdrop = document.createElement('eager-fireworks-backdrop');
  document.body.appendChild(backdrop);

  var dialog = document.createElement('eager-fireworks-dialog');
  document.body.appendChild(dialog);

  var content = document.createElement('eager-fireworks-dialog-content');
  dialog.appendChild(content);

  var closeButton = document.createElement('eager-fireworks-dialog-close');
  closeButton.addEventListener('click', hide);

  function render() {
    dialog.setAttribute('eager-fireworks-theme', options.theme);

    var html = '';
    if (options.image) {
      if (options.link) {
        html += '<a href="' + ensureProtocol(options.link) + '">';
      }
      html += '<img src="' + options.image + '">';
      if (options.link) {
        html += '</a>';
      }
    }

    if (options.heading || options.message.html !== '') {
      html += '<eager-fireworks-dialog-content-text>';

      if (options.heading) {
        html += '<h2>' + options.heading + '</h2>';
      }
      html += options.message.html;
      html += '</eager-fireworks-dialog-content-text>';
    }

    content.innerHTML = html;
    content.appendChild(closeButton);
  }

  var boundEls = [backdrop, dialog];
  for (var i=boundEls.length; i--;){
    (function(i){
      boundEls[i].addEventListener('click', function(e){
        if (e.target === boundEls[i] && shown){
          hide();
          e.preventDefault();
        }
      });
    })(i);
  }

  var shown = false;

  function show() {
    INSTALL_SCOPE.fireworks.start();

   ...