#player { .flex-row; &:not([data-state=play]) .pause { display: none; } &[data-state=play] .play { display: none; } &:not([data-flags~=random]) .random, &:not([data-flags~=repeat]) .repeat { opacity: 0.5; } .art { @size: 96px; height: @size; img, .icon { width: @size; } } h2 { font-size: 125%; margin: 0; } .info { flex-grow: 1; align-self: stretch; overflow: hidden; .flex-column; justify-content: space-evenly; } .title, .subtitle { .long-line; } .timeline { .flex-row; .duration, .elapsed { flex-basis: 5ch; } .duration { text-align: right; } progress { flex-grow: 1; height: 8px; } } .controls { .flex-column; flex-basis: 64px + 2*48px; .playback { .flex-row; justify-content: space-around; .icon { width: 32px; } .icon-play, .icon-pause { width: 48px; } } .volume { .flex-row; .icon { margin-right: 4px; } meter { flex-grow: 1; vertical-align: top; height: 8px; } } } .misc { display: flex; flex-direction: column; align-self: stretch; justify-content: space-around; .icon { width: 32px; } } }