【CSS】背景の色が少しズレた印刷チックなボタンのデザイン

PR
背景がズレたようなデザインのボタン
CSSのみで作られたボタン。印刷のズレ的なデザインのボタンでマウスオーバーすると、ズレの部分がアニメーションして戻るようになっている、またクリックすると逆にはみ出してしまう遊びがある。コミック調のデザインのメニューボタン等に使うとしっくり来るのではと思います。
#code
HTML
<div class="wrapper">
<div class="row">
<a href="#" class="btn-yellow">Hello</a>
<a href="#" class="btn-red">Hallo</a>
<a href="#" class="btn-blue">Marhaban</a>
<a href="#" class="btn-purple">Ni Hao</a>
</div>
<div class="row">
<a href="#" class="btn-green">Hej</a>
<a href="#" class="btn-pink">Bonjour</a>
<a href="#" class="btn-lime">Namaste</a>
<a href="#" class="btn-aqua">Ciao</a>
</div>
<div class="row">
<a href="#" class="btn-orange">Konnichiwa</a>
<a href="#" class="btn-gold">Annyeong</a>
<a href="#" class="btn-grey">Goddag</a>
</div>
</div>
CSS(SASS)
html, body
background-color: #f2f2f2
color: #232323
font-family: sans-serif
height: 100vh
.wrapper
width: 1000px
margin: 0 auto
text-align: center
.row
margin: 100px auto
.btn-yellow
position: relative
border: 6px solid #232323
z-index: 2
padding: 12px 22px
margin: 0 10px
box-sizing: border-box
font-size: 26px
font-weight: 600
text-transform: uppercase
text-decoration: none
color: #232323
&:hover
&:before
top: 0
left: 0
width: 102%
height: 100%
&:active
&:before
top: -10px
left: 18px
width: 102%
height: 100%
&:before
content: ''
position: absolute
z-index: -1
top: 12px
left: -14px
width: calc(100% + 6px)
height: calc(100% + 6px)
background-color: #f9d159
transition: all .3s ease
.btn-red
@extend .btn-yellow
&:before
background-color: #e45050
.btn-blue
@extend .btn-yellow
&:before
background-color: #58a9ee
.btn-purple
@extend .btn-yellow
&:before
background-color: #bc79e7
.btn-green
@extend .btn-yellow
&:before
background-color: #36bf73
.btn-pink
@extend .btn-yellow
&:before
background-color: #e855cb
.btn-lime
@extend .btn-yellow
&:before
background-color: #a4f478
.btn-aqua
@extend .btn-yellow
&:before
background-color: #5af3f5
.btn-orange
@extend .btn-yellow
&:before
background-color: #dc612b
.btn-gold
@extend .btn-yellow
&:before
background-color: #c5ac47
.btn-grey
@extend .btn-yellow
&:before
background-color: #a8a8a1
CSS(Pure)
html, body {
background-color: #f2f2f2;
color: #232323;
font-family: sans-serif;
height: 100vh;
}
html .wrapper, body .wrapper {
width: 1000px;
margin: 0 auto;
text-align: center;
}
html .wrapper .row, body .wrapper .row {
margin: 100px auto;
}
html .wrapper .btn-yellow, html .wrapper .btn-red, html .wrapper .btn-blue, html .wrapper .btn-purple, html .wrapper .btn-green, html .wrapper .btn-pink, html .wrapper .btn-lime, html .wrapper .btn-aqua, html .wrapper .btn-orange, html .wrapper .btn-gold, html .wrapper .btn-grey, body .wrapper .btn-yellow, body .wrapper .btn-red, body .wrapper .btn-blue, body .wrapper .btn-purple, body .wrapper .btn-green, body .wrapper .btn-pink, body .wrapper .btn-lime, body .wrapper .btn-aqua, body .wrapper .btn-orange, body .wrapper .btn-gold, body .wrapper .btn-grey {
position: relative;
border: 6px solid #232323;
z-index: 2;
padding: 12px 22px;
margin: 0 10px;
box-sizing: border-box;
font-size: 26px;
font-weight: 600;
text-transform: uppercase;
text-decoration: none;
color: #232323;
}
html .wrapper .btn-yellow:hover:before, html .wrapper .btn-red:hover:before, html .wrapper .btn-blue:hover:before, html .wrapper .btn-purple:hover:before, html .wrapper .btn-green:hover:before, html .wrapper .btn-pink:hover:before, html .wrapper .btn-lime:hover:before, html .wrapper .btn-aqua:hover:before, html .wrapper .btn-orange:hover:before, html .wrapper .btn-gold:hover:before, html .wrapper .btn-grey:hover:before, body .wrapper .btn-yellow:hover:before, body .wrapper .btn-red:hover:before, body .wrapper .btn-blue:hover:before, body .wrapper .btn-purple:hover:before, body .wrapper .btn-green:hover:before, body .wrapper .btn-pink:hover:before, body .wrapper .btn-lime:hover:before, body .wrapper .btn-aqua:hover:before, body .wrapper .btn-orange:hover:before, body .wrapper .btn-gold:hover:before, body .wrapper .btn-grey:hover:before {
top: 0;
left: 0;
width: 102%;
height: 100%;
}
html .wrapper .btn-yellow:active:before, html .wrapper .btn-red:active:before, html .wrapper .btn-blue:active:before, html .wrapper .btn-purple:active:before, html .wrapper .btn-green:active:before, html .wrapper .btn-pink:active:before, html .wrapper .btn-lime:active:before, html .wrapper .btn-aqua:active:before, html .wrapper .btn-orange:active:before, html .wrapper .btn-gold:active:before, html .wrapper .btn-grey:active:before, body .wrapper .btn-yellow:active:before, body .wrapper .btn-red:active:before, body .wrapper .btn-blue:active:before, body .wrapper .btn-purple:active:before, body .wrapper .btn-green:active:before, body .wrapper .btn-pink:active:before, body .wrapper .btn-lime:active:before, body .wrapper .btn-aqua:active:before, body .wrapper .btn-orange:active:before, body .wrapper .btn-gold:active:before, body .wrapper .btn-grey:active:before {
top: -10px;
left: 18px;
width: 102%;
height: 100%;
}
html .wrapper .btn-yellow:before, html .wrapper .btn-red:before, html .wrapper .btn-blue:before, html .wrapper .btn-purple:before, html .wrapper .btn-green:before, html .wrapper .btn-pink:before, html .wrapper .btn-lime:before, html .wrapper .btn-aqua:before, html .wrapper .btn-orange:before, html .wrapper .btn-gold:before, html .wrapper .btn-grey:before, body .wrapper .btn-yellow:before, body .wrapper .btn-red:before, body .wrapper .btn-blue:before, body .wrapper .btn-purple:before, body .wrapper .btn-green:before, body .wrapper .btn-pink:before, body .wrapper .btn-lime:before, body .wrapper .btn-aqua:before, body .wrapper .btn-orange:before, body .wrapper .btn-gold:before, body .wrapper .btn-grey:before {
content: "";
position: absolute;
z-index: -1;
top: 12px;
left: -14px;
width: calc(100% + 6px);
height: calc(100% + 6px);
background-color: #f9d159;
-webkit-transition: all 0.3s ease;
transition: all 0.3s ease;
}
html .wrapper .btn-red:before, body .wrapper .btn-red:before {
background-color: #e45050;
}
html .wrapper .btn-blue:before, body .wrapper .btn-blue:before {
background-color: #58a9ee;
}
html .wrapper .btn-purple:before, body .wrapper .btn-purple:before {
background-color: #bc79e7;
}
html .wrapper .btn-green:before, body .wrapper .btn-green:before {
background-color: #36bf73;
}
html .wrapper .btn-pink:before, body .wrapper .btn-pink:before {
background-color: #e855cb;
}
html .wrapper .btn-lime:before, body .wrapper .btn-lime:before {
background-color: #a4f478;
}
html .wrapper .btn-aqua:before, body .wrapper .btn-aqua:before {
background-color: #5af3f5;
}
html .wrapper .btn-orange:before, body .wrapper .btn-orange:before {
background-color: #dc612b;
}
html .wrapper .btn-gold:before, body .wrapper .btn-gold:before {
background-color: #c5ac47;
}
html .wrapper .btn-grey:before, body .wrapper .btn-grey:before {
background-color: #a8a8a1;
}
PR


COMMENT