線が描かれるアウトラインボタン

UI コンポーネント Hard #css #button #outline #border-animation

このアウトラインボタンは、4辺を <i> 要素で個別に用意し、ホバー時に上→右→下→左の順で線が伸びていく演出です。各辺は最初 width:0 または height:0 で隠れており、 :hover で 100% に伸長します。

▶ プレビュー

解説

このアウトラインボタンは、4辺を <i> 要素で個別に用意し、ホバー時に上→右→下→左の順で線が伸びていく演出です。各辺は最初 width:0 または height:0 で隠れており、:hover で 100% に伸長します。順番は transition-delay.25s ずつずらすことで生まれ、まるで一筆書きで枠が描かれるように見えます。背景は透明、ベースに枠線を持たないため、線が描かれて初めて輪郭が完成する構造です。CSS のみで動作します。

合う場面

  • ミニマルで上質なポートフォリオの CTA
  • 暗い背景に映えるエレガントなナビボタン
  • 余白を活かしたブランドサイトのリンク

描画の速さは各辺の transitiondelay で決まり、全部短くすれば素早く、長くすれば優雅になります。線の色 #fff を1か所変えれば4辺すべてに反映されます。注意点はホバー前提の演出であること。タッチ端末ではホバーが効きにくいため、フォーカス時にも同じ動きが出るよう :focus-visible を併用すると操作性が上がります。

使用例・適したシーン

  • お問い合わせフォームの送信ボタン
  • 資料ダウンロードの CTA
  • ヒーローセクションの主要 CTA
  • サブスク・申込ボタン

よくある質問

線が描かれる順番や速さを変えられますか
順番は各辺に設定した transition-delay(0、.25s、.5s、.75s)で決まります。値を入れ替えれば描き始める辺を変えられ、すべて小さくすれば速く、大きくすれば優雅に描かれます。
スマホのタップでも動きますか
この演出は :hover が前提のため、ホバーのないタッチ端末では再現されにくいです。:focus や :focus-visible にも同じ動きを指定しておくと、タップやキーボード操作でも線が描かれるようになります。
inspired by common pattern / 追加日:2026-05-12
← すべてのスニペットへ戻る