repos / pico

pico services - prose.sh, pastes.sh, imgs.sh, feeds.sh, pgs.sh
git clone https://github.com/picosh/pico.git

commit
6b29e77
parent
373fe04
author
Eric Bower
date
2024-03-26 21:07:24 +0000 UTC
fix(prose): copy smol.css from pico.sh

fix(prose): use relative _styles.css

Closes: #112
6 files changed,  +1434, -3
M Makefile
+5, -0
 1@@ -9,6 +9,11 @@ DOCKER_CMD?=docker
 2 DOCKER_BUILDX_BUILD?=$(DOCKER_CMD) buildx build --push --platform $(DOCKER_PLATFORM)
 3 WRITE?=0
 4 
 5+smol:
 6+	curl https://pico.sh/smol.css -o ./prose/public/smol.css
 7+	curl https://pico.sh/smol.css -o ./pastes/public/smol.css
 8+.PHONY: smol
 9+
10 css:
11 	cp ./syntax.css pastes/public/syntax.css
12 	cp ./syntax.css prose/public/syntax.css
M pastes/html/base.layout.tmpl
+1, -1
1@@ -11,7 +11,7 @@
2         <meta name="keywords" content="pastebin, paste, copy, snippets" />
3         {{template "meta" .}}
4 
5-        <link rel="stylesheet" href="https://pico.sh/smol.css" />
6+        <link rel="stylesheet" href="/smol.css" />
7         <link rel="stylesheet" href="/main.css" />
8     </head>
9     <body {{template "attrs" .}}>{{template "body" .}}</body>
A pastes/public/smol.css
+713, -0
  1@@ -0,0 +1,713 @@
  2+*,
  3+::before,
  4+::after {
  5+  box-sizing: border-box;
  6+}
  7+
  8+::-moz-focus-inner {
  9+  border-style: none;
 10+  padding: 0;
 11+}
 12+:-moz-focusring {
 13+  outline: 1px dotted ButtonText;
 14+}
 15+:-moz-ui-invalid {
 16+  box-shadow: none;
 17+}
 18+
 19+@media (prefers-color-scheme: light) {
 20+  :root {
 21+    --main-hue: 250;
 22+    --white: #6a737d;
 23+    --white-light: #cfe0f4;
 24+    --white-dark: #9b9b9b;
 25+    --code: #e3e5e8;
 26+    --code-border: #e3e5e8;
 27+    --pre: #f6f8fa;
 28+    --bg-color: #fdfdfd;
 29+    --text-color: #24292f;
 30+    --link-color: #005cc5;
 31+    --visited: #6f42c1;
 32+    --blockquote: #005cc5;
 33+    --blockquote-bg: #cfe0f4;
 34+    --hover: #d73a49;
 35+    --grey: #ccc;
 36+    --grey-light: #6a708e;
 37+    --shadow: #e8e8e8;
 38+  }
 39+}
 40+
 41+@media (prefers-color-scheme: dark) {
 42+  :root {
 43+    --main-hue: 250;
 44+    --white: #f2f2f2;
 45+    --white-light: #f2f2f2;
 46+    --white-dark: #c6c6c6;
 47+    --code: #414558;
 48+    --code-border: #252525;
 49+    --pre: #252525;
 50+    --bg-color: #282a36;
 51+    --text-color: #f2f2f2;
 52+    --link-color: #8be9fd;
 53+    --visited: #bd93f9;
 54+    --blockquote: #bd93f9;
 55+    --blockquote-bg: #414558;
 56+    --hover: #ff80bf;
 57+    --grey: #414558;
 58+    --grey-light: #6a708e;
 59+    --shadow: #252525;
 60+  }
 61+}
 62+
 63+html {
 64+  background-color: var(--bg-color);
 65+  color: var(--text-color);
 66+  font-size: 18px;
 67+  line-height: 1.5;
 68+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
 69+    Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial,
 70+    sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
 71+  -webkit-text-size-adjust: 100%;
 72+  -moz-tab-size: 4;
 73+  -o-tab-size: 4;
 74+  tab-size: 4;
 75+}
 76+
 77+body {
 78+  margin: 0 auto;
 79+}
 80+
 81+img {
 82+  max-width: 100%;
 83+  height: auto;
 84+}
 85+
 86+b,
 87+strong {
 88+  font-weight: bold;
 89+}
 90+
 91+code,
 92+kbd,
 93+samp,
 94+pre {
 95+  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo,
 96+    monospace;
 97+}
 98+
 99+code,
100+kbd,
101+samp {
102+  background-color: var(--code);
103+  border: 1px solid var(--code-border);
104+}
105+
106+pre > code {
107+  background-color: inherit;
108+  padding: 0;
109+  border: none;
110+}
111+
112+code {
113+  border-radius: 0.3rem;
114+  padding: 0.15rem 0.2rem 0.05rem;
115+}
116+
117+pre {
118+  font-size: 14px;
119+  border-radius: 5px;
120+  padding: 1rem;
121+  margin: 1rem 0;
122+  overflow-x: auto;
123+  background-color: var(--pre) !important;
124+}
125+
126+small {
127+  font-size: 0.8rem;
128+}
129+
130+summary {
131+  display: list-item;
132+}
133+
134+h1,
135+h2,
136+h3 {
137+  margin: 0;
138+  padding: 0.6rem 0 0 0;
139+  border: 0;
140+  font-style: normal;
141+  font-weight: inherit;
142+  font-size: inherit;
143+}
144+
145+h1 > code {
146+  font-size: inherit;
147+}
148+
149+h2 > code {
150+  font-size: inherit;
151+}
152+
153+h3 > code {
154+  font-size: inherit;
155+}
156+
157+path {
158+  fill: var(--text-color);
159+  stroke: var(--text-color);
160+}
161+
162+hr {
163+  color: inherit;
164+  border: 0;
165+  margin: 0;
166+  height: 2px;
167+  background: var(--grey);
168+  margin: 1rem auto;
169+  text-align: center;
170+}
171+
172+a {
173+  text-decoration: underline;
174+  color: var(--link-color);
175+}
176+
177+a:hover,
178+a:visited:hover {
179+  color: var(--hover);
180+}
181+
182+a:visited {
183+  color: var(--visited);
184+}
185+
186+a.link-grey {
187+  text-decoration: underline;
188+  color: var(--white);
189+}
190+
191+a.link-grey:visited {
192+  color: var(--white);
193+}
194+
195+section {
196+  margin-bottom: 1.4rem;
197+}
198+
199+section:last-child {
200+  margin-bottom: 0;
201+}
202+
203+header {
204+  margin: 1rem auto;
205+}
206+
207+p {
208+  margin: 0.8rem 0;
209+}
210+
211+article {
212+  overflow-wrap: break-word;
213+}
214+
215+blockquote {
216+  border-left: 5px solid var(--blockquote);
217+  background-color: var(--blockquote-bg);
218+  padding: 0.8rem;
219+  margin: 1rem 0;
220+}
221+
222+blockquote > p {
223+  margin: 0;
224+}
225+
226+blockquote code {
227+  border: 1px solid var(--blockquote);
228+}
229+
230+ul,
231+ol {
232+  padding: 0 0 0 2rem;
233+  list-style-position: outside;
234+}
235+
236+ul[style*="list-style-type: none;"] {
237+  padding: 0;
238+}
239+
240+li {
241+  margin: 0.5rem 0;
242+}
243+
244+li > pre {
245+  padding: 0;
246+}
247+
248+footer {
249+  text-align: center;
250+  margin-bottom: 4rem;
251+}
252+
253+dt {
254+  font-weight: bold;
255+}
256+
257+dd {
258+  margin-left: 0;
259+}
260+
261+dd:not(:last-child) {
262+  margin-bottom: 0.5rem;
263+}
264+
265+figure {
266+  margin: 0;
267+}
268+
269+.container {
270+  max-width: 50em;
271+  width: 100%;
272+}
273+
274+.container-sm {
275+  max-width: 40em;
276+  width: 100%;
277+}
278+
279+.container-center {
280+  width: 100%;
281+  height: 100%;
282+  display: flex;
283+  justify-content: center;
284+}
285+
286+.mono {
287+  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo,
288+    monospace;
289+}
290+
291+.link-alt-adj,
292+.link-alt-adj:visited,
293+.link-alt-adj:visited:hover,
294+.link-alt-adj:hover {
295+  color: var(--link-color);
296+  text-decoration: none;
297+}
298+
299+.link-alt-adj:visited:hover,
300+.link-alt-adj:hover {
301+  text-decoration: underline;
302+}
303+
304+.link-alt-hover,
305+.link-alt-hover:visited,
306+.link-alt-hover:visited:hover,
307+.link-alt-hover:hover {
308+  color: var(--hover);
309+  text-decoration: none;
310+}
311+
312+.link-alt-hover:visited:hover,
313+.link-alt-hover:hover {
314+  text-decoration: underline;
315+}
316+
317+.link-alt,
318+.link-alt:visited,
319+.link-alt:visited:hover,
320+.link-alt:hover {
321+  color: var(--white);
322+  text-decoration: none;
323+}
324+
325+.link-alt:visited:hover,
326+.link-alt:hover {
327+  text-decoration: underline;
328+}
329+
330+.text-3xl {
331+  font-size: 2.5rem;
332+}
333+
334+.text-2xl {
335+  font-size: 1.9rem;
336+  line-height: 1.15;
337+}
338+
339+.text-xl {
340+  font-size: 1.55rem;
341+  line-height: 1.15;
342+}
343+
344+.text-lg {
345+  font-size: 1.35rem;
346+  line-height: 1.15;
347+}
348+
349+.text-md {
350+  font-size: 1.15rem;
351+  line-height: 1.15;
352+}
353+
354+.text-sm {
355+  font-size: 0.875rem;
356+}
357+
358+.text-xs {
359+  font-size: 0.775rem;
360+}
361+
362+.cursor-pointer {
363+  cursor: pointer;
364+}
365+
366+.w-full {
367+  width: 100%;
368+}
369+
370+.h-full {
371+  height: 100%;
372+}
373+
374+.border {
375+  border: 2px solid var(--grey-light);
376+}
377+
378+.text-left {
379+  text-align: left;
380+}
381+
382+.text-center {
383+  text-align: center;
384+}
385+
386+.text-underline {
387+  border-bottom: 3px solid var(--text-color);
388+  padding-bottom: 3px;
389+}
390+
391+.text-hdr {
392+  color: var(--hover);
393+}
394+
395+.text-underline-hdr {
396+  border-bottom: 3px solid var(--hover);
397+  padding-bottom: 3px;
398+}
399+
400+.font-bold {
401+  font-weight: bold;
402+}
403+
404+.font-italic {
405+  font-style: italic;
406+}
407+
408+.inline {
409+  display: inline;
410+}
411+
412+.inline-block {
413+  display: inline-block;
414+}
415+
416+.max-w-half {
417+  max-width: 50%;
418+}
419+
420+.h-screen {
421+  height: 100vh;
422+}
423+
424+.w-screen {
425+  width: 100vw;
426+}
427+
428+.flex {
429+  display: flex;
430+}
431+
432+.flex-col {
433+  flex-direction: column;
434+}
435+
436+.items-center {
437+  align-items: center;
438+}
439+
440+.m-0 {
441+  margin: 0;
442+}
443+
444+.mt {
445+  margin-top: 0.5rem;
446+}
447+
448+.mt-2 {
449+  margin-top: 1rem;
450+}
451+
452+.mt-4 {
453+  margin-top: 2rem;
454+}
455+
456+.mt-8 {
457+  margin-top: 4rem;
458+}
459+
460+.mb {
461+  margin-bottom: 0.5rem;
462+}
463+
464+.mb-2 {
465+  margin-bottom: 1rem;
466+}
467+
468+.mb-4 {
469+  margin-bottom: 2rem;
470+}
471+
472+.mb-8 {
473+  margin-bottom: 4rem;
474+}
475+
476+.mb-16 {
477+  margin-bottom: 8rem;
478+}
479+
480+.mr {
481+  margin-right: 0.5rem;
482+}
483+
484+.ml-sm {
485+  margin-left: 0.25rem;
486+}
487+
488+.ml {
489+  margin-left: 0.5rem;
490+}
491+
492+.my {
493+  margin-top: 0.5rem;
494+  margin-bottom: 0.5rem;
495+}
496+
497+.my-2 {
498+  margin-top: 1rem;
499+  margin-bottom: 1rem;
500+}
501+
502+.my-4 {
503+  margin-top: 2rem;
504+  margin-bottom: 2rem;
505+}
506+
507+.my-8 {
508+  margin-top: 4rem;
509+  margin-bottom: 4rem;
510+}
511+
512+.mx {
513+  margin-left: 0.5rem;
514+  margin-right: 0.5rem;
515+}
516+
517+.mx-2 {
518+  margin-left: 1rem;
519+  margin-right: 1rem;
520+}
521+
522+.m-1 {
523+  margin: 0.5rem;
524+}
525+
526+.p-1 {
527+  padding: 0.5rem;
528+}
529+
530+.p-0 {
531+  padding: 0;
532+}
533+
534+.py {
535+  padding-top: 0.5rem;
536+  padding-bottom: 0.5rem;
537+}
538+
539+.py-2 {
540+  padding-top: 1rem;
541+  padding-bottom: 1rem;
542+}
543+
544+.py-4 {
545+  padding-top: 2rem;
546+  padding-bottom: 2rem;
547+}
548+
549+.py-8 {
550+  padding-top: 4rem;
551+  padding-bottom: 4rem;
552+}
553+
554+.justify-between {
555+  justify-content: space-between;
556+}
557+
558+.justify-center {
559+  justify-content: center;
560+}
561+
562+.gap {
563+  gap: 0.5rem;
564+}
565+
566+.gap-2 {
567+  gap: 1rem;
568+}
569+
570+.group {
571+  display: flex;
572+  flex-direction: column;
573+  gap: 0.5rem;
574+}
575+
576+.group-h {
577+  display: flex;
578+  gap: 0.5rem;
579+  align-items: center;
580+}
581+
582+.flex-1 {
583+  flex: 1;
584+}
585+
586+.items-end {
587+  align-items: end;
588+}
589+
590+.items-start {
591+  align-items: start;
592+}
593+
594+.justify-end {
595+  justify-content: end;
596+}
597+
598+.font-grey-light {
599+  color: var(--grey-light);
600+}
601+
602+.hidden {
603+  display: none;
604+}
605+
606+.align-right {
607+  text-align: right;
608+}
609+
610+/* ==== MARKDOWN ==== */
611+
612+.md h1,
613+.md h2,
614+.md h3,
615+.md h4 {
616+  padding: 0;
617+  margin: 1.5rem 0 0.9rem 0;
618+  font-weight: bold;
619+}
620+
621+.md h1 a,
622+.md h2 a,
623+.md h3 a,
624+.md h4 a {
625+  color: var(--grey-light);
626+  text-decoration: none;
627+}
628+
629+.md h1 {
630+  font-size: 1.6rem;
631+  line-height: 1.15;
632+  border-bottom: 2px solid var(--grey);
633+  padding-bottom: 1rem;
634+}
635+
636+.md h2 {
637+  font-size: 1.3rem;
638+  line-height: 1.15;
639+  color: var(--white-dark);
640+}
641+
642+.md h3 {
643+  font-size: 1.2rem;
644+  color: var(--white-dark);
645+}
646+
647+.md h4 {
648+  font-size: 1rem;
649+  color: var(--white-dark);
650+}
651+
652+/* ==== HELPERS ==== */
653+
654+.logo-header {
655+  line-height: 1;
656+  display: inline-block;
657+  background-color: #FF79C6;
658+  background-image: linear-gradient(to right, #FF5555, #FF79C6, #F8F859);
659+  color: transparent;
660+  background-clip: text;
661+  border: 3px solid #FF79C6;
662+  padding: 8px 10px 10px 10px;
663+  border-radius: 10px;
664+  box-shadow: 0px 5px 0px 0px var(--shadow);
665+  background-size: 100%;
666+  -webkit-background-clip: text;
667+  -moz-background-clip: text;
668+  -webkit-text-fill-color: transparent;
669+  -moz-text-fill-color: transparent;
670+}
671+
672+.btn {
673+  border: 2px solid var(--link-color);
674+  color: var(--link-color);
675+  padding: 0.4rem 1rem;
676+  font-weight: bold;
677+  display: inline-block;
678+}
679+
680+.btn-link,
681+.btn-link:visited {
682+  border: 2px solid var(--link-color);
683+  color: var(--link-color);
684+  padding: 0.4rem 1rem;
685+  text-decoration: none;
686+  font-weight: bold;
687+  display: inline-block;
688+}
689+
690+.btn-link:visited:hover,
691+.btn-link:hover {
692+  border: 2px solid var(--hover);
693+}
694+
695+.btn-link-alt,
696+.btn-link-alt:visited {
697+  border: 2px solid var(--white);
698+  color: var(--white);
699+}
700+
701+.box {
702+  border: 2px solid var(--grey-light);
703+  padding: 0.5rem 0.75rem;
704+}
705+
706+@media only screen and (max-width: 40em) {
707+  body {
708+    padding: 0 1rem;
709+  }
710+
711+  header {
712+    margin: 0;
713+  }
714+}
M prose/html/base.layout.tmpl
+1, -1
1@@ -8,7 +8,7 @@
2 
3         <meta name="keywords" content="blog, blogging, write, writing" />
4 
5-        <link rel="stylesheet" href="https://pico.sh/smol.css" />
6+        <link rel="stylesheet" href="/smol.css" />
7         <link rel="stylesheet" href="/main.css" />
8 
9         {{template "meta" .}}
A prose/public/smol.css
+713, -0
  1@@ -0,0 +1,713 @@
  2+*,
  3+::before,
  4+::after {
  5+  box-sizing: border-box;
  6+}
  7+
  8+::-moz-focus-inner {
  9+  border-style: none;
 10+  padding: 0;
 11+}
 12+:-moz-focusring {
 13+  outline: 1px dotted ButtonText;
 14+}
 15+:-moz-ui-invalid {
 16+  box-shadow: none;
 17+}
 18+
 19+@media (prefers-color-scheme: light) {
 20+  :root {
 21+    --main-hue: 250;
 22+    --white: #6a737d;
 23+    --white-light: #cfe0f4;
 24+    --white-dark: #9b9b9b;
 25+    --code: #e3e5e8;
 26+    --code-border: #e3e5e8;
 27+    --pre: #f6f8fa;
 28+    --bg-color: #fdfdfd;
 29+    --text-color: #24292f;
 30+    --link-color: #005cc5;
 31+    --visited: #6f42c1;
 32+    --blockquote: #005cc5;
 33+    --blockquote-bg: #cfe0f4;
 34+    --hover: #d73a49;
 35+    --grey: #ccc;
 36+    --grey-light: #6a708e;
 37+    --shadow: #e8e8e8;
 38+  }
 39+}
 40+
 41+@media (prefers-color-scheme: dark) {
 42+  :root {
 43+    --main-hue: 250;
 44+    --white: #f2f2f2;
 45+    --white-light: #f2f2f2;
 46+    --white-dark: #c6c6c6;
 47+    --code: #414558;
 48+    --code-border: #252525;
 49+    --pre: #252525;
 50+    --bg-color: #282a36;
 51+    --text-color: #f2f2f2;
 52+    --link-color: #8be9fd;
 53+    --visited: #bd93f9;
 54+    --blockquote: #bd93f9;
 55+    --blockquote-bg: #414558;
 56+    --hover: #ff80bf;
 57+    --grey: #414558;
 58+    --grey-light: #6a708e;
 59+    --shadow: #252525;
 60+  }
 61+}
 62+
 63+html {
 64+  background-color: var(--bg-color);
 65+  color: var(--text-color);
 66+  font-size: 18px;
 67+  line-height: 1.5;
 68+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
 69+    Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial,
 70+    sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
 71+  -webkit-text-size-adjust: 100%;
 72+  -moz-tab-size: 4;
 73+  -o-tab-size: 4;
 74+  tab-size: 4;
 75+}
 76+
 77+body {
 78+  margin: 0 auto;
 79+}
 80+
 81+img {
 82+  max-width: 100%;
 83+  height: auto;
 84+}
 85+
 86+b,
 87+strong {
 88+  font-weight: bold;
 89+}
 90+
 91+code,
 92+kbd,
 93+samp,
 94+pre {
 95+  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo,
 96+    monospace;
 97+}
 98+
 99+code,
100+kbd,
101+samp {
102+  background-color: var(--code);
103+  border: 1px solid var(--code-border);
104+}
105+
106+pre > code {
107+  background-color: inherit;
108+  padding: 0;
109+  border: none;
110+}
111+
112+code {
113+  border-radius: 0.3rem;
114+  padding: 0.15rem 0.2rem 0.05rem;
115+}
116+
117+pre {
118+  font-size: 14px;
119+  border-radius: 5px;
120+  padding: 1rem;
121+  margin: 1rem 0;
122+  overflow-x: auto;
123+  background-color: var(--pre) !important;
124+}
125+
126+small {
127+  font-size: 0.8rem;
128+}
129+
130+summary {
131+  display: list-item;
132+}
133+
134+h1,
135+h2,
136+h3 {
137+  margin: 0;
138+  padding: 0.6rem 0 0 0;
139+  border: 0;
140+  font-style: normal;
141+  font-weight: inherit;
142+  font-size: inherit;
143+}
144+
145+h1 > code {
146+  font-size: inherit;
147+}
148+
149+h2 > code {
150+  font-size: inherit;
151+}
152+
153+h3 > code {
154+  font-size: inherit;
155+}
156+
157+path {
158+  fill: var(--text-color);
159+  stroke: var(--text-color);
160+}
161+
162+hr {
163+  color: inherit;
164+  border: 0;
165+  margin: 0;
166+  height: 2px;
167+  background: var(--grey);
168+  margin: 1rem auto;
169+  text-align: center;
170+}
171+
172+a {
173+  text-decoration: underline;
174+  color: var(--link-color);
175+}
176+
177+a:hover,
178+a:visited:hover {
179+  color: var(--hover);
180+}
181+
182+a:visited {
183+  color: var(--visited);
184+}
185+
186+a.link-grey {
187+  text-decoration: underline;
188+  color: var(--white);
189+}
190+
191+a.link-grey:visited {
192+  color: var(--white);
193+}
194+
195+section {
196+  margin-bottom: 1.4rem;
197+}
198+
199+section:last-child {
200+  margin-bottom: 0;
201+}
202+
203+header {
204+  margin: 1rem auto;
205+}
206+
207+p {
208+  margin: 0.8rem 0;
209+}
210+
211+article {
212+  overflow-wrap: break-word;
213+}
214+
215+blockquote {
216+  border-left: 5px solid var(--blockquote);
217+  background-color: var(--blockquote-bg);
218+  padding: 0.8rem;
219+  margin: 1rem 0;
220+}
221+
222+blockquote > p {
223+  margin: 0;
224+}
225+
226+blockquote code {
227+  border: 1px solid var(--blockquote);
228+}
229+
230+ul,
231+ol {
232+  padding: 0 0 0 2rem;
233+  list-style-position: outside;
234+}
235+
236+ul[style*="list-style-type: none;"] {
237+  padding: 0;
238+}
239+
240+li {
241+  margin: 0.5rem 0;
242+}
243+
244+li > pre {
245+  padding: 0;
246+}
247+
248+footer {
249+  text-align: center;
250+  margin-bottom: 4rem;
251+}
252+
253+dt {
254+  font-weight: bold;
255+}
256+
257+dd {
258+  margin-left: 0;
259+}
260+
261+dd:not(:last-child) {
262+  margin-bottom: 0.5rem;
263+}
264+
265+figure {
266+  margin: 0;
267+}
268+
269+.container {
270+  max-width: 50em;
271+  width: 100%;
272+}
273+
274+.container-sm {
275+  max-width: 40em;
276+  width: 100%;
277+}
278+
279+.container-center {
280+  width: 100%;
281+  height: 100%;
282+  display: flex;
283+  justify-content: center;
284+}
285+
286+.mono {
287+  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo,
288+    monospace;
289+}
290+
291+.link-alt-adj,
292+.link-alt-adj:visited,
293+.link-alt-adj:visited:hover,
294+.link-alt-adj:hover {
295+  color: var(--link-color);
296+  text-decoration: none;
297+}
298+
299+.link-alt-adj:visited:hover,
300+.link-alt-adj:hover {
301+  text-decoration: underline;
302+}
303+
304+.link-alt-hover,
305+.link-alt-hover:visited,
306+.link-alt-hover:visited:hover,
307+.link-alt-hover:hover {
308+  color: var(--hover);
309+  text-decoration: none;
310+}
311+
312+.link-alt-hover:visited:hover,
313+.link-alt-hover:hover {
314+  text-decoration: underline;
315+}
316+
317+.link-alt,
318+.link-alt:visited,
319+.link-alt:visited:hover,
320+.link-alt:hover {
321+  color: var(--white);
322+  text-decoration: none;
323+}
324+
325+.link-alt:visited:hover,
326+.link-alt:hover {
327+  text-decoration: underline;
328+}
329+
330+.text-3xl {
331+  font-size: 2.5rem;
332+}
333+
334+.text-2xl {
335+  font-size: 1.9rem;
336+  line-height: 1.15;
337+}
338+
339+.text-xl {
340+  font-size: 1.55rem;
341+  line-height: 1.15;
342+}
343+
344+.text-lg {
345+  font-size: 1.35rem;
346+  line-height: 1.15;
347+}
348+
349+.text-md {
350+  font-size: 1.15rem;
351+  line-height: 1.15;
352+}
353+
354+.text-sm {
355+  font-size: 0.875rem;
356+}
357+
358+.text-xs {
359+  font-size: 0.775rem;
360+}
361+
362+.cursor-pointer {
363+  cursor: pointer;
364+}
365+
366+.w-full {
367+  width: 100%;
368+}
369+
370+.h-full {
371+  height: 100%;
372+}
373+
374+.border {
375+  border: 2px solid var(--grey-light);
376+}
377+
378+.text-left {
379+  text-align: left;
380+}
381+
382+.text-center {
383+  text-align: center;
384+}
385+
386+.text-underline {
387+  border-bottom: 3px solid var(--text-color);
388+  padding-bottom: 3px;
389+}
390+
391+.text-hdr {
392+  color: var(--hover);
393+}
394+
395+.text-underline-hdr {
396+  border-bottom: 3px solid var(--hover);
397+  padding-bottom: 3px;
398+}
399+
400+.font-bold {
401+  font-weight: bold;
402+}
403+
404+.font-italic {
405+  font-style: italic;
406+}
407+
408+.inline {
409+  display: inline;
410+}
411+
412+.inline-block {
413+  display: inline-block;
414+}
415+
416+.max-w-half {
417+  max-width: 50%;
418+}
419+
420+.h-screen {
421+  height: 100vh;
422+}
423+
424+.w-screen {
425+  width: 100vw;
426+}
427+
428+.flex {
429+  display: flex;
430+}
431+
432+.flex-col {
433+  flex-direction: column;
434+}
435+
436+.items-center {
437+  align-items: center;
438+}
439+
440+.m-0 {
441+  margin: 0;
442+}
443+
444+.mt {
445+  margin-top: 0.5rem;
446+}
447+
448+.mt-2 {
449+  margin-top: 1rem;
450+}
451+
452+.mt-4 {
453+  margin-top: 2rem;
454+}
455+
456+.mt-8 {
457+  margin-top: 4rem;
458+}
459+
460+.mb {
461+  margin-bottom: 0.5rem;
462+}
463+
464+.mb-2 {
465+  margin-bottom: 1rem;
466+}
467+
468+.mb-4 {
469+  margin-bottom: 2rem;
470+}
471+
472+.mb-8 {
473+  margin-bottom: 4rem;
474+}
475+
476+.mb-16 {
477+  margin-bottom: 8rem;
478+}
479+
480+.mr {
481+  margin-right: 0.5rem;
482+}
483+
484+.ml-sm {
485+  margin-left: 0.25rem;
486+}
487+
488+.ml {
489+  margin-left: 0.5rem;
490+}
491+
492+.my {
493+  margin-top: 0.5rem;
494+  margin-bottom: 0.5rem;
495+}
496+
497+.my-2 {
498+  margin-top: 1rem;
499+  margin-bottom: 1rem;
500+}
501+
502+.my-4 {
503+  margin-top: 2rem;
504+  margin-bottom: 2rem;
505+}
506+
507+.my-8 {
508+  margin-top: 4rem;
509+  margin-bottom: 4rem;
510+}
511+
512+.mx {
513+  margin-left: 0.5rem;
514+  margin-right: 0.5rem;
515+}
516+
517+.mx-2 {
518+  margin-left: 1rem;
519+  margin-right: 1rem;
520+}
521+
522+.m-1 {
523+  margin: 0.5rem;
524+}
525+
526+.p-1 {
527+  padding: 0.5rem;
528+}
529+
530+.p-0 {
531+  padding: 0;
532+}
533+
534+.py {
535+  padding-top: 0.5rem;
536+  padding-bottom: 0.5rem;
537+}
538+
539+.py-2 {
540+  padding-top: 1rem;
541+  padding-bottom: 1rem;
542+}
543+
544+.py-4 {
545+  padding-top: 2rem;
546+  padding-bottom: 2rem;
547+}
548+
549+.py-8 {
550+  padding-top: 4rem;
551+  padding-bottom: 4rem;
552+}
553+
554+.justify-between {
555+  justify-content: space-between;
556+}
557+
558+.justify-center {
559+  justify-content: center;
560+}
561+
562+.gap {
563+  gap: 0.5rem;
564+}
565+
566+.gap-2 {
567+  gap: 1rem;
568+}
569+
570+.group {
571+  display: flex;
572+  flex-direction: column;
573+  gap: 0.5rem;
574+}
575+
576+.group-h {
577+  display: flex;
578+  gap: 0.5rem;
579+  align-items: center;
580+}
581+
582+.flex-1 {
583+  flex: 1;
584+}
585+
586+.items-end {
587+  align-items: end;
588+}
589+
590+.items-start {
591+  align-items: start;
592+}
593+
594+.justify-end {
595+  justify-content: end;
596+}
597+
598+.font-grey-light {
599+  color: var(--grey-light);
600+}
601+
602+.hidden {
603+  display: none;
604+}
605+
606+.align-right {
607+  text-align: right;
608+}
609+
610+/* ==== MARKDOWN ==== */
611+
612+.md h1,
613+.md h2,
614+.md h3,
615+.md h4 {
616+  padding: 0;
617+  margin: 1.5rem 0 0.9rem 0;
618+  font-weight: bold;
619+}
620+
621+.md h1 a,
622+.md h2 a,
623+.md h3 a,
624+.md h4 a {
625+  color: var(--grey-light);
626+  text-decoration: none;
627+}
628+
629+.md h1 {
630+  font-size: 1.6rem;
631+  line-height: 1.15;
632+  border-bottom: 2px solid var(--grey);
633+  padding-bottom: 1rem;
634+}
635+
636+.md h2 {
637+  font-size: 1.3rem;
638+  line-height: 1.15;
639+  color: var(--white-dark);
640+}
641+
642+.md h3 {
643+  font-size: 1.2rem;
644+  color: var(--white-dark);
645+}
646+
647+.md h4 {
648+  font-size: 1rem;
649+  color: var(--white-dark);
650+}
651+
652+/* ==== HELPERS ==== */
653+
654+.logo-header {
655+  line-height: 1;
656+  display: inline-block;
657+  background-color: #FF79C6;
658+  background-image: linear-gradient(to right, #FF5555, #FF79C6, #F8F859);
659+  color: transparent;
660+  background-clip: text;
661+  border: 3px solid #FF79C6;
662+  padding: 8px 10px 10px 10px;
663+  border-radius: 10px;
664+  box-shadow: 0px 5px 0px 0px var(--shadow);
665+  background-size: 100%;
666+  -webkit-background-clip: text;
667+  -moz-background-clip: text;
668+  -webkit-text-fill-color: transparent;
669+  -moz-text-fill-color: transparent;
670+}
671+
672+.btn {
673+  border: 2px solid var(--link-color);
674+  color: var(--link-color);
675+  padding: 0.4rem 1rem;
676+  font-weight: bold;
677+  display: inline-block;
678+}
679+
680+.btn-link,
681+.btn-link:visited {
682+  border: 2px solid var(--link-color);
683+  color: var(--link-color);
684+  padding: 0.4rem 1rem;
685+  text-decoration: none;
686+  font-weight: bold;
687+  display: inline-block;
688+}
689+
690+.btn-link:visited:hover,
691+.btn-link:hover {
692+  border: 2px solid var(--hover);
693+}
694+
695+.btn-link-alt,
696+.btn-link-alt:visited {
697+  border: 2px solid var(--white);
698+  color: var(--white);
699+}
700+
701+.box {
702+  border: 2px solid var(--grey-light);
703+  padding: 0.5rem 0.75rem;
704+}
705+
706+@media only screen and (max-width: 40em) {
707+  body {
708+    padding: 0 1rem;
709+  }
710+
711+  header {
712+    margin: 0;
713+  }
714+}
M shared/config.go
+1, -1
1@@ -114,7 +114,7 @@ func (c *ConfigSite) BlogURL(username string) string {
2 
3 func (c *ConfigSite) CssURL(username string) string {
4 	if c.IsSubdomains() || c.IsCustomdomains() {
5-		return fmt.Sprintf("%s://%s.%s/_styles.css", c.Protocol, username, c.Domain)
6+		return "/_styles.css"
7 	}
8 
9 	return fmt.Sprintf("/%s/styles.css", username)