:host {
  list-item {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
    border: 0;
    margin: 0px;
    width: 100%;
  }
  button {
    background: #03A9F4;
    border: none;
    color: white;
    margin: 1em;
    width: 4em;
    border-radius: 5em;
    font-size: .8em;
    line-height: 1em;
    padding: .5em;
    outline: none;
  }
  .loader {
    height: 4em;
    display: block;
    line-height: 4em;
    text-align: center;
    position: relative;
  }
  .loader:before {
    content: ' ';
    position: absolute;
    top: 0;
    left: 0;
    width: 20%;
    height: 2px;
    background: red;
    animation: loader-animation 2s ease-out infinite;
  }
  @keyframes loader-animation {
    0% {
      transform: translate(0%);
    }
    100% {
      transform: translate(500%);
    }
  }
}

:host {
  button {
    background: #03A9F4;
    border: none;
    color: white;
    margin: 1em;
    width: 4em;
    border-radius: 5em;
    font-size: .8em;
    line-height: 1em;
    padding: .5em;
    outline: none;
  }
  .loader {
    height: 4em;
    display: block;
    line-height: 4em;
    text-align: center;
    position: relative;
  }
  .loader:before {
    content: ' ';
    position: absolute;
    top: 0;
    left: 0;
    width: 20%;
    height: 2px;
    background: red;
    animation: loader-animation 2s ease-out infinite;
  }
  @keyframes loader-animation {
    0% {
      transform: translate(0%);
    }
    100% {
      transform: translate(500%);
    }
  }
}

Fix CSS issue with demo
Fix CSS issue with demo
