From cc0b342208fae1f7d1f4e8f4778f33a168ebc1b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=B3=D0=B0=D0=BB=D1=8C=D1=86=D0=BE=D0=B2=20=D0=90?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=BD?= Date: Sun, 26 Apr 2026 17:31:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B4=D0=B8=D0=B7=D0=B0=D0=B9?= =?UTF-8?q?=D0=BD:=20=D0=B3=D0=B0=D0=B7=D0=B5=D1=82=D0=BD=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=BB=D0=B8=D1=82=D1=80=D0=B0=20=E2=80=94=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=BB=D1=8B=D0=B9=20=D1=84=D0=BE=D0=BD,=20=D1=87=D1=91?= =?UTF-8?q?=D1=80=D0=BD=D1=8B=D0=B9=20=D1=82=D0=B5=D0=BA=D1=81=D1=82,=20se?= =?UTF-8?q?rif-=D1=88=D1=80=D0=B8=D1=84=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 4 ++ hugo.toml | 10 +-- public/css/custom.css | 152 +++++++++++++++++++++++------------------- static/css/custom.css | 152 +++++++++++++++++++++++------------------- 4 files changed, 175 insertions(+), 143 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d6b53ce..eca92a6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -37,6 +37,10 @@ Hugo static site with custom theme. Russian-language personal documentation/know - **creds**: `title`, `description`, `service` — body contains base64-encoded encrypted payload - **leadera / personal-site**: `title`, `tags` +## Workflow + +- **Always run `hugo` after making any changes** (content, templates, config, CSS, JS) to verify the build succeeds without errors. This is mandatory before considering a task complete. + ## Gotchas - Static assets must go in `static/` at project root, not `themes/a2v/static/` (the theme static dir is empty). diff --git a/hugo.toml b/hugo.toml index e3daea0..e5c0926 100644 --- a/hugo.toml +++ b/hugo.toml @@ -6,11 +6,11 @@ relativeURLs = true canonifyURLs = false [params] - warmPrimary = "#c4623a" - warmBg = "#f5f0e8" - warmText = "#3d3530" - warmAccent = "#d4a853" - warmGray = "#6b6560" + warmPrimary = "#1a1a1a" + warmBg = "#ffffff" + warmText = "#111111" + warmAccent = "#444444" + warmGray = "#888888" [taxonomies] tag = "tags" diff --git a/public/css/custom.css b/public/css/custom.css index 632b8b7..4cd91f2 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -1,44 +1,53 @@ :root { - --warm-bg: #f5f0e8; - --warm-primary: #c4623a; - --warm-text: #3d3530; - --warm-gray: #6b6560; - --warm-accent: #d4a853; - --warm-white: #fffdf9; + --warm-bg: #ffffff; + --warm-primary: #1a1a1a; + --warm-text: #111111; + --warm-gray: #888888; + --warm-accent: #444444; + --warm-white: #ffffff; + --border-color: #d0d0d0; } body { background-color: var(--warm-bg); color: var(--warm-text); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-family: Georgia, "Times New Roman", Times, serif; font-size: 1rem; min-height: 100vh; display: flex; flex-direction: column; + line-height: 1.7; } -/* Header */ .site-header { background-color: var(--warm-primary); padding: 0.5rem 0; + border-bottom: 3px solid var(--warm-primary); } .site-header .navbar-brand { color: var(--warm-white); - font-weight: 600; + font-weight: 700; + letter-spacing: 1px; + text-transform: uppercase; + font-family: Georgia, "Times New Roman", Times, serif; } .site-header .nav-link { - color: rgba(255, 255, 255, 0.85); + color: rgba(255, 255, 255, 0.8); padding: 0.5rem 1rem; transition: color 0.2s; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 0.875rem; + text-transform: uppercase; + letter-spacing: 0.5px; } .site-header .nav-link:hover, .site-header .nav-link.active { color: var(--warm-white); - background-color: rgba(255, 255, 255, 0.1); - border-radius: 4px; + background-color: rgba(255, 255, 255, 0.12); + border-radius: 2px; } .navbar-toggler { @@ -52,6 +61,7 @@ body { .search-form input { background-color: rgba(255, 255, 255, 0.9); border: none; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; } .search-form input:focus { @@ -59,15 +69,14 @@ body { box-shadow: 0 0 0 2px var(--warm-accent); } -/* Search Results */ .search-results { position: absolute; top: 100%; right: 0; left: 0; background: var(--warm-white); - border-top: 1px solid var(--warm-gray); - box-shadow: 0 4px 12px rgba(0,0,0,0.15); + border-top: 1px solid var(--border-color); + box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 1000; max-height: 400px; overflow-y: auto; @@ -87,7 +96,7 @@ body { .search-results li { padding: 0.5rem 0; - border-bottom: 1px solid var(--warm-bg); + border-bottom: 1px solid var(--border-color); } .search-results li:last-child { @@ -101,52 +110,52 @@ body { .search-results a:hover { color: var(--warm-primary); + text-decoration: underline; } -/* Sidebar */ .sidebar { background-color: var(--warm-white); - border-right: 1px solid #e0d8cc; + border-right: 1px solid var(--border-color); min-height: calc(100vh - 60px); padding: 1.5rem 1rem; } .sidebar-content h6 { color: var(--warm-primary); - font-weight: 600; + font-weight: 700; margin-bottom: 0.75rem; - font-size: 0.875rem; + font-size: 0.75rem; text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 1px; + border-bottom: 2px solid var(--warm-primary); + padding-bottom: 0.4rem; } .sidebar-content .nav-link { color: var(--warm-text); padding: 0.375rem 0.75rem; - border-radius: 4px; + border-radius: 2px; font-size: 0.9rem; } .sidebar-content .nav-link:hover { - background-color: var(--warm-bg); + background-color: #f5f5f5; } -/* Main Content */ .main-content { padding: 2rem; flex: 1; } -/* Cards */ .card { background-color: var(--warm-white); - border: 1px solid #e0d8cc; - border-radius: 8px; + border: 1px solid var(--border-color); + border-radius: 2px; transition: box-shadow 0.2s; } .card:hover { - box-shadow: 0 4px 12px rgba(0,0,0,0.08); + box-shadow: 0 2px 8px rgba(0,0,0,0.06); } .card-title a { @@ -156,9 +165,9 @@ body { .card-title a:hover { color: var(--warm-primary); + text-decoration: underline; } -/* Plan Cards */ .plan-card { margin-bottom: 1rem; } @@ -172,20 +181,19 @@ body { } .plan-card.in-progress { - border-left: 4px solid #e67e22; + border-left: 4px solid #c4623a; } .plan-card.done { - border-left: 4px solid #27ae60; + border-left: 4px solid #2a2a2a; opacity: 0.8; } .plan-card.cancelled { - border-left: 4px solid #e74c3c; + border-left: 4px solid #999; opacity: 0.6; } -/* Diary Timeline */ .diary-timeline { position: relative; padding-left: 2rem; @@ -205,7 +213,7 @@ body { position: relative; margin-bottom: 2rem; padding-bottom: 1.5rem; - border-bottom: 1px solid #e0d8cc; + border-bottom: 1px solid var(--border-color); } .diary-entry:last-child { @@ -217,11 +225,11 @@ body { position: absolute; left: -2rem; top: 0.5rem; - width: 12px; - height: 12px; + width: 10px; + height: 10px; background-color: var(--warm-primary); border-radius: 50%; - transform: translateX(-5px); + transform: translateX(-4px); } .diary-entry .time { @@ -231,27 +239,26 @@ body { .diary-date { color: var(--warm-primary); - font-weight: 600; + font-weight: 700; } -/* Credentials */ .creds-card { position: relative; } .creds-card .encrypted-data { font-family: monospace; - background: var(--warm-bg); + background: #f5f5f5; padding: 1rem; - border-radius: 4px; + border-radius: 2px; word-break: break-all; font-size: 0.75rem; } .creds-card .decrypted-fields { - background: var(--warm-bg); + background: #f5f5f5; padding: 1rem; - border-radius: 4px; + border-radius: 2px; } .creds-card .field-row { @@ -270,11 +277,10 @@ body { font-family: monospace; } -/* Source path */ .source-path { - background-color: var(--warm-bg); - border: 1px solid #e0d8cc; - border-radius: 4px; + background-color: #f5f5f5; + border: 1px solid var(--border-color); + border-radius: 2px; padding: 0.4rem 0.75rem; display: inline-block; } @@ -284,19 +290,19 @@ body { } .source-path .btn-outline-secondary { font-size: 0.75rem; - border-color: #d0c8bc; + border-color: var(--border-color); } .source-path .btn-outline-secondary:hover { background-color: var(--warm-primary); border-color: var(--warm-primary); + color: #fff; } -/* Article styles */ .article-content { background-color: var(--warm-white); padding: 2rem; - border-radius: 8px; - border: 1px solid #e0d8cc; + border-radius: 2px; + border: 1px solid var(--border-color); } .article-content h1, @@ -310,6 +316,12 @@ body { margin-top: 0; padding-bottom: 0.5rem; border-bottom: 2px solid var(--warm-primary); + font-size: 1.75rem; +} + +.article-content h2 { + border-bottom: 1px solid var(--border-color); + padding-bottom: 0.3rem; } .article-content table { @@ -327,21 +339,21 @@ body { .article-content th, .article-content td { padding: 0.75rem; - border: 1px solid #e0d8cc; + border: 1px solid var(--border-color); } .article-content code { - background-color: var(--warm-bg); + background-color: #f0f0f0; padding: 0.2rem 0.4rem; - border-radius: 3px; + border-radius: 2px; font-size: 0.9em; } .article-content pre { - background-color: var(--warm-text); - color: var(--warm-bg); + background-color: #1a1a1a; + color: #e0e0e0; padding: 1rem; - border-radius: 4px; + border-radius: 2px; overflow-x: auto; } @@ -351,14 +363,15 @@ body { } .article-content a { - color: var(--warm-primary); + color: var(--warm-text); + text-decoration: underline; + text-underline-offset: 2px; } .article-content a:hover { color: var(--warm-accent); } -/* Tags */ .tags { display: flex; flex-wrap: wrap; @@ -367,28 +380,30 @@ body { } .tag { - background-color: var(--warm-bg); - color: var(--warm-gray); + background-color: #f5f5f5; + color: var(--warm-text); padding: 0.25rem 0.75rem; - border-radius: 20px; + border-radius: 2px; font-size: 0.8rem; text-decoration: none; + border: 1px solid var(--border-color); } .tag:hover { background-color: var(--warm-primary); color: white; + border-color: var(--warm-primary); } -/* Footer */ .site-footer { - background-color: var(--warm-text); - color: var(--warm-bg); + background-color: var(--warm-primary); + color: #ccc; padding: 1rem 0; margin-top: auto; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 0.85rem; } -/* Responsive */ @media (max-width: 767.98px) { .sidebar { position: fixed; @@ -416,10 +431,9 @@ body { } } -/* Context Quote */ .context-quote { - background-color: var(--warm-bg); - border-left: 4px solid var(--warm-accent); + background-color: #f5f5f5; + border-left: 3px solid var(--warm-accent); padding: 1rem; margin-top: 1rem; font-style: italic; diff --git a/static/css/custom.css b/static/css/custom.css index 632b8b7..4cd91f2 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -1,44 +1,53 @@ :root { - --warm-bg: #f5f0e8; - --warm-primary: #c4623a; - --warm-text: #3d3530; - --warm-gray: #6b6560; - --warm-accent: #d4a853; - --warm-white: #fffdf9; + --warm-bg: #ffffff; + --warm-primary: #1a1a1a; + --warm-text: #111111; + --warm-gray: #888888; + --warm-accent: #444444; + --warm-white: #ffffff; + --border-color: #d0d0d0; } body { background-color: var(--warm-bg); color: var(--warm-text); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-family: Georgia, "Times New Roman", Times, serif; font-size: 1rem; min-height: 100vh; display: flex; flex-direction: column; + line-height: 1.7; } -/* Header */ .site-header { background-color: var(--warm-primary); padding: 0.5rem 0; + border-bottom: 3px solid var(--warm-primary); } .site-header .navbar-brand { color: var(--warm-white); - font-weight: 600; + font-weight: 700; + letter-spacing: 1px; + text-transform: uppercase; + font-family: Georgia, "Times New Roman", Times, serif; } .site-header .nav-link { - color: rgba(255, 255, 255, 0.85); + color: rgba(255, 255, 255, 0.8); padding: 0.5rem 1rem; transition: color 0.2s; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 0.875rem; + text-transform: uppercase; + letter-spacing: 0.5px; } .site-header .nav-link:hover, .site-header .nav-link.active { color: var(--warm-white); - background-color: rgba(255, 255, 255, 0.1); - border-radius: 4px; + background-color: rgba(255, 255, 255, 0.12); + border-radius: 2px; } .navbar-toggler { @@ -52,6 +61,7 @@ body { .search-form input { background-color: rgba(255, 255, 255, 0.9); border: none; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; } .search-form input:focus { @@ -59,15 +69,14 @@ body { box-shadow: 0 0 0 2px var(--warm-accent); } -/* Search Results */ .search-results { position: absolute; top: 100%; right: 0; left: 0; background: var(--warm-white); - border-top: 1px solid var(--warm-gray); - box-shadow: 0 4px 12px rgba(0,0,0,0.15); + border-top: 1px solid var(--border-color); + box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 1000; max-height: 400px; overflow-y: auto; @@ -87,7 +96,7 @@ body { .search-results li { padding: 0.5rem 0; - border-bottom: 1px solid var(--warm-bg); + border-bottom: 1px solid var(--border-color); } .search-results li:last-child { @@ -101,52 +110,52 @@ body { .search-results a:hover { color: var(--warm-primary); + text-decoration: underline; } -/* Sidebar */ .sidebar { background-color: var(--warm-white); - border-right: 1px solid #e0d8cc; + border-right: 1px solid var(--border-color); min-height: calc(100vh - 60px); padding: 1.5rem 1rem; } .sidebar-content h6 { color: var(--warm-primary); - font-weight: 600; + font-weight: 700; margin-bottom: 0.75rem; - font-size: 0.875rem; + font-size: 0.75rem; text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 1px; + border-bottom: 2px solid var(--warm-primary); + padding-bottom: 0.4rem; } .sidebar-content .nav-link { color: var(--warm-text); padding: 0.375rem 0.75rem; - border-radius: 4px; + border-radius: 2px; font-size: 0.9rem; } .sidebar-content .nav-link:hover { - background-color: var(--warm-bg); + background-color: #f5f5f5; } -/* Main Content */ .main-content { padding: 2rem; flex: 1; } -/* Cards */ .card { background-color: var(--warm-white); - border: 1px solid #e0d8cc; - border-radius: 8px; + border: 1px solid var(--border-color); + border-radius: 2px; transition: box-shadow 0.2s; } .card:hover { - box-shadow: 0 4px 12px rgba(0,0,0,0.08); + box-shadow: 0 2px 8px rgba(0,0,0,0.06); } .card-title a { @@ -156,9 +165,9 @@ body { .card-title a:hover { color: var(--warm-primary); + text-decoration: underline; } -/* Plan Cards */ .plan-card { margin-bottom: 1rem; } @@ -172,20 +181,19 @@ body { } .plan-card.in-progress { - border-left: 4px solid #e67e22; + border-left: 4px solid #c4623a; } .plan-card.done { - border-left: 4px solid #27ae60; + border-left: 4px solid #2a2a2a; opacity: 0.8; } .plan-card.cancelled { - border-left: 4px solid #e74c3c; + border-left: 4px solid #999; opacity: 0.6; } -/* Diary Timeline */ .diary-timeline { position: relative; padding-left: 2rem; @@ -205,7 +213,7 @@ body { position: relative; margin-bottom: 2rem; padding-bottom: 1.5rem; - border-bottom: 1px solid #e0d8cc; + border-bottom: 1px solid var(--border-color); } .diary-entry:last-child { @@ -217,11 +225,11 @@ body { position: absolute; left: -2rem; top: 0.5rem; - width: 12px; - height: 12px; + width: 10px; + height: 10px; background-color: var(--warm-primary); border-radius: 50%; - transform: translateX(-5px); + transform: translateX(-4px); } .diary-entry .time { @@ -231,27 +239,26 @@ body { .diary-date { color: var(--warm-primary); - font-weight: 600; + font-weight: 700; } -/* Credentials */ .creds-card { position: relative; } .creds-card .encrypted-data { font-family: monospace; - background: var(--warm-bg); + background: #f5f5f5; padding: 1rem; - border-radius: 4px; + border-radius: 2px; word-break: break-all; font-size: 0.75rem; } .creds-card .decrypted-fields { - background: var(--warm-bg); + background: #f5f5f5; padding: 1rem; - border-radius: 4px; + border-radius: 2px; } .creds-card .field-row { @@ -270,11 +277,10 @@ body { font-family: monospace; } -/* Source path */ .source-path { - background-color: var(--warm-bg); - border: 1px solid #e0d8cc; - border-radius: 4px; + background-color: #f5f5f5; + border: 1px solid var(--border-color); + border-radius: 2px; padding: 0.4rem 0.75rem; display: inline-block; } @@ -284,19 +290,19 @@ body { } .source-path .btn-outline-secondary { font-size: 0.75rem; - border-color: #d0c8bc; + border-color: var(--border-color); } .source-path .btn-outline-secondary:hover { background-color: var(--warm-primary); border-color: var(--warm-primary); + color: #fff; } -/* Article styles */ .article-content { background-color: var(--warm-white); padding: 2rem; - border-radius: 8px; - border: 1px solid #e0d8cc; + border-radius: 2px; + border: 1px solid var(--border-color); } .article-content h1, @@ -310,6 +316,12 @@ body { margin-top: 0; padding-bottom: 0.5rem; border-bottom: 2px solid var(--warm-primary); + font-size: 1.75rem; +} + +.article-content h2 { + border-bottom: 1px solid var(--border-color); + padding-bottom: 0.3rem; } .article-content table { @@ -327,21 +339,21 @@ body { .article-content th, .article-content td { padding: 0.75rem; - border: 1px solid #e0d8cc; + border: 1px solid var(--border-color); } .article-content code { - background-color: var(--warm-bg); + background-color: #f0f0f0; padding: 0.2rem 0.4rem; - border-radius: 3px; + border-radius: 2px; font-size: 0.9em; } .article-content pre { - background-color: var(--warm-text); - color: var(--warm-bg); + background-color: #1a1a1a; + color: #e0e0e0; padding: 1rem; - border-radius: 4px; + border-radius: 2px; overflow-x: auto; } @@ -351,14 +363,15 @@ body { } .article-content a { - color: var(--warm-primary); + color: var(--warm-text); + text-decoration: underline; + text-underline-offset: 2px; } .article-content a:hover { color: var(--warm-accent); } -/* Tags */ .tags { display: flex; flex-wrap: wrap; @@ -367,28 +380,30 @@ body { } .tag { - background-color: var(--warm-bg); - color: var(--warm-gray); + background-color: #f5f5f5; + color: var(--warm-text); padding: 0.25rem 0.75rem; - border-radius: 20px; + border-radius: 2px; font-size: 0.8rem; text-decoration: none; + border: 1px solid var(--border-color); } .tag:hover { background-color: var(--warm-primary); color: white; + border-color: var(--warm-primary); } -/* Footer */ .site-footer { - background-color: var(--warm-text); - color: var(--warm-bg); + background-color: var(--warm-primary); + color: #ccc; padding: 1rem 0; margin-top: auto; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 0.85rem; } -/* Responsive */ @media (max-width: 767.98px) { .sidebar { position: fixed; @@ -416,10 +431,9 @@ body { } } -/* Context Quote */ .context-quote { - background-color: var(--warm-bg); - border-left: 4px solid var(--warm-accent); + background-color: #f5f5f5; + border-left: 3px solid var(--warm-accent); padding: 1rem; margin-top: 1rem; font-style: italic;