From f97270c33147199c15718f4b58b68541b824d56a Mon Sep 17 00:00:00 2001
From: "C. Lente" <7017340+clente@users.noreply.github.com>
Date: Tue, 25 Apr 2023 17:57:50 -0300
Subject: [PATCH 01/13] Add Herman style
---
assets/herman.css | 180 +++++++++++++++++++++++++++++++++++
layouts/_default/baseof.html | 2 +-
layouts/_default/single.html | 2 +-
3 files changed, 182 insertions(+), 2 deletions(-)
create mode 100644 assets/herman.css
diff --git a/assets/herman.css b/assets/herman.css
new file mode 100644
index 0000000..509af4a
--- /dev/null
+++ b/assets/herman.css
@@ -0,0 +1,180 @@
+:root {
+ --color-dark: hsl(228, 15%, 11%); /* 1a1a1a */
+ --color-light: #fafafa;
+ --color-primary: #1a8fe3;
+ --spacing: 1.5rem;
+}
+
+body {
+ background: var(--color-dark);
+ color: var(--color-light);
+ padding: 2.5rem;
+ font-family: Avenir, 'Avenir Next LT Pro', Montserrat, Corbel, 'URW Gothic',
+ source-sans-pro, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
+ "Segoe UI Symbol", "Noto Color Emoji";
+ font-size: 1.2rem;
+ line-height: 1.4;
+ min-height: 100vh;
+ max-width: 1600px;
+ margin: 0 auto;
+ word-wrap: break-word;
+}
+
+header,
+main,
+footer {
+ max-width: 70ch;
+ margin-inline: auto;
+}
+
+header {
+ padding-bottom: var(--spacing);
+}
+
+nav a, a.blog-tags {
+ margin-right: calc(var(--spacing) / 3);
+}
+a.blog-tags {
+ line-height: 1.8;
+}
+
+main {
+ padding-bottom: var(--spacing);
+}
+
+footer {
+ text-align: center;
+ padding-top: var(--spacing);
+}
+
+a {
+ color: currentColor;
+ text-decoration-color: var(--color-primary);
+ text-decoration-thickness: 0.3ex;
+ text-underline-offset: 0.3ex;
+}
+
+a:hover {
+ text-decoration-thickness: 0.4ex;
+}
+
+img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5 {
+ font-weight: 700;
+ line-height: 1.3;
+}
+
+h1 {
+ font-size: 3.55rem;
+}
+h2 {
+ font-size: 2.66rem;
+}
+h3 {
+ font-size: 2rem;
+}
+h4 {
+ font-size: 1.5rem;
+}
+h5 {
+ font-size: 1.13rem;
+}
+
+ul,
+ol {
+ padding-inline-start: var(--spacing);
+}
+li {
+ margin-block-start: var(--spacing);
+}
+
+blockquote {
+ padding-inline-start: var(--spacing);
+ border-inline-start: 0.2em solid;
+ font-style: italic;
+}
+
+:is(h1, h2, h3, h4, h5, blockquote) {
+ margin-block-end: calc(var(--spacing) / 2);
+}
+:is(h1, h2, h3, h4, h5) + * {
+ margin-block-start: calc(var(--spacing) / 3);
+}
+:is(h1, h2, h3, h4, h5) + :where(h2, h3, h4, h5) {
+ margin-block-start: calc(var(--spacing) * 2);
+}
+
+blockquote {
+ max-width: 50ch;
+}
+
+.title {
+ text-decoration: none;
+}
+.title h1 {
+ font-size: 2rem;
+ margin-top: calc(var(--spacing) / 2);
+}
+
+ul.blog-posts {
+ list-style-type: none;
+ padding: unset;
+}
+ul.blog-posts li {
+ display: flex;
+ flex-direction: column;
+}
+@media screen and (min-width: 600px) {
+ ul.blog-posts li {
+ flex-direction: row;
+ gap: calc(var(--spacing) / 2);
+ }
+}
+ul.blog-posts li span {
+ min-width: 11ch;
+}
+time {
+ opacity: 0.5;
+ font-style: normal;
+}
+
+code {
+ padding: 1px calc(var(--spacing) / 4);
+ color: #f8f8f2;
+ background-color: #282a36;
+ font-size: 1rem;
+}
+
+pre code {
+ display: block;
+ padding: calc(var(--spacing) / 2);
+ white-space: pre-wrap;
+ overflow-x: auto;
+}
+
+table {
+ width: 100%;
+}
+table,
+th,
+td {
+ border: 1px solid;
+ border-collapse: collapse;
+ border-color: var(--color-light);
+ padding: calc(var(--spacing) / 2);
+}
+
+.disabled {
+ color: currentColor;
+ cursor: not-allowed;
+ opacity: 0.5;
+}
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 7aa0605..0b0cdff 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -11,7 +11,7 @@
{{- partial "seo_tags.html" . -}}
- {{ $style := resources.Get "style.css" | minify }}
+ {{ $style := resources.Get "herman.css" | minify }}
{{ $syntax := resources.Get "syntax.css" | minify }}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index cd6b095..6c6ee69 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -14,7 +14,7 @@
{{ range (.GetTerms "tags") }}
- #{{ .LinkTitle }}
+ #{{ .LinkTitle }}
{{ end }}
{{ end }}
From 69ff6b3e176edd238055d52f26511bf77cedbbdb Mon Sep 17 00:00:00 2001
From: "C. Lente" <7017340+clente@users.noreply.github.com>
Date: Wed, 26 Apr 2023 00:28:32 -0300
Subject: [PATCH 02/13] Dial down comment color
---
assets/syntax.css | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/assets/syntax.css b/assets/syntax.css
index 5f15788..a28d967 100644
--- a/assets/syntax.css
+++ b/assets/syntax.css
@@ -69,11 +69,11 @@
/* Operator */ .chroma .o { color: #ff79c6 }
/* OperatorWord */ .chroma .ow { color: #ff79c6 }
/* Punctuation .chroma .p { } */
-/* Comment */ .chroma .c { color: #7c90d0 }
-/* CommentHashbang */ .chroma .ch { color: #7c90d0 }
-/* CommentMultiline */ .chroma .cm { color: #7c90d0 }
-/* CommentSingle */ .chroma .c1 { color: #7c90d0 }
-/* CommentSpecial */ .chroma .cs { color: #7c90d0 }
+/* Comment */ .chroma .c { color: #8491b8 }
+/* CommentHashbang */ .chroma .ch { color: #8491b8 }
+/* CommentMultiline */ .chroma .cm { color: #8491b8 }
+/* CommentSingle */ .chroma .c1 { color: #8491b8 }
+/* CommentSpecial */ .chroma .cs { color: #8491b8 }
/* CommentPreproc */ .chroma .cp { color: #ff79c6 }
/* CommentPreprocFile */ .chroma .cpf { color: #ff79c6 }
/* Generic .chroma .g { } */
From be1cbcc552b76f0e2e57933339c69f5ea473f1cb Mon Sep 17 00:00:00 2001
From: "C. Lente" <7017340+clente@users.noreply.github.com>
Date: Wed, 26 Apr 2023 00:29:04 -0300
Subject: [PATCH 03/13] Tweaks for herman.css on mobile
---
assets/herman.css | 66 ++++++++++++++++++++++++++---------------------
1 file changed, 36 insertions(+), 30 deletions(-)
diff --git a/assets/herman.css b/assets/herman.css
index 509af4a..cf54dd2 100644
--- a/assets/herman.css
+++ b/assets/herman.css
@@ -1,20 +1,22 @@
:root {
- --color-dark: hsl(228, 15%, 11%); /* 1a1a1a */
+ font-size: 62.5%; /* 10px */
+ --color-dark: #181a20; /* 1a1a1a */
--color-light: #fafafa;
--color-primary: #1a8fe3;
- --spacing: 1.5rem;
+ --size: 1rem;
+ --spacing: calc(var(--size) * 2.4);
}
body {
background: var(--color-dark);
color: var(--color-light);
- padding: 2.5rem;
+ padding: 4rem;
font-family: Avenir, 'Avenir Next LT Pro', Montserrat, Corbel, 'URW Gothic',
source-sans-pro, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
"Segoe UI Symbol", "Noto Color Emoji";
- font-size: 1.2rem;
- line-height: 1.4;
- min-height: 100vh;
+ font-size: calc(var(--size) * 1.8);
+ line-height: 1.5;
+ min-height: 80vh;
max-width: 1600px;
margin: 0 auto;
word-wrap: break-word;
@@ -32,10 +34,10 @@ header {
}
nav a, a.blog-tags {
- margin-right: calc(var(--spacing) / 3);
+ margin-right: calc(var(--spacing) / 2);
}
a.blog-tags {
- line-height: 1.8;
+ line-height: 2;
}
main {
@@ -74,19 +76,19 @@ h5 {
}
h1 {
- font-size: 3.55rem;
+ font-size: calc(var(--size) * 5.7);
}
h2 {
- font-size: 2.66rem;
+ font-size: calc(var(--size) * 4.3);
}
h3 {
- font-size: 2rem;
+ font-size: calc(var(--size) * 3.2);
}
h4 {
- font-size: 1.5rem;
+ font-size: calc(var(--size) * 2.4);
}
h5 {
- font-size: 1.13rem;
+ font-size: calc(var(--size) * 1.8);
}
ul,
@@ -101,6 +103,7 @@ blockquote {
padding-inline-start: var(--spacing);
border-inline-start: 0.2em solid;
font-style: italic;
+ max-width: 50ch;
}
:is(h1, h2, h3, h4, h5, blockquote) {
@@ -113,15 +116,11 @@ blockquote {
margin-block-start: calc(var(--spacing) * 2);
}
-blockquote {
- max-width: 50ch;
-}
-
.title {
text-decoration: none;
}
.title h1 {
- font-size: 2rem;
+ font-size: calc(var(--size) * 3.2);
margin-top: calc(var(--spacing) / 2);
}
@@ -133,31 +132,25 @@ ul.blog-posts li {
display: flex;
flex-direction: column;
}
-@media screen and (min-width: 600px) {
- ul.blog-posts li {
- flex-direction: row;
- gap: calc(var(--spacing) / 2);
- }
-}
ul.blog-posts li span {
min-width: 11ch;
}
+
time {
opacity: 0.5;
font-style: normal;
}
code {
- padding: 1px calc(var(--spacing) / 4);
- color: #f8f8f2;
+ font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro',
+ Menlo, Consolas, 'DejaVu Sans Mono', monospace;
+ padding: 2px calc(var(--spacing) / 4);
background-color: #282a36;
- font-size: 1rem;
+ font-size: calc(var(--size) * 1.4);
}
-
pre code {
display: block;
- padding: calc(var(--spacing) / 2);
- white-space: pre-wrap;
+ padding: var(--spacing);
overflow-x: auto;
}
@@ -178,3 +171,16 @@ td {
cursor: not-allowed;
opacity: 0.5;
}
+
+@media screen and (min-width: 600px) {
+ ul.blog-posts li {
+ flex-direction: row;
+ gap: calc(var(--spacing) / 2);
+ }
+}
+
+@media screen and (max-width: 600px) {
+ :root {
+ --size: 0.9rem;
+ }
+}
From 603876b88d754a10cdbcf11b18c4fcc4dc0aaa91 Mon Sep 17 00:00:00 2001
From: "C. Lente" <7017340+clente@users.noreply.github.com>
Date: Thu, 27 Apr 2023 11:55:52 -0300
Subject: [PATCH 04/13] Adjust heading sizes
---
assets/herman.css | 26 ++++++++------------------
layouts/_default/list.html | 2 +-
2 files changed, 9 insertions(+), 19 deletions(-)
diff --git a/assets/herman.css b/assets/herman.css
index cf54dd2..1eae1f3 100644
--- a/assets/herman.css
+++ b/assets/herman.css
@@ -69,25 +69,21 @@ img {
h1,
h2,
h3,
-h4,
-h5 {
+h4 {
font-weight: 700;
line-height: 1.3;
}
h1 {
- font-size: calc(var(--size) * 5.7);
+ font-size: calc(var(--size) * 4.2);
}
h2 {
- font-size: calc(var(--size) * 4.3);
+ font-size: calc(var(--size) * 3.4);
}
h3 {
- font-size: calc(var(--size) * 3.2);
+ font-size: calc(var(--size) * 2.6);
}
h4 {
- font-size: calc(var(--size) * 2.4);
-}
-h5 {
font-size: calc(var(--size) * 1.8);
}
@@ -106,13 +102,13 @@ blockquote {
max-width: 50ch;
}
-:is(h1, h2, h3, h4, h5, blockquote) {
+:is(h1, h2, h3, h4, blockquote) {
margin-block-end: calc(var(--spacing) / 2);
}
-:is(h1, h2, h3, h4, h5) + * {
+:is(h1, h2, h3, h4) + * {
margin-block-start: calc(var(--spacing) / 3);
}
-:is(h1, h2, h3, h4, h5) + :where(h2, h3, h4, h5) {
+:is(h1, h2, h3, h4) + :where(h2, h3, h4) {
margin-block-start: calc(var(--spacing) * 2);
}
@@ -120,7 +116,7 @@ blockquote {
text-decoration: none;
}
.title h1 {
- font-size: calc(var(--size) * 3.2);
+ font-size: calc(var(--size) * 3.4);
margin-top: calc(var(--spacing) / 2);
}
@@ -178,9 +174,3 @@ td {
gap: calc(var(--spacing) / 2);
}
}
-
-@media screen and (max-width: 600px) {
- :root {
- --size: 0.9rem;
- }
-}
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index c251837..0bfe2ec 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -28,7 +28,7 @@
{{ if not .Data.Singular }}
{{ end }}
From 2419e25e73f60be3c18893df06ad61ed928bf277 Mon Sep 17 00:00:00 2001
From: "C. Lente" <7017340+clente@users.noreply.github.com>
Date: Thu, 27 Apr 2023 12:25:09 -0300
Subject: [PATCH 05/13] Update social cards
---
assets/herman.css | 2 +-
assets/images/social_card_bg.png | Bin 651110 -> 6698 bytes
assets/images/social_card_fg.png | Bin 367423 -> 4656 bytes
assets/style.css | 147 ------------------------------
layouts/partials/social_card.html | 4 +-
5 files changed, 3 insertions(+), 150 deletions(-)
delete mode 100644 assets/style.css
diff --git a/assets/herman.css b/assets/herman.css
index 1eae1f3..b80a9d8 100644
--- a/assets/herman.css
+++ b/assets/herman.css
@@ -1,6 +1,6 @@
:root {
font-size: 62.5%; /* 10px */
- --color-dark: #181a20; /* 1a1a1a */
+ --color-dark: #181a20;
--color-light: #fafafa;
--color-primary: #1a8fe3;
--size: 1rem;
diff --git a/assets/images/social_card_bg.png b/assets/images/social_card_bg.png
index ad1d5285b07d21c5d49f7cd9f7bc5536fde0d2ba..857ea631a1f66be042e2be0e50834e281390abef 100644
GIT binary patch
literal 6698
zcmeAS@N?(olHy`uVBq!ia0y~yV7^nUk#C56lsTcvPQUjyF)=hTc$kE){7
z;3~h6MhJ1(0FE1&_nsU?XD6}dTi#a0!zN?>!XfNYSkzLEl1NlCV?QiN}S
zf^&XRs)DJWsh)w79hZVlQA(Oskc%5sGmvMilu=SrV5P5LUS6(OZmgGIl&)`RX=$l%
zV5DzkqzhD`TU?n}l31aeSF8*&0%C?sYH@N=WBsGXXk*T{Itv*pj>f~yOV;atFxJ*rJ0$oksibtVANRw^=773x+InWRT&u=
z8S5ID=o*=a7#dj_nOFhY2F6yw``*jqs3AhN~zX(i=}MX8SIz-YEr
za!gCh1V&M%0x$z*rst&=DHtgj=^5ympz12mNCldR+kg5{*Xe`u9?W?*`WPOt0V_bt
ztU!GbF<>D8EKT&`#R-rDFOX96fTd6ou(&yuzM+zVfw3_Y7&RDC!oZ+0v2@~TZzo5Q
zcKfXwrwlZdRU&XJOWyrF)
z3cB2m65p!1bMER!!OAw{=ddK|9PoM6%v~tg%R1_MWRk5?-F;v^kZhn~OM3>ah=BIxoH%(f7Voi`k@>CYjqA%UEroS@m
zEWDU(6eM!y-~YF(<>V#Tg>0{0`0u2_y{d(Y++MDSf7qDxToSw?_fRSL?0LBZFLu8;
zy6V|2_Ty}GV#Btc;G2{0^t@T>+M(2wYI(iKAAV(t5?lCIYSuJu+ut{z|B!Qf{V6nj
z!*2H4qI(-Z@y2~lfApmJ)JkBz!CBxDSc3Z2iD^)^;1h7+x}^vn6vY|EU3cSv-K5-YOps-1<_2)cz~qCfhmkYierWmNQ^O<
z4M-{^oC0xJd?bNnLxUzWkP6L^kbO5VG22WQ%mvv4FO#tv1;*kIV
literal 651110
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