Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <script src="https://cdn.tailwindcss.com"></script>

<body>
  <div class="container mx-auto">
    <div class="flex flex-row">
      <div class="basis-auto">
        <div class="flex flex-row">
          <div class="basis-3/4 border-4 border-sky-500 m-1">
            <div class="bg-gradient-to-b from-cyan-300 to-blue-300">
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani1 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani2 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani3 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani4 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani2 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani3 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani4 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani5 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani3 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani4 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani6 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani4 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
                <div class="hidden-div ani7 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani8 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div end  h-10 w-10 rounded drop-shadow text-red-600 text-xl font-bold">
                  Y
                </div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-amber-600 text-xl font-bold">
                  O
                </div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-orange-600 text-xl font-bold">
                  U
                </div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani9 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-lime-600 text-xl font-bold">
                  H
                </div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-green-600 text-xl font-bold">
                  A
                </div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-emerald-600 text-xl font-bold">
                  V
                </div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-teal-600 text-xl font-bold">
                  E
                </div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani10 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-cyan-600 text-xl font-bold">
                  W
                </div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-sky-600 text-xl font-bold">O
                </div>
                <div class="hidden-div end h-10 w-10 rounded drop-shadow text-blue-600 text-xl font-bold">
                  N
                </div>
                <div class="hidden-div ani11 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani12 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="h-10 w-10 rounded drop-shadow"></div>
                <div class="hidden-div ani13 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="win h-10 w-10 rounded border-8 border-double border-orange-500 bg-gradient-to-r from-orange-700 via-orange-500 to-orange-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-orange-500 bg-gradient-to-r from-orange-700 via-orange-500 to-orange-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-orange-500 bg-gradient-to-r from-orange-700 via-orange-500 to-orange-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-red-500 bg-gradient-to-r from-red-700 via-red-500 to-red-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-teal-500 bg-gradient-to-r from-teal-700 via-teal-500 to-teal-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-red-500 bg-gradient-to-r from-red-700 via-red-500 to-red-700 drop-shadow">
                </div>
                <div class="hidden-div ani14 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="win h-10 w-10 rounded border-8 border-double border-orange-500 bg-gradient-to-r from-orange-700 via-orange-500 to-orange-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-green-500 bg-gradient-to-r from-green-700 via-green-500 to-green-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-green-500 bg-gradient-to-r from-green-700 via-green-500 to-green-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-orange-500 bg-gradient-to-r from-orange-700 via-orange-500 to-orange-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-teal-500 bg-gradient-to-r from-teal-700 via-teal-500 to-teal-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-teal-500 bg-gradient-to-r from-teal-700 via-teal-500 to-teal-700 drop-shadow">
                </div>
                <div class="hidden-div ani15 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="win h-10 w-10 rounded border-8 border-double border-blue-500 bg-gradient-to-r from-blue-700 via-blue-500 to-blue-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-green-500 bg-gradient-to-r from-green-700 via-green-500 to-green-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-green-500 bg-gradient-to-r from-green-700 via-green-500 to-green-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-orange-500 bg-gradient-to-r from-orange-700 via-orange-500 to-orange-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-red-500 bg-gradient-to-r from-red-700 via-red-500 to-red-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-teal-500 bg-gradient-to-r from-teal-700 via-teal-500 to-teal-700 drop-shadow">
                </div>
                <div class="hidden-div ani16 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
              <div class="flex flex-row">
                <div class="win h-10 w-10 rounded border-8 border-double border-blue-500 bg-gradient-to-r from-blue-700 via-blue-500 to-blue-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-blue-500 bg-gradient-to-r from-blue-700 via-blue-500 to-blue-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-blue-500 bg-gradient-to-r from-blue-700 via-blue-500 to-blue-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-red-500 bg-gradient-to-r from-red-700 via-red-500 to-red-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-red-500 bg-gradient-to-r from-red-700 via-red-500 to-red-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-red-500 bg-gradient-to-r from-red-700 via-red-500 to-red-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="win h-10 w-10 rounded border-8 border-double border-purple-500 bg-gradient-to-r from-purple-700 via-purple-500 to-purple-700 drop-shadow">
                </div>
                <div class="hidden-div ani17 h-10 w-10 rounded border-8 border-double border-yellow-500 bg-gradient-to-r from-yellow-700 via-yellow-500 to-yellow-700 drop-shadow">
                </div>
              </div>
            </div>
          </div>
          <div class="basis-1/4 border-4 border-sky-500 m-1 bg-gradient-to-b from-cyan-300 to-blue-300">
            <div class="flex flex-col text-slate-700">
              <div class="px-4 m-2 text-center">
                <p class="text-xl font-bold">TETRIS</p>
              </div>
              <div class="px-4 m-2 border border-4 border-sky-500 text-center">
                <p class="score"></p>
              </div>
              <div class="px-4 m-2 text-center">
                <p class="text-sm">created by</p>
              </div>
              <div class="px-4 m-2 text-center">
                <a href="https://www.schottstaedt.net" target="_blank" rel="noopener noreferrer">
                  <p class="text-sm">Schottstaedt.net</p>
                </a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
              
            
!

CSS

              
                .ani1 {
  animation: showDiv 0s ease-in-out 1s forwards,
    hideDiv 0s ease-in-out 2s forwards;
}

.ani2 {
  animation: showDiv 0s ease-in-out 2s forwards,
    hideDiv 0s ease-in-out 3s forwards;
}

.ani3 {
  animation: showDiv 0s ease-in-out 3s forwards,
    hideDiv 0s ease-in-out 4s forwards;
}

.ani4 {
  animation: showDiv 0s ease-in-out 4s forwards,
    hideDiv 0s ease-in-out 5s forwards;
}

.ani5 {
  animation: showDiv 0s ease-in-out 5s forwards,
    hideDiv 0s ease-in-out 6s forwards;
}

.ani6 {
  animation: showDiv 0s ease-in-out 5s forwards,
    hideDiv 0s ease-in-out 7s forwards;
}

.ani7 {
  animation: showDiv 0s ease-in-out 5s forwards,
    hideDiv 0s ease-in-out 8s forwards;
}

.ani8 {
  animation: showDiv 0s ease-in-out 5s forwards,
    hideDiv 0s ease-in-out 9s forwards;
}

.ani9 {
  animation: showDiv 0s ease-in-out 6s forwards,
    hideDiv 0s ease-in-out 10s forwards;
}

.ani10 {
  animation: showDiv 0s ease-in-out 7s forwards,
    hideDiv 0s ease-in-out 11s forwards;
}

.ani11 {
  animation: showDiv 0s ease-in-out 8s forwards,
    hideDiv 0s ease-in-out 12s forwards;
}

.ani12 {
  animation: showDiv 0s ease-in-out 9s forwards,
    hideDiv 0s ease-in-out 13s forwards;
}

.ani13 {
  animation: showDiv 0s ease-in-out 10s forwards,
    hideDiv 0s ease-in-out 14s forwards;
}

.ani14 {
  animation: showDiv 0s ease-in-out 11s forwards,
    pulse 2s cubic-bezier(0.4, 0, 0.6, 1) 14s,
    hideDiv 0s ease-in-out 16s forwards;
}

.ani15 {
  animation: showDiv 0s ease-in-out 12s forwards,
    pulse 2s cubic-bezier(0.4, 0, 0.6, 1) 14s,
    hideDiv 0s ease-in-out 16s forwards;
}

.ani16 {
  animation: showDiv 0s ease-in-out 13s forwards,
    pulse 2s cubic-bezier(0.4, 0, 0.6, 1) 14s,
    hideDiv 0s ease-in-out 16s forwards;
}

.ani17 {
  animation: showDiv 0s ease-in-out 14s forwards,
    pulse 2s cubic-bezier(0.4, 0, 0.6, 1) 14s,
    hideDiv 0s ease-in-out 16s forwards;
}

.win {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) 14s,
    hideDiv 0s ease-in-out 16s forwards;
}

.end {
  animation: showDiv 0s ease-in-out 16s forwards,
    ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.hidden-div {
  visibility: hidden;
}

.score {
  animation: counter 3s alternate ease-in-out;
  counter-reset: num var(--num);
  animation-fill-mode: forwards;
  animation-delay: 15s;
}

.score::after {
  content: counter(num);
}

@keyframes ping {
  75%,
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

@property --num {
  syntax: "<integer>";
  initial-value: 999;
  inherits: false;
}
@keyframes counter {
  from {
    --num: 999;
  }
  to {
    --num: 1337;
  }
}

@keyframes showDiv {
  0% {
    visibility: hidden;
  }

  100% {
    visibility: visible;
  }
}

@keyframes hideDiv {
  0% {
    visibility: visible;
  }

  100% {
    visibility: hidden;
  }
}

@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.5;
  }
}

              
            
!

JS

              
                
              
            
!
999px

Console