@keyframes skeleton-pulse {
  0%,
  100% {
    opacity: 0.55;
  }
  50% {
    opacity: 1;
  }
}

.program-library:not(.library-loaded) .program-card,
.os-library:not(.library-loaded) .os-card,
.extensions-library:not(.library-loaded) .extension-card {
  animation: skeleton-pulse 1.1s ease-in-out infinite;
}

.library-loaded .program-card,
.library-loaded .os-card,
.library-loaded .extension-card {
  animation: none;
}
