From e5cff1cefd4f5eb878299b2ff33d1450e0dbd2a1 Mon Sep 17 00:00:00 2001
From: GitHub Action <action@github.com>
Date: Thu, 2 Jan 2025 15:09:39 +0000
Subject: [PATCH] Add color customization in accordance with #100

Signed-off-by: GitHub Action <action@github.com>
---
 assets/scss/_colors.scss        | 162 ++++++++++++++++++++++++++------
 assets/scss/_mixins.scss        |   7 +-
 assets/scss/_scrolltotop.scss   |  16 +---
 assets/scss/_socialshare.scss   |   6 +-
 assets/scss/_syntax.scss        |   2 +-
 assets/scss/style.scss          | 138 ++++++++++++++++++---------
 hugo.toml.example               |   1 +
 layouts/partials/site-meta.html |   2 +-
 layouts/partials/svg.html       |   4 +-
 layouts/posts/single.html       |  12 +--
 10 files changed, 248 insertions(+), 102 deletions(-)

diff --git a/assets/scss/_colors.scss b/assets/scss/_colors.scss
index 760338d3..57d7053a 100644
--- a/assets/scss/_colors.scss
+++ b/assets/scss/_colors.scss
@@ -1,38 +1,142 @@
-// Default Colors
-$theme: hsl(172, 99%, 26%) !default;
-$text: hsl(204, 28%, 93%) !default;
-$light-grey: #494f5c !default;
-$dark-grey: #3b3e48 !default;
-$highlight-grey: #7d828a !default;
-$midnightblue: #2c3e50 !default;
-$typewriter: hsl(172, 100%, 36%) !default;
-$codebackground: #272822 !default;
-$pagescrollbar-thumb: hsl(0, 0%, 53%) !default;
+// Default Colors for site
+$pine-green: #018472;
+$bright-grey: #eeeeee;
+$white: #ffffff;
+$davys-grey : #494f5c;
+$granite-grey: #666666;
+$sonic-silver: #777777; 
+$arsenic: #3b3e48;
+$css-grey: #7d828a;
+$japanese-indigo: #2c3e50;
+$pine-tree: #272822;
+$taupe-grey: #878787;
+$chinese-silver: #cccccc;
+$anti-flash-white: #f1f1f1;
+$lapis-lazuli: #21759b; 
+
+// Default Colors and Opacity for Admonition
+$blueberry: #448aff;
+$turquoise-surf: #00b8d4;
+$caribbean-green: #00bfa5;
+$malachite: #00c853;
+$dark-orange: #ff9100;
+$crayola: #ff5252;
+$awesome: #ff1744;
+$folly: #f50057;
+$admonition-background-opacity : 0.1;
+
+// Default dimmed value
+$dimmed-opacity: 0.6 !default;
+
+// Background color
+$html-background: $davys-grey !default;
+
+// Site Navigation color
+$site-nav-children-border-right:$css-grey !default;
+
+// Posts seperator in list view
+$post-item-border-bottom: $css-grey !default;
+
+// Pinned posts group seperator in list view
+$pinned-posts-group-border-bottom: $css-grey !default;
+
+// Elements of the site which are expected to follow accent color
+// In this current form, `accentColor` in hugo.toml will have higher precedence than these declarations
+$aTag-mixin-a-box-shadow: $pine-green !default; // Box shadow for Mixin "aTag" used by figure element
+$aTag-mixin-a-hover-box-shadow: $pine-green !default; // Box shadow on hover for Mixin "aTag" used by figure element
+$content-anchor-hover: $pine-green !default; // Anchor text hover color
+$post-description-a-hover-border-bottom: $pine-green !default; // Anchor text on hover for post description in list
+$tableofcontents-a-hover-border-bottom: $pine-green !default; // Table of Contents on hover
+$scrolltotop-arrow: $pine-green !default; // Scroll yo Top arrow color
+$typewriter: $pine-green !default; // Typewriter carat color
+$footnote-ref-hover-background: $pine-green !default; // Footnote reference on hover
+$marked-background: $pine-green !default; // Marked text background color
+$inserted-text-underline: $pine-green !default; // Inserted text underline color
+
+// Footnote
+$footnote-ref-background: $japanese-indigo !default;
 
 // Scroll to Top Default colors
-$stt-stroke: #ccc !default;
-$stt-circle: #3b3e48 !default;
-$stt-arrow: #018574 !default;
+// Scroll to Top "Up arrow" color is defined as : $scrolltotop-arrow
+$scrolltotop-ring: $chinese-silver !default;
+$scrolltotop-circle: $arsenic !default;
+
+// Page Scrollbar
+$pagescrollbar-background: $japanese-indigo !default;
+$pagescrollbar-thumb: $taupe-grey !default;
+$pagescrollbar-thumb-hover: $bright-grey !default;
+
+// Table of Contents
+$tableofcontents-background: transparent;
+
+// Table of Contents Scrollbar
+$tableofcontents-scrollbar-track: darken($pagescrollbar-thumb, 10%) !default;
+$tableofcontents-scrollbar-thumb: $japanese-indigo !default;
+$tableofcontents-scrollbar-thumb-hover: lighten($japanese-indigo, 10%) !default;
+
+// Text color
+$text: $bright-grey !default;
+
+// Text selection color
+$text-select: $css-grey !default;
+
+// Marked text color
+$marked-text:$bright-grey !default;
+
+// Link text color on hover
+$a-hover: $white !default;
+
+// 404 Page
+$btn-404-a-border: $bright-grey !default;
+$btn-404-a-hover: $white !default;
+
+// Social Share links pane
+$share-links-background: $japanese-indigo !default;
+$share-links-a: $css-grey !default;
+$share-links-a-hover-active-focus: $bright-grey !default;
+
+// Code block, Mermaid block color
+$pre-code: $bright-grey !default;
+$pre-code-background: transparent !default;
+$code-background:$arsenic !default;
+$syntax-background: $japanese-indigo !default;
+$pre-background: $japanese-indigo !default;
+$mermaid-background: $pine-tree !default;
+
+// Code copy button
+$highlight-copy-btn: $white !default;
+$highlight-copy-btn-hover: $sonic-silver !default;
+$highlight-copy-btn-background: $granite-grey !default;
+
+// Site Header color
+$site-header-background:$arsenic !default;
+
+// Mobile menu color
+$mobile-menu-background: $arsenic !default;
+
+// Accessibility - Screen reader
+$screen-reader-text: $lapis-lazuli !default;
+$screen-reader-text-background: $anti-flash-white !default;
 
 //Admonition colors
 $admonition-background: (
-    "note": rgba(68, 138, 255, 0.1),
-    "info": rgba(0, 184, 212, 0.1),
-    "tip": rgba(0, 191, 165, 0.1),
-    "success": rgba(0, 200, 83, 0.1),
-    "warning": rgba(255, 145, 0, 0.1),
-    "failure": rgba(255, 82, 82, 0.1),
-    "danger": rgba(255, 23, 68, 0.1),
-    "bug": rgba(245, 0, 87, 0.1),
+    "note": rgba($blueberry, $admonition-background-opacity),
+    "info": rgba($turquoise-surf, $admonition-background-opacity),
+    "tip": rgba($caribbean-green, $admonition-background-opacity),
+    "success": rgba($malachite, $admonition-background-opacity),
+    "warning": rgba($dark-orange, $admonition-background-opacity),
+    "failure": rgba($crayola, $admonition-background-opacity),
+    "danger": rgba($awesome, $admonition-background-opacity),
+    "bug": rgba($folly, $admonition-background-opacity),
     ) !default;
 
 $admonition-color: (
-    "note": #448aff,
-    "info": #00b8d4,
-    "tip": #00bfa5,
-    "success": #00c853,
-    "warning": #ff9100,
-    "failure": #ff5252,
-    "danger": #ff1744,
-    "bug": #f50057,
+    "note": $blueberry,
+    "info": $turquoise-surf,
+    "tip": $caribbean-green,
+    "success": $malachite,
+    "warning": $dark-orange,
+    "failure": $crayola,
+    "danger": $awesome,
+    "bug": $folly,
     ) !default;
\ No newline at end of file
diff --git a/assets/scss/_mixins.scss b/assets/scss/_mixins.scss
index 1fe225e0..3753e9c4 100644
--- a/assets/scss/_mixins.scss
+++ b/assets/scss/_mixins.scss
@@ -1,3 +1,6 @@
+// These are default SCSS mixins
+// This mixin is used to provide darkish effect in
+// #home-footer, .post-year (in list), .post-day (in list), .post-description (in list), .post-date, .post-description, #TableOfContents
 @mixin dimmed {
   opacity: $dimmed-opacity;
 }
@@ -6,12 +9,12 @@
   a {
     word-wrap: break-word;
     border: none;
-    box-shadow: inset 0 -4px 0 $theme;
+    box-shadow: inset 0 -4px 0 $aTag-mixin-a-box-shadow;
     transition-property: box-shadow;
     transition-duration: 0.1s;
 
     &:hover {
-      box-shadow: inset 0 -1em 0 $theme;
+      box-shadow: inset 0 -1em 0 $aTag-mixin-a-hover-box-shadow;
     }
   }
 }
diff --git a/assets/scss/_scrolltotop.scss b/assets/scss/_scrolltotop.scss
index 2cb6a05f..407091a4 100644
--- a/assets/scss/_scrolltotop.scss
+++ b/assets/scss/_scrolltotop.scss
@@ -1,18 +1,4 @@
 .scroll-up {
-    .scroll {
-        #st-ring {
-            stroke: $stt-stroke;
-        }
-
-        #st-circle {
-            fill: $stt-circle;
-        }
-
-        #st-arrow {
-            fill: $stt-arrow;
-        }
-    }
-
     position: fixed;
     bottom: 10%;
     right: 2%;
@@ -29,4 +15,4 @@
 .show {
     opacity: 1;
     transform: translateY(0);
-}
+}
\ No newline at end of file
diff --git a/assets/scss/_socialshare.scss b/assets/scss/_socialshare.scss
index c55f30dd..3ec8311a 100644
--- a/assets/scss/_socialshare.scss
+++ b/assets/scss/_socialshare.scss
@@ -7,7 +7,7 @@
   z-index: 1;
   box-sizing: border-box;
   box-shadow: -1px -2px 3px 0px rgba(0, 0, 0, 0.45);
-  background-color: $midnightblue;
+  background-color: $share-links-background;
 
   ul {
     list-style: none;
@@ -16,11 +16,11 @@
     line-height: 2;
     font-size: 1.2em;
     a {
-      color: $highlight-grey;
+      color: $share-links-a;
       &:hover,
       &:active,
       &:focus {
-        color: $text;
+        color: $share-links-a-hover-active-focus;
       }
     }
   }
diff --git a/assets/scss/_syntax.scss b/assets/scss/_syntax.scss
index a8fee3d5..a5943e29 100644
--- a/assets/scss/_syntax.scss
+++ b/assets/scss/_syntax.scss
@@ -1,4 +1,4 @@
-/* Background */ .chroma { color: #eee; background-color: $midnightblue }
+/* Background */ .chroma { color: #eee; background-color: $syntax-background; }
 /* Error */ .chroma .err { color: #960050; background-color: #1e0010 }
 /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
 /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
diff --git a/assets/scss/style.scss b/assets/scss/style.scss
index 22266468..c3488800 100644
--- a/assets/scss/style.scss
+++ b/assets/scss/style.scss
@@ -1,4 +1,7 @@
-@import "predefined.scss";
+@import "colors";
+@import "fonts";
+@import "admonition";
+@import "mixins";
 @import "normalize.scss";
 @import "syntax.scss";
 {{ if ne false .Site.Params.usesAnimation }}
@@ -6,36 +9,68 @@
 {{ end }}
 @import "scrolltotop.scss";
 @import "socialshare.scss";
-{{ if (fileExists "assets/scss/userstyles.scss") }}
+{{- if (fileExists "assets/scss/userstyles.scss") }}
 @import "userstyles.scss";
-{{ end }}
+{{ end -}}
+
+// Default Accent Color (accentColor) taken from hugo.toml
+// If accentColor is not present, it will fallback to declarations in _colors.scss
+{{- with .Site.Params.accentColor }}
+$aTag-mixin-a-box-shadow: {{.}};
+$aTag-mixin-a-hover-box-shadow: {{.}};
+$content-anchor-hover: {{.}};
+$footnote-ref-hover-background: {{.}};
+$post-description-a-hover-border-bottom: {{.}};
+$tableofcontents-a-hover-border-bottom: {{.}};
+$scrolltotop-arrow: {{.}};
+$typewriter: {{.}};
+$marked-background: {{.}};
+$inserted-text-underline: {{.}};
+{{ end -}}
+
+// Scroll to Top color defination
+.scroll-up {
+  .scroll {
+    #st-ring {
+      stroke: $scrolltotop-ring;
+    }
+
+    #st-circle {
+      fill: $scrolltotop-circle;
+    }
+
+    #st-arrow {
+      fill: $scrolltotop-arrow;
+    }
+  }
+}
 
 /* text selection */
 ::-moz-selection {
-  background: $highlight-grey;
+  background: $text-select;
 }
 
 ::selection {
-  background: $highlight-grey;
+  background: $text-select;
 }
 
 /* Webkit Scrollbar Customize */
 ::-webkit-scrollbar {
   width: 8px;
   height: 8px;
-  background: $midnightblue;
+  background: $pagescrollbar-background;
 }
 
 ::-webkit-scrollbar-thumb {
   background: $pagescrollbar-thumb;
 
   &:hover {
-    background: $text;
+    background: $pagescrollbar-thumb-hover;
   }
 }
 
 html {
-  background: $light-grey;
+  background: $html-background;
   line-height: 1.6;
   letter-spacing: .06em;
   scroll-behavior: smooth;
@@ -45,8 +80,15 @@ body,
 button,
 input,
 select,
-textarea {
+textarea,
+a {
   color: $text;
+}
+body,
+button,
+input,
+select,
+textarea {
   font-family: $fonts;
 }
 
@@ -55,6 +97,15 @@ code,
 pre tt {
   font-family: $code-fonts;
 }
+mark {
+  color: $marked-text;
+  background-color: $marked-background;
+}
+ins {
+  text-decoration: underline;
+  -webkit-text-decoration-color: $inserted-text-underline;
+  text-decoration-color: $inserted-text-underline;
+}
 
 pre {
   padding: .7em 1.1em;
@@ -62,24 +113,24 @@ pre {
   line-height: 1.5;
   letter-spacing: normal;
   white-space: pre;
-  color: #eee;
-  background: $midnightblue;
+  color: $pre-code;
+  background: $pre-background;
   overflow-x: auto;
   -webkit-overflow-scrolling: touch;
   &.mermaid {
-    background: $codebackground;
+    background: $mermaid-background;
   }
   code {
     padding: 0;
     margin: 0;
-    color: #eee;
-    background: transparent;
+    color: $pre-code;
+    background: $pre-code-background;
   }
 }
 
 code {
   color: hsl(0, 1%, 67%);
-  background: $dark-grey;
+  background: $code-background;
   border-radius: 3px;
   padding: 0 3px;
   margin: 0 4px;
@@ -104,7 +155,6 @@ blockquote {
 }
 
 a {
-  color: $text;
   text-decoration: none;
   border: none;
   transition-property: color;
@@ -112,8 +162,8 @@ a {
   transition-timing-function: ease-out;
 
   &:hover {
-    color: #fff;
-    text-shadow: 0 0 1px #fff;
+    color: $a-hover;
+    text-shadow: 0 0 1px $a-hover;
   }
 }
 
@@ -135,7 +185,7 @@ table {
 
   th,
   td {
-    padding: 0.5rem;
+    padding: 1.5%;
     border: 1px solid;
   }
 
@@ -194,15 +244,15 @@ table {
     padding: 1px;
     font-size: 0.7em;
     line-height: 1.8;
-    color: #fff;
-    background-color: #777;
+    color: $highlight-copy-btn;
+    background-color: $highlight-copy-btn-background;
     opacity: 0.6;
     min-width: 55px;
     text-align: center;
 }
 
 .highlight-copy-btn:hover {
-    background-color: #666;
+    background-color: $highlight-copy-btn-hover;
 }
 
 // Accessibility
@@ -221,12 +271,12 @@ table {
 }
 
 .screen-reader-text:focus {
-	background-color: #f1f1f1;
+	background-color: $screen-reader-text-background;
 	border-radius: 3px;
 	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
 	clip: auto !important;
 	clip-path: none;
-	color: #21759b;
+	color: $screen-reader-text;
 	display: block;
 	font-size: 0.875rem;
 	font-weight: bold;
@@ -249,7 +299,7 @@ table {
   width: 100%;
   box-sizing: border-box;
   box-shadow: -1px -2px 3px rgba(0, 0, 0, 0.45);
-  background-color: $dark-grey;
+  background-color: $site-header-background;
   animation-duration: .3s;
   animation-fill-mode: forwards;
 }
@@ -274,7 +324,7 @@ table {
 
     .has-children {
       padding-right: .5em;
-      border-right: 2px solid $highlight-grey;
+      border-right: 2px solid $site-nav-children-border-right;
     }
 
     .sub-menu > a{
@@ -323,7 +373,7 @@ table {
   z-index: 1;
   box-sizing: border-box;
   box-shadow: -1px -2px 3px 0px rgba(0, 0, 0, 0.45);
-  background-color: $dark-grey;
+  background-color: $mobile-menu-background;
 
   ul {
     list-style: none;
@@ -390,7 +440,7 @@ p.img-404 {
 
     a {
       display: inline-block;
-      border: 2px solid $text;
+      border: 2px solid $btn-404-a-border;
       border-radius: 5px;
       padding: 5px;
       transition-property: color, border-color;
@@ -400,7 +450,7 @@ p.img-404 {
       }
 
       &:hover {
-        border-color: #fff;
+        border-color: $btn-404-a-hover;
       }
 
       svg {
@@ -489,7 +539,7 @@ p.img-404 {
   }
 
   .post-item {
-    border-bottom: 1px $highlight-grey dashed;
+    border-bottom: 1px $post-item-border-bottom dashed;
 
     a {
       display: flex;
@@ -515,7 +565,7 @@ p.img-404 {
   display: flex;
   margin-bottom: 1.9em;
   line-height: normal;
-  border-bottom: 2px $highlight-grey solid;
+  border-bottom: 2px $pinned-posts-group-border-bottom solid;
 
   .pinned-posts-list {
     flex-grow: 1;
@@ -562,7 +612,7 @@ p.img-404 {
   margin-top: 1.2em;
   line-height: normal;
 
-  .post-meta {
+  .post-date {
     font-size: .9em;
     letter-spacing: normal;
     @include dimmed;
@@ -641,7 +691,7 @@ hr.post-end {
     opacity: .8;
     &:hover {
       background: none;
-      color: $theme;
+      color: $content-anchor-hover;
       opacity: 1;
     }
 
@@ -694,16 +744,16 @@ a.footnote-ref {
   text-decoration: none;
   padding: 2px;
   border-radius: 2px;
-  background-color: $midnightblue;
+  background-color: $footnote-ref-background;
 
   &:hover{
     box-shadow: none;
-    background-color: $theme;
+    background-color: $footnote-ref-hover-background;
     transition-property: background-color;
   }
 }
 
-.post-info {
+.post-description {
   font-size: .8rem;
   line-height: normal;
   @include dimmed;
@@ -713,7 +763,7 @@ a.footnote-ref {
   }
 
   a:hover {
-    border-bottom: 1px solid $theme;
+    border-bottom: 1px solid $post-description-a-hover-border-bottom;
   }
 
   svg {
@@ -741,6 +791,7 @@ a.footnote-ref {
   left: 50%;
   top: 0;
   display: none;
+  background-color: $tableofcontents-background;
 }
 
 .toc-title {
@@ -768,17 +819,17 @@ a.footnote-ref {
 
   /* Track */
   &>::-webkit-scrollbar-track {
-    background: darken($pagescrollbar-thumb, 10%);
+    background: $tableofcontents-scrollbar-track;
   }
 
   /* Handle */
   &>::-webkit-scrollbar-thumb {
-    background: $midnightblue ;
+    background: $tableofcontents-scrollbar-thumb ;
   }
 
   /* Handle on hover */
   &>::-webkit-scrollbar-thumb:hover {
-    background: lighten($midnightblue, 10%);
+    background: $tableofcontents-scrollbar-thumb-hover;
   }
 
   &>ul {
@@ -792,11 +843,10 @@ a.footnote-ref {
   }
 
   a:hover {
-    border-bottom: $theme 1px solid;
+    border-bottom: $tableofcontents-a-hover-border-bottom 1px solid;
   }
 }
 
-
 .post-nav {
   display: flex;
   justify-content: space-between;
@@ -999,7 +1049,7 @@ a.footnote-ref {
 }
 
 // If homeSubtitlePrinter is true
-{{ if .Site.Params.homeSubtitlePrinter }}
+{{- if .Site.Params.homeSubtitlePrinter }}
   #home-subtitle{
     overflow: hidden; /* Ensures the content is not revealed until the animation */
     border-right: .5em solid $typewriter; /* The typwriter cursor */
@@ -1020,4 +1070,4 @@ a.footnote-ref {
     from, to { border-color: transparent }
     50% { border-color: $typewriter}
   }
-{{ end }}
+{{ end -}}
diff --git a/hugo.toml.example b/hugo.toml.example
index 955aba52..f0676f1c 100644
--- a/hugo.toml.example
+++ b/hugo.toml.example
@@ -88,6 +88,7 @@ expiryDate = ["expiryDate"]
   # description = "CHANGE ME SITE DESCRIPTION"
   # images = [""]
   themeColor = "#494f5c"
+  accentColor = "#018472"
 
   #homeSubtitle = "CHANGE ME HOME SUBTITLE"
   footerCopyright = "CHANGE ME FOOTER COPYRIGHT"
diff --git a/layouts/partials/site-meta.html b/layouts/partials/site-meta.html
index 4fce7cd0..65eb77f1 100644
--- a/layouts/partials/site-meta.html
+++ b/layouts/partials/site-meta.html
@@ -24,7 +24,7 @@
 <link rel="icon" type="image/png" sizes="16x16" href="{{"favicon-16x16.png" | relURL}}">
 <link rel="manifest" href="{{"site.webmanifest" | relURL}}">
 <meta name="msapplication-TileImage" content="{{"mstile-144x144.png" | relURL}}">
-{{ with .Site.Params.themeColor -}}
+{{ with $themeColor := .Site.Params.themeColor | default "#494f5c" -}}
 <meta name="theme-color" content="{{.}}">
 <meta name="msapplication-TileColor" content="{{.}}">
 <link rel="mask-icon" href="{{"safari-pinned-tab.svg" | relURL}}" color="{{.}}">
diff --git a/layouts/partials/svg.html b/layouts/partials/svg.html
index 3937a2b8..93ae4982 100644
--- a/layouts/partials/svg.html
+++ b/layouts/partials/svg.html
@@ -499,10 +499,12 @@
    </svg>
    {{- else if (eq .name "threads") -}}
    <svg xmlns="http://www.w3.org/2000/svg" class="feather" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a14 14 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32l-1.757-1.18c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388q.163.07.321.142c1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69q-.362 0-.739.021c-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221"/></svg>
+   {{- else if (eq .name "content-link") -}}
+   <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg>
    {{- else -}}
    <svg xmlns="http://www.w3.org/2000/svg" class="feather feather-link" width="24" height="24" viewBox="0 0 24 24"
       fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
       <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path>
       <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
    </svg>
-   {{- end -}}
\ No newline at end of file
+   {{- end -}}
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index e3133250..fdd2f77f 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -20,28 +20,28 @@
 		{{- if and (not (eq .Site.Params.legacyLayout nil)) (.Site.Params.legacyLayout) -}}
 		<article class="thin">
 			<header class="post-header">
-				<div class="post-meta"><span>{{ .Date.Format .Site.Params.dateform }}</span></div>
+				<div class="post-date"><span>{{ .Date.Format .Site.Params.dateform }}</span></div>
 				<h1>{{ .Title }}</h1>
 			</header>
 			<div class="content">
-				{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a>${3}` | safeHTML }}
+				{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true">{{- partial "svg.html" (dict "context" . "name" "content-link") }}</a>${3}` | safeHTML }}
 			</div>
 			{{- if .Site.Params.relatedPosts }}
 			{{- partial "related-posts.html" . -}}
 			{{- end }}
 			<hr class="post-end">
-			<footer class="post-info">{{- partial "posts_single_info.html" . -}}</footer>		
+			<footer class="post-description">{{- partial "posts_single_info.html" . -}}</footer>		
 		</article>
 		{{- else -}}
 		<article class="thin">
 			<header class="post-header">
-				<div class="post-meta"><span>{{ .Date.Format .Site.Params.dateform }}</span></div>
+				<div class="post-date"><span>{{ .Date.Format .Site.Params.dateform }}</span></div>
 				<h1>{{ .Title }}</h1>
 			</header>
-			<div class="post-info">{{- partial "posts_single_info.html" . -}}</div>
+			<div class="post-description">{{- partial "posts_single_info.html" . -}}</div>
 			<hr class="post-end">
 			<div class="content">
-				{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a>${3}` | safeHTML }}
+				{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true">{{- partial "svg.html" (dict "context" . "name" "content-link") }}</a>${3}` | safeHTML }}
 			</div>
 			{{ partial "brainMade.html" . }}
 			{{- if .Site.Params.relatedPosts }}