<div class="library">
  <div class="library__default">
    <button class="btn btn-default">Default</button>
    <button class="btn btn-primary">Primary</button>
    <button class="btn btn-secondary">Secondary</button>
    <button class="btn btn-disabled" disabled>Disabled</button>
    <button class="btn btn-help">Help</button>
  </div>
  <div class="library__empty">
    <button class="btn btn-default">Default</button>
    <button class="btn btn-primary">Primary</button>
    <button class="btn btn-secondary">Secondary</button>
    <button class="btn btn-disabled" disabled>Disabled</button>
    <button class="btn btn-help">Help</button>
  </div>
  <div class="library__border">
    <button class="btn btn-default">Default</button>
    <button class="btn btn-primary">Primary</button>
    <button class="btn btn-secondary">Secondary</button>
    <button class="btn btn-disabled" disabled>Disabled</button>
    <button class="btn btn-help">Help</button>
  </div>
  <div class="library__underline">
    <button class="btn btn-default">Default</button>
    <button class="btn btn-primary">Primary</button>
    <button class="btn btn-secondary">Secondary</button>
    <button class="btn btn-disabled" disabled>Disabled</button>
    <button class="btn btn-help">Help</button>
  </div>
  <div class="library__fun">
    <button class="btn btn-default"><span>Defa</span>ult</button>
    <button class="btn btn-primary"><span>Prim</span>ary</button>
    <button class="btn btn-secondary"><span>Seco</span>ndary</button>
    <button class="btn btn-disabled" disabled>Disabled</button>
    <button class="btn btn-help"><span>Help</span></button>
  </div>
</div>
@import url("https://fonts.googleapis.com/css?family=Lato:300,500,900");
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  width: 100%;
  height: 100vh;
  overflow: hidden;
  margin: 0;
  padding: 0;
  background: #ba5370;
  background: -webkit-linear-gradient(180deg, #f4e2d8, #f4e2d8, #ba5370);
  background: linear-gradient(180deg, #f4e2d8, #f4e2d8, #ba5370);
  display: flex;
  justify-content: center;
  align-content: center;
}

.library {
  max-width: 450px;
  width: 100%;
  margin: auto;
  text-align: center;
}
.library div[class^="library__"] {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  margin: 0 auto 20px;
  position: relative;
}

button {
  outline: none;
  font-family: "Lato", sans-serif;
  padding: 10px 15px;
  font-weight: 500;
  background: none;
  border: 0;
  border-radius: 5px;
  position: relative;
  color: #262626;
  letter-spacing: .56px;
}
button.btn-default:hover {
  color: #9e9e9e;
}
button.btn-primary:hover {
  color: #44688b;
}
button.btn-secondary:hover {
  color: #92274b;
}
button.btn-help:hover {
  color: #1c6d20;
}
button:hover {
  cursor: pointer;
}
button.btn-default {
  color: #9e9e9e;
}
button.btn-primary {
  color: #44688b;
}
button.btn-secondary {
  color: #92274b;
}
button.btn-help {
  color: #1c6d20;
}
button:disabled {
  cursor: no-drop;
}

.library__default button {
  transition: 0.3s all ease;
}
.library__default .btn:not([class$="disabled"]) {
  color: #efefef;
}
.library__default button.btn.btn-default {
  background: rgba(206, 206, 206, 0.5);
  color: #262626;
}
.library__default button.btn.btn-default:hover {
  background: rgba(158, 158, 158, 0.7);
}
.library__default .btn-primary {
  background: rgba(97, 139, 180, 0.5);
}
.library__default .btn-primary:hover {
  background: rgba(68, 104, 139, 0.7);
}
.library__default .btn-secondary {
  background: rgba(206, 64, 111, 0.5);
}
.library__default .btn-secondary:hover {
  background: rgba(146, 39, 75, 0.7);
}
.library__default .btn-disabled {
  background: rgba(236, 236, 236, 0.5);
}
.library__default .btn-help {
  background: rgba(12, 150, 19, 0.5);
}
.library__default .btn-help:hover {
  background: rgba(28, 109, 32, 0.7);
}

.library__empty button::before,
.library__empty button::after {
  content: "";
  position: absolute;
  width: 100%;
  transform: scaleX(0);
}
.library__empty button::before {
  left: 0;
  top: 0;
}
.library__empty button::after {
  left: 0;
  bottom: 0;
}
.library__empty button:hover::before,
.library__empty button:hover::after {
  transform: scaleX(1);
  transition: 0.5s all ease;
}
.library__empty .btn-default::before, .library__empty .btn-default::after {
  border: 1px solid #cecece;
}
.library__empty .btn-default:hover {
  color: #9e9e9e;
}
.library__empty .btn-default:hover::before, .library__empty .btn-default:hover::after {
  border-color: #9e9e9e;
}
.library__empty .btn-primary::before, .library__empty .btn-primary::after {
  border: 1px solid #618bb4;
}
.library__empty .btn-primary:hover {
  color: #44688b;
}
.library__empty .btn-primary:hover::before, .library__empty .btn-primary:hover::after {
  border-color: #44688b;
}
.library__empty .btn-secondary::before, .library__empty .btn-secondary::after {
  border: 1px solid #ce406f;
}
.library__empty .btn-secondary:hover {
  color: #92274b;
}
.library__empty .btn-secondary:hover::before, .library__empty .btn-secondary:hover::after {
  border-color: #92274b;
}
.library__empty .btn-help::before, .library__empty .btn-help::after {
  border: 1px solid #0c9613;
}
.library__empty .btn-help:hover {
  color: #1c6d20;
}
.library__empty .btn-help:hover::before, .library__empty .btn-help:hover::after {
  border-color: #1c6d20;
}

.library__border button {
  overflow: hidden;
}
.library__border button:hover {
  color: #efefef;
  transition-delay: 0.25s;
}
.library__border button::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  transition: 0.35s all ease-in;
  transform: translateY(100px);
}
.library__border .btn-default {
  color: #262626;
  border: 1px solid rgba(38, 38, 38, 0.5);
}
.library__border .btn-default:hover::before {
  background: rgba(38, 38, 38, 0.5);
  transform: translateY(0px);
}
.library__border .btn-primary {
  border: 1px solid rgba(97, 139, 180, 0.5);
}
.library__border .btn-primary:hover::before {
  background: rgba(97, 139, 180, 0.5);
  transform: translateY(0px);
}
.library__border .btn-secondary {
  border: 1px solid rgba(206, 64, 111, 0.5);
}
.library__border .btn-secondary:hover::before {
  background: rgba(206, 64, 111, 0.5);
  transform: translateY(0px);
}
.library__border .btn-disabled {
  border: 1px solid rgba(38, 38, 38, 0.2);
  background: rgba(38, 38, 38, 0.1);
}
.library__border .btn-help {
  border: 1px solid rgba(12, 150, 19, 0.5);
}
.library__border .btn-help:hover::before {
  background: rgba(12, 150, 19, 0.5);
  transform: translateY(0px);
}

.library__underline button::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  transform: translatex(0);
  border: 1px solid transparent;
  transition: 0.5s all ease;
}
.library__underline button:hover::after {
  width: 100%;
  transform: translatex(1);
}
.library__underline .btn-default:hover::after {
  border-color: #9e9e9e;
}
.library__underline .btn-primary:hover {
  color: #44688b;
}
.library__underline .btn-primary:hover::after {
  border-color: #44688b;
}
.library__underline .btn-secondary:hover {
  color: #92274b;
}
.library__underline .btn-secondary:hover::after {
  border-color: #92274b;
}
.library__underline .btn-help:hover {
  color: #1c6d20;
}
.library__underline .btn-help:hover::after {
  border-color: #1c6d20;
}

.library__fun button {
  background: rgba(206, 206, 206, 0.2);
  border-radius: 0;
  color: #262626;
}
.library__fun button::before,
.library__fun button::after,
.library__fun button span::before,
.library__fun button span::after {
  content: "";
  position: absolute;
  border: 0.5px solid transparent;
  transition: 0.1s all ease-in;
}
.library__fun button::before,
.library__fun button::after {
  width: 0;
  transform: translatex(0);
}
.library__fun button span::before,
.library__fun button span::after {
  height: 0;
  transform: translatey(0);
}
.library__fun button::before {
  right: 0;
  top: 0;
}
.library__fun button::after {
  left: 0;
  bottom: 0;
}
.library__fun button span::before {
  left: 0;
  top: 0;
}
.library__fun button span::after {
  right: 0;
  bottom: 0;
}
.library__fun .btn-default:hover {
  color: #262626;
}
.library__fun .btn-default:hover::before {
  width: 100%;
  transform: translatex(1);
  border-color: #262626;
}
.library__fun .btn-default:hover::after {
  width: 100%;
  transform: translatex(1);
  border-color: #262626;
  transition-delay: 0.2s;
}
.library__fun .btn-default:hover span::before {
  height: 100%;
  transform: translatey(1);
  border-color: #262626;
  transition-delay: 0.1s;
}
.library__fun .btn-default:hover span::after {
  height: 100%;
  transform: translatey(1);
  border-color: #262626;
  transition-delay: 0.3s;
}
.library__fun .btn-primary:hover::before {
  width: 100%;
  transform: translatex(1);
  border-color: #44688b;
}
.library__fun .btn-primary:hover::after {
  width: 100%;
  transform: translatex(1);
  border-color: #44688b;
  transition-delay: 0.2s;
}
.library__fun .btn-primary:hover span::before {
  height: 100%;
  transform: translatey(1);
  border-color: #44688b;
  transition-delay: 0.1s;
}
.library__fun .btn-primary:hover span::after {
  height: 100%;
  transform: translatey(1);
  border-color: #44688b;
  transition-delay: 0.3s;
}
.library__fun .btn-secondary:hover::before {
  width: 100%;
  transform: translatex(1);
  border-color: #92274b;
}
.library__fun .btn-secondary:hover::after {
  width: 100%;
  transform: translatex(1);
  border-color: #92274b;
  transition-delay: 0.2s;
}
.library__fun .btn-secondary:hover span::before {
  height: 100%;
  transform: translatey(1);
  border-color: #92274b;
  transition-delay: 0.1s;
}
.library__fun .btn-secondary:hover span::after {
  height: 100%;
  transform: translatey(1);
  border-color: #92274b;
  transition-delay: 0.3s;
}
.library__fun .btn-help:hover::before {
  width: 100%;
  transform: translatex(1);
  border-color: #1c6d20;
}
.library__fun .btn-help:hover::after {
  width: 100%;
  transform: translatex(1);
  border-color: #1c6d20;
  transition-delay: 0.2s;
}
.library__fun .btn-help:hover span::before {
  height: 100%;
  transform: translatey(1);
  border-color: #1c6d20;
  transition-delay: 0.1s;
}
.library__fun .btn-help:hover span::after {
  height: 100%;
  transform: translatey(1);
  border-color: #1c6d20;
  transition-delay: 0.3s;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.