WWW service status tracker

By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

 style.css

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