beige = #F9F2E7 dark-gray = #333 gray = #777 green = #8FBE00 light-blue = #40C0CB light-gray = #EEE light-green = #AEE239 light-red = #E23430 red = #C40D08 @keyframes rotate { from { transform: rotate(0deg) } to { transform: rotate(360deg) } } global-reset() * { box-sizing: border-box } html, body { height: 100% } h1 { color: green font: bold 32px/40px "Quicksand", sans-serif text-align: center margin: 0 0 10px } p { color: gray font: 14px/20px "Quicksand", sans-serif text-align: center margin: 0 0 } .container { display: table width: 100% height: 100% } .page { display: table-cell vertical-align: middle } .drop-zone { position: absolute top: 0 left: 0 width: 100% height: 100% display: table background: rgba(0, 0, 0, 0) &.drop-zone-focus { z-index: 1 background: rgba(0, 0, 0, 0.5) &:after { color: white content: 'DROP TO UPLOAD' display: table-cell font: 24px/40px "Quicksand", sans-serif text-align: center text-shadow: 0 1px dark-gray vertical-align: middle } } } .spinner { position: relative z-index: -1 width: 300px height: 300px margin: 0 auto 40px display: flex align-items: center justify-content: center .spinner-border { position: absolute top: 0 left: 0 width: 100% height: 100% border: 20px dotted light-blue border-radius: 100% transition: transform 1s } &.spinner-animated .spinner-border { animation: rotate 5s infinite linear } .spinner-image { display: block width: 150px margin: 0 auto } .spinner-name { font: bold 18px/20px "Quicksand", sans-serif text-align: center color: dark-gray overflow: hidden text-overflow: ellipsis white-space: nowrap margin-top: 10px margin: 0 auto width: 65% } .spinner-size { font: italic 12px/20px "Quicksand", sans-serif text-align: center color: gray overflow: hidden text-overflow: ellipsis white-space: nowrap } } .tempalink { background: beige color: dark-gray border: 0 margin: 20px 0 font: 18px/1 monospace height: 60px padding: 20px text-align: center width: 100% } .data { color: gray font: 14px/20px "Quicksand", sans-serif text-align: center overflow: hidden .datum { float: left width: 50% } } .download-button { display: block box-shadow: inset 0 1px 1px light-green padding: 20px background: green border: none color: white width: 100% font: bold 18px/20px "Quicksand", sans-serif transition: 0.25s cursor: pointer text-transform: uppercase &:hover, &:focus { box-shadow: inset 0 1px 1px green background: light-green } &:active { background: green } } .progress-bar { height: 60px overflow: hidden background: beige .progress-bar-inner { float: left height: 100% background: green box-shadow: inset 0 1px 1px light-green overflow: hidden } .progress-bar-text { float: right font: 14px/60px "Quicksand", sans-serif color: white margin-right: 5px text-transform: uppercase } &.progress-bar-failed { background: red box-shadow: inset 0 1px 1px light-red, 0 1px 1px light-gray .progress-bar-text { float: none text-align: center margin-right: 0 } } }