About this snippet

Create a highly advanced 3D rotating text marquee purely with CSS. We arranged layers in a perfect circle using transforms, which gives your typography incredible depth and movement.

Size
2.4 KB
Uses
HTML, CSS
Loads
Nothing external
Views
177
<div class="scene-wrapper">
  <div class="cylinder-container">
    <div class="cylinder">
      <!-- 10 faces mapped mathematically in CSS -->
      <div class="face" style="transform: rotateY(0deg) translateZ(160px);">CSS3</div>
      <div class="face" style="transform: rotateY(36deg) translateZ(160px);">HTML5</div>
      <div class="face" style="transform: rotateY(72deg) translateZ(160px);">REACT</div>
      <div class="face" style="transform: rotateY(108deg) translateZ(160px);">NODE</div>
      <div class="face" style="transform: rotateY(144deg) translateZ(160px);">SQL</div>
      <div class="face" style="transform: rotateY(180deg) translateZ(160px);">VUE</div>
      <div class="face" style="transform: rotateY(216deg) translateZ(160px);">NEXT</div>
      <div class="face" style="transform: rotateY(252deg) translateZ(160px);">SWELTE</div>
      <div class="face" style="transform: rotateY(288deg) translateZ(160px);">TYPESCRIPT</div>
      <div class="face" style="transform: rotateY(324deg) translateZ(160px);">PYTHON</div>
    </div>
  </div>
</div>
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  margin: 0;
  background: #000000;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  overflow: hidden;
}

.scene-wrapper {
  perspective: 1000px;
  perspective-origin: 50% -100px;
}

.cylinder-container {
  position: relative;
  width: 200px;
  height: 60px;
}

.cylinder {
  width: 100%;
  height: 100%;
  position: absolute;
  transform-style: preserve-3d;
  animation: spinCylinder 15s infinite linear;
}

.face {
  position: absolute;
  width: 100px;
  height: 60px;
  left: 50%;
  top: 0;
  margin-left: -50px;
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.4);
  color: #3b82f6;
  font-size: 1.25rem;
  font-weight: 800;
  display: flex;
  justify-content: center;
  align-items: center;
  text-transform: uppercase;
  letter-spacing: 2px;
  backface-visibility: hidden;
  box-shadow: 0 0 15px rgba(59, 130, 246, 0.2);
  /* Text gradient for extra flair */
  background: linear-gradient(to bottom, #93c5fd, #3b82f6);
  color: transparent;
  background-clip: text;
  -webkit-background-clip: text;
}

@keyframes spinCylinder {
  from { transform: rotateY(0deg); }
  to { transform: rotateY(-360deg); }
}
Esc
↑↓ moveEnter select

Start from a template

Open an .html file, or HTML, CSS, JS, Markdown, Less or TypeScript files. You can also drop them here. Styles and scripts go into their panes.

Share

Source

Keyboard shortcuts

Save