.progressbar { touch-action: none; vertical-align: middle; text-align: center; align-items: center; cursor: default; position: absolute; display: flex; justify-content: flex-start; bottom: 2px; width: 99%; height: 30px; background-color: gray; &.done { top: 0px; width: 0px; height: 5px; background-color: red; z-index: 2; } &.mark { top: 0px; background-color: transparent; border-right: 2px solid white; z-index: 3; pointer-events: none; } } .progressbar-disabled { cursor: not-allowed; } .progressbar-dragging { cursor: grabbing; } // citation: https://codepen.io/_Master_/pen/PRdjmQ @keyframes blinker { from { opacity: 1; } to { opacity: 0; } } .blink { text-decoration: blink; animation-name: blinker; animation-duration: 0.6s; animation-iteration-count: infinite; animation-timing-function: ease-in-out; animation-direction: alternate; } .segment { border: 3px solid black; background-color: red; margin: 1px; padding: 0px; cursor: pointer; transition-duration: 0.5s; user-select: none; vertical-align: middle; text-align: center; } .segment-expanding { border-color: red; background-color: white; transition-duration: 0s; opacity: 0.75; pointer-events: none; } .segment-expanding:hover { background-color: inherit; cursor: not-allowed; } .segment-disabled { pointer-events: none; opacity: 0.5; transition-duration: 0s; /* Hide the text. */ text-indent: 100%; white-space: nowrap; overflow: hidden; } .segment-hide { background-color: inherit; text-align: center; vertical-align: middle; user-select: none; } .segment:first-child { margin-left: 2px; } .segment:last-child { margin-right: 2px; } .segment:hover { background-color: white; } .segment:hover, .segment-selected { margin: 0px; border: 4px solid red; border-radius: 2px; } .segment-selected { border: 4px solid #202020; background-color: red; opacity: 0.75; cursor: grabbing; }