SOURCE

console 命令行工具 X clear

                    
>
console
<div class="scene">
  <div class="banner">
   <div class="panel"></div>
   <div class="panel"></div>
   <div class="panel"></div>
   <div class="panel"></div>
   <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
    <div class="panel"></div>
  </div>
  <div class="screen"></div>
</div>
body {
  background-color: #000;
  color: #fff;
  min-height: 100vh;
  display: grid;
  place-items: center;
  perspective: 500px;
  perspective-origin: 50% calc(50% - 150px);
}

.scene {
  position: relative;
  transform-style: preserve-3d;
}

.banner {
  display: flex;
  transform-style: preserve-3d;
  -webkit-animation: rotate 24s infinite linear;
          animation: rotate 24s infinite linear;
}

@-webkit-keyframes rotate {
  to {
    transform: rotateY(-360deg);
  }
}

@keyframes rotate {
  to {
    transform: rotateY(-360deg);
  }
}
.panel {
  position: absolute;
  transform: translate(-50%, -50%) rotateY(var(--angle)) translateZ(190px);
  width: 50px;
  height: 120px;
  overflow: hidden;
}

.panel::before {
  position: absolute;
  left: var(--left);
  content: "Hello World, it's a nice day!";
  font-size: 96px;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  color: hsl(var(--hue), 75%, 75%);
}

.panel:nth-child(1) {
  --left: 0px;
  --hue: 0;
  --angle: 0deg;
}

.panel:nth-child(2) {
  --left: -50px;
  --hue: 15;
  --angle: 15deg;
}

.panel:nth-child(3) {
  --left: -100px;
  --hue: 30;
  --angle: 30deg;
}

.panel:nth-child(4) {
  --left: -150px;
  --hue: 45;
  --angle: 45deg;
}

.panel:nth-child(5) {
  --left: -200px;
  --hue: 60;
  --angle: 60deg;
}

.panel:nth-child(6) {
  --left: -250px;
  --hue: 75;
  --angle: 75deg;
}

.panel:nth-child(7) {
  --left: -300px;
  --hue: 90;
  --angle: 90deg;
}

.panel:nth-child(8) {
  --left: -350px;
  --hue: 105;
  --angle: 105deg;
}

.panel:nth-child(9) {
  --left: -400px;
  --hue: 120;
  --angle: 120deg;
}

.panel:nth-child(10) {
  --left: -450px;
  --hue: 135;
  --angle: 135deg;
}

.panel:nth-child(11) {
  --left: -500px;
  --hue: 150;
  --angle: 150deg;
}

.panel:nth-child(12) {
  --left: -550px;
  --hue: 165;
  --angle: 165deg;
}

.panel:nth-child(13) {
  --left: -600px;
  --hue: 180;
  --angle: 180deg;
}

.panel:nth-child(14) {
  --left: -650px;
  --hue: 195;
  --angle: 195deg;
}

.panel:nth-child(15) {
  --left: -700px;
  --hue: 210;
  --angle: 210deg;
}

.panel:nth-child(16) {
  --left: -750px;
  --hue: 225;
  --angle: 225deg;
}

.panel:nth-child(17) {
  --left: -800px;
  --hue: 240;
  --angle: 240deg;
}

.panel:nth-child(18) {
  --left: -850px;
  --hue: 255;
  --angle: 255deg;
}

.panel:nth-child(19) {
  --left: -900px;
  --hue: 270;
  --angle: 270deg;
}

.panel:nth-child(20) {
  --left: -950px;
  --hue: 285;
  --angle: 285deg;
}

.panel:nth-child(21) {
  --left: -1000px;
  --hue: 300;
  --angle: 300deg;
}

.panel:nth-child(22) {
  --left: -1050px;
  --hue: 315;
  --angle: 315deg;
}

.panel:nth-child(23) {
  --left: -1100px;
  --hue: 330;
  --angle: 330deg;
}

.panel:nth-child(24) {
  --left: -1150px;
  --hue: 345;
  --angle: 345deg;
}

.screen {
  position: absolute;
  width: 400px;
  height: 400px;
  background-image: linear-gradient(90deg, #000a, #0004, #000a);
  transform: translate(-50%, -50%);
}