aviel900

Fancy Button Animation

Aug 3rd, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.57 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <title>Fancy Button Animation</title>
  3. <style>
  4.   body {
  5.     display: flex;
  6.     justify-content: center;
  7.     align-items: center;
  8.     height: 100vh;
  9.     background: #fcf3ec;
  10.   }
  11.   .button {
  12.     --offset: 10px;
  13.     --border-size: 2px;
  14.     display: block;
  15.     position: relative;
  16.     padding: 1.5em 3em;
  17.     -webkit-appearance: none;
  18.       -moz-appearance: none;
  19.         appearance: none;
  20.     border: 0;
  21.     background: transparent;
  22.     color: #e55743;
  23.     text-transform: uppercase;
  24.     letter-spacing: .25em;
  25.     outline: none;
  26.     cursor: pointer;
  27.     font-weight: bold;
  28.     border-radius: 0;
  29.     box-shaddow: inset 0 0 0 var(--border-size) currentcolor;
  30.     transition: background .8s ease;
  31.   }
  32.   .button:hover {
  33.     background: rgba(100, 0, 0, 0.03);
  34.   }
  35.   .button_horizontal, .button_vertical {
  36.     position: absolute;
  37.     top: var(--horizontal-offset, 0);
  38.     right: var(--vertical-offset, 0);
  39.     bottom: var(--horizontal-offset, 0);
  40.     left: var(--vertical-offset, 0);
  41.     transition: -webkit-transform .8s ease;
  42.     transition: transform .8s ease;
  43.     transition: transform .8s ease, -webkit-transform .8s ease;
  44.     will-change: transform;
  45.   }
  46.   .button_horizontal::before, .button_vertical::before {
  47.     content: '';
  48.     position: absolute;
  49.     border: inherit;
  50.   }
  51.   .button_horizontal {
  52.     --vertical-offset: calc(var(--offset) * -1);
  53.     border-top: var(--border-size) solid currentcolor;
  54.     border-bottom: var(--border-size) solid currentcolor;
  55.   }
  56.   .button_horizontal::before {
  57.     top: calc(var(--vertical-offset) - var(--border-size));
  58.     bottom: calc(var(--vertical-offset) - var(--border-size));
  59.     left: calc(var(--vertical-offset) * -1);
  60.     right: calc(var(--vertical-offset) * -1);
  61.   }
  62.   .button:hover .button_horizontal {
  63.     -webkit-transform: scaleX(0);
  64.             transform: scaleX(0);
  65.   }
  66.   .button_vertical {
  67.     --horizontal-offset: calc(var(--offset) * -1);
  68.     border-left: var(--border-size) solid currentcolor;
  69.     border-right: var(--border-size) solid currentcolor;
  70.   }
  71.   .button_vertical::before {
  72.     left: calc(var(--horizontal-offset) - var(--border-size));
  73.     right: calc(var(--horizontal-offset) - var(--border-size));
  74.     top: calc(var(--horizontal-offset) * -1);
  75.     bottom: calc(var(--horizontal-offset) * -1);
  76.   }
  77.   .button:hover .button_vertical {
  78.     -webkit-transform: scaleY(0);
  79.             transform: scaleY(0);
  80.   }
  81. </style>
  82. <body>
  83.   <button class="button">Fancy Button
  84.     <div class="button_horizontal"></div>
  85.     <div class="button_vertical"></div>
  86.   </button>
  87. </body>
Advertisement
Add Comment
Please, Sign In to add comment