ボタンいろいろ

yasuko
旅行に行きたいなぁ

出番多めなボタンたち

基本のスタイルは以下のとおり。

全てのボタンに共通するスタイルは .btn  としてスタイリング。

なので、アイコン等をつけないのであればこのスタイルだけでOK!

ボタン
<a href="" class="btn">ボタン</a>
.btn {
  background: #abd300;
  background-size: 200% 100%;
  background-image: -webkit-linear-gradient(left, transparent 50%, #d1e02a 50%);
  background-image: linear-gradient(to right, transparent 50%, #d1e02a 50%);
  -webkit-transition: background-position .3s cubic-bezier(0.19, 1, 0.22, 1) .1s, color .5s ease 0s, background-color .5s ease;
  transition: background-position .3s cubic-bezier(0.19, 1, 0.22, 1) .1s, color .5s ease 0s, background-color .5s ease;
  box-shadow: 0px 0px 15px 0px rgba(94, 94, 94, 0.05);
  color: #fff;
  display: block;
  text-align: center;
  padding: 14px;
  margin: 40px 0;
  max-width: 300px;
  position: relative;
}
a.btn {
  text-decoration: none;
}
a.btn:hover {
  color: #fff;
}
.btn:hover {
  background: #d1e02a;
  background-position: -100% 100%;
}
.btn:nth-of-type(odd):hover {
  background: #d1e02a;
  background-position: 100% -100%;
}

ホバーしたときに色が変わるようにしている

.btn:hover
.btn:nth-of-type(odd):hover

はホバー時の変化が必要ない時にはなくてもOK!

ちなみに、右からキランor左からキランの違いなので、

どちらかだけ使ってももちろんOK!

疑似クラス nth-of-typeについては以前記事にしました。こちら。

通常ボタン

cssでくの字やじるしを作るパターン

通常ボタン
<a href="" class="btn arrow">通常ボタン</a>
.btn.arrow::after {
  content: "";
  height: 7px;
  width: 7px;
  position: absolute;
  top: calc(50% - 3.5px);
  right: 20px;
  margin: auto;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

リンクボタン

FontAwesomeアイコンを使うパターン

リンクボタン
<a href="" class="btn ext">リンクボタン</a>
.btn.ext:after {
  content: "\f08e";
  font-family: "FontAwesome";
  display: inline-block;
  width: 18px;
  height: 18px;
  position: absolute;
  right: 20px;
}

PDFボタン

PDFボタン
<a href="" class="btn pdf">PDFボタン</a>

.btn.pdf:after {
  content: "\f1c1";
  font-family: "FontAwesome";
  display: inline-block;
  width: 18px;
  height: 18px;
  position: absolute;
  right: 20px;
}

メールボタン

メールボタン
<a href="" class="btn mail">メールボタン</a>

.btn.mail:before {
  content: "\f0e0";
  font-family: "FontAwesome";
  display: inline-block;
  width: 18px;
  height: 18px;
  position: absolute;
  right: 20px;
}

エクセルボタン

エクセルボタン
<a href="" class="btn excel">エクセルボタン</a>

.btn.excel:after {
  content: "\f1c3";
  font-family: "FontAwesome";
  display: inline-block;
  width: 18px;
  height: 18px;
  position: absolute;
  right: 20px;
}

ワードボタン

ワードボタン
<a href="" class="btn word">ワードボタン</a>
.btn.word:after {
  content: "\f1c2";
  font-family: "FontAwesome";
  display: inline-block;
  width: 18px;
  height: 18px;
  position: absolute;
  right: 20px;
}

ボタンで登場回数が多いものをコピペできるように。

ガラスのボタン

twitterを見ていたらものすごい素敵なボタンを作っておられる方(あしざわ – Webクリエイターさま)をお見かけして、いつか自分のサイトに使いたい!と思い備忘録的にボタンコレクションの仲間入りさせておきます。

<a href="#" class="button">
  <div class="button__wrapper"></div>
  <div class="button__box">ENTRY</div>
</a>
<a href="#" class="button button--round">
  <div class="button__wrapper"></div>
  <div class="button__box">ENTRY</div>
</a>
.button{
    display: block ;
    position : relative ;
    width : 240px ;
    height : 60px ;
    background: rgb(153,191,187);
    background: radial-gradient( rgba(93,108,107,.3) 0%, rgba(95,162,158,0) 90%);
    box-shadow : 0 0 24px rgba(116,132,145,1) ;
    transition : all .7s ease ;
}
.button::before{
    content : '' ;
    position : absolute ;
    z-index : 2 ;
    top : -4px ;
    left : 0 ;
    width : 160px ;
    height : 10px ;
    border-radius : 50% ;
    background: rgb(170,255,240);
    background: radial-gradient( rgba(255,255,255,1) 0%, rgba(255,255,255,0) 33%, rgba(255,255,255,0) 100%);
}
.button::after{
    content : '' ;
    position : absolute ;
    z-index : 2 ;
    bottom : -4px ;
    right : 0 ;
    width : 160px ;
    height : 10px ;
    border-radius : 50% ;
    background: rgb(170,255,240);
    background: radial-gradient( rgba(255,255,255,1) 0%, rgba(255,255,255,0) 33%, rgba(255,255,255,0) 100%);
}
.button__wrapper{
    width : 100% ;
    height :100% ;
    clip-path: polygon(0% 0%, 0 100%, 0.7% 100%, 0.7% 3%, 99.3% 3%, 99.3% 98%, 0% 98%, 0% 100%, 100% 100%, 100% 0%);
    background-color:hsla(0,0%,100%,1);
    background-image:
    radial-gradient(at 0% 0%, hsla(180,100%,98%,1) 0px, transparent 50%),
    radial-gradient(at 29% 0%, hsla(189,100%,78%,1) 0px, transparent 50%),
    radial-gradient(at 0% 48%, hsla(355,0%,100%,1) 0px, transparent 50%),
    radial-gradient(at 100% 62%, hsla(340,0%,100%,1) 0px, transparent 50%),
    radial-gradient(at 90% 98%, hsla(169,88%,83%,1) 0px, transparent 50%),
    radial-gradient(at 26% 100%, hsla(240,0%,44%,1) 0px, transparent 50%),
    radial-gradient(at 79% 0%, hsla(336,0%,51%,1) 0px, transparent 50%);
}
.button__box{
    display : flex ;
    justify-content : center ;
    align-items : center ;
    position : absolute ;
    z-index : 1 ;
    top : 3% ;
    left : 0.8% ;
    width : 98.4% ;
    height : 94% ;
    color : rgba(255,255,255,.7) ;
    letter-spacing : 2px ;
    background: rgb(255,255,255);
    background: linear-gradient(120deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,0) 50%);
    transition : all 1s ease ;
}
.button__box::before{
    content : '' ;
    position : absolute ;
    z-index : -1 ;
    top : 0 ;
    left : 0 ;
    width : 100% ;
    height : 100% ;
    background : linear-gradient( 120deg , rgba(255,255,255,.4),rgba(255,255,255,0)) ;
    clip-path : path('M215.98,12.57c8.09,0,16.1,.12,24.02,.33V0H0V44.89C53.01,25.06,130.12,12.57,215.98,12.57Z');
}
.button--round{
    border-radius : 30px ;
}
.button--round .button__wrapper{
    clip-path: path('M210,1c15.99,0,29,13.01,29,29s-13.01,29-29,29H30C14.01,59,1,45.99,1,30S14.01,1,30,1H210m0-1H30C13.43,0,0,13.43,0,30s13.43,30,30,30H210c16.57,0,30-13.43,30-30S226.57,0,210,0h0Z');
}
.button--round .button__box{
    border-radius : 30px ;
    overflow : hidden ;
}
.button:hover{
    box-shadow : 0 0 24px rgba(116,132,145,0) ;
}
.button:hover .button__box{
    letter-spacing : 8px ;
    color : rgba(255,255,255,1) ;
}

あしざわ – Webクリエイターさま

他にもいろんなふつくしいボタンも公開されてますし、

クスッっとなるツイートもたくさんありますのでこれからも参考にさせていただきます!