Skip to content

Instantly share code, notes, and snippets.

@wplit
Last active November 12, 2025 22:12
Show Gist options
  • Select an option

  • Save wplit/7b0b2b2aeb7f88d24053b4cbe1cf2ca0 to your computer and use it in GitHub Desktop.

Select an option

Save wplit/7b0b2b2aeb7f88d24053b4cbe1cf2ca0 to your computer and use it in GitHub Desktop.
hide media layout while waiting for new audio to load between playlist clicks - the key being the attribute [data-x-wait] that is only added while waiting for the next media to load.
/* hide layout while waiting for new media to load */
media-player media-layout {
transition: opacity 0.1s ease, visibility 0.1s ease;
}
media-player[data-x-wait] media-layout {
opacity: 0!important;
visibility: hidden;
}
/* add spinner and display only while waiting for new media to load */
media-player::before {
--x-media-spinner-track-color: #0d131e20;
--x-media-spinner-stroke-width: 2px;
--x-media-spinner-size: 3em;
-webkit-animation: xAudioSpinAnimation 1s linear infinite;
animation: xAudioSpinAnimation 1s linear infinite;
border: solid var(--x-media-spinner-stroke-width) var(--x-media-spinner-track-color);
border-radius: 50%;
border-right-color: currentColor;
border-top-color: currentColor;
display: inline-block;
height: var(--x-media-spinner-size);
width: var(--x-media-spinner-size);
-webkit-transition: opacity .3s ease, visibility .3s ease;
transition: opacity .3s ease, visibility .3s ease;
left: calc(50% - var(--x-media-spinner-size)/2);
opacity: 0;
position: absolute;
top: calc(50% - var(--x-media-spinner-size)/2);
visibility: hidden;
content: '';
z-index: 2;
pointer-events: none;
}
media-player[data-x-wait]::before {
opacity: 1;
visibility: visible;
}
@-webkit-keyframes xAudioSpinAnimation {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg)
}
to {
-webkit-transform: rotate(1turn);
transform: rotate(1turn)
}
}
@keyframes xAudioSpinAnimation {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg)
}
to {
-webkit-transform: rotate(1turn);
transform: rotate(1turn)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment