style.css
Algol 68 source, ASCII text
1@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap"); 2@import url("https://fonts.googleapis.com/css2?family=Lexend+Exa:wght@100..900&family=Lexend:wght@100..900&display=swap"); 3 4html { 5font-size: 1.125rem; 6color: #000000eb; 7} 8 9* { 10box-sizing: border-box; 11} 12 13html, input, textarea, button, select { 14font-family: "Lexend", sans-serif; 15} 16 17body { 18display: flex; 19flex-flow: column nowrap; 20background-color: #f5f5f5; 21padding: 0; 22margin: 0; 23align-items: center; 24} 25 26nav { 27display: flex; 28flex-flow: row nowrap; 29justify-content: flex-start; 30align-items: center; 31padding: 0 16px; 32height: 64px; 33background-color: #000000; 34gap: 2ch; 35width: 100%; 36position: sticky; 37top: 0; 38} 39 40nav a { 41color: #ffffff; 42text-decoration: none; 43transition: color 0.25s cubic-bezier(0.33, 1, 0.68, 1); 44font-family: "Lexend Exa", "Lexend", sans-serif; 45font-size: 0.875rem; 46height: 100%; 47display: flex; 48align-items: center; 49border-top: 4px solid transparent; 50border-bottom: 4px solid transparent; 51} 52 53nav a.active { 54border-top: 4px solid #4DB6AC; 55color: #80CBC4; 56} 57 58nav a:hover { 59color: #80CBC4; 60text-decoration: underline; 61} 62 63#navi-logo { 64display: flex; 65align-items: center; 66gap: 1ch; 67font-weight: bold; 68} 69 70#navi-logo > img { 71width: 32px; 72height: 32px; 73} 74 75main { 76padding: 16px; 77width: min(800px, 100%); 78} 79 80#navi-spacer { 81flex: 1 0 auto; 82} 83 84input, textarea { 85padding: 0.5rem; 86border: 2px solid #009688; 87border-radius: 6px; 88background: #ffffff; 89color: #000000; 90transition: box-shadow 0.25s cubic-bezier(0.33, 1, 0.68, 1), 91background 0.25s cubic-bezier(0.33, 1, 0.68, 1); 92} 93 94button, .button { 95padding: 0.5rem; 96border: 2px solid #009688; 97border-radius: 6px; 98background: #009688; 99color: #ffffff; 100transition: box-shadow 0.25s cubic-bezier(0.33, 1, 0.68, 1), 101background 0.25s cubic-bezier(0.33, 1, 0.68, 1); 102font-weight: 575; 103font-family: "Lexend Exa", "Lexend", sans-serif; 104cursor: pointer; 105display: flex; 106gap: 0.25rem; 107align-items: center; 108text-decoration: none; 109justify-content: center; 110} 111 112h1 { 113font-weight: 900; 114font-size: 3rem; 115margin: 0.25em 0; 116color: #000000df; 117} 118 119h2 { 120font-weight: 767.5; 121font-size: 2rem; 122margin: 0.25em 0; 123color: #000000df; 124} 125 126h3 { 127font-weight: 767.5; 128font-size: 1.6rem; 129margin: 0.25em 0; 130color: #000000df; 131} 132 133* { 134transition: box-shadow 0.25s cubic-bezier(0.33, 1, 0.68, 1); 135} 136 137:focus { 138box-shadow: 0 0 0 4px #009688cc; 139outline: none; 140} 141 142button, .button, input, select, textarea { 143font-size: 1rem; 144} 145 146:is(input, textarea):hover { 147background: #B2DFDB; 148} 149 150:is(button, .button):hover { 151background: #00695C; 152} 153 154::placeholder { 155color: #009688cc; 156} 157 158.stacked-form { 159display: flex; 160flex-direction: column; 161gap: 1rem; 162} 163 164input[type="password"]:not(:placeholder-shown) { 165letter-spacing: 0.25rem; 166} 167 168.alert { 169padding: 1rem; 170border-radius: 6px; 171background: #FFC107; 172color: #000000; 173font-weight: bold; 174text-align: center; 175margin: 1rem 0; 176font-family: "Lexend Exa", "Lexend", sans-serif; 177} 178 179.app-card, .endpoint-card { 180width: 100%; 181border: 2px solid #000000aa; 182padding: 0.75rem; 183border-radius: 24px; 184} 185 186:is(.app-card, .endpoint-card) h2 { 187margin-top: 0; 188font-size: 1.45rem; 189font-weight: 750; 190} 191 192.app-uptime { 193display: flex; 194flex-flow: row-reverse nowrap; 195overflow: hidden; 196border-radius: calc(24px - 0.75rem); 197} 198 199.app-info { 200font-family: "Lexend Exa", "Lexend", sans-serif; 201font-style: italic; 202} 203 204.app-info-ok { 205color: #00C853; 206} 207 208.app-info-broken { 209color: #FFD600; 210} 211 212.app-info-down { 213color: #D50000; 214} 215 216.uptime-bar { 217background: #546E7A; 218height: 2rem; 219flex: 1 0 auto; 220outline: 1px solid #ffffff; 221} 222 223.uptime-bar-ok { 224background: #00C853; 225} 226 227.uptime-bar-broken { 228background: #FFD600; 229} 230 231.uptime-bar-down { 232background: #EF5350; 233} 234 235.subtitle { 236font-weight: 400; 237margin-top: 0; 238} 239 240iconify-icon { 241display: inline-block; 242width: 0.8lh; /* match parent line-height */ 243height: 0.8lh; 244font-size: 1.25em; 245} 246 247.quiet-link { 248color: inherit; 249text-decoration: none; 250font-weight: inherit; 251display: inline-block; 252} 253 254.quiet-link:has(:is(.app-card, .endpoint-card)) { 255display: block; 256border-radius: 24px; 257} 258 259.app-card:hover { 260border-color: #009688; 261background: #B2DFDB; 262} 263 264textarea { 265resize: vertical; 266appearance: none; 267} 268 269#endpoint-editor, #endpoint-list { 270display: flex; 271gap: 2rem; 272width: 100%; 273align-items: stretch; 274flex-direction: column; 275} 276 277.side-by-side { 278display: flex; 279gap: 1rem; 280align-items: center; 281justify-content: space-around; 282} 283 284.extend { 285flex: 1 1 100%; 286} 287 288.danger-button { 289background: #F44336; 290border-color: #F44336; 291} 292 293.danger-button:hover { 294background: #D32F2F; 295} 296 297nav a:focus { 298box-shadow: none; 299text-decoration: underline; 300} 301 302.horizontal-form { 303display: flex; 304align-items: center; 305gap: 1rem; 306} 307 308label { 309color: #00796B; 310display: block; 311} 312 313label > input { 314width: 100%; 315} 316