Commit be215575b8

be215575b825ab118601cbabdcd9b64a7a2d1759

parent: 66d8375d85

Unsigned

cmc <hello@cleberg.net> · 2026-01-17 04:39 UTC

update site theme

Layout: unified · split

theme/static/styles.css +291 −38
@@ -1,81 +1,334 @@
11body {
2 font-family: Menlo, Consolas, Monaco, Adwaita Mono, Liberation Mono, Lucida Console, monospace;
3 font-size: 0.85rem;
2 border: 3px solid black;
3 display: flex;
4 flex-direction: column;
5 font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, Adwaita Sans, Cantarell, Ubuntu, roboto, noto, helvetica, arial, sans-serif;
46 line-height: 1.5;
57 margin: 0 auto;
8 height: 100%;
69 max-width: 50em;
10 min-height: 100vh;
711}
812
9body {
13main {
14 flex: 1 0 auto;
15 margin-left: 1rem;
16 margin-right: 1rem;
17}
18
19footer {
1020 padding: 1rem;
1121}
1222
23img {
24 max-width: 100%;
25}
26
27.skip-link {
28 height: 1px;
29 left: -10000px;
30 overflow: hidden;
31 position: absolute;
32 top: auto;
33 width: 1px;
34}
35
36.skip-link:focus {
37 height: auto;
38 position: static;
39 width: auto;
40}
41
1342footer {
14 margin: 1rem 0;
43 background-color: black;
44 border-top: 3px solid black;
45 color: white;
46}
47
48footer a {
49 color: white;
1550}
1651
1752nav {
18 align-items: center;
53 width: 100vw;
54 border-bottom: 3px solid black;
1955 display: flex;
20 justify-content: space-around;
21 margin: 1rem 0;
56 justify-content: center;
57 background-color: #0066ff;
2258}
2359
2460nav ul {
25 display: flex;
26 list-style-type: none;
61 list-style: none;
2762 margin: 0;
2863 padding: 0;
64 display: flex;
2965 width: 100%;
3066}
3167
3268nav ul li {
33 height: 100%;
34 margin-bottom: 0.5rem;
35 margin-right: 1rem;
69 flex: 1;
70}
71
72nav a {
73 display: block;
74 width: 100%;
75 padding: 0.75rem 0;
3676 text-align: center;
77 font-size: 1rem;
78 font-weight: 600;
79 color: #fff;
80 background-color: inherit;
81 text-decoration: none;
82 cursor: pointer;
83 border: none;
84 border-radius: 0;
85 transition: background 0.2s ease,
86 color 0.2s ease,
87 transform 0.1s ease;
3788}
3889
39img {
40 max-width: 100%;
90nav a:hover,
91nav a:focus {
92 background-color: #004fcc;
93 outline: none;
4194}
4295
43pre {
96nav a:focus-visible {
97 box-shadow: 0 0 0 3px rgba(0,102,255,.4);
98}
99
100nav a:active {
101 transform: translateY(1px);
102}
103
104nav ul li:hover a {
105 background-color: #fff;
106 color: #0066ff;
107}
108
109@media (max-width: 480px) {
110 nav a {
111 padding: 0.75rem 0;
112 }
113
114 nav ul {
115 flex-direction: row !important;
116 flex-wrap: nowrap;
117 overflow-x: auto;
118 -webkit-overflow-scrolling: touch;
119 }
120}
121
122table,
123th,
124td {
44125 border: 1px solid black;
45 overflow: scroll;
46 padding: 0.5rem;
47126}
48127
49:not(pre) > code {
50 color: red;
128thead {
129 background-color: blue;
130 color: white;
131 font-weight: bold;
51132}
52133
53.skip-link {
54 height: 1px;
55 left: -10000px;
56 overflow: hidden;
57 position: absolute;
58 top: auto;
59 width: 1px;
134blockquote {
135 border: 3px solid black;
136 margin: 0;
137 margin-bottom: 1rem;
138 padding: 1rem;
139 background-color: blue;
140 color: white;
60141}
61142
62.skip-link:focus {
63 height: auto;
64 position: static;
65 width: auto;
143blockquote p {
144 margin: 0;
145 padding: 0;
66146}
67147
68@media (prefers-color-scheme: dark) {
69 body {
70 background-color: #000000;
71 color: #dfdfdf;
148time {
149 font-family: Menlo, Consolas, Monaco, Adwaita Mono, Liberation Mono, Lucida Console, monospace;
150 font-size: 0.85rem;
151}
152
153section {
154 border-bottom: 3px solid black;
155}
156
157.post time {
158 margin-right: 0.5rem;
159}
160
161pre {
162 border: 3px solid black;
163 background-color: lightgrey;
164 padding: 1rem;
165 max-width: 100%;
166 box-sizing: border-box;
167 overflow-x: auto;
168 white-space: pre;
169}
170
171main {
172 height: 100%;
173}
174
175section {
176 margin: 0 -1rem;
177 padding: 2rem;
178}
179
180.post:last-of-type {
181 margin-bottom: 2rem;
182}
183
184.reply-link {
185 padding: 2rem 0;
186}
187
188.reply-link a {
189 display: inline-block;
190 padding: 0.75rem 1.25rem;
191 font-size: 1rem;
192 font-weight: 600;
193 color: #fff;
194 background-color: #0066ff;
195 border: none;
196 text-decoration: none;
197 cursor: pointer;
198 transition: background 0.2s ease,
199 transform 0.1s ease;
200}
201
202reply-link a:hover,
203reply-link a:focus {
204 background-color: #004fcc;
205 outline: none;
206}
207
208reply-link a:focus-visible {
209 box-shadow: 0 0 0 3px rgba(0,102,255,.4);
210}
211
212reply-link a:active {
213 transform: translateY(1px);
214}
215
216.post-metadata {
217 margin: 0 auto;
218 padding: 1rem;
219 margin: 0 -1rem;
220}
221
222.meta-row {
223 display: flex;
224 flex-direction: row;
225 flex-wrap: wrap;
226 align-items: baseline;
227 padding: 0.4rem 0;
228 border-bottom: 1px solid black;
229}
230
231.meta-row:last-of-type {
232 border-bottom: none;
233}
234
235.meta-label {
236 flex: 0 0 120px;
237 font-weight: bold;
238 color: #333;
239}
240
241.meta-value {
242 flex: 1 1 auto;
243 color: #555;
244}
245
246@media (max-width: 500px) {
247 .meta-label {
248 flex-basis: 100%;
249 margin-bottom: 0.2rem;
250 }
251
252 .meta-value {
253 flex-basis: 100%;
72254 }
255}
256
257table {
258 width: 100%;
259 max-width: 100%;
260 border-collapse: collapse;
261 table-layout: auto;
262}
73263
74 a {
75 color: #67c0ff;
264th,
265td {
266 word-break: break-word;
267 overflow-wrap: anywhere;
268 padding: 0.5rem;
269}
270
271thead {
272 background-color: blue;
273 color: white;
274 font-weight: bold;
275}
276
277th,
278td {
279 min-width: 60px;
280}
281
282.table-fixed {
283 table-layout: fixed;
284}
285
286html,
287body {
288 box-sizing: border-box;
289}
290
291*,
292*::before,
293*::after {
294 box-sizing: inherit;
295}
296
297nav {
298 width: 100%;
299 max-width: 100%;
300}
301
302section > .inner {
303 margin: 0 -1rem;
304 padding: 2rem;
305}
306
307body {
308 overflow-x: hidden;
309}
310
311@media (max-width: 480px) {
312 nav ul {
313 flex-direction: row !important;
314 flex-wrap: nowrap;
315 overflow-x: auto;
316 -webkit-overflow-scrolling: touch;
76317 }
77318
78 pre {
79 border-color: white;
319 nav a {
320 padding-left: 0.5rem;
321 padding-right: 0.5rem;
80322 }
81323}
324
325.post {
326 align-items: center;
327 display: flex;
328 margin: 0.5rem 0;
329}
330
331.post time {
332 flex-shrink: 0;
333 margin-right: 1rem;
334}
theme/templates/post.html +17 −4
@@ -8,10 +8,23 @@
88<meta property="og:description" content="{{ project_description }}" />
99{% endif %} {% endblock %} {% block main %}
1010<article>
11 <section>
12 <b>Title</b>: {{ post.title }}
13 <br><b>Date</b>: <time datetime='{{ post.date|strftime("%Y-%m-%d") }}'>{{ post.date|strftime("%Y-%m-%d %H:%M:%S") }}</time>
14 <br><b>Description</b>: {{ post.description }}
11 <section class="post-metadata">
12 <div class="meta-row">
13 <span class="meta-label">Title:</span>
14 <span class="meta-value">{{ post.title }}</span>
15 </div>
16
17 <div class="meta-row">
18 <span class="meta-label">Date:</span>
19 <time class="meta-value" datetime='{{ post.date | strftime("%Y-%m-%d") }}''>
20 {{ post.date | strftime("%Y-%m-%d %H:%M:%S") }}
21 </time>
22 </div>
23
24 <div class="meta-row">
25 <span class="meta-label">Description:</span>
26 <span class="meta-value">{{ post.description }}</span>
27 </div>
1528 </section>
1629 <section>{{ post.html | safe }}</section>
1730 <div class="reply-link"><a href="mailto:hello@cleberg.net">Reply via email &rarr;</a></div>