New mission: revamp the portals to make them look actually tolerable to the eye. They are currently placeholders as of now.
The Gold Network: Soyworld | SNCApedia | SoyPlace


I'm not dead, just inactive for the moment. Faggot (talk) 20:16, 9 April 2026 (UTC)

Template:3DCube/style.css: Difference between revisions

From SNCApedia, the shit nobody cares about encyclopedia
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
/* Template:3DCube/style.css */
/* Template:3DCube/style.css
  2D matrix simulation of a rotating 3D cube
  No 3D CSS properties — sanitizer safe */
 
.scene {
.scene {
width: 200px;
    width: 200px;
height: 200px;
    height: 200px;
margin: 100px auto;
    margin: 120px auto;
position: relative;
    position: relative;
}
}


.cube {
.cube {
width: 100%;
    width: 100%;
height: 100%;
    height: 100%;
position: relative;
    position: relative;
}
}


.cube-face {
.cube-face {
position: absolute;
    position: absolute;
width: 200px;
    width: 200px;
height: 200px;
    height: 200px;
top: 0;
    top: 0;
left: 0;
    left: 0;
transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    overflow: hidden;
/* THESE TWO LINES FIX THE CONFUSING OVERLAP */
    background: transparent;
background-color: #ffffff;  
}
border: 2px solid #000000;  
 
/* Force images to fill each face */
.cube-face img {
    display: block;
    width: 200px !important;
    height: 200px !important;
    border: none !important;
    outline: none !important;
}
}


/* Bind each face to its projection */
/* z-index steps are set per keyframe as discrete jumps
  so faces stack correctly as they rotate into view */
 
.face-front  { animation: wall-front  8s linear infinite; }
.face-front  { animation: wall-front  8s linear infinite; }
.face-right  { animation: wall-right  8s linear infinite; }
.face-right  { animation: wall-right  8s linear infinite; }
.face-back  { animation: wall-back  8s linear infinite; }
.face-back  { animation: wall-back  8s linear infinite; }
.face-left  { animation: wall-left  8s linear infinite; }
.face-left  { animation: wall-left  8s linear infinite; }
.face-top    { animation: face-top    8s linear infinite; z-index: 4; }
.face-top    { z-index: 4; animation: face-top    8s linear infinite; }
.face-bottom { animation: face-bottom 8s linear infinite; z-index: 0; }
.face-bottom { z-index: 0; animation: face-bottom 8s linear infinite; }


@keyframes wall-front {
@keyframes wall-front {
0%   { transform: matrix(1, 0, 0, 0.866, 0, 50); z-index: 6; }
    0%   { transform: matrix(1,     0,     0, 0.866,   0,   50); z-index: 6; }
12.5%{ transform: matrix(0.707, -0.354, 0, 0.866, 70.7, 35.4); z-index: 5; }
    12.5% { transform: matrix(0.707, -0.354, 0, 0.866, 70.7, 35.4); z-index: 5; }
25% { transform: matrix(0, -0.5, 0, 0.866, 100, 0); z-index: 3; }
    25%   { transform: matrix(0,     -0.5,   0, 0.866, 100,   0);   z-index: 3; }
37.5%{ transform: matrix(-0.707, -0.354, 0, 0.866, 70.7, -35.4); z-index: 2; }
    37.5% { transform: matrix(-0.707,-0.354, 0, 0.866, 70.7,-35.4); z-index: 2; }
50% { transform: matrix(-1, 0, 0, 0.866, 0, -50); z-index: 1; }
    50%   { transform: matrix(-1,     0,     0, 0.866,   0, -50); z-index: 1; }
62.5%{ transform: matrix(-0.707, 0.354, 0, 0.866, -70.7, -35.4); z-index: 2; }
    62.5% { transform: matrix(-0.707, 0.354, 0, 0.866, -70.7,-35.4); z-index: 2; }
75% { transform: matrix(0, 0.5, 0, 0.866, -100, 0); z-index: 3; }
    75%   { transform: matrix(0,     0.5,   0, 0.866, -100,   0);   z-index: 3; }
87.5%{ transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
    87.5% { transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
100% { transform: matrix(1, 0, 0, 0.866, 0, 50); z-index: 6; }
    100% { transform: matrix(1,     0,     0, 0.866,   0,   50); z-index: 6; }
}
}


@keyframes wall-right {
@keyframes wall-right {
0%   { transform: matrix(0, -0.5, 0, 0.866, 100, 0); z-index: 3; }
    0%   { transform: matrix(0,   -0.5,   0, 0.866, 100,   0);   z-index: 3; }
12.5%{ transform: matrix(-0.707, -0.354, 0, 0.866, 70.7, -35.4); z-index: 2; }
    12.5% { transform: matrix(-0.707,-0.354,0, 0.866,   70.7,-35.4); z-index: 2; }
25% { transform: matrix(-1, 0, 0, 0.866, 0, -50); z-index: 1; }
    25%   { transform: matrix(-1,   0,     0, 0.866,   0, -50);   z-index: 1; }
37.5%{ transform: matrix(-0.707, 0.354, 0, 0.866, -70.7, -35.4); z-index: 2; }
    37.5% { transform: matrix(-0.707,0.354, 0, 0.866, -70.7,-35.4); z-index: 2; }
50% { transform: matrix(0, 0.5, 0, 0.866, -100, 0); z-index: 3; }
    50%   { transform: matrix(0,     0.5,   0, 0.866, -100,   0);   z-index: 3; }
62.5%{ transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
    62.5% { transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
75% { transform: matrix(1, 0, 0, 0.866, 0, 50); z-index: 6; }
    75%   { transform: matrix(1,     0,     0, 0.866,   0,   50);   z-index: 6; }
87.5%{ transform: matrix(0.707, -0.354, 0, 0.866, 70.7, 35.4); z-index: 5; }
    87.5% { transform: matrix(0.707,-0.354, 0, 0.866,   70.7, 35.4); z-index: 5; }
100% { transform: matrix(0, -0.5, 0, 0.866, 100, 0); z-index: 3; }
    100% { transform: matrix(0,   -0.5,   0, 0.866, 100,   0);   z-index: 3; }
}
}


@keyframes wall-back {
@keyframes wall-back {
0%   { transform: matrix(-1, 0, 0, 0.866, 0, -50); z-index: 1; }
    0%   { transform: matrix(-1,     0,     0, 0.866,   0, -50); z-index: 1; }
12.5%{ transform: matrix(-0.707, 0.354, 0, 0.866, -70.7, -35.4); z-index: 2; }
    12.5% { transform: matrix(-0.707, 0.354, 0, 0.866, -70.7,-35.4); z-index: 2; }
25% { transform: matrix(0, 0.5, 0, 0.866, -100, 0); z-index: 3; }
    25%   { transform: matrix(0,     0.5,   0, 0.866, -100,   0);   z-index: 3; }
37.5%{ transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
    37.5% { transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
50% { transform: matrix(1, 0, 0, 0.866, 0, 50); z-index: 6; }
    50%   { transform: matrix(1,     0,     0, 0.866,   0,   50); z-index: 6; }
62.5%{ transform: matrix(0.707, -0.354, 0, 0.866, 70.7, 35.4); z-index: 5; }
    62.5% { transform: matrix(0.707, -0.354, 0, 0.866, 70.7, 35.4); z-index: 5; }
75% { transform: matrix(0, -0.5, 0, 0.866, 100, 0); z-index: 3; }
    75%   { transform: matrix(0,     -0.5,   0, 0.866, 100,   0);   z-index: 3; }
87.5%{ transform: matrix(-0.707, -0.354, 0, 0.866, 70.7, -35.4); z-index: 2; }
    87.5% { transform: matrix(-0.707,-0.354, 0, 0.866, 70.7,-35.4); z-index: 2; }
100% { transform: matrix(-1, 0, 0, 0.866, 0, -50); z-index: 1; }
    100% { transform: matrix(-1,     0,     0, 0.866,   0, -50); z-index: 1; }
}
}


@keyframes wall-left {
@keyframes wall-left {
0%   { transform: matrix(0, 0.5, 0, 0.866, -100, 0); z-index: 3; }
    0%   { transform: matrix(0,     0.5,   0, 0.866, -100,   0);   z-index: 3; }
12.5%{ transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
    12.5% { transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
25% { transform: matrix(1, 0, 0, 0.866, 0, 50); z-index: 6; }
    25%   { transform: matrix(1,     0,     0, 0.866,   0,   50); z-index: 6; }
37.5%{ transform: matrix(0.707, -0.354, 0, 0.866, 70.7, 35.4); z-index: 5; }
    37.5% { transform: matrix(0.707,-0.354, 0, 0.866, 70.7, 35.4); z-index: 5; }
50% { transform: matrix(0, -0.5, 0, 0.866, 100, 0); z-index: 3; }
    50%   { transform: matrix(0,   -0.5,   0, 0.866, 100,   0);   z-index: 3; }
62.5%{ transform: matrix(-0.707, -0.354, 0, 0.866, 70.7, -35.4); z-index: 2; }
    62.5% { transform: matrix(-0.707,-0.354,0, 0.866, 70.7,-35.4); z-index: 2; }
75% { transform: matrix(-1, 0, 0, 0.866, 0, -50); z-index: 1; }
    75%   { transform: matrix(-1,   0,     0, 0.866,   0, -50); z-index: 1; }
87.5%{ transform: matrix(-0.707, 0.354, 0, 0.866, -70.7, -35.4); z-index: 2; }
    87.5% { transform: matrix(-0.707,0.354, 0, 0.866, -70.7,-35.4); z-index: 2; }
100% { transform: matrix(0, 0.5, 0, 0.866, -100, 0); z-index: 3; }
    100% { transform: matrix(0,     0.5,   0, 0.866, -100,   0);   z-index: 3; }
}
}


@keyframes face-top {
@keyframes face-top {
0%   { transform: matrix(1, 0, 0, 0.5, 0, -86.6); }
    0%   { transform: matrix(1,     0,     0.707, 0.354,   0, -86.6); }
12.5%{ transform: matrix(0.707, -0.354, 0.707, 0.354, 0, -86.6); }
    12.5% { transform: matrix(0.707,-0.354, 0.707, 0.354,   0, -86.6); }
25% { transform: matrix(0, -0.5, 1, 0, 0, -86.6); }
    25%   { transform: matrix(0,   -0.5,   1,     0,       0, -86.6); }
37.5%{ transform: matrix(-0.707, -0.354, 0.707, -0.354, 0, -86.6); }
    37.5% { transform: matrix(-0.707,-0.354, 0.707,-0.354,   0, -86.6); }
50% { transform: matrix(-1, 0, 0, -0.5, 0, -86.6); }
    50%   { transform: matrix(-1,   0,     0,   -0.5,     0, -86.6); }
62.5%{ transform: matrix(-0.707, 0.354, -0.707, -0.354, 0, -86.6); }
    62.5% { transform: matrix(-0.707,0.354, -0.707,-0.354,   0, -86.6); }
75% { transform: matrix(0, 0.5, -1, 0, 0, -86.6); }
    75%   { transform: matrix(0,     0.5,   -1,     0,       0, -86.6); }
87.5%{ transform: matrix(0.707, 0.354, -0.707, 0.354, 0, -86.6); }
    87.5% { transform: matrix(0.707, 0.354, -0.707, 0.354,   0, -86.6); }
100% { transform: matrix(1, 0, 0, 0.5, 0, -86.6); }
    100% { transform: matrix(1,     0,     0.707, 0.354,   0, -86.6); }
}
}


@keyframes face-bottom {
@keyframes face-bottom {
0%   { transform: matrix(1, 0, 0, 0.5, 0, 86.6); }
    0%   { transform: matrix(1,     0,     0.707, 0.354,   0, 86.6); }
12.5%{ transform: matrix(0.707, -0.354, 0.707, 0.354, 0, 86.6); }
    12.5% { transform: matrix(0.707,-0.354, 0.707, 0.354,   0, 86.6); }
25% { transform: matrix(0, -0.5, 1, 0, 0, 86.6); }
    25%   { transform: matrix(0,   -0.5,   1,     0,       0, 86.6); }
37.5%{ transform: matrix(-0.707, -0.354, 0.707, -0.354, 0, 86.6); }
    37.5% { transform: matrix(-0.707,-0.354, 0.707,-0.354,   0, 86.6); }
50% { transform: matrix(-1, 0, 0, -0.5, 0, 86.6); }
    50%   { transform: matrix(-1,   0,     0,   -0.5,     0, 86.6); }
62.5%{ transform: matrix(-0.707, 0.354, -0.707, -0.354, 0, 86.6); }
    62.5% { transform: matrix(-0.707,0.354, -0.707,-0.354,   0, 86.6); }
75% { transform: matrix(0, 0.5, -1, 0, 0, 86.6); }
    75%   { transform: matrix(0,     0.5,   -1,     0,       0, 86.6); }
87.5%{ transform: matrix(0.707, 0.354, -0.707, 0.354, 0, 86.6); }
    87.5% { transform: matrix(0.707, 0.354, -0.707, 0.354,   0, 86.6); }
100% { transform: matrix(1, 0, 0, 0.5, 0, 86.6); }
    100% { transform: matrix(1,     0,     0.707, 0.354,   0, 86.6); }
}
}

Revision as of 15:27, 12 April 2026

/* Template:3DCube/style.css
   2D matrix simulation of a rotating 3D cube
   No 3D CSS properties — sanitizer safe */

.scene {
    width: 200px;
    height: 200px;
    margin: 120px auto;
    position: relative;
}

.cube {
    width: 100%;
    height: 100%;
    position: relative;
}

.cube-face {
    position: absolute;
    width: 200px;
    height: 200px;
    top: 0;
    left: 0;
    transform-origin: 50% 50%;
    overflow: hidden;
    background: transparent;
}

/* Force images to fill each face */
.cube-face img {
    display: block;
    width: 200px !important;
    height: 200px !important;
    border: none !important;
    outline: none !important;
}

/* z-index steps are set per keyframe as discrete jumps
   so faces stack correctly as they rotate into view */

.face-front  { animation: wall-front  8s linear infinite; }
.face-right  { animation: wall-right  8s linear infinite; }
.face-back   { animation: wall-back   8s linear infinite; }
.face-left   { animation: wall-left   8s linear infinite; }
.face-top    { z-index: 4; animation: face-top    8s linear infinite; }
.face-bottom { z-index: 0; animation: face-bottom 8s linear infinite; }

@keyframes wall-front {
    0%    { transform: matrix(1,     0,      0, 0.866,    0,   50); z-index: 6; }
    12.5% { transform: matrix(0.707, -0.354, 0, 0.866,  70.7, 35.4); z-index: 5; }
    25%   { transform: matrix(0,     -0.5,   0, 0.866,  100,   0);   z-index: 3; }
    37.5% { transform: matrix(-0.707,-0.354, 0, 0.866,  70.7,-35.4); z-index: 2; }
    50%   { transform: matrix(-1,     0,     0, 0.866,    0,  -50);  z-index: 1; }
    62.5% { transform: matrix(-0.707, 0.354, 0, 0.866, -70.7,-35.4); z-index: 2; }
    75%   { transform: matrix(0,      0.5,   0, 0.866, -100,   0);   z-index: 3; }
    87.5% { transform: matrix(0.707,  0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
    100%  { transform: matrix(1,      0,     0, 0.866,    0,   50);  z-index: 6; }
}

@keyframes wall-right {
    0%    { transform: matrix(0,    -0.5,   0, 0.866,  100,    0);   z-index: 3; }
    12.5% { transform: matrix(-0.707,-0.354,0, 0.866,   70.7,-35.4); z-index: 2; }
    25%   { transform: matrix(-1,    0,     0, 0.866,    0,  -50);   z-index: 1; }
    37.5% { transform: matrix(-0.707,0.354, 0, 0.866,  -70.7,-35.4); z-index: 2; }
    50%   { transform: matrix(0,     0.5,   0, 0.866, -100,    0);   z-index: 3; }
    62.5% { transform: matrix(0.707, 0.354, 0, 0.866,  -70.7, 35.4); z-index: 5; }
    75%   { transform: matrix(1,     0,     0, 0.866,    0,   50);   z-index: 6; }
    87.5% { transform: matrix(0.707,-0.354, 0, 0.866,   70.7, 35.4); z-index: 5; }
    100%  { transform: matrix(0,    -0.5,   0, 0.866,  100,    0);   z-index: 3; }
}

@keyframes wall-back {
    0%    { transform: matrix(-1,     0,     0, 0.866,    0,  -50);  z-index: 1; }
    12.5% { transform: matrix(-0.707, 0.354, 0, 0.866, -70.7,-35.4); z-index: 2; }
    25%   { transform: matrix(0,      0.5,   0, 0.866, -100,   0);   z-index: 3; }
    37.5% { transform: matrix(0.707,  0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
    50%   { transform: matrix(1,      0,     0, 0.866,    0,   50);  z-index: 6; }
    62.5% { transform: matrix(0.707, -0.354, 0, 0.866,  70.7, 35.4); z-index: 5; }
    75%   { transform: matrix(0,     -0.5,   0, 0.866,  100,   0);   z-index: 3; }
    87.5% { transform: matrix(-0.707,-0.354, 0, 0.866,  70.7,-35.4); z-index: 2; }
    100%  { transform: matrix(-1,     0,     0, 0.866,    0,  -50);  z-index: 1; }
}

@keyframes wall-left {
    0%    { transform: matrix(0,     0.5,   0, 0.866, -100,   0);   z-index: 3; }
    12.5% { transform: matrix(0.707, 0.354, 0, 0.866, -70.7, 35.4); z-index: 5; }
    25%   { transform: matrix(1,     0,     0, 0.866,    0,   50);  z-index: 6; }
    37.5% { transform: matrix(0.707,-0.354, 0, 0.866,  70.7, 35.4); z-index: 5; }
    50%   { transform: matrix(0,    -0.5,   0, 0.866,  100,   0);   z-index: 3; }
    62.5% { transform: matrix(-0.707,-0.354,0, 0.866,  70.7,-35.4); z-index: 2; }
    75%   { transform: matrix(-1,    0,     0, 0.866,    0,  -50);  z-index: 1; }
    87.5% { transform: matrix(-0.707,0.354, 0, 0.866, -70.7,-35.4); z-index: 2; }
    100%  { transform: matrix(0,     0.5,   0, 0.866, -100,   0);   z-index: 3; }
}

@keyframes face-top {
    0%    { transform: matrix(1,     0,      0.707, 0.354,   0, -86.6); }
    12.5% { transform: matrix(0.707,-0.354,  0.707, 0.354,   0, -86.6); }
    25%   { transform: matrix(0,    -0.5,    1,     0,       0, -86.6); }
    37.5% { transform: matrix(-0.707,-0.354, 0.707,-0.354,   0, -86.6); }
    50%   { transform: matrix(-1,    0,      0,    -0.5,     0, -86.6); }
    62.5% { transform: matrix(-0.707,0.354, -0.707,-0.354,   0, -86.6); }
    75%   { transform: matrix(0,     0.5,   -1,     0,       0, -86.6); }
    87.5% { transform: matrix(0.707, 0.354, -0.707, 0.354,   0, -86.6); }
    100%  { transform: matrix(1,     0,      0.707, 0.354,   0, -86.6); }
}

@keyframes face-bottom {
    0%    { transform: matrix(1,     0,      0.707, 0.354,   0, 86.6); }
    12.5% { transform: matrix(0.707,-0.354,  0.707, 0.354,   0, 86.6); }
    25%   { transform: matrix(0,    -0.5,    1,     0,       0, 86.6); }
    37.5% { transform: matrix(-0.707,-0.354, 0.707,-0.354,   0, 86.6); }
    50%   { transform: matrix(-1,    0,      0,    -0.5,     0, 86.6); }
    62.5% { transform: matrix(-0.707,0.354, -0.707,-0.354,   0, 86.6); }
    75%   { transform: matrix(0,     0.5,   -1,     0,       0, 86.6); }
    87.5% { transform: matrix(0.707, 0.354, -0.707, 0.354,   0, 86.6); }
    100%  { transform: matrix(1,     0,      0.707, 0.354,   0, 86.6); }
}