1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex, nofollow" />
<title>{{code}} — {{reason}}</title>
<style>
/* Estilo de la página del tema `compact`.
*
* Vive dentro de la página: un tema es una página, así que estas reglas no se
* cargan de ningún fichero ni se incrustan al servir, y la página no puede pedir
* nada por la red —nada de hojas importadas ni de ficheros remotos—. Si animase,
* tendría que neutralizarlo en `prefers-reduced-motion: reduce`.
*
* Pensada para móvil y para la terminal: todo lo corto posible. El título y el
* subtítulo van en línea para que la cabecera se lea de un golpe —«503 Service
* Unavailable»—. El marcado lleva la clase `c<código>` en el `body`, pero este
* tema no la usa.
*
* Contraste medido a mano (objetivo AA): fg/bg 15,80 y muted/bg 6,11 en claro;
* 16,02 y 6,50 en oscuro.
*
* El `<hr>` decorativo —un separador, no información— se queda fuera del 3:1
* de WCAG 1.4.11, que cubre el contenido no textual necesario para entender el
* contenido y los componentes de interfaz. Su `--rule` mide 1,43 sobre el fondo
* claro y 1,55 sobre el oscuro: es una decisión medida, no un descuido, así que
* quien vuelva a medirla no debería contarla como hallazgo.
*/
:root {
color-scheme: light dark;
--fg: #1f2328;
--bg: #ffffff;
--muted: #59636e;
--rule: #d1d9e0;
}
@media (prefers-color-scheme: dark) {
:root {
--fg: #e6edf3;
--bg: #0d1117;
--muted: #9198a1;
--rule: #30363d;
}
}
* {
box-sizing: border-box;
}
/* Sin `flex`: si el `body` fuese una caja flexible, sus hijos se bloquearían y
* el `display: inline` del título y el subtítulo no tendría efecto. */
body {
margin: 0 auto;
padding: 1rem;
max-width: 34rem;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
font-size: 0.95rem;
line-height: 1.4;
color: var(--fg);
background: var(--bg);
}
h1 {
display: inline;
margin: 0;
font-size: 1.15rem;
font-weight: 700;
color: var(--fg);
}
h2 {
display: inline;
margin: 0;
font-size: 1.15rem;
font-weight: 400;
color: var(--muted);
}
hr {
width: 100%;
margin: 0;
border: 0;
border-top: 1px solid var(--rule);
}
p {
margin: 0;
max-width: 34rem;
color: var(--muted);
}
/* La firma: más pequeña y atenuada, para no añadir una línea de peso. */
footer {
margin-top: 0.5rem;
font-size: 0.8rem;
color: var(--muted);
}
</style>
</head>
<body class="c{{code}}">
<main>
<h1>{{code}}</h1>
<h2>{{reason}}</h2>
<hr />
<p>{{description}}</p>
</main>
<footer>errserve</footer>
</body>
</html>