30 lines
664 B
CSS
30 lines
664 B
CSS
html, body {
|
|
display: grid;
|
|
}
|
|
|
|
html {
|
|
overflow: hidden;
|
|
height: 100%;
|
|
}
|
|
|
|
body {
|
|
--tmpl: repeat(var(--n), 1.125em);
|
|
grid-template: var(--tmpl)/var(--tmpl);
|
|
place-content: center;
|
|
}
|
|
|
|
.tile {
|
|
--m: calc(.5*(var(--n) - 1));
|
|
--abs-i: max(var(--m) - var(--i), var(--i) - var(--m));
|
|
--abs-j: max(var(--m) - var(--j), var(--j) - var(--m));
|
|
--rat: calc((var(--abs-i)*var(--abs-i) + var(--abs-j)*var(--abs-j))/var(--m)/var(--m));
|
|
transform: translate(var(--x), var(--y));
|
|
background: #000;
|
|
animation: a 2s cubic-bezier(0.65, 0, 0.35, 1) calc((var(--rat) - 2)*2s) infinite alternate;
|
|
}
|
|
|
|
@keyframes a {
|
|
0% {
|
|
transform: scale(0.3333333333);
|
|
}
|
|
} |