- for (var i = 1; i <= 25; i++) {
div(class='btn btn' + i) Button
- }
.message ✓ Made by
a(href="https://codepen.io/pieter-biesemans/" target="_blank" title="✓ check out my other work") Pieter Biesemans</a> with ☕, 🖤 & ⌚
View Compiled
$mainColor1: #306B34;
$mainColor2: #82D173;
$mainColor3: #42113C;
$mainColor4: #4D243D;
$accentColor: #BB0A21;
$textColor: #FFFFFF;
$bgColor: #111111;
$linear : cubic-bezier(0.250, 0.250, 0.750, 0.750);
$ease : cubic-bezier(0.250, 0.100, 0.250, 1.000);
$easeIn : cubic-bezier(0.420, 0.000, 1.000, 1.000);
$easeOut : cubic-bezier(0.000, 0.000, 0.580, 1.000);
$easeInOut : cubic-bezier(0.420, 0.000, 0.580, 1.000);
$easeInQuad : cubic-bezier(0.550, 0.085, 0.680, 0.530);
$easeInCubic : cubic-bezier(0.550, 0.055, 0.675, 0.190);
$easeInQuart : cubic-bezier(0.895, 0.030, 0.685, 0.220);
$easeInQuint : cubic-bezier(0.755, 0.050, 0.855, 0.060);
$easeInSine : cubic-bezier(0.470, 0.000, 0.745, 0.715);
$easeInExpo : cubic-bezier(0.950, 0.050, 0.795, 0.035);
$easeInCirc : cubic-bezier(0.600, 0.040, 0.980, 0.335);
$easeInBack : cubic-bezier(0.600, -0.280, 0.735, 0.045);
$easeOutQuad : cubic-bezier(0.250, 0.460, 0.450, 0.940);
$easeOutCubic : cubic-bezier(0.215, 0.610, 0.355, 1.000);
$easeOutQuart : cubic-bezier(0.165, 0.840, 0.440, 1.000);
$easeOutQuint : cubic-bezier(0.230, 1.000, 0.320, 1.000);
$easeOutSine : cubic-bezier(0.390, 0.575, 0.565, 1.000);
$easeOutExpo : cubic-bezier(0.190, 1.000, 0.220, 1.000);
$easeOutCirc : cubic-bezier(0.075, 0.820, 0.165, 1.000);
$easeOutBack : cubic-bezier(0.175, 0.885, 0.320, 1.275);
$easeInOutQuad : cubic-bezier(0.455, 0.030, 0.515, 0.955);
$easeInOutCubic : cubic-bezier(0.645, 0.045, 0.355, 1.000);
$easeInOutQuart : cubic-bezier(0.770, 0.000, 0.175, 1.000);
$easeInOutQuint : cubic-bezier(0.860, 0.000, 0.070, 1.000);
$easeInOutSine : cubic-bezier(0.445, 0.050, 0.550, 0.950);
$easeInOutExpo : cubic-bezier(1.000, 0.000, 0.000, 1.000);
$easeInOutCirc : cubic-bezier(0.785, 0.135, 0.150, 0.860);
$easeInOutBack : cubic-bezier(0.680, -0.550, 0.265, 1.550);
@mixin horizontalcenter(){
left: 50%;
transform: translatex(-50%);
}
@mixin verticalcenter(){
top: 50%;
transform: translatey(-50%);
}
@mixin centercenter(){
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
div{
display: inline-block;
box-sizing: border-box;
margin: 0;
padding: 0;
overflow: hidden;
&:before, &:after{
content: '';
position: absolute;
display: block;
box-sizing: border-box;
top: 0;
left: 0;
}
}
body{
top: 0;
left: 0;
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
font-size: 2vw;
font-family: 'Source Serif Pro', serif;
font-family: 'Source Sans Pro', sans-serif;
color: $textColor;
background: $bgColor;
}
.btn{
position: relative;
width: 15vw;
height: 4vw;
margin: 2vw;
text-align: center;
line-height: 4vw;
cursor: pointer;
&1{
border: 0.1vw solid $mainColor1;
&:after{
width: 100%;
height: 100%;
background: $mainColor2;
mix-blend-mode: lighten;
transition: all 0.5s ease;
transform-origin: center;
transform: scale(0);
}
&:hover:after{
transform: scale(1);
}
}
&2{
border: 0.1vw solid $mainColor1;
&:after{
width: 100%;
height: 100%;
border-radius: 50%;
background: $mainColor2;
mix-blend-mode: lighten;
transition: all 0.5s ease;
transform-origin: center;
transform: scale(0);
}
&:hover:after{
border-radius: 0;
transform: scale(1);
}
}
&3{
border: 0.1vw solid $mainColor1;
&:after{
width: 100%;
height: 100%;
background: $mainColor2;
mix-blend-mode: lighten;
transition: all 0.5s ease;
transform-origin: center;
transform: scale(0) rotate(0);
}
&:hover:after{
transform: scale(1) rotate(180deg);
}
}
&4{
border: 0.1vw solid $mainColor1;
&:after{
width: 100%;
height: 100%;
border-radius: 50%;
background: $mainColor2;
mix-blend-mode: lighten;
transition: all 0.5s ease;
transform-origin: center;
transform: scale(0) rotate(0);
}
&:hover:after{
border-radius: 0;
transform: scale(1) rotate(180deg);
}
}
&5{
border: 0.1vw solid $mainColor1;
&:after{
width: 100%;
height: 100%;
border-radius: 50%;
background: $mainColor2;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOutBack;
transform-origin: center;
transform: scale(0) rotate(0);
}
&:hover:after{
border-radius: 0;
transform: scale(1) rotate(180deg);
}
}
&6{
border: 0.5vw solid $mainColor3;
line-height: 3vw;
transition: all 0.5s 0.5s $ease;
&:hover{
border: 0 solid $mainColor3;
line-height: 4vw;
}
&:after{
width: 100%;
height: 100%;
background: $mainColor4;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOut;
transform-origin: center;
transform: scale(0);
}
&:hover:after{
transform: scale(1);
}
}
&7{
border: 0.5vw solid $mainColor3;
line-height: 3vw;
transition: all 0.5s 0.5s $ease;
&:hover{
border: 0 solid $mainColor3;
line-height: 4vw;
}
&:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
background: $mainColor4;
mix-blend-mode: lighten;
transition: width 0.25s $easeInOut, height 0.5s $easeInOut, left 0.25s $easeInOut, top 0.5s $easeInOut;
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
&8{
border: 0.5vw solid $mainColor3;
line-height: 3vw;
transition: all 0.5s 0.5s $ease;
&:hover{
border: 0 solid $mainColor3;
line-height: 4vw;
}
&:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
background: $mainColor4;
mix-blend-mode: lighten;
transition: width 0.25s $easeInOut, height 0.5s $easeInOut, left 0.25s $easeInOut, top 0.5s $easeInOut, transform 0.5s $easeInOut;
transform-origin: center;
transform: rotate(0);
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
transform: rotate(180deg);
}
}
&9{
border: 0.5vw solid $mainColor3;
line-height: 3vw;
transition: all 0.5s $ease;
&:hover{
border: 0 solid $mainColor3;
line-height: 4vw;
}
&:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: $mainColor4;
mix-blend-mode: lighten;
transition: width 0.25s $easeInOut, height 0.5s $easeInOut, left 0.25s $easeInOut, top 0.5s $easeInOut, transform 0.5s $easeInOut;
transform-origin: center;
transform: rotate(0);
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0;
transform: rotate(180deg);
}
}
&10{
border: 0.5vw solid $mainColor3;
line-height: 3vw;
transition: all 0.5s $ease;
&:hover{
border: 0 solid $mainColor3;
line-height: 4vw;
}
&:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: $mainColor4;
mix-blend-mode: lighten;
transition: width 0.25s $easeInOutBack, height 0.5s $easeInOutBack, left 0.25s $easeInOutBack, top 0.5s $easeInOutBack, transform 0.5s $easeInOutBack;
transform-origin: center;
transform: rotate(0);
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0;
transform: rotate(180deg);
}
}
&11{
border: 0.2vw solid $mainColor2;
border-radius: 0;
line-height: 3.6vw;
transition: all 0.5s $ease;
&:hover{
border-radius: 1vw;
}
&:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: $mainColor1;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOut;
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0.25vw;
}
}
&12{
border: 0.2vw solid $mainColor2;
border-radius: 0;
line-height: 3.6vw;
transition: all 0.5s $ease;
&:hover{
border-color: transparent;
}
&:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: $mainColor2;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOut;
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0.25vw;
}
}
&13{
border: 0.2vw solid $mainColor2;
border-radius: 0;
line-height: 3.6vw;
transition: all 0.5s $ease;
&:hover{
border-color: transparent;
}
&:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: $mainColor1;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOut;
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0.25vw;
}
}
&14{
line-height: 1.5vw;
transition: all 0.5s $easeInOut;
&:hover{
border-color: transparent;
line-height: 4vw;
}
&:after{
top: 0;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: $mainColor1;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOut;
}
&:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0.25vw;
}
}
&15{
border: 0.1vw solid $mainColor2;
transition: all 0.5s $easeInOutBack;
background: $mainColor1;
&:hover{
border-width: 1.5vw 3vw;
line-height: 1vw;
}
}
&16{
border: 0.1vw solid $mainColor1;
&:before, &:after{
width: 100%;
height: 100%;
border-radius: 50%;
background: $mainColor3;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOutBack;
transform-origin: center;
transform: scale(0) rotate(0);
}
&:hover:before{
border-radius: 0;
transform: scale(1) rotate(-180deg);
}
&:hover:after{
border-radius: 0;
transform: scale(1) rotate(180deg);
}
}
&17{
border: 0.1vw solid $mainColor1;
&:before, &:after{
width: 100%;
height: 100%;
border-radius: 50%;
background: $mainColor4;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOutBack;
transform-origin: center;
transform: scale(0) rotate(0);
}
&:hover:before{
border-radius: 0;
transform: scale(1) rotate(-180deg);
}
&:after{
background: $mainColor3;
}
&:hover:after{
border-radius: 0;
transform: scale(1) rotate(180deg);
}
}
&18{
border: 0.1vw solid $mainColor1;
&:before, &:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
background: $mainColor4;
mix-blend-mode: lighten;
transition: width 0.25s 0.25s $easeInOutBack, height 0.75s $easeInOutBack, left 0.25s 0.25s $easeInOutBack, top 0.75s $easeInOutBack;
}
&:after{
transition: width 0.75s $easeInOutBack, height 0.25s 0.25s $easeInOutBack, left 0.75s $easeInOutBack, top 0.25s 0.25s $easeInOutBack, transform 0.5s $easeInOutBack;
background: $mainColor3;
}
&:hover:before, &:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
&19{
border: 0.1vw solid $mainColor1;
&:before, &:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
background: $mainColor4;
mix-blend-mode: lighten;
transition: width 0.5s 0.75s $easeInOutBack, height 0.75s $easeInOutBack, left 0.5s 0.75s $easeInOutBack, top 0.75s $easeInOutBack;
}
&:after{
transition: width 0.25s $easeInOutBack, height 0.25s 0.25s $easeInOutBack, left 0.25s $easeInOutBack, top 0.25s 0.25s $easeInOutBack;
background: $mainColor3;
}
&:hover:before, &:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
&20{
border: 0.1vw solid $mainColor1;
&:before, &:after{
top: 50%;
left: 50%;
width: 0;
height: 0;
background: $mainColor4;
mix-blend-mode: lighten;
transition: all 0.5s $easeInOutBack;
transform: rotate(0);
}
&:after{
background: $mainColor3;
}
&:hover:before, &:hover:after{
top: 0;
left: 0;
width: 100%;
height: 100%;
transform: rotate(170deg);
}
&:hover:after{
transform: rotate(-170deg);
}
}
&21{
background: $mainColor1;
transition: all 0.5s $easeInOut;
&:after{
top: 0;
left: 0;
width: 0;
height: 100%;
mix-blend-mode: lighten;
background: $mainColor2;
transition: all 0.5s $easeInOut;
}
&:hover{
background: transparent;
}
&:hover:after{
width: 100%;
height: 100%;
}
}
&22{
background: $mainColor1;
transition: all 0.5s $easeInOut;
&:after{
top: 0;
left: 100%;
width: 0;
height: 100%;
mix-blend-mode: lighten;
background: $mainColor2;
transition: all 0.5s $easeInOut;
}
&:hover{
background: transparent;
}
&:hover:after{
width: 100%;
height: 100%;
left: 0;
}
}
&23{
background: $mainColor1;
transition: all 0.5s $easeInOut;
&:before, &:after{
top: 0;
width: 0;
height: 100%;
mix-blend-mode: overlay;
transition: all 0.5s $easeInOut;
}
&:before{
left: 0;
width: 0;
background: $mainColor4;
}
&:after{
left: 100%;
width: 0;
background: $mainColor3;
}
&:hover:before{
width: 100%;
}
&:hover:after{
width: 100%;
left: 0;
}
}
&24{
background: $mainColor1;
transition: all 0.5s $easeInOut;
filter: hue-rotate(0);
&:hover{
filter: hue-rotate(360deg);
}
&:before, &:after{
width: 100%;
height: 100%;
border-radius: 50%;
background: $mainColor4;
mix-blend-mode: overlay;
transition: all 0.5s $easeInOutBack;
transform-origin: center;
transform: scale(0) rotate(0);
}
&:hover:before{
border-radius: 0;
transform: scale(1) rotate(-180deg);
}
&:after{
background: $mainColor3;
}
&:hover:after{
border-radius: 0;
transform: scale(1) rotate(180deg);
}
}
&25{
background: $mainColor1;
transition: all 0.5s $easeInOut;
filter: hue-rotate(0);
&:hover{
filter: hue-rotate(360deg);
}
&:before, &:after{
width: 100%;
height: 100%;
border-radius: 50%;
background: $mainColor4;
mix-blend-mode: overlay;
transition: all 0.5s $easeInOutBack;
transform-origin: center;
transform: scale(0) rotate(0);
}
&:hover:before{
transform: scale(1) rotate(-180deg);
}
&:after{
background: $mainColor3;
}
&:hover:after{
border-radius: 2vw;
transform: scale(1) rotate(180deg);
}
}
}
.message{
position: absolute;
right: 0.5vw;
bottom: 1vw;
max-width: 30vw;
font-size: 0.5em;
font-family: "Open Sans", sans-serif;
& a{
color: inherit;
text-decoration: none;
border-bottom: 1px solid #444;
&:hover{
border-width: 3px;
}
}
}
View Compiled
/*
This Codepen is in the Public Domain.
You can use it for whatever purpose you like, except evil.
*/
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.