// -------------------------------------------------------------------------------- // Block: Media // -------------------------------------------------------------------------------- figure.block-media { display: block; position: relative; overflow: hidden; } figure.block-media picture, figure.block-media picture > img, figure.block-media video, figure.block-media audio { display: block; width: 100%; height: auto; object-fit: contain; object-position: center center; } figure.block-media > figcaption { display: block; margin: 0; padding: .25em .5em; text-align: center; font-size: 0.9em; background: rgba(0, 0, 0, 0.5); } // -------------------------------------------------------------------------------- // Block: Media Player // -------------------------------------------------------------------------------- $media-player-button-size: 1.5rem; figure.block-media.hide { cursor: none; } figure.block-media > .top, figure.block-media > .bottom { display: block; margin: 0; padding: 0.2rem 0.5rem; z-index: 1; } figure.block-media > .top { position: absolute; top: 0; left: 0; right: 0; display: flex; padding-bottom: 1rem; flex-flow: row nowrap; justify-content: space-between; align-items: stretch; align-content: stretch; gap: 0.5rem; background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 80%); transition: top ease-in-out 100ms, opacity ease-in-out 100s; opacity: 1.0; overflow: hidden; user-select: none; } figure.block-media.hide > .top { top: -100%; opacity: 0.0; transition: top ease-in-out 500ms, opacity ease-in-out 500s; } figure.block-media > .top > .variant { flex-grow: 1; } figure.block-media > .bottom { position: absolute; bottom: 0; left: 0; right: 0; display: flex; padding-top: 1rem; flex-flow: row nowrap; justify-content: space-between; align-items: stretch; align-content: stretch; gap: 0.5rem; background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 80%); transition: top ease-in-out 100ms, opacity ease-in-out 100s; opacity: 1.0; overflow: hidden; user-select: none; } figure.block-media.hide > .bottom { bottom: -100%; opacity: 0.0; transition: top ease-in-out 500ms, opacity ease-in-out 500s; } figure.block-media > .bottom > .play { display: block; flex-grow: 0; margin: 0; padding: 0; width: $media-player-button-size; height: $media-player-button-size; font-size: $media-player-button-size; line-height: $media-player-button-size; text-align: center; user-select: none; } figure.block-media > .bottom > .play.playing { } figure.block-media > .bottom > .time { display: block; margin: 0; padding: 0; width: auto; height: $media-player-button-size; flex-grow: 0; flex-shrink: 0; flex-basis: auto; text-align: right; line-height: $media-player-button-size; user-select: auto; } figure.block-media > .bottom > .progress { margin: 0; padding: 0; width: auto; min-width: 5rem; height: 100%; flex-grow: 5; flex-shrink: 1; display: block; user-select: none; } figure.block-media > .bottom > .mute { display: block; margin: 0; padding: 0; width: $media-player-button-size; height: $media-player-button-size; flex-grow: 0; flex-shrink: 0; flex-basis: auto; font-size: $media-player-button-size; line-height: $media-player-button-size; text-align: center; user-select: none; } figure.block-media > .bottom > .mute.muted { } figure.block-media > .bottom > .volume { display: block; margin: 0; padding: 0; width: auto; min-width: 3rem; max-width: 6rem; height: 100%; flex-grow: 1; flex-shrink: 5; flex-basis: auto; user-select: none; } figure.block-media > .bottom > .fullscreen { display: block; margin: 0; padding: 0; width: $media-player-button-size; height: $media-player-button-size; flex-grow: 0; flex-shrink: 0; flex-basis: auto; font-size: $media-player-button-size; line-height: $media-player-button-size; text-align: center; user-select: none; } @media (max-width: 500px) { figure.block-media > .bottom > .time { display: none; } } @media (max-width: 350px) { figure.block-media > .bottom > .volume { display: none; } } @media (max-width: 250px) { figure.block-media > .bottom > .play, figure.block-media > .bottom > .mute, figure.block-media > .bottom > .fullscreen { display: none; } }