Web2.0っぽいボタンをCSSで作る

10年前に流行っていた、光沢+グラデーションで装飾されたリッチなボタンを作るというお仕事がきたので、CSSで実現してみました。

完成形

HTML

<a href="#" class="c-button"><span>最先端のボタンデザイン</span></a>

文字をspanタグで囲まなくてはいけなかったところに、技術的な敗北感を感じています。悔しい。

CSS(Sass)

.c-button {
  background : linear-gradient(#2476ff, #001ca8);
  border: 2px solid #fff;
  border-radius : 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.7);
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  overflow: hidden;
  padding: 10px 30px;
  position: relative;
  text-decoration: none;
  text-align: center;
  width: auto;

  &::before {
    background-color: #2a78ff;
    border-radius: 50% 50% 0 0;
    bottom: 0;
    content: '';
    display: block;
    height: 50%;
    left: 0;
    position: absolute;
    width: 100%;
  }
	  
  span {
    position: relative;
  }
}

背景のグラデーションは普通にbackgroundで指定し、光沢となる部分を擬似要素で作っています。楕円っぽくなるようにborder-radiusを指定しましょう。

この光沢部分がどうしても文字より上のレイヤーとして重なって表示されてしまうので、spanタグでposition: relativeを指定することで重なり順を調整しています。

まとめ

デザイントレンドがあと半周回ったくらいのタイミングでお使いください。

いいなと思ったら応援しよう!