From b88a7d22c8d79b30de3403c631dd2c5f67669537 Mon Sep 17 00:00:00 2001 From: grm Date: Fri, 18 Sep 2026 19:17:17 +0300 Subject: Make the menu link styles switches that combine The one "Link style" select (normal, uppercase, plain) could not give uppercase links without the bold, or underlined bold links. Bold, uppercase and the underline (never, on hover, always) are now separate switches, drawn by blog.css from body classes (Theme.NavClass) so the theme CSS only colours the links. A stored nav_style is mapped onto the switches when the theme is read and dropped on the next save; themes without either keep the bold, underline-on-hover look blog.css always had. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Sd8UPWrvyYCLj97JexNw3A --- AGENTS.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'AGENTS.md') diff --git a/AGENTS.md b/AGENTS.md index dba6174..4689336 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -213,9 +213,13 @@ internal/web/ server.go (host router, middleware, render helpers) `ruled rule-` classes on the block, the `rule` template adds the `.header-rule` cells and blog.css draws them — table cells (so the rule is as tall as the brand and old browsers agree) in `currentColor`, i.e. the - header text colour; hidden on phones so a long title can wrap. `NavStyle` - `plain` is regular weight + underline for the menu links (blog.css makes - them bold). `TitleRule` (`none` | `line` | `dots` | `dots2` | `stripes`) is the header + header text colour; hidden on phones so a long title can wrap. The menu + links' look is switches that combine — `NavBold`, `NavUpper`, `NavUnderline` + (`hover` | `never` | `always`) — turned into body classes by + `Theme.NavClass` (`nav-bold nav-upper nav-ul-`) that blog.css draws; + the theme CSS only colours the links. They replaced a `nav_style` select + (`normal` | `uppercase` | `plain`), which `ParseTheme` still decodes and maps + onto the switches (`omitempty`, so the next save drops it). `TitleRule` (`none` | `line` | `dots` | `dots2` | `stripes`) is the header rule's kinds, plus a double dotted row (`dots2`: the border and an absolutely positioned `::after` with a second one 2px above), under page and post titles (`.page-title`, `.post-title`): a body class from `Theme.TitleRuleClass` (`titles-`) that blog.css draws -- cgit v1.2.3