WEBLEB
Inicio
Editora de código
Iniciar sesión
Pro
Español
English
Français
Español
Português
Deutsch
Italiano
हिंदी
Escenario CSS con luces y escaleras
438
alejandrokundrah
Abrir en el editor
Publica tu código
Recomendado
29 April 2025
Sitio web con IA (NO FUNCIONA)
15 August 2024
Un hermoso control deslizante
11 August 2025
Contenedor de animación de mensajes HTML
HTML
Copy
#1
CSS
Copy
@import url('https://fonts.googleapis.com/css2?family=Knewave&display=swap'); *, *::before, *::after { padding: 0; margin: 0; box-sizing: border-box; } :root { --swingDuration: 32s -28s; } body { font-family: "Knewave", system-ui; background-color: #000; color: #fff; min-height: 100vh; display: grid; place-items: center; perspective: 50em; overflow: hidden; * { transform-style: preserve-3d; } } .stage { position: relative; transform: rotateX(90deg) translateZ(-15em); animation: stageRotate var(--swingDuration) infinite linear; * { position: absolute; } } @keyframes stageRotate { to { rotate: y -360deg; } } .floor { inset: -100em; background: radial-gradient(closest-side, transparent, black), radial-gradient(#ff0, transparent 0.1em) 0 0 / 7em 4.5em, radial-gradient(#ff0, transparent 0.1em) 0 0 / 7.5em 5em, radial-gradient(#ff0, transparent 0.1em) 0 0 / 4em 7.5em, radial-gradient(#ff0, transparent 0.1em) 0 0 / 4.5em 5em, radial-gradient(#ff0, transparent 0.1em) 0 0 / 5em 7.5em, radial-gradient(#ff0, transparent 0.1em) 0 0 / 5.5em 4em, black; } .innerStage { inset: -5.75em; background-color: #777; border-radius: 50%; border: 0.25em solid #444; transform: translateZ(9em); } .innerRing { inset: -6em; border-radius: 50%; box-shadow: 0 0 0 0.25em white inset, 0 0 2em white inset; transform: translateZ(28em) rotateX(-30deg); --stringHeight: 36em; --w: 6em; --h: 6em; --rx: -60deg; --ro: 6deg; } .outerRing { inset: -8em -7em; border-radius: 50%; box-shadow: 0 0 0 0.25em white inset, 0 0 2em white inset; transform: translateZ(16em) rotateX(-40deg); --stringHeight: 28em; --w: 7em; --h: 8em; --rx: -50deg; --ro: 4deg; } .stairsRing { inset: -16em -13em; transform: translateZ(8em) rotateX(-25deg) rotateZ(180deg); --stringHeight: 15em; --w: 13em; --h: 16em; --rx: -115deg; --ro: 2deg; &::after { content: ''; position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 0.25em white inset, 0 0 1em white inset; clip-path: polygon(0 0, 50% 0, 10% 50%, 50% 100%, 0 100%); } } .backBar { inset: -4em -0.1em; background-color: #fff; transform: translateZ(14.7em) translateY(-10.5em); --stringHeight: 15em; --rx: -90deg; .lightstring { left: 0; top: calc(var(--i) * 0.5em); } &::after { content: ''; position: absolute; inset: 0; background-color: #fff; rotate: y 90deg; border-radius: 1em; } } .lightstring { left: calc(50% - sin(var(--i) * var(--ro)) * var(--w) - 0.25em); top: calc(50% - cos(var(--i) * var(--ro)) * var(--h)); width: 0.5em; height: var(--stringHeight); background-image: radial-gradient(circle at 50% 50%, #fff7, transparent 0.1em); background-size: 100% 0.25em; transform-origin: top; animation: lightstringRotate var(--swingDuration) infinite linear; &.short { height: 2em; } &::after { content: ''; position: absolute; left: -2em; top: calc(abs(sin(var(--i) * 10deg)) * 100% - 2.25em); width: 4.5em; height: 4.5em; background-image: radial-gradient(closest-side, var(--_c, #dff), 1%, transparent); animation: sparkle 4s calc(abs(sin(var(--i) * 20.5deg)) * -4s) infinite step-end; } &:nth-child(odd) { --_c: #ffd; } } @keyframes lightstringRotate { from { transform: rotateX(var(--rx)) rotateY(0deg); } to { transform: rotateX(var(--rx)) rotateY(360deg); } } @keyframes sparkle { 0%, 10%, 100% { opacity: 0; } 5% { opacity: 1; } } .stair { inset: -3em -1em; background-color: #444; transform-style: flat; border: 0.125em solid #777; transform: rotate(calc(var(--i) * -10deg - 50deg)) translateY(10em) translateZ(calc((var(--i) + 1) * 0.75em)); &:last-child { inset: -3em -2em; transform: rotate(calc(var(--i) * -10deg - 55deg)) translateY(10em) translateZ(calc((var(--i) + 1) * 0.75em)); } } .number { inset: -2em; display: grid; place-items: center; transform: rotateX(-90deg) translateY(-2.5em); font-size: 6em; color: hsl(200 100% 50%); }
JS
Copy
<div class="stage"> <div class="floor"></div> <div class="innerStage"></div> <div class="innerRing"> <div class="lightstring" style="--i: 0;"></div> <div class="lightstring" style="--i: 1;"></div> <div class="lightstring" style="--i: 2;"></div> <div class="lightstring" style="--i: 3;"></div> <div class="lightstring" style="--i: 4;"></div> <div class="lightstring" style="--i: 5;"></div> <div class="lightstring" style="--i: 6;"></div> <div class="lightstring" style="--i: 7;"></div> <div class="lightstring" style="--i: 8;"></div> <div class="lightstring" style="--i: 9;"></div> <div class="lightstring" style="--i: 10;"></div> <div class="lightstring" style="--i: 11;"></div> <div class="lightstring" style="--i: 12;"></div> <div class="lightstring" style="--i: 13;"></div> <div class="lightstring" style="--i: 14;"></div> <div class="lightstring" style="--i: 15;"></div> <div class="lightstring" style="--i: 16;"></div> <div class="lightstring" style="--i: 17;"></div> <div class="lightstring" style="--i: 18;"></div> <div class="lightstring" style="--i: 19;"></div> <div class="lightstring" style="--i: 20;"></div> <div class="lightstring" style="--i: 21;"></div> <div class="lightstring" style="--i: 22;"></div> <div class="lightstring short" style="--i: 23;"></div> <div class="lightstring short" style="--i: 24;"></div> <div class="lightstring short" style="--i: 25;"></div> <div class="lightstring short" style="--i: 26;"></div> <div class="lightstring short" style="--i: 27;"></div> <div class="lightstring short" style="--i: 28;"></div> <div class="lightstring short" style="--i: 29;"></div> <div class="lightstring short" style="--i: 30;"></div> <div class="lightstring short" style="--i: 31;"></div> <div class="lightstring short" style="--i: 32;"></div> <div class="lightstring short" style="--i: 33;"></div> <div class="lightstring short" style="--i: 34;"></div> <div class="lightstring short" style="--i: 35;"></div> <div class="lightstring short" style="--i: 36;"></div> <div class="lightstring short" style="--i: 37;"></div> <div class="lightstring" style="--i: 38;"></div> <div class="lightstring" style="--i: 39;"></div> <div class="lightstring" style="--i: 40;"></div> <div class="lightstring" style="--i: 41;"></div> <div class="lightstring" style="--i: 42;"></div> <div class="lightstring" style="--i: 43;"></div> <div class="lightstring" style="--i: 44;"></div> <div class="lightstring" style="--i: 45;"></div> <div class="lightstring" style="--i: 46;"></div> <div class="lightstring" style="--i: 47;"></div> <div class="lightstring" style="--i: 48;"></div> <div class="lightstring" style="--i: 49;"></div> <div class="lightstring" style="--i: 50;"></div> <div class="lightstring" style="--i: 51;"></div> <div class="lightstring" style="--i: 52;"></div> <div class="lightstring" style="--i: 53;"></div> <div class="lightstring" style="--i: 54;"></div> <div class="lightstring" style="--i: 55;"></div> <div class="lightstring" style="--i: 56;"></div> <div class="lightstring" style="--i: 57;"></div> <div class="lightstring" style="--i: 58;"></div> <div class="lightstring" style="--i: 59;"></div> </div> <div class="outerRing"> <div class="lightstring" style="--i: 0;"></div> <div class="lightstring" style="--i: 1;"></div> <div class="lightstring" style="--i: 2;"></div> <div class="lightstring" style="--i: 3;"></div> <div class="lightstring" style="--i: 4;"></div> <div class="lightstring" style="--i: 5;"></div> <div class="lightstring" style="--i: 6;"></div> <div class="lightstring" style="--i: 7;"></div> <div class="lightstring" style="--i: 8;"></div> <div class="lightstring" style="--i: 9;"></div> <div class="lightstring" style="--i: 10;"></div> <div class="lightstring" style="--i: 11;"></div> <div class="lightstring" style="--i: 12;"></div> <div class="lightstring" style="--i: 13;"></div> <div class="lightstring" style="--i: 14;"></div> <div class="lightstring" style="--i: 15;"></div> <div class="lightstring" style="--i: 16;"></div> <div class="lightstring" style="--i: 17;"></div> <div class="lightstring" style="--i: 18;"></div> <div class="lightstring" style="--i: 19;"></div> <div class="lightstring" style="--i: 20;"></div> <div class="lightstring" style="--i: 21;"></div> <div class="lightstring" style="--i: 22;"></div> <div class="lightstring" style="--i: 23;"></div> <div class="lightstring" style="--i: 24;"></div> <div class="lightstring" style="--i: 25;"></div> <div class="lightstring" style="--i: 26;"></div> <div class="lightstring" style="--i: 27;"></div> <div class="lightstring" style="--i: 28;"></div> <div class="lightstring" style="--i: 29;"></div> <div class="lightstring" style="--i: 30;"></div> <div class="lightstring" style="--i: 31;"></div> <div class="lightstring" style="--i: 32;"></div> <div class="lightstring" style="--i: 33;"></div> <div class="lightstring" style="--i: 34;"></div> <div class="lightstring" style="--i: 35;"></div> <div class="lightstring" style="--i: 36;"></div> <div class="lightstring" style="--i: 37;"></div> <div class="lightstring" style="--i: 38;"></div> <div class="lightstring" style="--i: 39;"></div> <div class="lightstring" style="--i: 40;"></div> <div class="lightstring" style="--i: 41;"></div> <div class="lightstring" style="--i: 42;"></div> <div class="lightstring" style="--i: 43;"></div> <div class="lightstring" style="--i: 44;"></div> <div class="lightstring" style="--i: 45;"></div> <div class="lightstring" style="--i: 46;"></div> <div class="lightstring" style="--i: 47;"></div> <div class="lightstring" style="--i: 48;"></div> <div class="lightstring" style="--i: 49;"></div> <div class="lightstring" style="--i: 50;"></div> <div class="lightstring" style="--i: 51;"></div> <div class="lightstring" style="--i: 52;"></div> <div class="lightstring" style="--i: 53;"></div> <div class="lightstring" style="--i: 54;"></div> <div class="lightstring" style="--i: 55;"></div> <div class="lightstring" style="--i: 56;"></div> <div class="lightstring" style="--i: 57;"></div> <div class="lightstring" style="--i: 58;"></div> <div class="lightstring" style="--i: 59;"></div> <div class="lightstring" style="--i: 60;"></div> <div class="lightstring" style="--i: 61;"></div> <div class="lightstring" style="--i: 62;"></div> <div class="lightstring" style="--i: 63;"></div> <div class="lightstring" style="--i: 64;"></div> <div class="lightstring" style="--i: 65;"></div> <div class="lightstring" style="--i: 66;"></div> <div class="lightstring" style="--i: 67;"></div> <div class="lightstring" style="--i: 68;"></div> <div class="lightstring" style="--i: 69;"></div> <div class="lightstring" style="--i: 70;"></div> <div class="lightstring" style="--i: 71;"></div> <div class="lightstring" style="--i: 72;"></div> <div class="lightstring" style="--i: 73;"></div> <div class="lightstring" style="--i: 74;"></div> <div class="lightstring" style="--i: 75;"></div> <div class="lightstring" style="--i: 76;"></div> <div class="lightstring" style="--i: 77;"></div> <div class="lightstring" style="--i: 78;"></div> <div class="lightstring" style="--i: 79;"></div> <div class="lightstring" style="--i: 80;"></div> <div class="lightstring" style="--i: 81;"></div> <div class="lightstring" style="--i: 82;"></div> <div class="lightstring" style="--i: 83;"></div> <div class="lightstring" style="--i: 84;"></div> <div class="lightstring" style="--i: 85;"></div> <div class="lightstring" style="--i: 86;"></div> <div class="lightstring" style="--i: 87;"></div> <div class="lightstring" style="--i: 88;"></div> <div class="lightstring" style="--i: 89;"></div> <div class="lightstring" style="--i: 90;"></div> </div> <div class="stairsRing"> <div class="lightstring" style="--i: 0;"></div> <div class="lightstring" style="--i: 1;"></div> <div class="lightstring" style="--i: 2;"></div> <div class="lightstring" style="--i: 3;"></div> <div class="lightstring" style="--i: 4;"></div> <div class="lightstring" style="--i: 5;"></div> <div class="lightstring" style="--i: 6;"></div> <div class="lightstring" style="--i: 7;"></div> <div class="lightstring" style="--i: 8;"></div> <div class="lightstring" style="--i: 9;"></div> <div class="lightstring" style="--i: 10;"></div> <div class="lightstring" style="--i: 11;"></div> <div class="lightstring" style="--i: 12;"></div> <div class="lightstring" style="--i: 13;"></div> <div class="lightstring" style="--i: 14;"></div> <div class="lightstring" style="--i: 15;"></div> <div class="lightstring" style="--i: 16;"></div> <div class="lightstring" style="--i: 17;"></div> <div class="lightstring" style="--i: 18;"></div> <div class="lightstring" style="--i: 19;"></div> <div class="lightstring" style="--i: 20;"></div> <div class="lightstring" style="--i: 21;"></div> <div class="lightstring" style="--i: 22;"></div> <div class="lightstring" style="--i: 23;"></div> <div class="lightstring" style="--i: 24;"></div> <div class="lightstring" style="--i: 25;"></div> <div class="lightstring" style="--i: 26;"></div> <div class="lightstring" style="--i: 27;"></div> <div class="lightstring" style="--i: 28;"></div> <div class="lightstring" style="--i: 29;"></div> <div class="lightstring" style="--i: 30;"></div> <div class="lightstring" style="--i: 31;"></div> <div class="lightstring" style="--i: 32;"></div> <div class="lightstring" style="--i: 33;"></div> <div class="lightstring" style="--i: 34;"></div> <div class="lightstring" style="--i: 35;"></div> <div class="lightstring" style="--i: 36;"></div> <div class="lightstring" style="--i: 37;"></div> <div class="lightstring" style="--i: 38;"></div> <div class="lightstring" style="--i: 39;"></div> <div class="lightstring" style="--i: 40;"></div> <div class="lightstring" style="--i: 41;"></div> <div class="lightstring" style="--i: 42;"></div> <div class="lightstring" style="--i: 43;"></div> <div class="lightstring" style="--i: 44;"></div> <div class="lightstring" style="--i: 45;"></div> <div class="lightstring" style="--i: 46;"></div> <div class="lightstring" style="--i: 47;"></div> <div class="lightstring" style="--i: 48;"></div> <div class="lightstring" style="--i: 49;"></div> <div class="lightstring" style="--i: 50;"></div> <div class="lightstring" style="--i: 51;"></div> <div class="lightstring" style="--i: 52;"></div> <div class="lightstring" style="--i: 53;"></div> <div class="lightstring" style="--i: 54;"></div> <div class="lightstring" style="--i: 55;"></div> <div class="lightstring" style="--i: 56;"></div> <div class="lightstring" style="--i: 57;"></div> <div class="lightstring" style="--i: 58;"></div> <div class="lightstring" style="--i: 59;"></div> <div class="lightstring" style="--i: 60;"></div> <div class="lightstring" style="--i: 61;"></div> <div class="lightstring" style="--i: 62;"></div> <div class="lightstring" style="--i: 63;"></div> <div class="lightstring" style="--i: 64;"></div> <div class="lightstring" style="--i: 65;"></div> <div class="lightstring" style="--i: 66;"></div> <div class="lightstring" style="--i: 67;"></div> <div class="lightstring" style="--i: 68;"></div> <div class="lightstring" style="--i: 69;"></div> <div class="lightstring" style="--i: 70;"></div> <div class="lightstring" style="--i: 71;"></div> <div class="lightstring" style="--i: 72;"></div> <div class="lightstring" style="--i: 73;"></div> <div class="lightstring" style="--i: 74;"></div> <div class="lightstring" style="--i: 75;"></div> <div class="lightstring" style="--i: 76;"></div> <div class="lightstring" style="--i: 77;"></div> <div class="lightstring" style="--i: 78;"></div> <div class="lightstring" style="--i: 79;"></div> <div class="lightstring" style="--i: 80;"></div> <div class="lightstring" style="--i: 81;"></div> <div class="lightstring" style="--i: 82;"></div> <div class="lightstring" style="--i: 83;"></div> <div class="lightstring" style="--i: 84;"></div> <div class="lightstring" style="--i: 85;"></div> <div class="lightstring" style="--i: 86;"></div> <div class="lightstring" style="--i: 87;"></div> <div class="lightstring" style="--i: 88;"></div> <div class="lightstring" style="--i: 89;"></div> <div class="lightstring" style="--i: 90;"></div> </div> <div class="backBar"> <div class="lightstring" style="--i: 1;"></div> <div class="lightstring" style="--i: 2;"></div> <div class="lightstring" style="--i: 3;"></div> <div class="lightstring" style="--i: 4;"></div> <div class="lightstring" style="--i: 5;"></div> <div class="lightstring" style="--i: 6;"></div> <div class="lightstring" style="--i: 7;"></div> <div class="lightstring" style="--i: 8;"></div> <div class="lightstring" style="--i: 9;"></div> <div class="lightstring" style="--i: 10;"></div> <div class="lightstring" style="--i: 11;"></div> <div class="lightstring" style="--i: 12;"></div> <div class="lightstring" style="--i: 13;"></div> <div class="lightstring" style="--i: 14;"></div> <div class="lightstring" style="--i: 15;"></div> </div> <div class="stairs"> <div class="stair" style="--i: 0;"></div> <div class="stair" style="--i: 1;"></div> <div class="stair" style="--i: 2;"></div> <div class="stair" style="--i: 3;"></div> <div class="stair" style="--i: 4;"></div> <div class="stair" style="--i: 5;"></div> <div class="stair" style="--i: 6;"></div> <div class="stair" style="--i: 7;"></div> <div class="stair" style="--i: 8;"></div> <div class="stair" style="--i: 9;"></div> <div class="stair" style="--i: 10;"></div> <div class="stair" style="--i: 11;"></div> </div> <div class="number">#1</div> </div>