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 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; 221color: #ffffff; 222font-weight: 900; 223display: flex; 224align-items: center; 225justify-content: center; 226} 227 228.uptime-bar-ok { 229background: #00C853; 230} 231 232.uptime-bar-broken { 233background: #FFD600; 234} 235 236.uptime-bar-down { 237background: #EF5350; 238} 239 240.subtitle { 241font-weight: 400; 242margin-top: 0; 243} 244 245iconify-icon { 246display: inline-block; 247width: 0.8lh; /* match parent line-height */ 248height: 0.8lh; 249font-size: 1.25em; 250} 251 252.quiet-link { 253color: inherit; 254text-decoration: none; 255font-weight: inherit; 256display: inline-block; 257} 258 259.quiet-link:has(:is(.app-card, .endpoint-card)) { 260display: block; 261border-radius: 24px; 262} 263 264.app-card:hover { 265border-color: #009688; 266background: #B2DFDB; 267} 268 269textarea { 270resize: vertical; 271appearance: none; 272} 273 274#endpoint-editor, #endpoint-list { 275display: flex; 276gap: 2rem; 277width: 100%; 278align-items: stretch; 279flex-direction: column; 280} 281 282.side-by-side { 283display: flex; 284gap: 1rem; 285align-items: center; 286justify-content: space-around; 287} 288 289.extend { 290flex: 1 1 100%; 291} 292 293.danger-button { 294background: #F44336; 295border-color: #F44336; 296} 297 298.danger-button:hover { 299background: #D32F2F; 300} 301 302nav a:focus { 303box-shadow: none; 304text-decoration: underline; 305} 306 307.horizontal-form { 308display: flex; 309align-items: center; 310gap: 1rem; 311} 312 313label { 314color: #00796B; 315display: block; 316} 317 318label > input { 319width: 100%; 320} 321 322.endpoint-header { 323display: flex; 324gap: 1rem; 325justify-content: space-between; 326align-items: center; 327} 328 329.endpoint-header > h2 { 330margin: 0; 331} 332 333.action-buttons { 334display: flex; 335gap: 1rem; 336align-items: center; 337} 338 339.uptime-bar-buggy { 340background-image: url("/static/bugs.svg"); 341background-size: 100%; 342background-repeat: no-repeat; 343background-position: center; 344} 345