JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://rawgit.com/Alexander-0x80/floweroflife.js/master/src/floweroflife.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.4.1/snap.svg-min.js"></script>

JavaScript

var size_x = 800, size_y = 600;
      var radius = 40;
      var layers = 5;
      var steps = 2;
      var fill_opacity = 0.2;
      var step, layer, point, circle;
      var circles = [];

      var s = Snap(size_x, size_y);
      var f = flower(size_x / 2, size_y / 2, radius, 5);
      var colors = [
        "#FF0000",
        "#FF8000",
        "#FFFF00",
        "#40FF00",
        "#00FFFF",
        "#0000FF",
        "#BF00FF"
      ];

      var layers = f.layers();
      var points = f.points();
      var g1 = s.g(); // Store all of our circles here for masking later
      for(step = 0; step <= steps; step++ ) {
      	// Each step generates another opacity layer
        for(layer = 0; layer < layers.length; layer++) {
          for(point = 0; point < layers[layer].length; point++) {
            circle = s.circle(
              layers[layer][point].x,
              layers[layer][point].y, radius);
            circle.attr({
              fill: colors[layer],
              fillOpacity: fill_opacity
            });

            g1.add(circle);
          }
        }
      }

			// Generate stoked circles above the colors 
      for (point = 0; point < points.length; point++) {
        var circle = s.circle(points[point].x, points[point].y, radius);
        circle.attr({
            fill: "#ff",
            stroke: "#000",
            strokeWidth: 2,
            fillOpacity: 0
        });

        g1.add(circle);
      }


			// Mask final sturcure with a circle
      var ring = s.circle(size_x / 2, size_y / 2, radius * 4)
      ring.attr({ fill: "#fff" });
      g1.attr({ mask: ring });

			// outermoust border
      s.circle(size_x / 2, size_y / 2, radius * 4).attr({
        fill: "#ff",
        stroke: "#000",
        strokeWidth: 2,
        fillOpacity: 0
      })