// Parallax @parallax-deg: 3deg; .parallax { display: block; height: auto; position: relative; width: auto; .parallax-content { box-shadow: 0 2.5rem 5rem rgba(0, 0, 0, .45); height: auto; transform: perspective(50rem); transform-style: preserve-3d; transition: all .4s ease; width: 100%; &::before { content: ""; display: block; height: 100%; left: 0; position: absolute; top: 0; width: 100%; } } .parallax-top-left { .parallax-dir(); left: 0; top: 0; &:hover ~ .parallax-content { transform: perspective(50rem) rotateX(@parallax-deg) rotateY(-@parallax-deg); &::before { background: linear-gradient(135deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 50%); } } } .parallax-top-right { .parallax-dir(); right: 0; top: 0; &:hover ~ .parallax-content { transform: perspective(50rem) rotateX(@parallax-deg) rotateY(@parallax-deg); &::before { background: linear-gradient(-135deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 50%); } } } .parallax-bottom-left { .parallax-dir(); bottom: 0; left: 0; &:hover ~ .parallax-content { transform: perspective(50rem) rotateX(-@parallax-deg) rotateY(-@parallax-deg); &::before { background: linear-gradient(45deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 50%); } } } .parallax-bottom-right { .parallax-dir(); bottom: 0; right: 0; &:hover ~ .parallax-content { transform: perspective(50rem) rotateX(-@parallax-deg) rotateY(@parallax-deg); &::before { background: linear-gradient(-45deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 50%); } } } } .parallax-dir() { height: 50%; position: absolute; width: 50%; z-index: 99; }