Skip to content

Instantly share code, notes, and snippets.

@jonathanhudak
Created July 24, 2014 08:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonathanhudak/dd0cfd876c8a121abcbb to your computer and use it in GitHub Desktop.
Save jonathanhudak/dd0cfd876c8a121abcbb to your computer and use it in GitHub Desktop.
A Pen by Jonathan Hudak.
.wrapper
- for (var x = 1; x < 4; x++)
.cube.parent
b.front
b.face.back
b.face.top
b.face.bottom
b.face.left
b.face.right
- for (var j = 1; j < 4; j++)
.cube.child
b.front
b.face.back
b.face.top
b.face.bottom
b.face.left
b.face.right
@keyframes spin {
100% {
transform: rotateX(720deg);
background: white;
}
}
html, body {
height: 100%;
background: black;
}
/* scene wrapper */
.wrapper{
height: 100%;
position:relative;
perspective: 20px;
top: 10%;
}
/* cube wrapper */
.cube{
position: relative;
margin: auto;
width: 50%;
height: 50%;
transform-style: preserve-3d;
animation: spin 20s infinite linear;
animation-direction: forward;
transition: all 1s linear;
transform: translateX(-50%);
@for $i from 1 through 15 {
&:nth-of-type(#{$i}) {
opacity: 0.1#{$i};
}
}
}
@for $i from 1 through 15 {
.cube.parent:nth-of-type(#{$i}) {
transform: rotateY(50deg);
}
}
/* outer cube */
b{
position:absolute;
width:200px;
height:200px;
display:block;
background:rgba(255,255,255,0.1);
box-shadow:inset 0 0 30px rgba(0,0,0,0.2);
font-size:20px;
text-align:center;
line-height:200px;
color:rgba(0,0,0,0.5);
font-family:sans-serif;
text-transform:uppercase;
transition: all 1s linear;
}
b.back{
transform: translateZ(-100px) rotateY(180deg);
}
b.right{
transform:rotateY(-270deg) translateX(100px);
transform-origin: top right;
}
b.left{
transform:rotateY(270deg) translateX(-100px);
transform-origin: center left;
}
b.top{
transform:rotateX(-90deg) translateY(-100px);
transform-origin: top center;
}
b.bottom{
transform:rotateX(90deg) translateY(100px);
transform-origin: bottom center;
}
b.front{
transform: translateZ(100px);
}
/* inner cube */
i{
position:absolute;
top:50px;
left:50px;
width:100px;
height:100px;
display:block;
background:url(http://i45.tinypic.com/muxvt1.png);
transition: all 1s linear;
}
i.front{
transform: translateZ(50px);
}
i.back{
transform: translateZ(-50px) rotateY(180deg);
}
i.bottom{
transform:rotateX(-90deg) translateY(50px);
transform-origin: left bottom;
}
i.left{
transform:rotateY(270deg) translateX(-50px);
transform-origin: center left;
}
i.right{
transform:rotateY(-270deg) translateX(50px);
transform-origin: top right;
}
i.top{
transform:rotateX(-270deg) translate(-40px 70%);
transform-origin: left top;
}
.face {
/* background: url(http://shabazz.builtbycivilization.com/3/assets/images/full-script.svg); */
border: 1px solid white;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment