From 762589bd807c4888f4d7dcac32606b157216a049 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 10 Apr 2026 09:32:07 +0300 Subject: enhance WebGL scenes, modal transparency, new cosmos theme, UX polish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Themes: - glass → cosmos: ringed planet with asteroid belt, nebula clouds, 2500 stars - ocean: sea rock spires, bioluminescent jellyfish, rising bubbles, whale - volcano: glowing lava floor with vertex animation, molten boulders, smoke plume particles, underground furnace glow sphere UX / shared: - Modal background changed to rgba(0,0,0,0.55) so WebGL stays visible behind expanded post view (all themes) - Max-width 1200px applied to all themes via shared navmodal CSS - Default theme changed from "neon" to "random" Sample content: - 120 example entries processed into dist/ for pagination testing (4 pages of 42 posts each) Co-Authored-By: Claude Sonnet 4.6 --- cmd/snonux/main.go | 2 +- integrationtests/integration_test.go | 2 +- internal/generator/shared.go | 8 +- internal/generator/theme_glass.go | 250 ++++++++++++++++++++++------------- internal/generator/theme_ocean.go | 164 ++++++++++++++++++----- internal/generator/theme_paper.go | 209 ++++++++++++++++++++--------- internal/generator/themes.go | 2 +- 7 files changed, 442 insertions(+), 195 deletions(-) diff --git a/cmd/snonux/main.go b/cmd/snonux/main.go index 58d6cb5..d3f8064 100644 --- a/cmd/snonux/main.go +++ b/cmd/snonux/main.go @@ -41,7 +41,7 @@ func parseFlags() (*config.Config, error) { flag.StringVar(&cfg.InputDir, "input", "./inbox", "directory containing new source files to process") flag.StringVar(&cfg.OutputDir, "output", "~/git/snonux.foo/dist", "root directory for generated static site output") flag.StringVar(&cfg.BaseURL, "base-url", "https://snonux.foo", "canonical base URL used in Atom feed links") - flag.StringVar(&cfg.Theme, "theme", "neon", "visual theme name, or \"random\" to pick one at random") + flag.StringVar(&cfg.Theme, "theme", "random", "visual theme name, or \"random\" to pick one at random") flag.Parse() if *listThemes { diff --git a/integrationtests/integration_test.go b/integrationtests/integration_test.go index 6d355b1..8d24d8d 100644 --- a/integrationtests/integration_test.go +++ b/integrationtests/integration_test.go @@ -323,7 +323,7 @@ func TestKeyboardNavJS(t *testing.T) { // index.html containing core structural elements (post text, nav script). func TestThemeSelection(t *testing.T) { themes := []string{ - "aurora", "brutalist", "glass", "matrix", "neon", + "aurora", "brutalist", "cosmos", "matrix", "neon", "ocean", "plasma", "retro", "synthwave", "terminal", "volcano", } diff --git a/internal/generator/shared.go b/internal/generator/shared.go index 12a91f4..a34c5a5 100644 --- a/internal/generator/shared.go +++ b/internal/generator/shared.go @@ -21,10 +21,14 @@ const navDefs = ` {{define "navmodal"}}
{{template "navmodal" .}}