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 { 180width: 100%; 181border: 2px solid #000000aa; 182padding: 0.75rem; 183border-radius: 24px; 184} 185 186.app-card h2 { 187margin-top: 0; 188font-size: 1.45rem; 189font-weight: 750; 190} 191 192.app-uptime { 193display: flex; 194overflow: hidden; 195border-radius: calc(24px - 0.75rem); 196} 197 198.app-info { 199font-family: "Lexend Exa", "Lexend", sans-serif; 200font-style: italic; 201} 202 203.app-info-ok { 204color: #00C853; 205} 206 207.app-info-broken { 208color: #FFD600; 209} 210 211.app-info-down { 212color: #D50000; 213} 214 215.uptime-bar { 216background: #546E7A; 217height: 2rem; 218flex: 1 0 auto; 219} 220 221.uptime-bar-ok { 222background: #00C853; 223} 224 225.uptime-bar-broken { 226background: #FFD600; 227} 228 229.uptime-bar-down { 230background: #EF5350; 231} 232 233.subtitle { 234font-weight: 400; 235margin-top: 0; 236} 237 238iconify-icon { 239display: inline-block; 240width: 0.8lh; /* match parent line-height */ 241height: 0.8lh; 242font-size: 1.25em; 243} 244 245.quiet-link { 246color: inherit; 247text-decoration: none; 248font-weight: inherit; 249display: inline-block; 250} 251 252.quiet-link:has(.app-card) { 253display: block; 254border-radius: 24px; 255} 256 257.app-card:hover { 258border-color: #009688; 259background: #B2DFDB; 260} 261 262textarea { 263resize: vertical; 264appearance: none; 265} 266 267#endpoint-editor { 268display: flex; 269gap: 2rem; 270width: 100%; 271align-items: stretch; 272flex-direction: column; 273} 274 275.side-by-side { 276display: flex; 277gap: 1rem; 278align-items: stretch; 279justify-content: space-around; 280} 281 282.side-by-side > button { 283flex: 1 1 25%; 284} 285 286.danger-button { 287background: #F44336; 288border-color: #F44336; 289} 290 291.danger-button:hover { 292background: #D32F2F; 293} 294