webtools/site/countdown/style.css

102 lines
1.7 KiB
CSS
Raw Normal View History

body {
min-height: 100vh;
min-height: 100dvh;
display: flex;
flex-direction: column;
}
/* Keep the counter vertically centered in the viewport, below the header. */
header {
position: absolute;
top: 0;
}
main {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding-block: 10rem;
}
.timer {
text-align: center;
min-width: 0;
max-width: 100%;
margin: 0;
}
.counter {
display: flex;
align-items: baseline;
justify-content: center;
max-width: 100%;
overflow-x: auto;
font-family: var(--pico-font-family-monospace);
font-size: clamp(3rem, 12vw, 6rem);
line-height: 1.2;
margin-bottom: 1.5rem;
}
.counter input {
box-sizing: content-box;
flex: 0 0 auto;
width: 1ch;
height: auto;
margin: 0;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
color: inherit;
font: inherit;
line-height: inherit;
text-align: right;
}
.counter #seconds {
width: 2ch;
text-align: left;
}
.counter input:focus {
background: transparent;
box-shadow: none;
}
.counter input:focus-visible:not([readonly]) {
outline: 2px solid var(--pico-primary);
outline-offset: 4px;
}
.controls {
display: flex;
justify-content: center;
gap: 1rem;
}
.controls button {
margin: 0;
min-width: 6rem;
}
.counter.finished {
animation: flash 1s steps(1, end) infinite;
}
@keyframes flash {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
}