react-pulsable
Version:
This is a simple and customizable react component library to add a pulsing/skeleton loading effect to your existing component.
2 lines (1 loc) • 3.59 kB
CSS
.pulsable-cont.pulsable-base{outline:none;opacity:0}.pulsable-cont.pl-css{-webkit-user-select:none;-ms-user-select:none;pointer-events:none;user-select:none}.pulsable-cont.pl-css *{transition:none}.pulsable-cont.pl-css .pl-animate-none{-webkit-animation:none;animation:none}@-webkit-keyframes wave-lines{0%{background-position:-358px 0}to{background-position:438px 0}}@keyframes wave-lines{0%{background-position:-358px 0}to{background-position:438px 0}}@-webkit-keyframes wave-lines-r{0%{background-position:358px 0}to{background-position:-438px 0}}@keyframes wave-lines-r{0%{background-position:358px 0}to{background-position:-438px 0}}.pulsable-cont.pl-css .pl-animate-none{background:var(--color-transparent-medium, rgba(130, 130, 130, .2))}@-webkit-keyframes pl-pulse{50%{opacity:.5}}@keyframes pl-pulse{50%{opacity:.5}}.pulsable-cont.pl-css .pl-animate{-webkit-animation:pl-pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:pl-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.pulsable-cont.pl-css .pl-animate{background:var(--color-transparent-light, rgba(130, 130, 130, .2))}.pulsable-cont.pl-css .pl-animate-wave{background:var(--color-transparent-light, rgba(130, 130, 130, .2));background:linear-gradient(to right,var(--color-transparent-light, rgba(130, 130, 130, .2)) 8%,var(--color-transparent-medium, rgba(130, 130, 130, .3)) 18%,var(--color-transparent-light, rgba(130, 130, 130, .2)) 33%);background-size:800px 100px;-webkit-animation:wave-lines 2s infinite ease-out;animation:wave-lines 2s infinite ease-out}.pulsable-cont.pl-css .pl-animate-wave-r{background:var(--color-transparent-light, rgba(130, 130, 130, .2));background:linear-gradient(to left,var(--color-transparent-light, rgba(130, 130, 130, .2)) 8%,var(--color-transparent-medium, rgba(130, 130, 130, .3)) 18%,var(--color-transparent-light, rgba(130, 130, 130, .2)) 33%);background-size:800px 100px;-webkit-animation:wave-lines-r 2s infinite ease-in-out;animation:wave-lines-r 2s infinite ease-in-out}.pulsable-cont.pl-css .pl-svg-cont{position:absolute;z-index:1;width:100%;height:100%;top:0;left:0;opacity:.7}.pulsable-cont.pl-css .pl-svg-cont svg{position:absolute;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);left:50%;top:50%}.pulsable-cont.pl-css .pl-child{position:absolute;z-index:1;width:100%}.pulsable-cont.pl-css .pl-no-rounded{border-radius:0}.pulsable-cont.pl-css .pl-element{outline:none;color:transparent;border-color:transparent;box-shadow:none;background:transparent;position:relative;background-color:transparent}.pulsable-cont.pl-css .pl-child-element{outline:none;opacity:0}.pulsable-cont.pl-css .pl-child-rect{height:70%;top:15%;left:0;border-radius:5px}.pulsable-cont.pl-css .pl-child-para-cont{background-color:transparent;height:100%;top:0%;left:0;display:flex;flex-direction:column;justify-content:space-between}.pulsable-cont.pl-css .pl-child-para{border-radius:5px}.pulsable-cont.pl-css .pl-child-rect-full{height:100%;top:0%;left:0;border-radius:5px}.pulsable-cont.pl-css .pl-child-circle{width:90%;height:90%;top:5%;left:5%;border-radius:100%}.pulsable-cont.pl-css .pl-child-hidden{opacity:0}