<div class="grid-0">
<div class="grid-1">
<div class="cube-1" style="--i:0; --j:0;">1</div>
<div class="cube-2" style="--i:1; --j:0;">2</div>
<div class="cube-3" style="--i:2; --j:0;">3</div>
<div class="cube-4" style="--i:0; --j:1;">4</div>
<div class="cube-5" style="--i:1; --j:1;">5</div>
<div class="cube-6" style="--i:2; --j:1;">6</div>
<div class="cube-7" style="--i:0; --j:2;">7</div>
</div>
</div>
* {
--grid-div: 10px;
--step-size: 50px;
--step-time: 1s;
--step-duration: calc(var(--step-time) * 7);
}
.grid-0 {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
box-sizing: border-box;
}
.grid-1 {
position: relative;
width: 200px;
height: 200px;
display: flex;
justify-content: center;
align-items: center;
transform: rotateZ(45deg);
background: green;
}
.grid-1 div {
position: absolute;
left: calc(var(--i) * var(--grid-div) * 5);
top: calc(var(--j) * var(--grid-div) * 5);
color: black;
font-size: 3em;
border-radius: 10px;
/*border: solid 3px black;*/
padding: 10px;
margin: var(--grid-div);
width: 20px;
max-width: 20px;
height: 20px;
max-height: 20px;
/*background: hsl(calc(40*var(--i)), 100%, calc(30% + 30%*var(--j)));*/
background: linear-gradient(
hsl(calc(40*var(--i)), 100%, calc(30% + 30%*var(--j))),
hsl(calc(40*var(--j)), 100%, calc(30% + 30%*var(--i)))
);
}
.cube
{
animation: bobbingAnim 5s linear infinite;
}
.cube-5
{
z-index: 999;
animation: step5 var(--step-time) forwards,
step8 var(--step-time) calc(var(--step-duration) * 1) forwards,
step7 var(--step-time) calc(var(--step-duration) * 2) forwards,
step4 var(--step-time) calc(var(--step-duration) * 3) forwards,
step1 var(--step-time) calc(var(--step-duration) * 4) forwards,
step2 var(--step-time) calc(var(--step-duration) * 5) forwards,
step3 var(--step-time) calc(var(--step-duration) * 6) forwards,
step6 var(--step-time) calc(var(--step-duration) * 7) forwards;
}
.cube-6
{
z-index: 999;
animation: step6 var(--step-time) var(--step-time) forwards,
step5 var(--step-time) calc(var(--step-duration) * 1 + var(--step-time)) forwards,
step8 var(--step-time) calc(var(--step-duration) * 2 + var(--step-time)) forwards,
step7 var(--step-time) calc(var(--step-duration) * 3 + var(--step-time)) forwards,
step4 var(--step-time) calc(var(--step-duration) * 4 + var(--step-time)) forwards,
step1 var(--step-time) calc(var(--step-duration) * 5 + var(--step-time)) forwards,
step2 var(--step-time) calc(var(--step-duration) * 6 + var(--step-time)) forwards,
step3 var(--step-time) calc(var(--step-duration) * 7 + var(--step-time)) forwards;
}
.cube-3
{
z-index: 999;
animation: step3 var(--step-time) calc(var(--step-time) * 2) forwards,
step6 var(--step-time) calc(var(--step-duration) * 1 + var(--step-time) * 2) forwards,
step5 var(--step-time) calc(var(--step-duration) * 2 + var(--step-time) * 2) forwards,
step8 var(--step-time) calc(var(--step-duration) * 3 + var(--step-time) * 2) forwards,
step7 var(--step-time) calc(var(--step-duration) * 4 + var(--step-time) * 2) forwards,
step4 var(--step-time) calc(var(--step-duration) * 5 + var(--step-time) * 2) forwards,
step1 var(--step-time) calc(var(--step-duration) * 6 + var(--step-time) * 2) forwards,
step2 var(--step-time) calc(var(--step-duration) * 7 + var(--step-time) * 2) forwards;
}
.cube-2
{
z-index: 999;
animation: step2 var(--step-time) calc(var(--step-time) * 3) forwards,
step3 var(--step-time) calc(var(--step-duration) * 1 + var(--step-time) * 3) forwards,
step6 var(--step-time) calc(var(--step-duration) * 2 + var(--step-time) * 3) forwards,
step5 var(--step-time) calc(var(--step-duration) * 3 + var(--step-time) * 3) forwards,
step8 var(--step-time) calc(var(--step-duration) * 4 + var(--step-time) * 3) forwards,
step7 var(--step-time) calc(var(--step-duration) * 5 + var(--step-time) * 3) forwards,
step4 var(--step-time) calc(var(--step-duration) * 6 + var(--step-time) * 3) forwards,
step1 var(--step-time) calc(var(--step-duration) * 7 + var(--step-time) * 3) forwards;
}
.cube-1
{
z-index: 999;
animation: step1 var(--step-time) calc(var(--step-time) * 4) forwards,
step2 var(--step-time) calc(var(--step-duration) * 1 + var(--step-time) * 4) forwards,
step3 var(--step-time) calc(var(--step-duration) * 2 + var(--step-time) * 4) forwards,
step6 var(--step-time) calc(var(--step-duration) * 3 + var(--step-time) * 4) forwards,
step5 var(--step-time) calc(var(--step-duration) * 4 + var(--step-time) * 4) forwards,
step8 var(--step-time) calc(var(--step-duration) * 5 + var(--step-time) * 4) forwards,
step7 var(--step-time) calc(var(--step-duration) * 6 + var(--step-time) * 4) forwards,
step4 var(--step-time) calc(var(--step-duration) * 7 + var(--step-time) * 4) forwards;
}
.cube-4
{
z-index: 999;
animation: step4 var(--step-time) calc(var(--step-time) * 5) forwards,
step1 var(--step-time) calc(var(--step-duration) * 1 + var(--step-time) * 5) forwards,
step2 var(--step-time) calc(var(--step-duration) * 2 + var(--step-time) * 5) forwards,
step3 var(--step-time) calc(var(--step-duration) * 3 + var(--step-time) * 5) forwards,
step6 var(--step-time) calc(var(--step-duration) * 4 + var(--step-time) * 5) forwards,
step5 var(--step-time) calc(var(--step-duration) * 5 + var(--step-time) * 5) forwards,
step8 var(--step-time) calc(var(--step-duration) * 6 + var(--step-time) * 5) forwards,
step7 var(--step-time) calc(var(--step-duration) * 7 + var(--step-time) * 5) forwards;
}
.cube-7
{
z-index: 999;
animation: step7 var(--step-time) calc(var(--step-time) * 6) forwards,
step4 var(--step-time) calc(var(--step-duration) * 1 + var(--step-time) * 6) forwards,
step1 var(--step-time) calc(var(--step-duration) * 2 + var(--step-time) * 6) forwards,
step2 var(--step-time) calc(var(--step-duration) * 3 + var(--step-time) * 6) forwards,
step3 var(--step-time) calc(var(--step-duration) * 4 + var(--step-time) * 6) forwards,
step6 var(--step-time) calc(var(--step-duration) * 5 + var(--step-time) * 6) forwards,
step5 var(--step-time) calc(var(--step-duration) * 6 + var(--step-time) * 6) forwards,
step8 var(--step-time) calc(var(--step-duration) * 7 + var(--step-time) * 6) forwards;
}
@keyframes step6 {
from {
transform: translate3d(
calc((2 - var(--i)) * var(--step-size)),
calc((1 - var(--j)) * var(--step-size)),
1px);
}
to {
transform: translate3d(
calc((1 - var(--i)) * var(--step-size)),
calc((1 - var(--j)) * var(--step-size)),
0px);
}
}
@keyframes step5 {
from {
transform: translate3d(
calc((1 - var(--i)) * var(--step-size)),
calc((1 - var(--j)) * var(--step-size)),
0px);
}
to {
transform: translate3d(
calc((1 - var(--i)) * var(--step-size)),
calc((2 - var(--j)) * var(--step-size)),
0px);
}
}
@keyframes step8 {
from {
transform: translate3d(
calc((1 - var(--i)) * var(--step-size)),
calc((2 - var(--j)) * var(--step-size)),
0px);
}
to {
transform: translate3d(
calc((0 - var(--i)) * var(--step-size)),
calc((2 - var(--j)) * var(--step-size)),
0px);
}
}
@keyframes step7 {
from {
transform: translate3d(
calc((0 - var(--i)) * var(--step-size)),
calc((2 - var(--j)) * var(--step-size)),
0px);
}
to {
transform: translate3d(
calc((0 - var(--i)) * var(--step-size)),
calc((1 - var(--j)) * var(--step-size)),
0px);
}
}
@keyframes step4 {
from {
transform: translate3d(
calc((0 - var(--i)) * var(--step-size)),
calc((1 - var(--j)) * var(--step-size)),
0px);
}
to {
transform: translate3d(
calc((0 - var(--i)) * var(--step-size)),
calc((0 - var(--j)) * var(--step-size)),
0px);
}
}
@keyframes step1 {
from {
transform: translate3d(
calc((0 - var(--i)) * var(--step-size)),
calc((0 - var(--j)) * var(--step-size)),
0px);
}
to {
transform: translate3d(
calc((1 - var(--i)) * var(--step-size)),
calc((0 - var(--j)) * var(--step-size)),
0px);
}
}
@keyframes step2 {
from {
transform: translate3d(
calc((1 - var(--i)) * var(--step-size)),
calc((0 - var(--j)) * var(--step-size)),
0px);
}
to {
transform: translate3d(
calc((2 - var(--i)) * var(--step-size)),
calc((0 - var(--j)) * var(--step-size)),
0px);
}
}
@keyframes step3 {
from {
transform: translate3d(
calc((2 - var(--i)) * var(--step-size)),
calc((0 - var(--j)) * var(--step-size)),
0px);
}
to {
transform: translate3d(
calc((2 - var(--i)) * var(--step-size)),
calc((1 - var(--j)) * var(--step-size)),
0px);
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.