From b1355436e96f2dfa777e843b53896d0bb71628e3 Mon Sep 17 00:00:00 2001 From: SayaAndy Date: Sat, 4 Apr 2026 03:03:29 +0700 Subject: feat: replace font-andika feat: replace noise image with lighter paper texture refactor: put colors in tailwind theme block --- internal/tailwind/transformer.go | 24 +- static/input.css | 366 +++++++++++++----------------- views/layouts/general-mail.html | 51 ++--- views/layouts/general-page.html | 10 +- views/pages/blog-catalogue.html | 14 +- views/pages/blog-page.html | 10 +- views/pages/global-map.html | 6 +- views/pages/home-page.html | 32 +-- views/pages/language-pick.html | 2 +- views/pages/unsubscribe-page.html | 15 +- views/pages/user-page.html | 32 +-- views/partials/blog-page-like-button.html | 2 +- views/partials/catalogue-blog-cards.html | 6 +- views/partials/general-page-footer.html | 2 +- views/partials/general-page-header.html | 2 +- views/partials/personal-page-status.html | 2 +- 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,"); - --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,"); --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 @@ -
+
-
+

{{ .StatusEmoji }}

-
+

{{ .StatusText }}

-
+
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" }}
-
+
@@ -8,17 +8,17 @@ -
- -
+

@@ -29,21 +29,21 @@ -
- -
+

-
+
- {{- range .ExistingTags }} -
+
{{- range .TagsPickedList }} -
+

{{ . }}

-

+

{{- end }}
-
-
+
- + - - - + + + + - - + + + - - - -