@property --primary-color { syntax: ''; initial-value: white; inherits: false; } @property --secondary-color { syntax: ''; initial-value: white; inherits: false; } :root { --text-shadow: 0 0 12px rgba(0, 0, 0, 0.4); --box-shadow: 0 .5rem .75rem .375rem rgba(0, 0, 0, .15), 0 .25rem .25rem rgba(0, 0, 0, .3); } * { font-family: 'Exo 2', sans-serif; user-select: none; } html { display: flex; flex-direction: column; height: 100%; overflow: hidden; } body { padding: 2rem; } #root { display: flex; flex-direction: column; align-items: center; } #root > * { width: 30rem; } #root > *:not(:first-child) { margin-top: 2rem; } #root > *.hidden { display: none; } #root > * > .title { margin-bottom: .5rem; color: white; text-shadow: var(--text-shadow); font-size: 1.5rem; font-weight: 600; } #music { display: flex; flex-direction: column; --progress: 100%; } #music > .progress-bar { position: relative; display: flex; align-items: center; margin-top: .5rem; padding: 1rem; width: 28rem; background-image: linear-gradient(225deg, var(--primary-color), var(--secondary-color)); box-shadow: var(--box-shadow); border-radius: .5rem; overflow: hidden; transition: opacity .4s, --primary-color 1s, --secondary-color 1s; --progress-size: inherit; --progress-color: inherit; } #music > .progress-bar::before { content: ''; position: absolute; top: 0; right: var(--progress-size); bottom: 0; left: 0; background-color: rgba(0, 0, 0, .3); transition: right 1s, background-color 4s; } #music > .progress-bar > .data { display: flex; flex-direction: column; margin-left: 1rem; overflow-x: hidden; z-index: 1; } #music > .progress-bar > .data > .title, #music > .progress-bar > .data > .artists { color: white; white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; } #music > .progress-bar > .data > .title { font-size: 1.2rem; font-weight: 600; } #music > .progress-bar > .data > .artists { font-size: 1rem; font-weight: 400; } #music > .progress-bar > .cover { flex-shrink: 0; width: 3rem; height: 3rem; object-fit: cover; z-index: 1; }