From e09fc2af31bf99698d203d0a03e78735b4d5a6b2 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 20 Jan 2026 00:16:14 -0800 Subject: refactor: Use CSS variable overrides for proper theme integration Instead of trying to override individual Tailwind classes (which was fragile and incomplete), now properly override Kaze's root CSS variables (--bg-primary, --status-ok, etc.) to use OpenCode theme values. This works because style.css already maps all Tailwind classes to these CSS variables, so overriding the variables automatically themes everything. The theme flow is now: 1. OpenCode theme defines: --theme-background, --theme-success, etc. 2. Override CSS redefines: --bg-primary = var(--theme-background), etc. 3. style.css classes use: background: var(--bg-primary), etc. This approach is much cleaner and ensures complete, consistent theming. --- internal/server/server.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'internal/server') diff --git a/internal/server/server.go b/internal/server/server.go index 6d76fa0..8d491dc 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -199,8 +199,8 @@ func (s *Server) handleIndex(w http.ResponseWriter, r *http.Request) { if err != nil { s.logger.Warn("failed to load theme", "url", s.config.Site.ThemeURL, "error", err) } else if resolvedTheme != nil { - // Generate CSS variables and Tailwind mappings - cssString := resolvedTheme.GenerateCSS() + resolvedTheme.GenerateTailwindMappings() + // Generate CSS: theme variables + override Kaze's CSS variables + cssString := resolvedTheme.GenerateCSS() + resolvedTheme.GenerateVariableOverrides() themeCSS = template.CSS(cssString) } } -- cgit v1.2.3