A Pen by Ricardo Oliva Alonso on CodePen.
Created
November 4, 2024 09:49
-
-
Save fdciabdul/77867d45838d729de278f574e09f8709 to your computer and use it in GitHub Desktop.
3D Room - Pure CSS Art
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
div.house#h | |
div.h-lights | |
div.h-light | |
div.h-light | |
div.h-light | |
div.h-light | |
div.h-light | |
div.h-light | |
div.h-shadow | |
//--------------------- | |
div.alt | |
div.alt__front.face | |
div.alt__back.face | |
div.alt__right.face | |
div.alt__left.face | |
div.alt__top.face | |
div.light | |
div.light | |
div.light | |
div.light | |
div.light | |
div.light | |
div.light | |
div.light | |
div.light | |
div.alt__bottom.face | |
div.alb | |
div.alb__front.face | |
div.alb__back.face | |
div.alb__right.face | |
div.alb__left.face | |
div.alb__top.face | |
div.alb__bottom.face | |
div.arb | |
div.arb__front.face | |
div.arb__back.face | |
div.arb__right.face | |
div.arb__left.face | |
div.arb__top.face | |
div.arb__bottom.face | |
//--------------------- | |
div.blt | |
div.blt__front.face | |
div.blt__back.face | |
div.blt__right.face | |
div.blt__left.face | |
div.blt__top.face | |
div.blt__bottom.face | |
div.blt2 | |
div.blt2__front.face | |
div.blt2__back.face | |
div.blt2__right.face | |
div.blt2__left.face | |
div.blt2__top.face | |
div.blt2__bottom.face | |
div.blb | |
div.blb__front.face | |
div.blb__back.face | |
div.blb__right.face | |
div.blb__left.face | |
div.blb__top.face | |
div.blb__bottom.face | |
div.blb2 | |
div.blb2__front.face | |
div.blb2__back.face | |
div.blb2__right.face | |
div.blb2__left.face | |
div.blb2__top.face | |
div.blb2__bottom.face | |
//--------------------- | |
div.puerta-c | |
div.puerta | |
div.puerta__front.face | |
div.puerta__back.face | |
div.puerta__right.face | |
div.puerta__left.face | |
div.puerta__top.face | |
div.puerta__bottom.face | |
div.puerta-l | |
div.puerta-l__front.face | |
div.puerta-l__back.face | |
div.puerta-l__right.face | |
div.puerta-l__left.face | |
div.puerta-l__top.face | |
div.puerta-l__bottom.face | |
div.puerta-r | |
div.puerta-r__front.face | |
div.puerta-r__back.face | |
div.puerta-r__right.face | |
div.puerta-r__left.face | |
div.puerta-r__top.face | |
div.puerta-r__bottom.face | |
div.puerta-t | |
div.puerta-t__front.face | |
div.puerta-t__back.face | |
div.puerta-t__right.face | |
div.puerta-t__left.face | |
div.puerta-t__top.face | |
div.puerta-t__bottom.face | |
div.cuadro-l | |
div.cuadro-l__front.face | |
div.cuadro-l__back.face | |
div.cuadro-l__right.face | |
div.cuadro-l__left.face | |
div.cuadro-l__top.face | |
div.cuadro-l__bottom.face | |
div.cuadro-r | |
div.cuadro-r__front.face | |
div.cuadro-r__back.face | |
div.cuadro-r__right.face | |
div.cuadro-r__left.face | |
div.cuadro-r__top.face | |
div.cuadro-r__bottom.face | |
div.librero | |
div.librero__front.face | |
div.librero__back.face | |
div.librero__right.face | |
div.librero__left.face | |
div.librero__top.face | |
div.librero__bottom.face | |
div.libros | |
- let lb = 0 | |
while lb < 6 | |
div.libro | |
div.libro__front.face | |
div.libro__back.face | |
div.libro__right.face | |
div.libro__left.face | |
div.libro__top.face | |
div.libro__bottom.face | |
- lb++ | |
div.fotos | |
- let ft = 0 | |
while ft < 2 | |
div.foto | |
div.foto__front.face | |
div.foto__back.face | |
div.foto__right.face | |
div.foto__left.face | |
div.foto__top.face | |
div.foto__bottom.face | |
- ft++ | |
div.cajas | |
- let cj = 0 | |
while cj < 3 | |
div.caja | |
div.caja__front.face | |
div.caja__back.face | |
div.caja__right.face | |
div.caja__left.face | |
div.caja__top.face | |
div.caja__bottom.face | |
- cj++ | |
div.tv | |
div.tv__front.face | |
div.tv__back.face | |
div.tv__right.face | |
div.tv__left.face | |
div.tv__top.face | |
div.tv__bottom.face | |
div.repisa-t | |
div.repisa-t__front.face | |
div.repisa-t__back.face | |
div.repisa-t__right.face | |
div.repisa-t__left.face | |
div.repisa-t__top.face | |
div.repisa-t__bottom.face | |
div.repisa-b | |
div.repisa-b__front.face | |
div.repisa-b__back.face | |
div.repisa-b__right.face | |
div.repisa-b__left.face | |
div.repisa-b__top.face | |
div.repisa-b__bottom.face | |
div.bocina-l | |
div.bocina-l__front.face | |
div.bocina-l__back.face | |
div.bocina-l__right.face | |
div.bocina-l__left.face | |
div.bocina-l__top.face | |
div.bocina-l__bottom.face | |
div.bocina-r | |
div.bocina-r__front.face | |
div.bocina-r__back.face | |
div.bocina-r__right.face | |
div.bocina-r__left.face | |
div.bocina-r__top.face | |
div.bocina-r__bottom.face | |
div.muro | |
div.muro__front.face | |
div.muro__back.face | |
div.muro__right.face | |
div.muro__left.face | |
div.muro__top.face | |
div.muro__bottom.face | |
div.sillon-c | |
div.sillon-b | |
div.sillon-b__front.face | |
div.sillon-b__back.face | |
div.sillon-b__right.face | |
div.sillon-b__left.face | |
div.sillon-b__top.face | |
div.sillon-b__bottom.face | |
div.sillon-t | |
div.sillon-t__front.face | |
div.sillon-t__back.face | |
div.sillon-t__right.face | |
div.sillon-t__left.face | |
div.sillon-t__top.face | |
div.sillon-t__bottom.face | |
div.sillon-l | |
div.sillon-l__front.face | |
div.sillon-l__back.face | |
div.sillon-l__right.face | |
div.sillon-l__left.face | |
div.sillon-l__top.face | |
div.sillon-l__bottom.face | |
div.sillon-r | |
div.sillon-r__front.face | |
div.sillon-r__back.face | |
div.sillon-r__right.face | |
div.sillon-r__left.face | |
div.sillon-r__top.face | |
div.sillon-r__bottom.face | |
div.mesa-c | |
div.mesa | |
div.mesa__front.face | |
div.mesa__back.face | |
div.mesa__right.face | |
div.mesa__left.face | |
div.mesa__top.face | |
div.mesa__bottom.face | |
- let np = 0 | |
while np < 4 | |
div.mesa-p | |
div.mesa-p__front.face | |
div.mesa-p__back.face | |
div.mesa-p__right.face | |
div.mesa-p__left.face | |
div.mesa-p__top.face | |
div.mesa-p__bottom.face | |
- np++ | |
div.mesa-shadow | |
div.tablet | |
div.tablet__front.face | |
div.tablet__back.face | |
div.tablet__right.face | |
div.tablet__left.face | |
div.tablet__top.face | |
div.tablet__bottom.face |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Designed by: Jarlan Perez | |
Original image: https://www.artstation.com/artwork/VdBllN | |
*/ | |
const h = document.querySelector("#h"); | |
const b = document.body; | |
let base = (e) => { | |
var x = e.pageX / window.innerWidth - 0.5; | |
var y = e.pageY / window.innerHeight - 0.5; | |
h.style.transform = ` | |
perspective(90vw) | |
rotateX(${ y * 4 + 75}deg) | |
rotateZ(${ -x * 12 + 45}deg) | |
translateZ(-9vw) | |
`; | |
} | |
b.addEventListener("pointermove", base); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// $bg-1: #322e4a; | |
$bg-1: hsl(250, 28%, 11%); | |
$bg-2: darken($bg-1, 15); | |
$white-1: #FBFAFE; | |
$white-2: #9E99C1; | |
$white-3: #383358; | |
$white-4: #282347; | |
$black-1: #1f2158; | |
$black-2: darken($black-1, 10); | |
$black-3: darken($black-2, 5); | |
// $neon-1: #5474FB; | |
// $neon-2: #283CD2; | |
$neon-1: hsl(220, 95%, 65%); | |
$neon-2: hsl(210, 68%, 49%); | |
$cuadro-1: #D51E24; | |
$cuadro-2: #0F1110; | |
/***********************/ | |
/***********************/ | |
@mixin cube($width, $height, $depth) { | |
&__front{ @include cube-front($width, $height, $depth); } | |
&__back{ @include cube-back($width, $height, $depth); } | |
&__right{ @include cube-right($width, $height, $depth); } | |
&__left{ @include cube-left($width, $height, $depth); } | |
&__top{ @include cube-top($width, $height, $depth);} | |
&__bottom{ @include cube-bottom($width, $height, $depth); } | |
} | |
/************************/ | |
/* Mixin para crear cubo ( Caras siempre al frente ) */ | |
/************************/ | |
@mixin cube-front($width, $height, $depth) { | |
width: $width; | |
height: $height; | |
transform-origin: bottom left; | |
transform: rotateX(-90deg) translateZ( -($height - ($depth * 2) ) ); | |
} | |
@mixin cube-back($width, $height, $depth) { | |
width: $width; | |
height: $height; | |
transform-origin: top left; | |
transform: rotateX(-90deg) rotateY(180deg) translateX(-$width) translateY(-$height) ; | |
} | |
@mixin cube-right($width, $height, $depth) { | |
width: $depth * 2; | |
height: $height; | |
transform-origin: top left; | |
transform: rotateY(90deg) rotateZ(-90deg) translateZ($width) translateX(-$depth * 2) translateY(-$height); | |
} | |
@mixin cube-left($width, $height, $depth) { | |
width: $depth * 2; | |
height: $height; | |
transform-origin: top left; | |
transform: rotateY(-90deg) rotateZ(90deg) translateY(-$height); | |
} | |
@mixin cube-top($width, $height, $depth) { | |
width: $width; | |
height: $depth * 2; | |
transform-origin: top left; | |
transform: translateZ($height) ; | |
} | |
@mixin cube-bottom($width, $height, $depth) { | |
width: $width; | |
height: $depth * 2; | |
transform-origin: top left; | |
transform: rotateY(180deg) translateX(-$width); | |
} | |
/***********************/ | |
/***********************/ | |
@mixin face-ani($animation, $time, $side, $width-el, $height-el, $depth-el) { | |
animation: #{$animation} #{$time} infinite ease; | |
@keyframes #{$animation} { | |
0%, 15%, 45%, 60%, 62%, 68%{ | |
@if $side == "cube-front" { @include cube-front($width-el, $height-el, $depth-el); } | |
@else if $side == "cube-back" { @include cube-back($width-el, $height-el, $depth-el); } | |
@else if $side == "cube-right" { @include cube-right($width-el, $height-el, $depth-el); } | |
@else if $side == "cube-left" { @include cube-left($width-el, $height-el, $depth-el); } | |
@else if $side == "cube-top" { @include cube-top($width-el, $height-el, $depth-el); } | |
} | |
20%, 40%, 58%, 64%, 70%, 100%{ | |
@if $side == "cube-front" { @include cube-front($width-el, $height-finish, $depth-el); } | |
@else if $side == "cube-back" { @include cube-back($width-el, $height-finish, $depth-el); } | |
@else if $side == "cube-right" { @include cube-right($width-el, $height-finish, $depth-el); } | |
@else if $side == "cube-left" { @include cube-left($width-el, $height-finish, $depth-el); } | |
@else if $side == "cube-top" { @include cube-top($width-el, $height-finish, $depth-el); } | |
} | |
} | |
} | |
/**/ | |
*, *::after, *::before { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
user-select: none; | |
transform-style: preserve-3d; | |
-webkit-tap-highlight-color: transparent; | |
} | |
/* Generic */ | |
body{ | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
width: 100%; | |
height: 100vh; | |
overflow: hidden; | |
cursor: pointer; | |
background-image: radial-gradient(circle, $bg-1, darken($bg-1, 20) ); | |
} | |
.face{ position: absolute; } | |
/***************/ | |
.house{ | |
position: absolute; | |
width: 28vw; | |
height: 28vw; | |
transform: | |
perspective(90vw) | |
rotateX(75deg) | |
rotateZ(45deg) | |
translateZ(-9vw) | |
; | |
} | |
.h-shadow{ | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
box-shadow: | |
1.5vw -3vw 3vw $bg-2, | |
1.5vw .5vw 1.5vw $bg-2 | |
; | |
} | |
.h-lights{ | |
position: absolute; | |
top: 50%; | |
left: 50%; | |
transform: translateX(-50%) translateY(-50%); | |
width: 45vw; | |
height: 45vw; | |
} | |
.h-light{ | |
position: absolute; | |
&:nth-of-type(1){ | |
bottom: 5vw; | |
right: 0; | |
width: 14vw; | |
height: 14vw; | |
border-radius: 50%; | |
background-image: radial-gradient( lighten($bg-1, 2) , transparent); | |
filter: blur(1vw); | |
} | |
&:nth-of-type(2){ | |
bottom: 18vw; | |
right: -1vw; | |
width: 2vw; | |
height: 12vw; | |
border-radius: 50%; | |
transform: rotateZ(-50deg); | |
background-image: radial-gradient( rgba($neon-1, .45) 50%, rgba($neon-2, .45), transparent); | |
box-shadow: -1vw -1vw 2vw 1vw rgba(lighten($neon-1, 10), .1); | |
filter: blur(1vw); | |
} | |
&:nth-of-type(3){ | |
bottom: -2vw; | |
right: 17vw; | |
width: 5vw; | |
height: 12vw; | |
border-radius: 50%; | |
transform: rotateZ(-50deg); | |
background-image: radial-gradient( rgba($neon-1, .5) 50%, rgba($neon-2, .5), transparent); | |
filter: blur(2vw); | |
&::before, | |
&::after{ | |
content: ''; | |
position: absolute; | |
width: 200%; | |
top: -6vw; | |
height: 400%; | |
background-image: linear-gradient(to bottom, rgba($neon-2, .1), rgba($neon-1, .1), transparent); | |
border-top-left-radius: 10vw; | |
border-top-right-radius: 10vw; | |
filter: blur(1.5vw); | |
} | |
&::before{ | |
right: -50%; | |
transform-origin: top right; | |
transform: rotateZ(15deg); | |
box-shadow: -2vw -2vw 0 rgba($neon-1, .075); | |
} | |
&::after{ | |
left: -50%; | |
transform-origin: top left; | |
transform: rotateZ(-15deg); | |
box-shadow: 2vw -2vw 0 rgba($neon-1, .075); | |
} | |
} | |
&:nth-of-type(4){ | |
bottom: 5vw; | |
left: 8vw; | |
width: 28vw; | |
height: 4vw; | |
transform-origin: top left; | |
transform: skewX(58deg); | |
background-image: linear-gradient(to right, rgba($neon-1, .075) 10%, transparent 25%, transparent, rgba($bg-2, .15)); | |
filter: blur(.25vw); | |
} | |
&:nth-of-type(6){ | |
bottom: 14vw; | |
right: 2vw; | |
width: 8vw; | |
height: 16vw; | |
transform-origin: bottom left; | |
transform: skewY(49deg); | |
background-image: linear-gradient(to left, rgba(darken(red, 50), .1), rgba(darken(red, 50), .7) ); | |
filter: blur(.35vw); | |
} | |
} | |
/***************/ | |
/***************/ | |
.alt{ | |
$width-el: 27vw; | |
$height-el: .5vw; | |
$depth-el: 13.5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
top: 0; | |
width: 27vw; | |
height: 27vw; | |
&__front{ background-color: $white-2; } | |
&__back{ background-color: $white-3; } | |
&__right{ background-color: $white-3; } | |
&__left{ background-color: $white-1; } | |
&__top{ | |
background-image: linear-gradient(to bottom, $black-3, $white-3 , $white-2); | |
.light:nth-of-type(1){ | |
position: absolute; | |
height: 100%; | |
width: 100%; | |
background-image: linear-gradient(to bottom, rgba( darken($neon-2, 25), .75), rgba($neon-1, .75), transparent); | |
} | |
.light:nth-of-type(2){ | |
position: absolute; | |
left: 4vw; | |
height: 100%; | |
width: 6vw; | |
background-image: linear-gradient(to bottom, transparent 20%, rgba($neon-2, .75) , rgba($neon-1, .25) 80%); | |
filter: blur(.1vw); | |
} | |
.light:nth-of-type(3){ | |
position: absolute; | |
bottom: 10vw; | |
left: 5vw; | |
width: 6vw; | |
height: 3vw; | |
border-radius: 50%; | |
transform: rotateZ(42deg); | |
background-image: radial-gradient( rgba( lighten($neon-1, 10), .75) 50%, rgba( darken($neon-2, 10), .75)); | |
filter: blur(.55vw); | |
} | |
.light:nth-of-type(4){ | |
position: absolute; | |
bottom: 7vw; | |
left: 4vw; | |
width: 8.5vw; | |
height: 2vw; | |
border-radius: 50%; | |
transform: rotateZ(40deg); | |
background-image: radial-gradient( rgba( lighten($neon-1, 10), .75) 50%, rgba( darken($neon-2, 10), .75)); | |
filter: blur(.55vw); | |
} | |
.light:nth-of-type(5){ | |
position: absolute; | |
bottom: 3.5vw; | |
left: 4.5vw; | |
width: 6vw; | |
height: 2vw; | |
border-radius: 50%; | |
transform: rotateZ(40deg); | |
background-image: radial-gradient( rgba( lighten($neon-1, 12), .75) 50%, rgba( darken($neon-2, 10), .75)); | |
filter: blur(.75vw); | |
} | |
.light:nth-of-type(6){ | |
position: absolute; | |
bottom: 3vw; | |
left: .5vw; | |
width: 4vw; | |
height: 2vw; | |
border-radius: 50%; | |
transform: rotateZ(40deg); | |
background-image: radial-gradient( rgba( lighten($neon-1, 12), .75) 50%, rgba( darken($neon-2, 10), .75)); | |
filter: blur(.35vw); | |
} | |
.light:nth-of-type(7){ | |
position: absolute; | |
bottom: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to right, darken($black-3, 10), $neon-1 10%, transparent 20%); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 20%; | |
height: 100%; | |
background-image: linear-gradient(to right, rgba(darken($neon-1, 25), .6), transparent 60%); | |
} | |
&::after{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 20%; | |
background-image: linear-gradient(to bottom, rgba(darken($neon-1, 20), .5), transparent 60%); | |
} | |
} | |
.light:nth-of-type(8){ | |
position: absolute; | |
bottom: 5vw; | |
left: 10vw; | |
width: 6vw; | |
height: 4vw; | |
border-radius: 50%; | |
transform: rotateZ(40deg); | |
background-image: radial-gradient( rgba( lighten($white-1, 12), .1) 50%, rgba( darken($white-2, 10), .1)); | |
filter: blur(.8vw); | |
} | |
} | |
&__bottom{ background-color: $white-3; } | |
} | |
.alb{ | |
$width-el: 27vw; | |
$height-el: 2vw; | |
$depth-el: .5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
bottom: 0; | |
width: 27vw; | |
height: 1vw; | |
&__front{ background-image: linear-gradient(to right, $white-2 40%, darken($white-2, 5) ); } | |
&__back{ background-color: $white-3; } | |
&__right{ background-color: $white-3; } | |
&__left{ background-color: $white-1; } | |
&__top{ background-image: linear-gradient(to right, $white-1 40%, darken($white-1, 5) );} | |
&__bottom{ background-color: $white-3; } | |
} | |
.arb{ | |
$width-el: 1vw; | |
$height-el: 2vw; | |
$depth-el: 14vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
right: 0; | |
bottom: 0; | |
width: 1vw; | |
height: 28vw; | |
&__front{ background-color: darken($white-2, 5); } | |
&__back{ background-color: $white-3; } | |
&__right{ background-image: linear-gradient(to right, $white-4 40%, darken($white-3, 20) ); } | |
&__left{ background-color: $white-2; } | |
&__top{ | |
background-image: linear-gradient(to top, $white-1, lighten($white-4, 10) 25%, darken($white-3, 5) 75%, $white-2 ); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 30%; | |
top: 0; | |
background-image: linear-gradient(to bottom, transparent, rgba($neon-1, .85), transparent); | |
} | |
} | |
&__bottom{ background-color: $white-3; } | |
} | |
/***************/ | |
/***************/ | |
.blt{ | |
$width-el: 1vw; | |
$height-el: 20vw; | |
$depth-el: 13.5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
top: 0; | |
width: 1vw; | |
height: 27vw; | |
transform: translateZ(.5vw); | |
&__front{ background-image: linear-gradient(to bottom, $white-3, $white-2); } | |
&__back{ background-color: $white-3; } | |
&__right{ | |
background-image: linear-gradient(to bottom, darken($white-4, 10), $white-3, $white-3 90%, darken($white-4, 2)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
bottom: 0; | |
width: 100%; | |
height: .75vw; | |
background-image: linear-gradient(to bottom, darken($white-2, 5), $neon-2 ); | |
border-top: .1vw solid $white-4; | |
border-bottom: .1vw solid $white-4; | |
} | |
&::after{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba(darken($neon-1, 20), .35), transparent 30%, transparent 70%, rgba($neon-2, .35) ); | |
} | |
} | |
&__left{ background-color: $white-1; } | |
// &__top{ background-color: $white-1; } | |
&__bottom{ background-color: $white-3; } | |
} | |
.blt2{ | |
$width-el: 2vw; | |
$height-el: .75vw; | |
$depth-el: 13.5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
top: 0; | |
width: 2vw; | |
height: 27vw; | |
transform: translateZ(20.5vw); | |
&__front{ background-color: $white-3; } | |
&__back{ background-color: $white-3; } | |
&__right{ | |
background-image: linear-gradient(to right, darken($white-2, 5), $white-2, darken($white-2, 15) ); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
bottom: 0; | |
border-bottom: .1vw solid rgba($white-1, .75); | |
background-image: linear-gradient(to top, rgba($neon-1, .35) , transparent); | |
} | |
} | |
&__left{ background-color: $white-1; } | |
&__top{ background-image: linear-gradient(to top, $white-2, $white-1); } | |
&__bottom{ background-color: $white-3; } | |
} | |
.blb{ | |
$width-el: 26vw; | |
$height-el: 20vw; | |
$depth-el: .5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 1vw; | |
top: 0; | |
width: 26vw; | |
height: 1vw; | |
transform: translateZ(.5vw); | |
&__front{ | |
background-image: linear-gradient(to bottom, darken($white-2, 32), darken($white-2, 25) 20%, darken($white-2, 32)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: | |
linear-gradient(to bottom, rgba($neon-2, .25), transparent 20%, transparent 80%, rgba($neon-2, .5)), | |
linear-gradient(to right, rgba($black-1, .35), transparent ), | |
linear-gradient(to bottom, rgba($black-1, .35), transparent ), | |
linear-gradient(to bottom, rgba( darken($neon-2, 50), .5), transparent 20%, transparent 80%, rgba($neon-2, .25) ) | |
; | |
} | |
&::after{ | |
content: ''; | |
position: absolute; | |
bottom: 0; | |
width: 100%; | |
height: .75vw; | |
background-image: linear-gradient(to bottom, darken($white-2, 5), $neon-2 ); | |
border-top: .1vw solid $white-4; | |
border-bottom: .1vw solid $white-4; | |
} | |
} | |
&__back{ background-color: $white-3; } | |
&__right{ background-image: linear-gradient(to bottom, darken($white-4, 10), darken($white-3, 20) 80%, darken($white-4, 10)); } | |
// &__left{ background-color: $white-2; } | |
// &__top{ background-color: $white-1; } | |
&__bottom{ background-color: $white-3; } | |
} | |
.blb2{ | |
$width-el: 25vw; | |
$height-el: .75vw; | |
$depth-el: 1vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 2vw; | |
top: 0; | |
width: 25vw; | |
height: 1vw; | |
transform: translateZ(20.5vw); | |
&__front{ | |
background-image: linear-gradient(to right, darken($white-2, 15), $white-2, darken($white-2, 5) ); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
bottom: 0; | |
border-bottom: .1vw solid rgba($white-1, .75); | |
background-image: linear-gradient(to top, rgba($neon-2, .25) , transparent); | |
} | |
} | |
&__back{ background-color: $white-3; } | |
&__right{ background-color: darken($white-4, 10); } | |
&__left{ background-color: $white-2; } | |
&__top{ background-image: linear-gradient(to left, $white-2, $white-1); } | |
&__bottom{ background-color: $white-3; } | |
} | |
/***************/ | |
/***************/ | |
.bocina-l, | |
.bocina-r{ | |
$width-el: .75vw; | |
$height-el: 6vw; | |
$depth-el: .75vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 1.5vw; | |
bottom: 5.25vw; | |
width: .75vw; | |
height: 1.5vw; | |
transform: translateZ(8vw); | |
&__right{ background-image: radial-gradient(darken($black-3, 10), darken($black-3, 15));} | |
&__top{ background-image: linear-gradient(to left, darken($white-1, 10), $white-2, darken($white-2, 15)); } | |
&__bottom{ background-color: $white-3; } | |
} | |
.bocina-l{ | |
&__front{ background-image: linear-gradient(to right, $neon-1, darken($white-2, 25) 30%, darken($white-1, 20)); } | |
&__back{ | |
background-image: linear-gradient(to right, $white-3, darken($white-3, 10)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to right, rgba($neon-1, .35) 65%, rgba($neon-1, .95)); | |
} | |
} | |
&__left{ | |
background-color: $white-4; | |
&::before{ | |
content: ''; | |
position: absolute; | |
top: -10%; | |
left: 20%; | |
width: 120%; | |
height: 120%; | |
background-image: linear-gradient(to left, rgba(darken($neon-2, 40), .75), rgba(darken($black-3, 15) , .75) ); | |
filter: blur(.5vw); | |
} | |
} | |
} | |
.bocina-r{ | |
top: 5.25vw; | |
&__front{ | |
background-image: linear-gradient(to right, $white-3, darken($white-3, 20)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to left, rgba($neon-1, .35) 65%, rgba($neon-1, .95)); | |
} | |
} | |
&__back{ background-image: linear-gradient(to right, darken($white-2, 25), darken($white-1, 20)); } | |
&__left{ | |
background-color: $white-4; | |
&::before{ | |
content: ''; | |
position: absolute; | |
top: -10%; | |
left: -20%; | |
width: 120%; | |
height: 120%; | |
background-image: linear-gradient(to right, rgba(darken($neon-2, 40), .75), rgba(darken($black-3, 15) , .75) ); | |
filter: blur(.5vw); | |
} | |
} | |
} | |
.repisa-t, | |
.repisa-b{ | |
$width-el: 1.5vw; | |
$height-el: .25vw; | |
$depth-el: 5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 1.5vw; | |
top: 9vw; | |
width: 1.5vw; | |
height: 10vw; | |
transform: translateZ(16vw); | |
&__front{ background-color: $white-2; } | |
&__back{ background-color: $white-1; } | |
&__right{ background-color: darken($white-2, 10); } | |
&__left{ background-color: $white-1; } | |
&__top{ | |
background-color: darken($white-1, 10); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to right, rgba(darken($neon-1, 20), .75), transparent); | |
} | |
} | |
&__bottom{ | |
background-color: $white-3; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to right, rgba(darken($neon-1, 20), .75), transparent); | |
} | |
} | |
} | |
.repisa-b{ transform: translateZ(5vw);} | |
.tv{ | |
$width-el: .5vw; | |
$height-el: 6vw; | |
$depth-el: 6vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 1.51vw; | |
top: 8vw; | |
width: .5vw; | |
height: 12vw; | |
transform: translateZ(8vw); | |
&__front{ background-color: $black-3; } | |
&__back{ background-color: $black-3; } | |
&__right{ | |
background-color: lighten($neon-1, 15); | |
border: .125vw solid darken($black-3, 10); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
box-shadow: | |
.125vw .125vw 1vw rgba($neon-1, .5), | |
-.125vw .125vw 1vw rgba($neon-1, .5), | |
.125vw -.125vw 1vw rgba($neon-1, .5), | |
-.125vw -.125vw 1vw rgba($neon-1, .5) | |
; | |
background-image: url('https://rawcdn.githack.com/ricardoolivaalonso/Codepen/43200238c3177b02a97423fa6cc23f8bfcc5c105/Room/gif.gif'); | |
background-size: cover; | |
background-repeat: no-repeat; | |
background-position: bottom; | |
opacity: .8; | |
} | |
animation: pantalla-tv .25s infinite alternate; | |
} | |
&__left{ | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
background-color: $black-3; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 13vw; | |
height: 7vw; | |
background-image: radial-gradient(rgba(darken($neon-2, 5), .95), rgba(darken($neon-1, 5), .95)); | |
filter: blur(1.25vw); | |
animation: luz-tv .25s infinite alternate; | |
} | |
} | |
&__top{ background-color: $black-3; } | |
&__bottom{ background-color: $black-3; } | |
} | |
.librero{ | |
$width-el: 12vw; | |
$height-el: .25vw; | |
$depth-el: .75vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 13vw; | |
top: 1vw; | |
width: 12vw; | |
height: .5vw; | |
transform: translateZ(7vw); | |
&__front{ background-color: $white-2; } | |
&__back{ | |
background-color: $white-3; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 4vw; | |
border-radius: 50%; | |
background-image: radial-gradient( rgba( lighten($neon-1, 5), .7) 50%, rgba( darken($neon-2, 10), .6), transparent); | |
filter: blur(1.25vw); | |
} | |
} | |
&__right{ background-color: $white-3; } | |
&__left{ background-color: $white-2; } | |
&__top{ | |
background-color: darken($white-1, 10); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba(darken($neon-1, 10), .75), transparent); | |
} | |
} | |
&__bottom{ | |
background-color: $white-3; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba(darken($neon-1, 10), .75), transparent); | |
} | |
} | |
} | |
.libros{ position: absolute; } | |
.libro{ | |
$width-el: .5vw; | |
$height-el: 1.5vw; | |
$depth-el: .5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
top: 1vw; | |
width: .5vw; | |
height: 1vw; | |
transform: translateZ(7.25vw); | |
&__front{ | |
background-image: linear-gradient(to bottom, $white-2, darken($white-2, 10)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .4), transparent); | |
} | |
} | |
&__back{ background-color: $white-1; } | |
&__right{ | |
background-color: darken($white-2, 20); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .85), rgba($neon-2, .35)); | |
} | |
} | |
&__left{ background-color: $white-2; } | |
&__top{ | |
background-color: darken($white-1, 10); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .85), rgba($neon-2, .35)); | |
} | |
} | |
&__bottom{ background-color: lighten($white-3, 14); } | |
&:nth-of-type(1){ | |
left: 16vw; | |
transform-origin: left; | |
transform: translateZ(7.25vw) rotateZ(-10deg); | |
} | |
&:nth-of-type(2){ | |
left: 17vw; | |
transform: translateZ(7.25vw) rotateZ(2deg); | |
} | |
&:nth-of-type(3){ | |
left: 17.75vw; | |
transform: translateZ(7.25vw) rotateZ(5deg); | |
} | |
&:nth-of-type(4){ | |
left: 19vw; | |
transform-origin: left; | |
transform: translateZ(7.25vw) rotateZ(10deg); | |
} | |
&:nth-of-type(5){ | |
left: 20vw; | |
transform-origin: left; | |
transform: translateZ(7.25vw) rotateZ(10deg); | |
} | |
&:nth-of-type(6){ | |
left: 23vw; | |
transform-origin: left; | |
transform: translateZ(7.25vw) rotateY(-90deg); | |
} | |
} | |
.fotos{ position: absolute; } | |
.foto{ | |
$width-el: .125vw; | |
$height-el: 1.125vw; | |
$depth-el: 1.125vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
width: .125vw; | |
height: 2vw; | |
left: 2vw; | |
top: 11vw; | |
transform: translateZ(5.26vw); | |
&__front{ | |
background-image: linear-gradient(to bottom, $white-2, darken($white-2, 10)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .4), transparent); | |
} | |
} | |
&__back{ background-color: $white-1; } | |
&__right{ | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
background-color: darken($white-2, 5); | |
border: .15vw solid $black-1; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: repeating-linear-gradient(to bottom, $white-2 .1vw, darken($white-1, 20) .2vw); | |
} | |
} | |
&__left{ background-color: $white-2; } | |
&__top{ | |
background-color: darken($white-1, 10); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .85), rgba($neon-2, .35)); | |
} | |
} | |
&__bottom{ | |
background-color: darken($white-2, 25); | |
&::before{ | |
content: ''; | |
position: absolute; | |
right: -100%; | |
width: 400%; | |
height: 100%; | |
background-color: rgba($black-3, .75); | |
filter: blur(.15vw); | |
} | |
} | |
&:nth-of-type(1){ | |
top: 10.5vw; | |
transform: translateZ(5.26vw) rotateZ(5deg); | |
} | |
&:nth-of-type(2){ | |
top: 15vw; | |
transform: translateZ(5.26vw) rotateZ(-15deg); | |
} | |
} | |
.cajas{ position: absolute; } | |
.caja{ | |
$width-el: 1vw; | |
$height-el: .75vw; | |
$depth-el: .75vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
width: 1vw; | |
height: 1.5vw; | |
left: 2vw; | |
transform: translateZ(16.35vw); | |
&__front{ | |
background-image: linear-gradient(to bottom, $white-2, darken($white-2, 10)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .4), transparent); | |
} | |
} | |
&__back{ | |
background-color: $white-2; | |
} | |
&__right{ | |
background-color: darken($white-2, 20); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .85), rgba($neon-2, .35)); | |
} | |
} | |
&__left{ background-color: $white-2; } | |
&__top{ | |
background-color: darken($white-1, 10); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-1, .85), rgba($neon-2, .35)); | |
} | |
} | |
&__bottom{ | |
background-color: darken($white-2, 25); | |
&::before{ | |
content: ''; | |
position: absolute; | |
right: -50%; | |
width: 150%; | |
height: 120%; | |
background-color: rgba($black-1, .5); | |
filter: blur(.15vw); | |
} | |
} | |
&:nth-of-type(1){ top: 11.6vw; } | |
&:nth-of-type(2){ top: 13.5vw; } | |
&:nth-of-type(3){ top: 17vw; } | |
} | |
.cuadro-l, | |
.cuadro-r{ | |
$width-el: 5vw; | |
$height-el: 7vw; | |
$depth-el: .125vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 13vw; | |
top: 1vw; | |
width: 5vw; | |
height: .5vw; | |
transform: translateZ(10vw); | |
&__front{ | |
background-repeat: no-repeat; | |
background-size: contain; | |
background-position: center; | |
} | |
&__back{ | |
background-color: $white-3; | |
box-shadow: | |
.35vw .35vw .35vw rgba($neon-1, .2), | |
-.35vw .35vw .35vw rgba($neon-1, .2), | |
-.35vw -.35vw .35vw rgba($neon-1, .2), | |
.35vw -.35vw .35vw rgba($neon-1, .2) | |
; | |
} | |
&__right{ background-color: $white-3; } | |
&__left{ background-color: $white-2; } | |
&__top{ background-color: $white-2; } | |
&__bottom{ background-color: $white-3; } | |
} | |
.cuadro-l{ | |
&__front{ | |
background-image: url('https://rawcdn.githack.com/ricardoolivaalonso/Codepen/43200238c3177b02a97423fa6cc23f8bfcc5c105/Room/cuadro-1.jpg'); | |
background-color: $cuadro-1; | |
border: 1vw solid $cuadro-1; | |
&::before{ | |
content: ''; | |
position: absolute; | |
top: -1vw; | |
left: -1vw; | |
width: 5vw; | |
height: 7vw; | |
background-origin: padding-box; | |
background-image: linear-gradient(to bottom, rgba($neon-2, .15), rgba($neon-2, .15)); | |
} | |
} | |
} | |
.cuadro-r{ | |
left: 20vw; | |
&__front{ | |
background-image: url('https://rawcdn.githack.com/ricardoolivaalonso/Codepen/43200238c3177b02a97423fa6cc23f8bfcc5c105/Room/cuadro-2.jpg'); | |
background-color: $cuadro-2; | |
border: .5vw solid $cuadro-2; | |
&::before{ | |
content: ''; | |
position: absolute; | |
top: -.5vw; | |
left: -.5vw; | |
width: 5vw; | |
height: 7vw; | |
background-origin: padding-box; | |
background-image: linear-gradient(to bottom, rgba($neon-2, .15), rgba($neon-2, .15)); | |
} | |
} | |
} | |
.puerta-c{ | |
position: absolute; | |
left: 3vw; | |
top: 1vw; | |
width: 8vw; | |
height: .5vw; | |
transform: translateZ(.5vw); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 200%; | |
background-color: rgba( darken($black-3, 10), .65); | |
filter: blur(.5vw); | |
} | |
} | |
.puerta{ | |
$width-el: 7vw; | |
$height-el: 16vw; | |
$depth-el: .125vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: .5vw; | |
top: 0; | |
width: 7vw; | |
height: .5vw; | |
&__front{ | |
background-image: linear-gradient(to bottom, $cuadro-2, $black-2); | |
border: .125vw solid $neon-1; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: radial-gradient(transparent 50%, rgba( darken($neon-1, 30), .25)); | |
box-shadow: | |
.65vw .65vw .5vw rgba($neon-1, .6), | |
-.65vw .65vw .5vw rgba($neon-1, .6), | |
-.65vw -.65vw .5vw rgba($neon-1, .6), | |
.65vw -.65vw .5vw rgba($neon-1, .6) | |
; | |
} | |
&::after{ | |
content: ''; | |
position: absolute; | |
top: 50%; | |
right: .75vw; | |
width: 1vw; | |
height: .25vw; | |
background-color: $white-2; | |
box-shadow: | |
.125vw .125vw .25vw rgba($neon-1, .6), | |
-.125vw .125vw .25vw rgba($neon-1, .6), | |
-.125vw -.125vw .25vw rgba($neon-1, .6), | |
.125vw -.125vw .25vw rgba($neon-1, .6) | |
; | |
} | |
} | |
// &__back{ background-color: $white-3; } | |
// &__right{ background-color: $white-3; } | |
// &__left{ background-color: $white-2; } | |
// &__top{ background-color: $white-1; } | |
// &__bottom{ background-color: $white-3; } | |
} | |
.puerta-l, | |
.puerta-r{ | |
$width-el: .5vw; | |
$height-el: 16vw; | |
$depth-el: .25vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
top: 0; | |
width: .5vw; | |
height: .5vw; | |
&__front{ background-color: darken($black-1, 10); } | |
&__back{ background-color: $black-3; } | |
&__right{ background-color: $black-3; } | |
&__left{ background-color: $black-2; } | |
// &__top{ background-color: $white-1; } | |
&__bottom{ background-color: $black-3; } | |
} | |
.puerta-r{ left: calc(100% - .5vw); } | |
.puerta-t{ | |
$width-el: 8vw; | |
$height-el: .5vw; | |
$depth-el: .25vw; | |
@include cube($width-el, $height-el, $depth-el); | |
left: 0; | |
top: 0; | |
width: 8vw; | |
height: .5vw; | |
transform: translateZ(16vw); | |
&__front{ background-color: darken($black-1, 10); } | |
&__back{ background-color: $black-3; } | |
&__right{ background-color: $black-3; } | |
&__left{ background-color: $black-2; } | |
&__top{ background-color: $black-1; } | |
&__bottom{ background-color: $black-3; } | |
} | |
.muro{ | |
$width-el: .5vw; | |
$height-el: 18vw; | |
$depth-el: 8vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 1vw; | |
top: 6vw; | |
width: .5vw; | |
height: 16vw; | |
transform: translateZ(.51vw); | |
&__front{ background-color: $black-3; } | |
&__back{ background-color: $black-3; } | |
&__right{ | |
display: flex; | |
justify-content: center; | |
background-image: radial-gradient(circle, $black-1, darken($black-1, 15)); | |
overflow: hidden; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-2, .25), transparent 30%, transparent 70%, rgba($neon-2, .15) ); | |
} | |
&::after{ | |
content: ''; | |
position: absolute; | |
bottom: 0; | |
left: 5%; | |
width: 90%; | |
height: 25%; | |
background-image: linear-gradient(to bottom, rgba(darken($black-3, 5), .75), rgba(darken($black-3, 5), .95)); | |
filter: blur(.75vw); | |
} | |
} | |
&__left{ | |
background-color: $black-3; | |
box-shadow: | |
.5vw .5vw .6vw rgba($neon-1, .3), | |
.5vw -.5vw .6vw rgba($neon-1, .3), | |
-.5vw .5vw .6vw rgba($neon-1, .3), | |
-.5vw -.5vw .6vw rgba($neon-1, .3) | |
; | |
} | |
&__top{ | |
background-color: $black-3; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
bottom: 0; | |
background-image: linear-gradient(to left, rgba($neon-2, .5) , rgba($neon-1, .25)); | |
} | |
} | |
&__bottom{ | |
background-color: $black-3; | |
&::before{ | |
content: ''; | |
position: absolute; | |
top: 0; | |
right: 0; | |
width: 5vw; | |
height: 100%; | |
background-image: linear-gradient(to left, $black-3, transparent 50%); | |
transform-origin: right bottom; | |
transform: skewY(-20deg); | |
filter: blur(.25vw); | |
} | |
} | |
} | |
.sillon-c{ | |
position: absolute; | |
right: 2vw; | |
bottom: 6vw; | |
width: 6vw; | |
height: 16vw; | |
transform: translateZ(.5vw); | |
&::before{ | |
content: ''; | |
position: absolute; | |
top: -10%; | |
left: -10%; | |
width: 120%; | |
height: 120%; | |
background-color: rgba($black-3, .85); | |
filter: blur(.75vw); | |
} | |
} | |
.sillon-b{ | |
$width-el: 6vw; | |
$height-el: 3vw; | |
$depth-el: 7vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
top: 1vw; | |
width: 6vw; | |
height: 14vw; | |
&__front{ background-color: $black-2; } | |
&__back{ background-color: $black-3; } | |
&__right{ background-color: $black-3; } | |
&__left{ | |
background-image: linear-gradient(to bottom, $black-2, darken($black-2, 5) ); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to bottom, rgba($neon-2, .1), transparent); | |
} | |
} | |
&__top{ | |
background-image: linear-gradient(to right, $black-1, $black-2 ); | |
border-left: .1vw solid rgba($white-2, .5); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to right, rgba($neon-2, .25), transparent); | |
} | |
} | |
&__bottom{ background-color: $black-3; } | |
} | |
.sillon-l, | |
.sillon-r{ | |
$width-el: 6vw; | |
$height-el: 4.5vw; | |
$depth-el: .5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
bottom: 0; | |
width: 6vw; | |
height: 1vw; | |
&__front{ background-image: linear-gradient(to bottom, $black-2, $black-3) ; } | |
&__back{ background-color: $black-3; } | |
&__right{ background-image: linear-gradient(to bottom, $black-3, darken($black-3, 20) ); } | |
&__left{ background-image: linear-gradient(to bottom, $black-2, darken($black-2, 5) ); } | |
&__top{ | |
background-image: linear-gradient(to right, $black-1, darken($black-2, 2) ); | |
border-bottom: .1vw solid rgba($white-2, .5); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to right, rgba($neon-2, .75), transparent); | |
} | |
} | |
&__bottom{ background-color: $black-3; } | |
} | |
.sillon-r{ top: 0; } | |
.sillon-t{ | |
$width-el: 1vw; | |
$height-el: 6.5vw; | |
$depth-el: 7vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
right: 0; | |
top: 1vw; | |
width: 1vw; | |
height: 1vw; | |
transform-origin: right; | |
transform: rotateY(7deg); | |
&__front{ background-image: linear-gradient(to bottom, $black-3, darken($black-2, 8)) ;} | |
&__back{ background-image: linear-gradient(to bottom, darken($black-2, 5), $black-3) ;} | |
&__right{ background-image: linear-gradient(to bottom, darken($black-2, 5), darken($black-3, 20) ); } | |
&__left{ background-color: $black-2; } | |
&__top{ | |
background-image: linear-gradient(to right, $black-1, darken($black-2, 2) ); | |
border-bottom: .1vw solid rgba($white-2, .5); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(to right, rgba($neon-2, .5), transparent); | |
} | |
} | |
&__bottom{ background-color: $black-3; } | |
} | |
.mesa-c{ | |
position: absolute; | |
left: 7vw; | |
top: 9.5vw; | |
width: 10vw; | |
height: 9vw; | |
transform: translateZ(.5vw); | |
} | |
.mesa-shadow{ | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
border-radius: 10%; | |
background-color: rgba($black-3, .95); | |
filter: blur(1vw); | |
transform: translateZ(0); | |
} | |
.mesa{ | |
$width-el: 10vw; | |
$height-el: .5vw; | |
$depth-el: 4.5vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 0; | |
top: 0; | |
width: 10vw; | |
height: 9vw; | |
transform: translateZ(2vw); | |
&__front{ | |
background-image: linear-gradient(to right, darken($black-2, 5), darken($black-2, 20)); | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
background-image: linear-gradient(45deg, rgba($neon-1, .125), rgba( lighten($neon-1, 20), .25), transparent 55%); | |
} | |
} | |
&__back{ background-color: $black-3; } | |
&__right{ background-color: darken($black-3, 20); } | |
&__left{ background-color: $black-2; } | |
&__top{ | |
background-image: linear-gradient(45deg, darken($black-2, 3), darken($black-3, 5)); | |
overflow: hidden; | |
&::before{ | |
content: ''; | |
position: absolute; | |
bottom: 0; | |
width: 50%; | |
height: 50%; | |
background-image: linear-gradient(45deg, rgba($neon-1, .5), rgba($white-1, .125) 50%, transparent 55%); | |
filter: blur(.5vw); | |
} | |
&::after{ | |
content: ''; | |
position: absolute; | |
left: 2vw; | |
top: 2vw; | |
width: 20%; | |
height: 50%; | |
border-radius: 50%; | |
background-color: rgba($neon-2, .079); | |
transform: rotateZ(-40deg); | |
filter: blur(.75vw); | |
} | |
} | |
&__bottom{ background-color: $black-3; } | |
} | |
.mesa-p{ | |
$width-el: .25vw; | |
$height-el: 1.75vw; | |
$depth-el: .125vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
width: .25vw; | |
height: .25vw; | |
&__front{ background-color: $black-3; } | |
&__back{ background-color: $black-3; } | |
&__right{ background-color: darken($black-3, 20); } | |
&__left{ background-color: $black-2; } | |
&__top{ background-color: $black-1; } | |
&__bottom{ | |
background-color: $black-3; | |
&::before{ | |
content: ''; | |
position: absolute; | |
width: 600%; | |
height: 200%; | |
top: 0; | |
right: 0; | |
border-radius: 10%; | |
transform: translateZ(-.1vw); | |
background-color: rgba(darken($black-3, 30), .75); | |
filter: blur(.35vw); | |
} | |
} | |
&:nth-of-type(1){ left: .5vw; top: .5vw; } | |
&:nth-of-type(2){ right: .5vw; top: .5vw; } | |
&:nth-of-type(3){ left: .5vw; bottom: .5vw; } | |
&:nth-of-type(4){ right: .5vw; bottom: .5vw; } | |
} | |
.tablet{ | |
$width-el: 2vw; | |
$height-el: .125vw; | |
$depth-el: 1.25vw; | |
@include cube($width-el, $height-el, $depth-el); | |
position: absolute; | |
left: 13vw; | |
top: 12vw; | |
width: 2vw; | |
height: 2.5vw; | |
transform: translateZ(3.01vw) rotateZ(15deg); | |
&__front{ background-color: darken($white-2, 10); } | |
&__back{ background-color: $white-3; } | |
&__right{ background-color: $white-3; } | |
&__left{ background-color: $white-2; } | |
&__top{ | |
background-color: lighten($neon-1, 10); | |
border: .2vw solid rgba($neon-1, .25); | |
animation: pantalla-tablet .25s infinite; | |
} | |
&__bottom{ | |
background-color: darken($black-3, 40); | |
box-shadow: | |
.25vw .25vw .5vw rgba(darken($neon-2, 20), .75), | |
-.25vw .25vw .5vw rgba(darken($neon-2, 20), .75), | |
-.25vw -.25vw .5vw rgba(darken($neon-2, 20), .75), | |
.25vw -.25vw .5vw rgba(darken($neon-2, 20), .75) | |
; | |
} | |
} | |
/**********************/ | |
/**********************/ | |
@keyframes pantalla-tablet { | |
from{ background-color: lighten($neon-1, 5); } | |
} | |
@keyframes pantalla-tv{ | |
from{ | |
background-color: lighten($neon-1, 5); | |
box-shadow: | |
.125vw .125vw 0vw rgba($neon-1, 0), | |
-.125vw .125vw 0vw rgba($neon-1, 0), | |
.125vw -.125vw 0vw rgba($neon-1, 0), | |
-.125vw -.125vw 0vw rgba($neon-1, 0) | |
; | |
} | |
} | |
@keyframes luz-tv{ | |
from{ | |
background-image: radial-gradient(rgba(darken($neon-2, 5), .8), rgba(darken($neon-1, 5), .8)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment