/* === GLOBAL STYLES === */
* {
margin: 0;
padding: 0;
}
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');
.wrapper {
background: #a9e4f7;
background: linear-gradient(to right, #232526, #414345);
font-family: 'Montserrat', sans-serif;
color: #fff;
padding: 50px 0;
}
.row {
margin: 0 auto;
width: 80%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
margin-bottom: 50px;
}
.row:last-child {
margin-bottom: 0px;
}
.row .container {
width: 48%;
min-width: 450px;
max-width: 650px;
box-shadow: 0 0 0px 4px rgba(18, 18, 18, 0.47);
}
.container:hover {
box-shadow: 0 0 10px 4px rgba(0, 0, 0, 0.47);
}
.row:nth-of-type(1) .container {
width: 31%;
min-width: 300px;
max-width: 450px;
}
.row img {
cursor: pointer;
display: block;
width: 100%;
}
.row .caption {
cursor: pointer;
}
.row h2 {
display: inline;
background: rgba(51, 51, 51, 0.5);
padding: 15px;
letter-spacing: 2px;
font-weight: 100;
font-size: 22px;
cursor: pointer;
}
.row p {
display: inline;
background: rgba(51, 51, 51, 0.7);
padding: 10px;
margin-top: 20px;
font-weight: 100;
font-size: 14px;
cursor: pointer;
}
@media only screen and (min-width: 1900px) {
.row {
width: 60%;
}
}
@media only screen and (max-width: 1200px) {
.row {
margin-top: 0;
margin-bottom: 0;
flex-direction: column;
}
.row .container {
width: 60%;
min-width: 650px;
margin: 40px 0;
}
.row:nth-of-type(1) .container {
width: 41%;
min-width: 450px;
}
}
@media only screen and (max-width: 850px) {
.row {
margin-top: 0;
margin-bottom: 0;
flex-direction: column;
}
.container {
margin: 210px 0;
}
.row .container {
min-width: 450px;
}
.row:nth-of-type(1) .container {
min-width: 350px;
}
.effect10 p {
width: 80%;
}
.effect13 .caption p {
margin-top: 30px;
}
.effect6 .caption h2 {
font-size: 20px !important;
}
.effect6 .caption p {
font-size: 12px !important;
}
}
/*
===== Effect 1 =====
*/
.effect1 {
overflow: hidden;
-webkit-clip-path: circle(50% at 50% 50%);
clip-path: circle(50% at 50% 50%);
position: relative;
}
.effect1 img {
position: relative;
}
/*Line*/
.effect1 .caption:before {
content: '';
position: absolute;
top: 50%;
left: 49%;
width: 3px;
height: 0;
background-color: #fff;
transition: top .5s, height .5s;
}
.effect1:hover .caption:before, .effect1:active .caption:before {
top: 0;
height: 100%;
}
/*Left & Right Side*/
.effect1 .leftSide,
.effect1 .rightSide {
position: absolute;
top: 0;
left: -125%;
width: 50%;
height: 100%;
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .2) 100%);
transition: left .7s;
}
.effect1 .rightSide {
left: 125%;
background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .2) 100%);
}
.effect1:hover .leftSide,
.effect1:active .leftSide {
left: 0;
}
.effect1:hover .rightSide,
.effect1:active .rightSide {
left: 49%;
}
/* Text */
.effect1 .leftInfo,
.effect1 .rightInfo {
opacity: 0;
font-size: 30px;
position: absolute;
top: 50%;
transition: opacity .6s, left .6s;
}
.effect1 .leftInfo {
color: black;
transform: translate(-100%, -50%);
left: 0;
}
.effect1 .rightInfo {
transform: translateY(-50%);
left: 100%;
}
.effect1:hover .leftInfo,
.effect1:active .leftInfo
{
opacity: 1;
left: 47%;
}
.effect1:hover .rightInfo,
.effect1:active .rightInfo {
opacity: 1;
left: 53%;
}
/*
===== Effect 2 =====
*/
.effect2 {
overflow: hidden;
-webkit-clip-path: circle(50% at 50% 50%);
clip-path: circle(50% at 50% 50%);
position: relative;
}
.effect2 img {
filter: saturate(0);
transform: scale(1) rotate(20deg);
transition: transform 1s;
}
.effect2:hover img {
filter: none;
transform: scale(1.3) rotate(0deg);
}
/* Hover Element */
.effect2 .caption {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 70px;
background: rgba(29, 29, 29, 0.53);
transform: rotate(90deg);
transform-origin: 0 0;
line-height: 70px;
text-align: center;
font-size: 1.4em;
font-style: italic;
transition: transform .7s;
}
.effect2:hover .caption {
transform: rotate(0deg);
}
/* === Effect 3 === */
.effect3 {
overflow: hidden;
-webkit-clip-path: circle(50% at 50% 50%);
clip-path: circle(50% at 50% 50%);
position: relative;
}
.effect3 img {
filter: saturate(0);
transition: transform .8s, filter .8s;
}
.effect3:hover img {
filter: none;
transform: translateY(-70px);
}
/* Hover Element */
.effect3 .caption {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0px;
background: transparent;
line-height: 70px;
text-align: center;
font-size: 1.4em;
transition: height .8s;
}
.effect3:hover .caption {
height: 70px;
}
/*
===== Effect 4 =====
*/
.effect4 {
position: relative;
overflow: hidden;
}
.effect4 img {
margin-left: 30px;
transform: scale(1.2);
transition: margin-left .7s;
}
.effect4:hover img {
margin-left: 0;
}
/* Text */
.effect4 .caption h2,
.effect4 .caption p {
position: absolute;
bottom: -20px;
transform: rotate(90deg);
transform-origin: 100% 100%;
transition: all .7s;
}
.effect4 .caption h2 {
width: 400px;
right: -100px;
}
.effect4 .caption p {
margin-top: 0;
width: 300px;
right: -60px;
}
.effect4:hover .caption h2 {
bottom: 50%;
right: 0;
transform: rotate(0deg);
transform-origin: 100% 100%;
}
.effect4:hover .caption p {
bottom: 32%;
right: 0;
transform: rotate(0deg);
transform-origin: 100% 100%;
-webkit-animation-name: effect4Move;
animation-name: effect4Move;
-webkit-animation-duration: .8s;
animation-duration: .8s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
-webkit-animation-delay: .9s;
animation-delay: .9s;
}
@-webkit-keyframes effect4Move {
0% {
width: 300px;
}
100% {
width: 410px;
}
}
@keyframes effect4Move {
0% {
width: 300px;
}
100% {
width: 410px;
}
}
/*
===== Effect 5 =====
*/
.effect5 {
position: relative;
overflow: hidden;
}
.effect5 img {
transition: transform .4s;
}
.effect5:hover img {
transform: scale(1.2);
}
/* Hover Element */
.effect5 .hoverElement {
background-color: rgba(0, 0, 0, 0.51);
width: 100%;
height: 100%;
position: absolute;
top: 0;
/*MASK*/
-webkit-mask-image: url(images/nature-sprite.png);
mask-image: url(images/nature-sprite.png);
-webkit-mask-size: 2300% 100%;
mask-size: 2300% 100%;
-webkit-animation: effect5Animation2 0.6s steps(22) forwards;
animation: effect5Animation2 0.6s steps(22) forwards;
}
.effect5:hover .hoverElement {
-webkit-animation: effect5Animation 0.6s steps(22) forwards;
animation: effect5Animation 0.6s steps(22) forwards;
}
@-webkit-keyframes effect5Animation {
0% {
-webkit-mask-position: 0 0;
mask-position: 0 0;
}
100% {
-webkit-mask-position: 100% 0;
mask-position: 100% 0;
}
}
@keyframes effect5Animation {
0% {
-webkit-mask-position: 0 0;
mask-position: 0 0;
}
100% {
-webkit-mask-position: 100% 0;
mask-position: 100% 0;
}
}
@-webkit-keyframes effect5Animation2 {
0% {
-webkit-mask-position: 100% 0;
mask-position: 100% 0;
}
100% {
-webkit-mask-position: 0 0;
mask-position: 0 0;
}
}
@keyframes effect5Animation2 {
0% {
-webkit-mask-position: 100% 0;
mask-position: 100% 0;
}
100% {
-webkit-mask-position: 0 0;
mask-position: 0 0;
}
}
/* Text */
.effect5 h2 {
width: 370px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
opacity: 0;
background-color: transparent;
transition: transform .8s, opacity .8s;
}
.effect5:hover h2 {
opacity: 1;
}
/* === Effect 6 === */
.effect6 {
position: relative;
overflow: hidden;
}
/* Images */
.effect6 img {}
.effect6:hover .firstImg {
-webkit-animation-name: scaleImg;
animation-name: scaleImg;
-webkit-animation-duration: .7s;
animation-duration: .7s;
-webkit-animation-fill-mode: backwards;
animation-fill-mode: backwards;
}
@-webkit-keyframes scaleImg {
0% {
transform: scale(1);
}
30% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
@keyframes scaleImg {
0% {
transform: scale(1);
}
30% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
.effect6 .secondImg {
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: opacity .7s;
}
.effect6:hover .secondImg {
opacity: 1;
-webkit-animation-name: scaleImg;
animation-name: scaleImg;
-webkit-animation-duration: .7s;
animation-duration: .7s;
-webkit-animation-fill-mode: backwards;
animation-fill-mode: backwards;
}
/* Text */
.effect6 .caption h2 {
font-size: 27px;
position: absolute;
right: 0;
top: -180px;
transition: top 1.4s cubic-bezier(0.075, 0.82, 0.165, 1);
}
.effect6 .caption p {
text-align: right;
font-size: 15px;
position: absolute;
bottom: -180px;
right: 0;
transition: bottom 1.4s cubic-bezier(0.075, 0.82, 0.165, 1);
}
.effect6:hover .caption h2 {
top: 25%;
}
.effect6:hover .caption p {
bottom: 30%;
}
/*
===== Effect 7 =====
*/
.effect7 {
position: relative;
overflow: hidden;
perspective: 40em;
}
/* Hover Element */
.effect7 .caption {
content: "";
display: block;
background-color: #262626;
position: absolute;
top: 20px;
left: 20px;
right: 20px;
bottom: 20px;
outline: 1px solid rgba(255, 255, 255, 0.72);
outline-offset: -15px;
transform: rotateX(-90deg);
transform-origin: 50% 50%;
opacity: 0;
transition: transform 0.8s ease-in-out, opacity .8s;
}
.effect7:hover .caption {
transform: rotateX(0);
opacity: 0.7;
}
/* Text */
.effect7 .caption h2,
.effect7 .caption p {
position: absolute;
left: 50%;
transform: translate(-50%, -50%);
background: transparent;
text-align: center;
opacity: 0;
z-index: 9;
transition: all .4s .2s, opacity .4s .2s;
}
.effect7 .caption h2 {
top: 10%;
width: 400px;
}
.effect7 .caption p {
top: 90%;
width: 300px;
}
.effect7:hover .caption h2 {
top: 28%;
opacity: 1;
}
.effect7:hover .caption p {
top: 58%;
opacity: 1;
}
/*
===== Effect 8 =====
*/
.effect8 {
position: relative;
overflow: hidden;
}
.effect8 img {
transition: all 1s;
}
.effect8:hover img {
transform: scale(1.3);
}
/* Button */
.effect8 .btn {
border: none;
outline: none;
padding: 10px 35px;
background-color: rgba(255, 156, 21, 0.8);
cursor: pointer;
color: black;
font-size: 18px;
white-space: nowrap;
margin-top: 20px;
margin-right: 40px;
transition: all .5s;
}
.effect8 .btn:hover {
background: rgba(255, 156, 21, 1);
}
/* Text */
.effect8 h2 {
position: absolute;
right: 0px;
top: 20%;
text-align: right;
transform: translateX(700px) scale(0.1);
transition: transform 1.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.effect8 .btn {
position: absolute;
top: 65%;
left: 50%;
transform: translateX(800px);
transition: transform 1.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.effect8:hover h2 {
transform: translateX(0px) scale(1);
}
.effect8:hover .btn {
left: 50%;
transform: translateX(-50%);
-webkit-animation: btnWidth 1.2s forwards;
animation: btnWidth 1.2s forwards;
}
@-webkit-keyframes btnWidth {
0% {
padding: 10px 35px;
opacity: .2;
}
50% {
padding: 10px 100%;
}
100% {
padding: 10px 35px;
opacity: 1;
}
}
@keyframes btnWidth {
0% {
padding: 10px 35px;
opacity: .2;
}
50% {
padding: 10px 100%;
}
100% {
padding: 10px 35px;
opacity: 1;
}
}
/*
===== Effect 9 =====
*/
.effect9 {
position: relative;
}
.effect9 img {
transition: filter .6s;
}
.effect9:hover img {
filter: grayscale(8);
}
/* Hover Element */
.effect9 .caption {
background-color: rgba(0, 0, 0, 0.31);
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 0;
overflow: hidden;
transition: width .9s;
}
.effect9:hover .caption {
width: 100%;
}
/* Text */
.effect9 .caption h2,
.effect9 .caption p {
opacity: 0;
position: absolute;
white-space: nowrap;
overflow: hidden;
transition: transform .9s, opacity .9s;
}
.effect9 .caption h2 {
background: rgb(131, 58, 180);
background: linear-gradient(90deg, rgba(131, 58, 180, .4) 0%, rgba(253, 29, 29, .4) 50%, rgba(252, 176, 69, .4) 100%);
top: 33%;
transform: translateX(700px);
}
.effect9 .caption p {
background: rgba(255, 255, 255, 0.41);
color: black;
top: 51%;
left: 20px;
transform: translateX(-700px);
}
.effect9:hover .caption h2,
.effect9:hover .caption p {
transform: translateX(0px);
opacity: 1;
}
/*
===== Effect 10 =====
*/
.effect10 {
position: relative;
overflow: hidden;
}
/* Shine effect */
.effect10 .caption:before {
content: '';
position: absolute;
top: 0;
left: -80%;
display: block;
width: 50%;
height: 100%;
z-index: 9;
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .2) 100%);
transform: skewX(-25deg);
transition: left .6s;
}
.effect10:hover .caption:before {
left: 125%;
}
/* Text */
.effect10 h2,
.effect10 p {
position: absolute;
left: 0;
transform: translateX(-700px) scale(0.1) skewX(95deg);
}
.effect10 h2 {
font-size: 18px;
width: 320px;
top: 20%;
border-right: 12px solid #085d0b;
transition: transform .6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.effect10 p {
top: 45%;
border-right: 12px solid #1a8d1e;
transition: transform 1s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.effect10:hover h2,
.effect10:hover p {
transform: translateX(0px) scale(1) skewX(0deg);
}
/*
===== Effect 11 =====
*/
.effect11 {
position: relative;
overflow: hidden;
}
/* Fake elements (_mask) - Their role is to detect hover on image (left & right side) */
.effect11 .leftSide_mask,
.effect11 .rightSide_mask {
position: absolute;
top: 0;
bottom: 0;
z-index: 9;
}
.effect11 .leftSide_mask {
left: 0;
right: 50%;
}
.effect11 .rightSide_mask {
left: 50%;
right: 0;
}
.effect11 .leftSide_mask:hover ~ .rightSide {
transform: rotateY(0deg);
}
.effect11 .rightSide_mask:hover ~ .leftSide {
transform: rotateY(0deg);
}
/* Hover Elements */
.effect11 .leftSide,
.effect11 .rightSide {
background-color: rgba(0, 0, 0, 0.38);
position: absolute;
top: 0;
bottom: -1px;
transform: rotateY(90deg);
transition: transform .4s;
}
.effect11 .leftSide {
left: 0;
right: 50%;
transform-origin: top left;
}
.effect11 .rightSide {
left: 50%;
right: -1px;
transform-origin: top right;
}
/* Text*/
.effect11 .leftSide h2,
.effect11 .rightSide h2 {
background-color: transparent;
}
.effect11 h2 {
font-size: 17px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
/*
===== Effect 12 =====
*/
.effect12 {
position: relative;
overflow: hidden;
}
.effect12 .firstImg {
transition: transform .8s;
}
.effect12:hover .firstImg {
transform: scale(1.2)
}
.effect12 .secondImg,
.effect12 .thirdImg {
position: absolute;
top: 0;
z-index: 3;
filter: saturate(0);
transition: transform 1.6s;
}
.effect12 .secondImg {
left: 0;
-webkit-clip-path: polygon(0 0, 50% 0, 50% 100%, 0% 100%);
clip-path: polygon(0 0, 50% 0, 50% 100%, 0% 100%);
}
.effect12 .thirdImg {
right: 0;
-webkit-clip-path: polygon(50% 0, 100% 0, 100% 100%, 50% 100%);
clip-path: polygon(50% 0, 100% 0, 100% 100%, 50% 100%);
}
.effect12:hover .secondImg {
transform: translateX(-700px) skewX(40deg);
}
.effect12:hover .thirdImg {
transform: translateX(700px) skewX(-40deg);
}
/*
===== Effect 13 =====
*/
.effect13 {
position: relative;
overflow: hidden;
}
.effect13 img {
transition: filter .8s;
}
.effect13:hover img {
filter: grayscale(.8) blur(1px);
}
/* Text */
.effect13 .caption h2 {
position: absolute;
top: 25%;
left: 0;
transform: translateX(-600px);
transition: transform .6s;
}
.effect13 .caption p {
position: absolute;
top: 40%;
right: -50px;
width: 460px;
transform: rotate(-90deg);
transform-origin: 100% 100%;
transition: transform .6s;
}
.effect13:hover .caption h2,
.effect13:hover .caption p {
transform: rotate(0deg);
}