summaryrefslogtreecommitdiffci
diff options
from:
to:
context:
space:
mode:
-rw-r--r--internal/tailwind/transformer.go24
-rw-r--r--static/input.css366
-rw-r--r--views/layouts/general-mail.html51
-rw-r--r--views/layouts/general-page.html10
-rw-r--r--views/pages/blog-catalogue.html14
-rw-r--r--views/pages/blog-page.html10
-rw-r--r--views/pages/global-map.html6
-rw-r--r--views/pages/home-page.html32
-rw-r--r--views/pages/language-pick.html2
-rw-r--r--views/pages/unsubscribe-page.html15
-rw-r--r--views/pages/user-page.html32
-rw-r--r--views/partials/blog-page-like-button.html2
-rw-r--r--views/partials/catalogue-blog-cards.html6
-rw-r--r--views/partials/general-page-footer.html2
-rw-r--r--views/partials/general-page-header.html2
-rw-r--r--views/partials/personal-page-status.html2
16 files changed, 265 insertions, 311 deletions
diff --git a/internal/tailwind/transformer.go b/internal/tailwind/transformer.go
index c53ded1..c9da9df 100644
--- a/internal/tailwind/transformer.go
+++ b/internal/tailwind/transformer.go
@@ -20,19 +20,19 @@ func (t *TailwindTransformer) Transform(node *ast.Document, reader text.Reader,
switch node := n.(type) {
case *ast.Heading:
classes := map[int]string{
- 1: "font-andika text-4xl font-bold text-main-hard mb-3 tracking-[.0125rem]",
- 2: "font-andika text-3xl font-bold text-main-hard mb-1 tracking-[.0125rem]",
- 3: "font-andika text-2xl font-medium text-main-hard mb-0.8 tracking-[.0125rem]",
- 4: "font-andika text-xl font-medium text-main-medium mb-0.5 tracking-[.0125rem]",
- 5: "font-andika text-base font-medium text-main-medium mb-0.5 italic tracking-[.0125rem]",
- 6: "font-andika text-base font-medium text-secondary mb-0.5",
+ 1: "font-gentium text-4xl font-bold text-main-hard mb-3 tracking-[.0125rem]",
+ 2: "font-gentium text-3xl font-bold text-main-hard mb-1 tracking-[.0125rem]",
+ 3: "font-gentium text-2xl font-medium text-main-hard mb-0.8 tracking-[.0125rem]",
+ 4: "font-gentium text-xl font-medium text-main-medium mb-0.5 tracking-[.0125rem]",
+ 5: "font-gentium text-base font-medium text-main-medium mb-0.5 italic tracking-[.0125rem]",
+ 6: "font-gentium text-base font-medium text-secondary mb-0.5",
}
if class, ok := classes[node.Level]; ok {
node.SetAttribute([]byte("class"), []byte(class))
}
case *ast.Paragraph:
- node.SetAttribute([]byte("class"), []byte("text-base/[2] font-andika tracking-[.0125rem] -indent-8 ml-4 mb-8"))
+ node.SetAttribute([]byte("class"), []byte("text-base/[2] font-gentium tracking-[.0125rem] -indent-8 ml-4 mb-8"))
case *ast.List:
if node.IsOrdered() {
@@ -42,16 +42,16 @@ func (t *TailwindTransformer) Transform(node *ast.Document, reader text.Reader,
}
case *ast.ListItem:
- node.SetAttribute([]byte("class"), []byte("text-base/[2] font-andika tracking-[.0125rem]"))
+ node.SetAttribute([]byte("class"), []byte("text-base/[2] font-gentium tracking-[.0125rem]"))
case *ast.Blockquote:
- node.SetAttribute([]byte("class"), []byte("border-l-2 border-main-medium bg-background-dark p-1 mb-2 italic"))
+ node.SetAttribute([]byte("class"), []byte("border-l-2 border-main-medium bg-paper bg-background-dark p-1 mb-2 italic font-thin"))
case *ast.CodeSpan:
- node.SetAttribute([]byte("class"), []byte("bg-background-dark"))
+ node.SetAttribute([]byte("class"), []byte("bg-paper bg-background-dark"))
case *ast.CodeBlock, *ast.FencedCodeBlock:
- node.SetAttribute([]byte("class"), []byte("bg-background-dark p-1 rounded-lg overflow-x-auto mb-4"))
+ node.SetAttribute([]byte("class"), []byte("bg-paper bg-background-dark p-1 rounded-lg overflow-x-auto mb-4"))
case *ast.Link:
if bytes.HasPrefix(node.Destination, []byte{'.', '/'}) {
@@ -66,7 +66,7 @@ func (t *TailwindTransformer) Transform(node *ast.Document, reader text.Reader,
case *ast.Emphasis:
switch node.Level {
case 1:
- node.SetAttribute([]byte("class"), []byte("italic"))
+ node.SetAttribute([]byte("class"), []byte("italic font-thin"))
case 2:
node.SetAttribute([]byte("class"), []byte("font-bold"))
case 3:
diff --git a/static/input.css b/static/input.css
index 40082c8..11de22c 100644
--- a/static/input.css
+++ b/static/input.css
@@ -1,16 +1,24 @@
-@import url('https://fonts.googleapis.com/css2?family=Andika:ital,wght@0,400;0,700;1,400;1,700&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Gentium+Plus:ital,wght@0,400;0,700;1,400;1,700&family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&display=swap');
@import "tailwindcss";
@theme {
- --font-andika: "Andika", sans-serif;
+ --font-m-plus: "M PLUS Rounded 1c", sans-serif;
+ --font-gentium: "Gentium Plus", serif;
--breakpoint-xs: 32rem;
+ --color-main-hard: var(--color-main-hard);
+ --color-main-medium: var(--color-main-medium);
+ --color-main-soft: var(--color-main-soft);
+ --color-background-dark: var(--color-background-dark);
+ --color-background-medium: var(--color-background-medium);
+ --color-background-light: var(--color-background-light);
+ --color-secondary: var(--color-secondary);
}
html {
font-size: 12px;
--crossed-out: url("data:image/svg+xml,<svg id='patternId' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='30' height='30' patternTransform='scale(1) rotate(65)'><rect x='0' y='0' width='100%' height='100%' fill='%232b2b3100' /><path d='M30 15L22.5 30 15 15 22.5 0zm-15 0L7.5 30 0 15 7.5 0z' stroke-width='0.6' stroke='%23ffffffff' fill='none' /></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)' /></svg>");
- --noise-image: url(data:image/png;base64,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);
+ --bg-paper: url(data:image/webp;base64,UklGRi4BAABXRUJQVlA4ICIBAABQCQCdASqAAIAAPm02lUmkIqIkIImIgA2JaW3rMFmGDAOKLAoJtP591ByFR74Tun2DP+Lygpfsz5FH7+cKgxi2Islfd03i5AJdXUfU0SDc8SXYAAD++hlzeYAJWQEF8ZdkJdlcA+5btZg0FMGaso8SHoBph0qAOQysElJ5C5SJFNoKIV1J550UyL7Y9Gh0/c/uzLnBmr8lvz7k1WeA81H4S5ViU/wBqa7aM1m8D9rDtrk8cSTqx+xWF6MS8UfZGSsks6CT/igtgv6syFN9uNA3LjnjiCJKYOvFcMkX+jB2578GWVo3nyLaM1QNPYCxn3TiUbnf7U0MdD2NsBpg1+Jd1wu6yW/U+goN+IQS6Nt4RMWltVcZHlxrneKJi0SobO0AAA==);
--split-left-background: unset;
--split-left-repeat: no-repeat;
--split-left-size: cover;
@@ -21,9 +29,28 @@ html {
--split-right-position: left;
}
+@utility bg-paper {
+ background-image: var(--bg-paper);
+ background-size: 128px;
+ background-repeat: repeat;
+ background-blend-mode: multiply;
+}
+
+@utility bg-paper-* {
+ background-image: --value([image], [url]), var(--bg-paper);
+ background-size: --value("auto", "cover", "contain"), 128px;
+ background-repeat: --value("repeat", "repeat-x", "repeat-y", "no-repeat"), repeat;
+ background-blend-mode: --value("overlay", "multiply", "normal"), normal;
+}
+
+@utility bg-paper-size-* {
+ background-size: calc(--value(integer) * var(--spacing)), 128px;
+ background-size: --value([bg-size]), 128px;
+}
+
body {
scrollbar-width: thin;
- scrollbar-color: var(--background-light-color) var(--main-soft-color);
+ scrollbar-color: var(--color-background-light) var(--color-main-soft);
}
@media screen and (min-width: 640px) and (min-height: 640px) {
@@ -51,25 +78,24 @@ body {
}
[data-theme="olive"] {
- --main-dark-color-hard: #4b513a;
- --main-dark-color-medium: #8a9d8a;
- --main-dark-color-soft: #a5b8a5;
- --main-light-color-soft: #ffffdd;
- --main-light-color-medium: var(--background-dark-color);
- --main-light-color-hard: #fffff0;
- --main-hard-color: var(--main-dark-color-hard);
- --main-medium-color: var(--main-dark-color-medium);
- --main-soft-color: var(--main-dark-color-soft);
- --background-dark-color: var(--main-light-color-soft);
- --background-medium-color: var(--main-light-color-medium);
- --background-light-color: var(--main-light-color-hard);
- --sidebar-text-color: var(--main-hard-color);
- --sidebar-text-color: var(--background-dark-color);
- --sidebar-stroke-color: var(--main-dark-color-hard);
- --secondary-color: var(--main-soft-color);
- --leaflet-text-color: var(--main-hard-color);
- --leaflet-link-color: var(--main-medium-color);
- --leaflet-link-hover-color: var(--main-soft-color);
+ --color-main-dark-hard: #4b513a;
+ --color-main-dark-medium: #8a9d8a;
+ --color-main-dark-soft: #a5b8a5;
+ --color-main-light-soft: #ffffdd;
+ --color-main-light-medium: var(--color-main-light-soft);
+ --color-main-light-hard: #fffff0;
+ --color-main-hard: var(--color-main-dark-hard);
+ --color-main-medium: var(--color-main-dark-medium);
+ --color-main-soft: var(--color-main-dark-soft);
+ --color-background-dark: var(--color-main-light-soft);
+ --color-background-medium: var(--color-main-light-medium);
+ --color-background-light: var(--color-main-light-hard);
+ --color-sidebar-text: var(--color-background-dark);
+ --color-sidebar-stroke: var(--color-main-dark-hard);
+ --color-secondary: var(--color-main-soft);
+ --color-leaflet-text: var(--color-main-hard);
+ --color-leaflet-link: var(--color-main-medium);
+ --color-leaflet-link-hover: var(--color-main-soft);
--interlocked-hexagons-background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22100%22%20height%3D%22100%22%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22%23ffffdb%22%2F%3E%3Cpath%20fill%3D%22%23777e63%22%20d%3D%22m33.64%200-.17.25h-33L4.3%206h33.07l4-6zm8.33%200-4.33%206.5h-33l3.83%205.75h33.06L49.7%200zm8.34%200-8.5%2012.75h-33l3.83%205.75H45.7L58.03%200zm8.33%200L45.97%2019h-33l3.83%205.75h33.06L66.36%200zm-8.5%2025.25L33.63%2050l3.86%205.8L54.03%2031h33l-3.83-5.75zm4.16%206.25L37.8%2056.25l3.87%205.8%2016.53-24.8h33l-3.84-5.75zm4.17%206.25L41.97%2062.5l3.86%205.8%2016.54-24.8h33l-3.84-5.75zM62.63%2044l-16.5%2024.75%203.87%205.8%2016.53-24.8h33L95.7%2044zM100%2050.45l-3.87%205.8%203.87%205.81v-11.6zM0%2050.46v11.6L12.5%2080.8l3.86-5.8zm95.83%206.25-3.87%205.8L100%2074.55v-11.6zm-4.17%206.24-3.86%205.8%2012.2%2018.3v-11.6zM0%2062.96v11.6l8.33%2012.49%203.86-5.8zm87.5%206.24L83.63%2075%20100%2099.54V87.96zM50%2075.45%2033.64%20100h7.72l12.5-18.75zm-50%200v11.6l4.16%206.24%203.87-5.8zm54.17%206.25L41.97%20100h7.73l8.33-12.5zm4.17%206.25L50.3%20100h7.73l4.17-6.25zM0%2087.95v11.59l3.86-5.8zm62.5%206.25-3.87%205.8h7.73z%22%2F%3E%3Cpath%20fill%3D%22%23a0a182%22%20d%3D%22M66.8.25%2062.97%206h33l4.03%206.05V.45l-.14-.2zM0%20.45v11.61L12.5%2030.8l3.86-5.8zM62.63%206.5l-3.83%205.75h33l8.2%2012.3v-11.6L95.7%206.5zm-4.16%206.25-3.84%205.75h33L100%2037.06v-11.6l-8.47-12.71zM0%2012.96v11.6l8.33%2012.49%203.86-5.8zM54.3%2019l-3.84%205.75h33L100%2049.55l.01-.01V37.96L87.36%2019zm-4.77%206.25H41.8L25.3%2050l16.66%2025-16.5%2024.75h7.74L49.7%2075%2033.03%2050zm-8.33%200h-7.74L16.96%2050l16.67%2025-16.5%2024.75h7.73L41.36%2075%2024.7%2050Zm-8.34%200h-7.73L8.63%2050%2025.3%2075%208.8%2099.75h7.73L33.03%2075%2016.36%2050zm-16.07%200L.3%2050l16.67%2025L.46%2099.75H8.2L24.7%2075%208.02%2050l16.5-24.75zM0%2025.46v11.6l4.16%206.24%203.87-5.8zm0%2012.5v11.58l3.86-5.79zm66.8%2012.29L50.3%2074.99l3.87%205.81%204.16%206.25%204.17%206.25%204.3%206.45h7.73L58.03%2075l16.5-24.75zm16.06%200h-7.73L58.63%2075l16.5%2024.75h7.73L66.36%2075zm.6%200L66.96%2075l16.5%2024.75h7.74L74.7%2075l16.5-24.75zm16.07%200H91.8L75.3%2075l16.5%2024.75h7.73L83.03%2075z%22%2F%3E%3C%2Fsvg%3E");
--interlocked-hexagons-background-repeat: repeat;
--interlocked-hexagons-background-size: 10dvh;
@@ -80,24 +106,24 @@ body {
}
[data-theme="lettuce"] {
- --main-dark-color-hard: #384a0c;
- --main-dark-color-medium: #617c1f;
- --main-dark-color-soft: #9bb665;
- --main-light-color-soft: #f5eee2;
- --main-light-color-medium: var(--background-dark-color);
- --main-light-color-hard: #fff9ef;
- --main-hard-color: var(--main-dark-color-hard);
- --main-medium-color: var(--main-dark-color-medium);
- --main-soft-color: var(--main-dark-color-soft);
- --background-dark-color: var(--main-light-color-soft);
- --background-medium-color: var(--main-light-color-medium);
- --background-light-color: var(--main-light-color-hard);
- --sidebar-text-color: var(--main-hard-color);
- --sidebar-stroke-color: var(--main-dark-color-hard);
- --secondary-color: var(--main-medium-color);
- --leaflet-text-color: var(--main-hard-color);
- --leaflet-link-color: var(--main-medium-color);
- --leaflet-link-hover-color: var(--main-soft-color);
+ --color-main-dark-hard: #384a0c;
+ --color-main-dark-medium: #617c1f;
+ --color-main-dark-soft: #9bb665;
+ --color-main-light-soft: #f5eee2;
+ --color-main-light-medium: var(--color-main-light-soft);
+ --color-main-light-hard: #fff9ef;
+ --color-main-hard: var(--color-main-dark-hard);
+ --color-main-medium: var(--color-main-dark-medium);
+ --color-main-soft: var(--color-main-dark-soft);
+ --color-background-dark: var(--color-main-light-soft);
+ --color-background-medium: var(--color-main-light-medium);
+ --color-background-light: var(--color-main-light-hard);
+ --color-sidebar-text: var(--color-main-hard);
+ --color-sidebar-stroke: var(--color-main-dark-hard);
+ --color-secondary: var(--color-main-medium);
+ --color-leaflet-text: var(--color-main-hard);
+ --color-leaflet-link: var(--color-main-medium);
+ --color-leaflet-link-hover: var(--color-main-soft);
--interlocked-hexagons-background: url('https://f003.backblazeb2.com/file/sayana-static/themes/lettuce/linen-fabric.webp'), url('https://f003.backblazeb2.com/file/sayana-static/themes/lettuce/lettuce-tiles.svg');
--interlocked-hexagons-background-repeat: repeat, repeat;
--interlocked-hexagons-background-size: 11dvh, 20dvh;
@@ -108,24 +134,24 @@ body {
}
[data-theme="night"] {
- --main-light-color-hard: var(--color-sky-100);
- --main-light-color-medium: var(--color-sky-200);
- --main-light-color-soft: var(--color-sky-300);
- --main-dark-color-hard: #13131b;
- --main-dark-color-medium: var(--background-dark-color);
- --main-dark-color-soft: #222230;
- --main-hard-color: var(--main-light-color-hard);
- --main-medium-color: var(--main-light-color-medium);
- --main-soft-color: var(--main-light-color-soft);
- --background-dark-color: var(--main-dark-color-hard);
- --background-medium-color: var(--main-dark-color-medium);
- --background-light-color: var(--main-dark-color-soft);
- --sidebar-text-color: var(--main-hard-color);
- --sidebar-stroke-color: var(--main-light-color-soft);
- --secondary-color: var(--main-soft-color);
- --leaflet-text-color: var(--background-dark-color);
- --leaflet-link-color: var(--background-dark-color);
- --leaflet-link-hover-color: var(--background-light-color);
+ --color-main-light-hard: var(--color-sky-100);
+ --color-main-light-medium: var(--color-sky-200);
+ --color-main-light-soft: var(--color-sky-300);
+ --color-main-dark-hard: #13131b;
+ --color-main-dark-medium: var(--color-main-dark-hard);
+ --color-main-dark-soft: #222230;
+ --color-main-hard: var(--color-main-light-hard);
+ --color-main-medium: var(--color-main-light-medium);
+ --color-main-soft: var(--color-main-light-soft);
+ --color-background-dark: var(--color-main-dark-hard);
+ --color-background-medium: var(--color-main-dark-medium);
+ --color-background-light: var(--color-main-dark-soft);
+ --color-sidebar-text: var(--color-main-hard);
+ --color-sidebar-stroke: var(--color-main-light-soft);
+ --color-secondary: var(--color-main-soft);
+ --color-leaflet-text: var(--color-background-dark);
+ --color-leaflet-link: var(--color-background-dark);
+ --color-leaflet-link-hover: var(--color-background-light);
--interlocked-hexagons-background: radial-gradient(33.5% 25% at 100% 82%, rgba(190, 227, 248, 0.2) 0%, rgba(197, 179, 246, 0.13) 33.33%, rgba(255, 0, 0, 0) 100%), radial-gradient(54% 25% at 55% 100%, rgba(190, 227, 248, 0.2) 0%, rgba(197, 179, 246, 0.13) 33.33%, rgba(255, 0, 0, 0) 100%), radial-gradient(37% 19.5% at 20% 100%, rgba(176, 220, 248, 0.3) 0%, rgba(197, 172, 247, 0.2) 33.33%, rgba(255, 0, 0, 0) 100%), radial-gradient(63% 34.5% at 66% 77%, rgba(190, 227, 248, 0.15) 0%, rgba(197, 179, 246, 0.1) 33.33%, rgba(255, 0, 0, 0) 100%), linear-gradient(0deg, #2f5883 0%, #2f4e7a 4.75%, #2e4472 9.5%, #2a3065 19%, #272e57 26.5%, #242b4b 34%, #1f2437 49%, #1c2030 57.75%, #1a1b29 66.5%, #13131b 84%);
--interlocked-hexagons-background-repeat: no-repeat;
--interlocked-hexagons-background-size: 100dvw 100dvh;
@@ -136,24 +162,24 @@ body {
}
[data-theme="ram"] {
- --main-light-color-hard: #fefad8;
- --main-light-color-medium: #f6e4c5;
- --main-light-color-soft: #e8d4b8;
- --main-dark-color-hard: #413b34;
- --main-dark-color-medium: #62584f;
- --main-dark-color-soft: #6d6258;
- --main-hard-color: var(--main-light-color-hard);
- --main-medium-color: var(--main-light-color-medium);
- --main-soft-color: var(--main-light-color-soft);
- --background-dark-color: var(--main-dark-color-hard);
- --background-medium-color: var(--main-dark-color-medium);
- --background-light-color: var(--main-dark-color-soft);
- --sidebar-text-color: var(--main-hard-color);
- --sidebar-stroke-color: var(--main-light-color-soft);
- --secondary-color: var(--main-soft-color);
- --leaflet-text-color: var(--background-dark-color);
- --leaflet-link-color: var(--background-dark-color);
- --leaflet-link-hover-color: var(--background-light-color);
+ --color-main-light-hard: #fefad8;
+ --color-main-light-medium: #f6e4c5;
+ --color-main-light-soft: #e8d4b8;
+ --color-main-dark-hard: #413b34;
+ --color-main-dark-medium: #62584f;
+ --color-main-dark-soft: #6d6258;
+ --color-main-hard: var(--color-main-light-hard);
+ --color-main-medium: var(--color-main-light-medium);
+ --color-main-soft: var(--color-main-light-soft);
+ --color-background-dark: var(--color-main-dark-hard);
+ --color-background-medium: var(--color-main-dark-medium);
+ --color-background-light: var(--color-main-dark-soft);
+ --color-sidebar-text: var(--color-main-hard);
+ --color-sidebar-stroke: var(--color-main-light-soft);
+ --color-secondary: var(--color-main-soft);
+ --color-leaflet-text: var(--color-background-dark);
+ --color-leaflet-link: var(--color-background-dark);
+ --color-leaflet-link-hover: var(--color-background-light);
--interlocked-hexagons-background: url('https://f003.backblazeb2.com/file/sayana-static/themes/ram/ram-background.webp');
--interlocked-hexagons-background-repeat: repeat;
--interlocked-hexagons-background-size: auto;
@@ -164,24 +190,24 @@ body {
}
[data-theme="lilac"] {
- --main-dark-color-hard: #343b58;
- --main-dark-color-medium: #414868;
- --main-dark-color-soft: #6c6e75;
- --main-light-color-hard: #e3e6ff;
- --main-light-color-medium: #d1d6ff;
- --main-light-color-soft: #c3caff;
- --main-hard-color: var(--main-dark-color-hard);
- --main-medium-color: var(--main-dark-color-medium);
- --main-soft-color: var(--main-dark-color-soft);
- --background-dark-color: var(--main-light-color-soft);
- --background-medium-color: var(--main-light-color-medium);
- --background-light-color: var(--main-light-color-hard);
- --sidebar-text-color: var(--main-hard-color);
- --sidebar-stroke-color: var(--main-light-color-hard);
- --secondary-color: var(--main-medium-color);
- --leaflet-text-color: var(--main-hard-color);
- --leaflet-link-color: var(--main-medium-color);
- --leaflet-link-hover-color: var(--main-soft-color);
+ --color-main-dark-hard: #343b58;
+ --color-main-dark-medium: #414868;
+ --color-main-dark-soft: #6c6e75;
+ --color-main-light-hard: #e3e6ff;
+ --color-main-light-medium: #d1d6ff;
+ --color-main-light-soft: #c3caff;
+ --color-main-hard: var(--color-main-dark-hard);
+ --color-main-medium: var(--color-main-dark-medium);
+ --color-main-soft: var(--color-main-dark-soft);
+ --color-background-dark: var(--color-main-light-soft);
+ --color-background-medium: var(--color-main-light-medium);
+ --color-background-light: var(--color-main-light-hard);
+ --color-sidebar-text: var(--color-main-hard);
+ --color-sidebar-stroke: var(--color-main-light-hard);
+ --color-secondary: var(--color-main-medium);
+ --color-leaflet-text: var(--color-main-hard);
+ --color-leaflet-link: var(--color-main-medium);
+ --color-leaflet-link-hover: var(--color-main-soft);
--interlocked-hexagons-background: url("data:image/svg+xml,<svg width='160' height='160' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='40' height='80' patternTransform='scale(2) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='%23e3e6ffff'/><path d='M-10 7.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%238c4351ff' fill='none'/><path d='M-10 27.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%23385f0dff' fill='none'/><path d='M-10 47.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%23006c86ff' fill='none'/><path d='M-10 67.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%235a3e8eff' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)'/></svg>");
--interlocked-hexagons-background-repeat: repeat;
--interlocked-hexagons-background-size: auto;
@@ -194,25 +220,25 @@ body {
}
a, .linklike {
- color: var(--main-medium-color) !important;
+ color: var(--color-main-medium) !important;
text-decoration: underline;
}
a:hover, .linklike:hover {
- color: var(--main-soft-color) !important;
+ color: var(--color-main-soft) !important;
}
#map-container {
- color: var(--leaflet-text-color) !important;
+ color: var(--color-leaflet-text) !important;
}
#map-container a {
- color: var(--leaflet-link-color) !important;
+ color: var(--color-leaflet-link) !important;
text-decoration: underline;
}
#map-container a:hover {
- color: var(--leaflet-link-hover-color) !important;
+ color: var(--color-leaflet-link-hover) !important;
text-decoration: underline;
}
@@ -224,7 +250,7 @@ a:hover, .linklike:hover {
left: 0;
width: 100%;
height: 100%;
- background: var(--main-hard-color);
+ background: var(--color-main-hard);
background-size: 0.5rem 0.5rem;
mask-image: var(--crossed-out);
opacity: 1;
@@ -263,85 +289,15 @@ form.crossable.htmx-request input {
}
.text-sidebar {
- color: var(--main-dark-color-soft);
- text-shadow: -0.2rem 0 var(--main-dark-color-hard), 0 -0.2rem var(--main-dark-color-hard), 0.2rem 0rem var(--main-light-color-soft), 0 0.2rem var(--main-light-color-soft);
- -webkit-text-stroke-color: var(--sidebar-stroke-color);
+ color: var(--color-main-dark-soft);
+ text-shadow: -0.2rem 0 var(--color-main-dark-hard), 0 -0.2rem var(--color-main-dark-hard), 0.2rem 0rem var(--color-main-light-soft), 0 0.2rem var(--color-main-light-soft);
+ -webkit-text-stroke-color: var(--color-sidebar-stroke);
-webkit-text-stroke-width: 0.1rem;
- background: linear-gradient(135deg, color-mix(in srgb, var(--main-light-color-soft) 20%, transparent), color-mix(in srgb, var(--main-dark-color-soft) 20%, transparent));
-}
-
-.text-main-hard {
- color: var(--main-hard-color);
-}
-
-.text-main-medium {
- color: var(--main-medium-color);
-}
-
-.text-main-soft {
- color: var(--main-soft-color);
-}
-
-.text-background-dark {
- color: var(--background-dark-color);
-}
-
-.text-background-light {
- color: var(--background-dark-color);
+ background: linear-gradient(135deg, color-mix(in srgb, var(--color-main-light-soft) 20%, transparent), color-mix(in srgb, var(--color-main-dark-soft) 20%, transparent));
}
.text-secondary {
- color: var(--secondary-color);
-}
-
-.bg-main-hard {
- background-color: var(--main-hard-color);
- background-image: var(--noise-image);
-}
-
-.bg-main-medium {
- background-color: var(--main-medium-color);
- background-image: var(--noise-image);
-}
-
-.bg-main-soft {
- background-color: var(--main-soft-color);
- background-image: var(--noise-image);
-}
-
-.bg-background-dark {
- background-color: var(--background-dark-color);
- background-image: var(--noise-image);
-}
-
-.bg-background-medium {
- background-color: var(--background-medium-color);
- background-image: var(--noise-image);
-}
-
-.bg-background-light {
- background-color: var(--background-light-color);
- background-image: var(--noise-image);
-}
-
-.border-main-hard {
- border-color: var(--main-hard-color);
-}
-
-.border-main-medium {
- border-color: var(--main-medium-color);
-}
-
-.border-main-soft {
- border-color: var(--main-soft-color);
-}
-
-.border-background-dark {
- border-color: var(--background-dark-color);
-}
-
-.border-background-light {
- border-color: var(--background-light-color);
+ color: var(--color-secondary);
}
.border-inset {
@@ -365,8 +321,8 @@ form.crossable.htmx-request input {
inset 0dvh -0.5dvh rgba(75, 81, 58, 0.5);
}
-.text-stroke-\(--sidebar-stroke-color\) {
- -webkit-text-stroke-color: var(--sidebar-stroke-color);
+.text-stroke-\(--color-sidebar-stroke\) {
+ -webkit-text-stroke-color: var(--color-sidebar-stroke);
}
.text-stroke-\[0\.1dvw\] {
@@ -377,7 +333,7 @@ form.crossable.htmx-request input {
position: fixed;
width: 12rem;
height: 12rem;
- box-shadow: 0.25rem 0.25rem 0.25rem var(--main-soft-color);
+ box-shadow: 0.25rem 0.25rem 0.25rem var(--color-main-soft);
border-radius: 50%;
opacity: 0;
visibility: hidden;
@@ -434,9 +390,9 @@ form.crossable.htmx-request input {
.theme-pin {
position: relative;
- background: color-mix(in srgb, var(--main-soft-color) 75%, transparent);
- box-shadow: 0rem 0rem 1rem var(--main-hard-color);
- border: 0.5rem solid color-mix(in srgb, var(--main-soft-color) 90%, transparent);
+ background: color-mix(in srgb, var(--color-main-soft) 75%, transparent);
+ box-shadow: 0rem 0rem 1rem var(--color-main-hard);
+ border: 0.5rem solid color-mix(in srgb, var(--color-main-soft) 90%, transparent);
backdrop-filter: blur(2px);
top: 35%;
left: 35%;
@@ -452,7 +408,7 @@ form.crossable.htmx-request input {
left: 0;
width: 100%;
height: 100%;
- background: linear-gradient(135deg, var(--main-light-color-hard), var(--main-dark-color-hard));
+ background: linear-gradient(135deg, var(--color-main-light-hard), var(--color-main-dark-hard));
opacity: 0.2;
z-index: 10;
content: "";
@@ -467,19 +423,19 @@ form.crossable.htmx-request input {
}
.themed-button {
- border-top: var(--border-size) solid var(--main-light-color-hard);
- border-left: var(--border-size) solid var(--main-light-color-hard);
- border-bottom: var(--border-size) solid var(--main-dark-color-hard);
- border-right: var(--border-size) solid var(--main-dark-color-hard);
+ border-top: var(--border-size) solid var(--color-main-light-hard);
+ border-left: var(--border-size) solid var(--color-main-light-hard);
+ border-bottom: var(--border-size) solid var(--color-main-dark-hard);
+ border-right: var(--border-size) solid var(--color-main-dark-hard);
position: relative;
--border-size: 0.5rem;
}
.themed-button:active, .themed-button.active {
- border-top: var(--border-size) solid var(--main-dark-color-hard);
- border-left: var(--border-size) solid var(--main-dark-color-hard);
- border-bottom: var(--border-size) solid var(--main-light-color-hard);
- border-right: var(--border-size) solid var(--main-light-color-hard);
+ border-top: var(--border-size) solid var(--color-main-dark-hard);
+ border-left: var(--border-size) solid var(--color-main-dark-hard);
+ border-bottom: var(--border-size) solid var(--color-main-light-hard);
+ border-right: var(--border-size) solid var(--color-main-light-hard);
}
.themed-button:active > *, .themed-button.active > * {
@@ -514,7 +470,7 @@ form.crossable.htmx-request input {
.grid-tooltip {
position: relative;
display: inline-block;
- box-shadow: inset 0rem 0rem 0.5rem var(--main-soft-color);
+ box-shadow: inset 0rem 0rem 0.5rem var(--color-main-soft);
transition: box-shadow 0.5s ease-in-out;
}
@@ -528,8 +484,8 @@ form.crossable.htmx-request input {
transition: opacity 0.5s;
width: 100%;
top: 100%;
- background-color: var(--background-dark-color);
- color: var(--main-hard-color);
+ background-color: var(--color-background-dark);
+ color: var(--color-main-hard);
text-align: center;
padding: 0.25rem 0.25rem;
margin-top: 0.25rem;
@@ -551,7 +507,7 @@ form.crossable.htmx-request input {
margin-left: -0.25rem;
border-width: 0.25rem;
border-style: solid;
- border-color: transparent transparent var(--background-dark-color) transparent;
+ border-color: transparent transparent var(--color-background-dark) transparent;
}
.grid-item {
@@ -568,8 +524,8 @@ form.crossable.htmx-request input {
transition: opacity 0.5s;
top: 0%;
left: 0%;
- background-color: var(--main-soft-color);
- color: var(--background-dark-color);
+ background-color: var(--color-main-soft);
+ color: var(--color-background-dark);
text-align: center;
padding: 0.25rem 0.25rem;
position: absolute;
@@ -624,28 +580,28 @@ form.crossable.htmx-request input {
}
.goverlay {
- background: color-mix(in srgb, var(--background-light-color) 50%, transparent) !important;
+ background: color-mix(in srgb, var(--color-background-light) 50%, transparent) !important;
backdrop-filter: blur(1rem);
}
.glightbox-clean .gslide-description {
- background: color-mix(in srgb, var(--background-dark-color) 50%, transparent) !important;
+ background: color-mix(in srgb, var(--color-background-dark) 50%, transparent) !important;
backdrop-filter: blur(1rem);
}
.glightbox-clean .gslide-title {
- font-family: var(--font-andika) !important;
+ font-family: var(--font-m-plus) !important;
font-weight: 600 !important;
- color: var(--main-soft-color) !important;
+ color: var(--color-main-soft) !important;
padding-bottom: 1rem !important;
margin-bottom: 0 !important;
}
.glightbox-clean .gslide-desc {
font-size: 1rem !important;
- font-family: var(--font-andika) !important;
+ font-family: var(--font-m-plus) !important;
font-weight: 400;
- color: var(--main-medium-color) !important;
+ color: var(--color-main-medium) !important;
}
.glightbox-mobile .glightbox-container .gslide-description {
@@ -708,10 +664,6 @@ body[data-theme~="ram"] .leaflet-tile {
}
@media (max-aspect-ratio: 0.8/1) {
- .ar-lt-0\.8\:bg-background-light {
- background-color: var(--background-light-color);
- }
-
.bg-pattern-body {
background-size: 10dvh;
}
diff --git a/views/layouts/general-mail.html b/views/layouts/general-mail.html
index 8f42c7a..00bd964 100644
--- a/views/layouts/general-mail.html
+++ b/views/layouts/general-mail.html
@@ -4,49 +4,45 @@
<head>
<style>
@font-face {
- font-family: 'Philosopher';
+ font-family: 'Gentium Plus';
font-style: normal;
font-weight: 400;
font-display: swap;
- src: url(https://fonts.gstatic.com/s/philosopher/v21/vEFV2_5QCwIS4_Dhez5jcWBuT0020Nqf.woff2) format('woff2');
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ src: local('Gentium Plus'),
+ url(https://fonts.gstatic.com/s/gentiumplus/v2/Iurd6Ytw-oSPaZ00r2bNe8VZj5FNym499r7e.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
- font-family: 'Philosopher';
+ font-family: 'Gentium Plus';
font-style: normal;
font-weight: 400;
font-display: swap;
- src: url(https://fonts.gstatic.com/s/philosopher/v21/vEFV2_5QCwIS4_Dhez5jcWBqT0020NqfZ7c.woff2) format('woff2');
- unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+ src: local('Gentium Plus'),
+ url(https://fonts.gstatic.com/s/gentiumplus/v2/Iurd6Ytw-oSPaZ00r2bNe8VZi5FNym499g.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
-
html {
- font-family: 'Philosopher', sans-serif;
- --noise-image: url(data:image/png;base64,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);
+ font-family: 'Gentium Plus', sans-serif;
+ --bg-paper: url(data:image/webp;base64,UklGRi4BAABXRUJQVlA4ICIBAABQCQCdASqAAIAAPm02lUmkIqIkIImIgA2JaW3rMFmGDAOKLAoJtP591ByFR74Tun2DP+Lygpfsz5FH7+cKgxi2Islfd03i5AJdXUfU0SDc8SXYAAD++hlzeYAJWQEF8ZdkJdlcA+5btZg0FMGaso8SHoBph0qAOQysElJ5C5SJFNoKIV1J550UyL7Y9Gh0/c/uzLnBmr8lvz7k1WeA81H4S5ViU/wBqa7aM1m8D9rDtrk8cSTqx+xWF6MS8UfZGSsks6CT/igtgv6syFN9uNA3LjnjiCJKYOvFcMkX+jB2578GWVo3nyLaM1QNPYCxn3TiUbnf7U0MdD2NsBpg1+Jd1wu6yW/U+goN+IQS6Nt4RMWltVcZHlxrneKJi0SobO0AAA==);
}
-
body {
background-color: #e3e6ff;
}
-
a {
text-decoration: underline;
text-shadow: none !important;
}
-
.header {
width: 100%;
padding: 8px 8px 8px 32px;
font-size: 48px;
- font-family: 'Philosopher';
color: white;
text-shadow: -2px 0 #343b58, 0 2px #343b58, 2px 0 #343b58, 0 -2px #343b58;
- background: url("data:image/svg+xml,<svg width='160' height='160' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='40' height='80' patternTransform='scale(2) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='%23e3e6ffff'/><path d='M-10 7.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%238c4351ff' fill='none'/><path d='M-10 27.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%23385f0dff' fill='none'/><path d='M-10 47.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%23006c86ff' fill='none'/><path d='M-10 67.5l20 5 20-5 20 5' stroke-linejoin='round' stroke-linecap='round' stroke-width='4' stroke='%235a3e8eff' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)'/></svg>");
+ background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='80'><path fill='#e5e8ff' d='M0 0h40v80H0z'/><g fill='none' stroke-linecap='square' stroke-width='4.5'><path stroke='#8d4453' d='m-10 5 20 10L30 5l20 10'/><path stroke='#375e0d' d='m-10 25 20 10 20-10 20 10'/><path stroke='#006a85' d='m-10 45 20 10 20-10 20 10'/><path stroke='#5a3e8e' d='m-10 65 20 10 20-10 20 10'/></g></svg>");
background-color: #e3e6ff;
background-size: contain;
- background-repeat: repeat;
+ background-repeat: repeat-x;
}
-
.content {
margin: 0 32px 0 32px;
padding: 16px 16px 32px 16px;
@@ -54,35 +50,38 @@ a {
text-shadow: -1px 0 #343b58, 0 1px #343b58, 1px 0 #343b58, 0 -1px #343b58;
color: white;
background-color: #c3caff;
- background-image: var(--noise-image);
+ background-image: var(--bg-paper);
+ background-blend-mode: multiply;
+ background-repeat: repeat;
+ background-size: 128px;
}
-
.footer {
margin: 0;
padding: 1px 8px 1px 8px;
font-size: 16px;
color: white;
}
-
.darkened {
background-color: #9aa5f4;
- background-image: var(--noise-image);
+ background-image: var(--bg-paper);
+ background-blend-mode: multiply;
+ background-repeat: repeat;
+ background-size: 128px;
}
-
.outlier {
padding-inline: 4px;
background-color: #6c6e75;
- background-image: var(--noise-image);
+ background-image: var(--bg-paper);
+ background-blend-mode: multiply;
+ background-repeat: repeat;
+ background-size: 128px;
}
-
-table, th, td {
+table,th,td {
border: 1px solid black;
}
-
td {
padding: 5px;
}
-
img {
width: 200px;
}
diff --git a/views/layouts/general-page.html b/views/layouts/general-page.html
index 2d3bff3..527b9ae 100644
--- a/views/layouts/general-page.html
+++ b/views/layouts/general-page.html
@@ -23,7 +23,7 @@
{{- end }}
</head>
-<body data-theme="ram" class="font-andika text-main-hard overflow-hidden bg-interlocked-hexagons h-dvh flex flex-row">
+<body data-theme="ram" class="font-m-plus text-main-hard overflow-hidden bg-interlocked-hexagons h-dvh flex flex-row">
<script>
let map = null;
@@ -254,10 +254,10 @@
</script>
</div>
- <div class="bg-background-dark @container/main flex z-10 w-dvw xs:w-[90dvw] sm:w-[85dvw] md:w-[80dvw] lg:w-[75dvw] xl:w-[70dvw] 2xl:w-[60dvw] 3xl:w-[50dvw] grow-0 h-[calc(100dvh-5rem)] sm:h-dvh shadow-[0_0_1rem_black]">
- <div class="bg-background-dark border-r-2 border-dashed border-main-hard"></div>
+ <div class="bg-paper bg-background-dark @container/main flex z-10 w-dvw xs:w-[90dvw] sm:w-[85dvw] md:w-[80dvw] lg:w-[75dvw] xl:w-[70dvw] 2xl:w-[60dvw] 3xl:w-[50dvw] grow-0 h-[calc(100dvh-5rem)] sm:h-dvh shadow-[0_0_1rem_black]">
+ <div class="bg-paper bg-background-dark border-r-2 border-dashed border-main-hard"></div>
- <div class="max-h-full max-w-full flex flex-col grow bg-background-dark relative pt-4 ml-8 pr-4">
+ <div class="max-h-full max-w-full flex flex-col grow bg-paper bg-background-dark relative pt-4 ml-8 pr-4">
<header id="general-page-header" class="max-xs:hidden [@media(max-height:32rem)]:hidden flex flex-col basis-8"
hx-get="/api/v1/general-page/header{{ if .QueryString }}?{{ .QueryString }}{{ end }}" hx-trigger="load" hx-target="this" hx-swap="innerHTML">
</header>
@@ -278,7 +278,7 @@
<hr class="border-t-4 border-dotted border-main-hard mb-2">
</div>
- <div class="pr-[0.5dvw] bg-background-dark shadow-2xl border-l-2 border-dotted border-main-hard"></div>
+ <div class="pr-[0.5dvw] bg-paper bg-background-dark shadow-2xl border-l-2 border-dotted border-main-hard"></div>
</div>
</div>
diff --git a/views/pages/blog-catalogue.html b/views/pages/blog-catalogue.html
index d2c74ae..7e02ced 100644
--- a/views/pages/blog-catalogue.html
+++ b/views/pages/blog-catalogue.html
@@ -3,7 +3,7 @@
<div class="relative flex shrink-0 ar-gt-0.8:min-w-[10dvh] ar-gt-0.8:max-w-[20dvh] ar-gt-0.8:w-fit ar-lt-0.8:w-full ar-lt-0.8:max-h-[30%] ar-gt-0.8:mr-6">
<div class="absolute w-full h-full inset-shadow-[0_0_0.4rem_black] pointer-events-none z-20"></div>
<form hx-get="/api/v1/blog-search" hx-vals='{"lang": "{{ .Lang }}"}' hx-target=".blog-cards" hx-swap="innerHTML"
- class="tags-list relative flex flex-col w-full bg-background-light">
+ class="tags-list relative flex flex-col w-full bg-paper bg-background-light">
<div class="flex flex-col overflow-y-auto">
<fieldset>
<legend class="font-bold w-full text-center">{{ .L.BlogSearch.TagsHeader }}</legend>
@@ -43,22 +43,22 @@
</fieldset>
</div>
<hr class="border-t-2 border-dotted border-main-hard my-0.5">
- <div class="flex flex-row bg-background-dark my-2 p-0.5 rounded-1 justify-items-center">
- <i onclick="defaultSearchParams(); cleanHrefParams();" class="fas fa-rotate-left flex-1 text-center text-2xl hover:bg-background-light cursor-pointer transition-colors duration-300"></i>
- <div class="w-1 bg-background-light grow-0"></div>
+ <div class="flex flex-row bg-paper bg-background-dark my-2 p-0.5 rounded-1 justify-items-center">
+ <i onclick="defaultSearchParams(); cleanHrefParams();" class="fas fa-rotate-left flex-1 text-center text-2xl hover:bg-paper bg-background-light cursor-pointer transition-colors duration-300"></i>
+ <div class="w-1 bg-paper bg-background-light grow-0"></div>
<button class="flex-1" type="submit">
- <i onclick="setHrefParams();" class="fas fa-magnifying-glass text-center text-2xl hover:bg-background-light cursor-pointer transition-colors duration-300"></i>
+ <i onclick="setHrefParams();" class="fas fa-magnifying-glass text-center text-2xl hover:bg-paper bg-background-light cursor-pointer transition-colors duration-300"></i>
</button>
</div>
</form>
</div>
- <div class="w-[0.5dvh] border-r-2 border-dotted border-main-hard bg-background-dark"></div>
+ <div class="w-[0.5dvh] border-r-2 border-dotted border-main-hard bg-paper bg-background-dark"></div>
<div class="relative flex grow h-full">
<div class="absolute w-full h-full inset-0 inset-shadow-[0_0_0.4rem_black] pointer-events-none z-20"></div>
<div hx-get="/api/v1/blog-search" hx-vals='js:{lang: "{{ .Lang }}", tz: clientTimeZone}' hx-target="this" hx-swap="innerHTML" hx-trigger="load" hx-include=".tags-list"
- class="blog-cards relative grow flex flex-col overflow-y-auto bg-background-light p-6">
+ class="blog-cards relative grow flex flex-col overflow-y-auto bg-paper bg-background-light p-6">
Loading...
</div>
</div>
diff --git a/views/pages/blog-page.html b/views/pages/blog-page.html
index 3fc4526..8978eb8 100644
--- a/views/pages/blog-page.html
+++ b/views/pages/blog-page.html
@@ -1,15 +1,15 @@
{{ define "body" }}
<div class="absolute w-full h-full inset-0 inset-shadow-[0_0_0.4rem_black] pointer-events-none z-20"></div>
-<article class="relative bg-background-light flex flex-col px-8 py-4 overflow-y-auto">
- <h1 class="max-xs:block [@media(max-height:32rem)]:block hidden font-andika text-2xl font-bold italic text-main-hard tracking-[.0125rem] mb-1">{{ .Title }}</h1>
- <p class="block grow text-lg font-andika text-secondary">
+<article class="relative bg-paper bg-background-light flex flex-col px-8 py-4 overflow-y-auto">
+ <h1 class="max-xs:block [@media(max-height:32rem)]:block hidden font-gentium text-2xl font-bold italic text-main-hard tracking-[.0125rem] mb-1">{{ .Title }}</h1>
+ <p class="block grow text-lg font-gentium text-secondary">
<b>{{ .L.Metadata.Published }}</b>:
<time datetime="{{ .PublishedDate }}" hx-get="/api/v1/tz" hx-vals='js:{timestamp: "{{ .PublishedDate }}", tz: clientTimeZone}' hx-target="this" hx-swap="innerHTML" hx-trigger="load">
{{ .PublishedDate }}
</time>
</p>
- <p class="block grow text-lg font-andika text-secondary"><b>{{ .L.Metadata.Action }}</b>: {{ .ActionDate }}</p>
- <p class="block grow text-md font-andika italic text-main-hard">{{ .ShortDescription }}</p>
+ <p class="block grow text-lg font-gentium text-secondary"><b>{{ .L.Metadata.Action }}</b>: {{ .ActionDate }}</p>
+ <p class="block grow text-md font-gentium font-thin text-main-hard">{{ .ShortDescription }}</p>
<hr class="block border-t-2 border-dotted border-main-hard mt-1 mb-2 w-full ml-auto mr-auto">
{{ .ParsedMarkdown }}
{{- if .MapLocationX }}
diff --git a/views/pages/global-map.html b/views/pages/global-map.html
index 604b52e..9a0d752 100644
--- a/views/pages/global-map.html
+++ b/views/pages/global-map.html
@@ -18,7 +18,7 @@
<link rel="stylesheet" href="https://f003.backblazeb2.com/file/sayana-static/libs/leaflet.markercluster/1.4.1/MarkerCluster.Default.css">
</head>
-<body data-theme="ram" class="font-andika text-main-hard overflow-hidden bg-interlocked-hexagons h-dvh">
+<body data-theme="ram" class="font-m-plus text-main-hard overflow-hidden bg-interlocked-hexagons h-dvh">
<script>
function switchTheme(theme) {
@@ -79,7 +79,7 @@
</div>
</div>
- <div id="map-container" class="bg-background-dark flex z-10 w-full h-full"></div>
+ <div id="map-container" class="bg-paper bg-background-dark flex z-10 w-full h-full"></div>
<script src="https://f003.backblazeb2.com/file/sayana-static/libs/htmx/2.0.6/htmx.min.js"></script>
<script src="https://f003.backblazeb2.com/file/sayana-static/libs/leaflet/1.9.4/leaflet.js"></script>
@@ -213,7 +213,7 @@
var map;
var markers = L.markerClusterGroup();
- function createCustomIcon(color, borderColor = "var(--main-soft-color)") {
+ function createCustomIcon(color, borderColor = "var(--color-main-soft)") {
const svgIcon = `
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M12 1C7.5 1 4 4.5 4 9c0 6.5 8 14 8 14s8-7.5 8-14c0-4.5-3.5-8-8-8zm0 11c-1.5 0-3-1.5-3-3s1.5-3 3-3 3 1.5 3 3-1.5 3-3 3z"
diff --git a/views/pages/home-page.html b/views/pages/home-page.html
index 6d397fa..3f1acf8 100644
--- a/views/pages/home-page.html
+++ b/views/pages/home-page.html
@@ -1,11 +1,11 @@
{{ define "body" }}
<div class="absolute w-full h-full inset-0 inset-shadow-[0_0_0.4rem_black] pointer-events-none z-20"></div>
-<div class="relative bg-background-light flex flex-row ar-lt-0.6:flex-col w-full h-full overflow-y-auto text-base/loose tracking-wide z-10">
+<div class="relative bg-paper bg-background-light font-gentium flex flex-row ar-lt-0.6:flex-col w-full h-full overflow-y-auto text-base/loose tracking-wide z-10">
<div class="ar-gt-0.6:flex-3/5 justify-center content-start p-8">
- <div class="flex flex-col justify-start items-start bg-background-dark mb-8 shadow-[0.4rem_0.4rem_0.4rem_black]">
- <p class="text-3xl/loose sm:text-4xl/loose lg:text-5xl/loose tracking-widest uppercase w-full font-andika italic text-left
- border-l-4 border-solid border-(--background-dark-color)
- bg-linear-to-r from-(--background-dark-color) to-(--background-light-color)">{{ .L.HomePage.Hymn1 }}</p>
+ <div class="flex flex-col justify-start items-start bg-paper bg-background-dark mb-8 shadow-[0.4rem_0.4rem_0.4rem_black]">
+ <p class="text-3xl/loose sm:text-4xl/loose lg:text-5xl/loose tracking-widest uppercase w-full font-m-plus font-thin italic text-left
+ border-l-4 border-solid border-(--color-background-dark)
+ bg-linear-to-r from-(--color-background-dark) to-(--color-background-light)">{{ .L.HomePage.Hymn1 }}</p>
<hr class="w-full border-t-2 border-dotted border-main-hard mb-1">
<p class="text-xl/loose sm:text-2xl/loose lg:text-3xl/loose -indent-8 ml-12 p-1">{{ .L.HomePage.Hymn2 }}</p>
<p class="text-xl/loose sm:text-2xl/loose lg:text-3xl/loose -indent-8 ml-12 p-1">{{ .L.HomePage.Hymn3 }}</p>
@@ -13,9 +13,9 @@
</div>
<div class="flex flex-col justify-center items-center">
- <p class="text-xl sm:text-2xl lg:text-3xl p-1 w-full font-andika italic text-left
- border-l-1.5 border-solid border-(--background-dark-color)
- bg-linear-to-r from-(--background-dark-color) to-(--background-light-color)">{{ .L.HomePage.DidYouKnowThat }}</p>
+ <p class="text-xl sm:text-2xl lg:text-3xl p-1 w-full font-m-plus font-thin italic text-left
+ border-l-1.5 border-solid border-(--color-background-dark)
+ bg-linear-to-r from-(--color-background-dark) to-(--color-background-light)">{{ .L.HomePage.DidYouKnowThat }}</p>
<hr class="w-full border-t-2 border-dotted border-main-hard mb-1">
<ul class="w-full text-left list-[circle]">
<li class="ml-4 mb-1">{{ index .FunFacts 0 }}</li>
@@ -27,9 +27,9 @@
<div class="ar-gt-0.6:flex-2/5 justify-center content-start p-8">
<div class="flex flex-col justify-center items-start mb-4">
- <p class="text-xl sm:text-2xl lg:text-3xl p-1 w-full font-andika italic text-left
- border-l-1.5 border-solid border-(--background-dark-color)
- bg-linear-to-r from-(--background-dark-color) to-(--background-light-color)">{{ .L.HomePage.Contacts }}</p>
+ <p class="text-xl sm:text-2xl lg:text-3xl p-1 w-full font-m-plus font-thin italic text-left
+ border-l-1.5 border-solid border-(--color-background-dark)
+ bg-linear-to-r from-(--color-background-dark) to-(--color-background-light)">{{ .L.HomePage.Contacts }}</p>
<hr class="w-full border-t-2 border-dotted border-main-hard mb-1">
<a href="https://t.me/EarlInisMona">
<i class="fa-brands fa-telegram w-4 h-4 mr-1"></i>
@@ -56,7 +56,7 @@
<div class="home-page-heart z-50">♡</div>
{{- end }}
<img src="https://f003.backblazeb2.com/file/sayana-static/home-page-gifs/{{ .GifName }}"
- class="home-page-gif z-49 -rotate-12 max-w-[70%] max-h-[70%] border-4 border-(--background-dark-color) border-inset">
+ class="home-page-gif z-49 -rotate-12 max-w-[70%] max-h-[70%] border-4 border-(--color-background-dark) border-inset">
</div>
<script>
@@ -102,12 +102,12 @@
</script>
<div class="flex flex-col justify-center items-center">
- <p class="text-xl sm:text-2xl lg:text-3xl p-1 w-full font-andika italic text-left
- border-l-1.5 border-solid border-(--background-dark-color)
- bg-linear-to-r from-(--background-dark-color) to-(--background-light-color)">{{ .L.HomePage.SidebarDescription }}</p>
+ <p class="text-xl sm:text-2xl lg:text-3xl p-1 w-full font-m-plus font-thin italic text-left
+ border-l-1.5 border-solid border-(--color-background-dark)
+ bg-linear-to-r from-(--color-background-dark) to-(--color-background-light)">{{ .L.HomePage.SidebarDescription }}</p>
<hr class="w-full border-t-2 border-dotted border-main-hard mb-1">
<div class="w-full grid grid-cols-[1fr_4fr] content-center items-center
- [&>*:nth-child(4n+2)]:bg-(--background-medium-color)/50 [&>*:nth-child(4n+3)]:bg-(--background-medium-color)/50" style="container-type: inline-size;">
+ [&>*:nth-child(4n+2)]:bg-(--color-background-medium)/50 [&>*:nth-child(4n+3)]:bg-(--color-background-medium)/50" style="container-type: inline-size;">
<i class="fas fa-home w-full h-full text-[10cqi] content-center text-center text-main-hard"></i>
<p class="p-1">{{ .L.HomePage.HomePageDescription }}</p>
<i class="fas fa-search w-full h-full text-[10cqi] content-center text-center text-main-hard"></i>
diff --git a/views/pages/language-pick.html b/views/pages/language-pick.html
index 775c18e..29c5888 100644
--- a/views/pages/language-pick.html
+++ b/views/pages/language-pick.html
@@ -2,7 +2,7 @@
<div class="flex flex-col justify-center text-3xl h-full">
{{- range .AvailableLanguages }}
<hr class="border-t-2 border-dotted border-main-hard">
- <div class="nth-[2n+1_of_div]:bg-(--background-medium-color)/50 nth-[2n_of_div]:bg-(--background-light-color)/50 p-2.5 flex flex-row justify-center justify-items-center">
+ <div class="nth-[2n+1_of_div]:bg-(--color-background-medium)/50 nth-[2n_of_div]:bg-(--color-background-light)/50 p-2.5 flex flex-row justify-center justify-items-center">
<a href="/{{ .Name }}" class="w-12 h-12 basis-12 shrink-0 mr-4">
<img onclick="return changeUrl('{{ .Name }}');" class="w-full h-full aspect-square cursor-pointer object-cover rounded-md select-none" src="{{ .Flag }}">
</a>
diff --git a/views/pages/unsubscribe-page.html b/views/pages/unsubscribe-page.html
index c1db9d6..bb5d64b 100644
--- a/views/pages/unsubscribe-page.html
+++ b/views/pages/unsubscribe-page.html
@@ -6,25 +6,28 @@
<meta name="robots" content="noindex,nofollow">
<title>{{ .L.UnsubscribePage.Header }} // SAYA TODAY</title>
<style>
- html {
- --noise-image: url(data:image/png;base64,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);
+ .bg-paper {
+ background-image: url(data:image/webp;base64,UklGRi4BAABXRUJQVlA4ICIBAABQCQCdASqAAIAAPm02lUmkIqIkIImIgA2JaW3rMFmGDAOKLAoJtP591ByFR74Tun2DP+Lygpfsz5FH7+cKgxi2Islfd03i5AJdXUfU0SDc8SXYAAD++hlzeYAJWQEF8ZdkJdlcA+5btZg0FMGaso8SHoBph0qAOQysElJ5C5SJFNoKIV1J550UyL7Y9Gh0/c/uzLnBmr8lvz7k1WeA81H4S5ViU/wBqa7aM1m8D9rDtrk8cSTqx+xWF6MS8UfZGSsks6CT/igtgv6syFN9uNA3LjnjiCJKYOvFcMkX+jB2578GWVo3nyLaM1QNPYCxn3TiUbnf7U0MdD2NsBpg1+Jd1wu6yW/U+goN+IQS6Nt4RMWltVcZHlxrneKJi0SobO0AAA==);
+ background-size: 128px;
+ background-repeat: repeat;
+ background-blend-mode: multiply;
}
</style>
</head>
<body style="width: 100dvw; height: 100dvh; display: flex; flex-direction: column; position: fixed">
- <div style='flex: 3 0 0; background-image: var(--noise-image); background-color: rgba({{ .StatusColor }}, 0.1)'></div>
+ <div class="bg-paper" style='flex: 3 0 0; background-color: rgba({{ .StatusColor }}, 0.1)'></div>
- <div style="flex: 1 0 0; background-image: var(--noise-image); align-content: center;">
+ <div class="bg-paper" style="flex: 1 0 0; align-content: center;">
<p style="position: relative; width: 100%; margin-inline: auto; text-align: center; font-size: 2rem;">{{ .StatusEmoji }}</p>
</div>
- <div style="flex: 1 0 0; background-image: var(--noise-image); align-content: center;">
+ <div class="bg-paper" style="flex: 1 0 0; align-content: center;">
<p style="position: relative; width: 100%; margin-inline: auto; text-align: center; font-size: 1.5rem;">{{ .StatusText }}</p>
</div>
- <div style='flex: 3 0 0; background-image: var(--noise-image); background-color: rgba({{ .StatusColor }}, 0.2)'></div>
+ <div class="bg-paper" style='flex: 3 0 0; background-color: rgba({{ .StatusColor }}, 0.2)'></div>
</body>
diff --git a/views/pages/user-page.html b/views/pages/user-page.html
index fda7e66..397603c 100644
--- a/views/pages/user-page.html
+++ b/views/pages/user-page.html
@@ -1,6 +1,6 @@
{{ define "body" }}
<div class="absolute w-full h-full inset-0 inset-shadow-[0_0_0.4rem_black] pointer-events-none z-20"></div>
-<div class="relative bg-background-light flex flex-col px-8 py-4">
+<div class="relative bg-paper bg-background-light flex flex-col px-8 py-4">
<form id="email-form" class="w-full mb-2 flex flex-col relative crossable"
hx-get="/api/v1/email/is-in-verification" hx-target="#email-message" hx-swap="outerHTML" hx-trigger="load" hx-indicator="this">
<div class="flex flex-row w-full mb-4 z-21">
@@ -8,17 +8,17 @@
<label class="block text-main-medium font-bold mb-1 z-22">
{{ .L.UserProfile.EmailHeader }}
</label>
- <input class="bg-(--background-medium-color) appearance-none border-(--background-medium-color) rounded ml-6 mr-4 py-2 px-4 text-main-medium leading-tight inset-shadow-[0_0_0.4rem_black] focus:outline-none focus:bg-(--background-light-color) focus:text-main-hard z-22"
+ <input class="bg-(--color-background-medium) appearance-none border-(--color-background-medium) rounded ml-6 mr-4 py-2 px-4 text-main-medium leading-tight inset-shadow-[0_0_0.4rem_black] focus:outline-none focus:bg-(--color-background-light) focus:text-main-hard z-22"
id="email-input" name="email" type="text" value="{{ .Email }}" placeholder="{{ .L.UserProfile.TypeEmail }}" maxlength="64"
data-validated-email="{{ .Email }}" onchange="checkIfValidated(this);">
</div>
</div>
- <button class="w-max mx-auto bg-(--main-hard-color) hover:bg-(--main-medium-color) active:bg-(--main-soft-color) active:inset-shadow-[0.2em_0.2em_0.2rem_black] transition-colors transition-300 text-(--background-light-color) font-bold py-2 px-4 rounded z-22"
+ <button class="w-max mx-auto bg-(--color-main-hard) hover:bg-(--color-main-medium) active:bg-(--color-main-soft) active:inset-shadow-[0.2em_0.2em_0.2rem_black] transition-colors transition-300 text-(--color-background-light) font-bold py-2 px-4 rounded z-22"
hx-post="/api/v1/email/send-verification-code" hx-target="#email-message" hx-swap="outerHTML" hx-indicator="#email-form">
{{ .L.UserProfile.SendCodeButton }}
</button>
</form>
- <div id="email-message" class="bg-background-dark text-main-soft z-26 w-full inset-shadow-[0_0_0.4rem_black] py-2 px-4 text-center"></div>
+ <div id="email-message" class="bg-paper bg-background-dark text-main-soft z-26 w-full inset-shadow-[0_0_0.4rem_black] py-2 px-4 text-center"></div>
<hr class="my-2 border-t-4 border-dotted border-main-hard">
@@ -29,21 +29,21 @@
<label class="block text-main-medium font-bold ml-1 z-22">
{{ .L.UserProfile.VerificationCodeHeader }}
</label>
- <input class="bg-(--background-medium-color) appearance-none border-(--background-medium-color) rounded ml-6 mr-4 py-2 px-4 text-main-medium leading-tight inset-shadow-[0_0_0.4rem_black] focus:outline-none focus:bg-(--background-light-color) focus:text-main-hard z-22"
+ <input class="bg-(--color-background-medium) appearance-none border-(--color-background-medium) rounded ml-6 mr-4 py-2 px-4 text-main-medium leading-tight inset-shadow-[0_0_0.4rem_black] focus:outline-none focus:bg-(--color-background-light) focus:text-main-hard z-22"
name="email_code" type="text" value="{{ .EmailCode }}" placeholder="0123456789ABCDEF" maxlength="16" autocapitalize="characters">
</div>
</div>
- <button class="w-max mx-auto bg-(--main-hard-color) hover:bg-(--main-medium-color) active:bg-(--main-soft-color) active:inset-shadow-[0.2em_0.2em_0.2rem_black] transition-colors transition-300 text-(--background-light-color) font-bold py-2 px-4 rounded z-22"
+ <button class="w-max mx-auto bg-(--color-main-hard) hover:bg-(--color-main-medium) active:bg-(--color-main-soft) active:inset-shadow-[0.2em_0.2em_0.2rem_black] transition-colors transition-300 text-(--color-background-light) font-bold py-2 px-4 rounded z-22"
hx-post="/api/v1/email/verify" hx-target="#verification-message" hx-swap="outerHTML" hx-indicator="#email-verification-form">
{{ .L.UserProfile.VerifyButton }}
</button>
</form>
- <div id="verification-message" class="bg-background-dark text-main-soft z-26 w-full inset-shadow-[0_0_0.4rem_black] py-2 px-4 text-center"></div>
+ <div id="verification-message" class="bg-paper bg-background-dark text-main-soft z-26 w-full inset-shadow-[0_0_0.4rem_black] py-2 px-4 text-center"></div>
</div>
<hr class="my-4 border-t-4 border-dotted border-main-hard">
-<div class="bg-background-light flex flex-col inset-shadow-[0_0_0.4rem_black] px-8 py-4">
+<div class="bg-paper bg-background-light flex flex-col inset-shadow-[0_0_0.4rem_black] px-8 py-4">
<form id="subs-form" class="w-full mb-2 flex flex-col relative crossable">
<div class="flex flex-col w-full mb-4 z-21">
<label class="block text-main-medium font-bold mb-1 z-22">
@@ -61,30 +61,30 @@
</div>
</div>
<div id="pick-tags-form" class="flex flex-col w-full relative crossable">
- <input type="text" class="bg-(--background-medium-color) appearance-none border-(--background-medium-color) rounded ml-6 mr-4 py-2 px-4 text-main-medium leading-tight inset-shadow-[0_0_0.4rem_black] focus:outline-none focus:bg-(--background-light-color) focus:text-main-hard z-22"
+ <input type="text" class="bg-(--color-background-medium) appearance-none border-(--color-background-medium) rounded ml-6 mr-4 py-2 px-4 text-main-medium leading-tight inset-shadow-[0_0_0.4rem_black] focus:outline-none focus:bg-(--color-background-light) focus:text-main-hard z-22"
list="existing-tags" onchange="addTag(this.value);" onkeydown="if (event.keyCode === 13) {addTag(this.value); this.value=''; return false;}">
<datalist id="existing-tags">
{{- range .ExistingTags }}
<option value="{{ .Name }}">
{{- end }}
</datalist>
- <div id="tags-picked-list" class="bg-background-dark flex flex-wrap inset-shadow-[0_0_0.4rem_black] p-2 m-4 w-full">
+ <div id="tags-picked-list" class="bg-paper bg-background-dark flex flex-wrap inset-shadow-[0_0_0.4rem_black] p-2 m-4 w-full">
{{- range .TagsPickedList }}
- <div id="tagPicked{{ . }}" class="bg-main-hard text-background-light m-2 flex flex-row">
+ <div id="tagPicked{{ . }}" class="bg-paper bg-main-hard text-background-light m-2 flex flex-row">
<p class="py-1 px-2">{{ . }}</p>
- <p class="py-1 px-2 bg-main-soft cursor-pointer" onclick="htmx.remove(htmx.find('#tagPicked{{ . }}'));">✘</p>
+ <p class="py-1 px-2 bg-paper bg-main-soft cursor-pointer" onclick="htmx.remove(htmx.find('#tagPicked{{ . }}'));">✘</p>
<input type="hidden" name="tags_picked" value="{{ . }}">
</div>
{{- end }}
</div>
</div>
- <button class="w-max mx-auto bg-(--main-hard-color) hover:bg-(--main-medium-color) active:bg-(--main-soft-color) active:inset-shadow-[0.2em_0.2em_0.2rem_black] transition-colors transition-300 text-(--background-light-color) font-bold py-2 px-4 rounded z-22"
+ <button class="w-max mx-auto bg-(--color-main-hard) hover:bg-(--color-main-medium) active:bg-(--color-main-soft) active:inset-shadow-[0.2em_0.2em_0.2rem_black] transition-colors transition-300 text-(--color-background-light) font-bold py-2 px-4 rounded z-22"
hx-put="/api/v1/subs" hx-target="#subs-message" hx-swap="outerHTML" hx-indicator="#subs-form">
{{ .L.UserProfile.SaveButton }}
</button>
</div>
</form>
- <div id="subs-message" class="bg-background-dark text-main-soft z-26 w-full inset-shadow-[0_0_0.4rem_black] py-2 px-4 text-center"></div>
+ <div id="subs-message" class="bg-paper bg-background-dark text-main-soft z-26 w-full inset-shadow-[0_0_0.4rem_black] py-2 px-4 text-center"></div>
</div>
<script>
@@ -182,9 +182,9 @@ function addTag(name) {
}
tagsPickedList.innerHTML += `
- <div id="tagPicked${name}" class="bg-main-hard text-background-light m-2 flex flex-row">
+ <div id="tagPicked${name}" class="bg-paper bg-main-hard text-background-light m-2 flex flex-row">
<p class="py-1 px-2">${name}</p>
- <p class="py-1 px-2 bg-main-soft cursor-pointer" onclick="htmx.remove(htmx.find('#tagPicked${name}'));">✘</p>
+ <p class="py-1 px-2 bg-paper bg-main-soft cursor-pointer" onclick="htmx.remove(htmx.find('#tagPicked${name}'));">✘</p>
<input type="hidden" name="tags_picked" value="${name}">
</div>
`;
diff --git a/views/partials/blog-page-like-button.html b/views/partials/blog-page-like-button.html
index 8da52a6..5a85113 100644
--- a/views/partials/blog-page-like-button.html
+++ b/views/partials/blog-page-like-button.html
@@ -1,5 +1,5 @@
<button hx-put="/api/v1/like" hx-vals='{"like": {{ not .Liked }}}' hx-target="this" hx-swap="outerHTML" hx-trigger="click"
class="themed-button themed-button-like flex flex-col shrink-0 w-fit h-fit mr-2 my-auto{{ if .Liked }} active{{ end }}">
<i class="fas fa-thumbs-up w-8 h-fit py-0.5 content-center text-center"></i>
- <div class="h-fit px-0.5 content-center bg-(--background-medium-color) text-(--main-hard-color)">{{ .LikedCount }}</div>
+ <div class="h-fit px-0.5 content-center bg-(--color-background-medium) text-(--color-main-hard)">{{ .LikedCount }}</div>
</button> \ No newline at end of file
diff --git a/views/partials/catalogue-blog-cards.html b/views/partials/catalogue-blog-cards.html
index b50f419..45fef12 100644
--- a/views/partials/catalogue-blog-cards.html
+++ b/views/partials/catalogue-blog-cards.html
@@ -6,18 +6,18 @@
</a>
<div class="grow my-0.5 mx-1 flex flex-col justify-center">
<div class="flex flex-row gap-2 max-w-full">
- <a href="{{ .ArticleLink }}" onclick="return changeUrl('{{ .ArticleLink }}');" class="grow text-base cursor-pointer">
+ <a href="{{ .ArticleLink }}" onclick="return changeUrl('{{ .ArticleLink }}');" class="grow-2 text-base cursor-pointer">
<span class="font-extrabold">{{ .Title }}</span>
<span class="font-extrabold select-none text-secondary">//</span>
<span class="italic text-secondary">{{ .ActionDate }}</span>
</a>
- <p class="basis-56 text-base italic text-secondary text-right">{{ .PublishedTime }}</p>
+ <p class="basis-56 grow text-base italic text-secondary text-right">{{ .PublishedTime }}</p>
</div>
<p class="text-base text-main-hard">{{ .ShortDescription }}</p>
<p class="text-base text-secondary italic">
<i class="fas fa-thumbs-up w-4 h-4"></i>
<span>{{ .LikeCount }}</span>
- <span class="font-extrabold select-none">//</span>
+ <span class="font-thin select-none">//</span>
<i class="fas fa-eye w-4 h-4"></i>
<span>{{ .ViewCount }}</span>
</p>
diff --git a/views/partials/general-page-footer.html b/views/partials/general-page-footer.html
index 9b91bf0..3001d5d 100644
--- a/views/partials/general-page-footer.html
+++ b/views/partials/general-page-footer.html
@@ -1,5 +1,5 @@
{{ block "footer" . }}{{ end }}
-<p class="grow content-center text-base/[1] font-andika italic text-right text-secondary mr-1">
+<p class="grow content-center text-base/[1] font-gentium font-thin italic text-right text-secondary mr-1">
All the photos on <a href="https://saya.today/">saya.today</a> are licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> by <a href="https://t.me/EarlInisMona">Saya Andy</a> © {{ .PublishedYear }}
</p>
<img class="max-w-4 max-h-4 self-center" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg" alt="CC">
diff --git a/views/partials/general-page-header.html b/views/partials/general-page-header.html
index e019d3b..c2f413d 100644
--- a/views/partials/general-page-header.html
+++ b/views/partials/general-page-header.html
@@ -1,5 +1,5 @@
<title>{{ .Title }} // SAYA TODAY</title>
<div class="flex flex-row mb-2">
{{ block "header" . }}{{ end }}
- <p class="text-4xl font-andika font-light italic text-shadow-[0_2px_2px_var(--main-soft-color)] text-left my-auto">{{ .Title }}</p>
+ <p class="text-4xl font-m-plus font-thin italic text-shadow-[0_2px_2px_var(--color-main-soft)] text-left my-auto">{{ .Title }}</p>
</div> \ No newline at end of file
diff --git a/views/partials/personal-page-status.html b/views/partials/personal-page-status.html
index a4e47c2..078fb24 100644
--- a/views/partials/personal-page-status.html
+++ b/views/partials/personal-page-status.html
@@ -1,7 +1,7 @@
<div id="{{ .StatusId }}" class='z-26 w-full inset-shadow-[0_0_0.4rem_black]
{{if eq .Status "OK"}}bg-green-700 text-green-100
{{else if eq .Status "Failed"}}bg-red-700 text-red-100
- {{else}}bg-background-dark text-main-soft{{end}}
+ {{else}}bg-paper bg-background-dark text-main-soft{{end}}
{{if eq .Message ""}}hidden{{end}}
py-2 px-4 text-center'
{{- range $_, $val := .DataAttributes }}