From d4cacb80ec8687d6ebed941d7c58130d5d9e1633 Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 3 Apr 2026 17:55:34 +0000 Subject: [PATCH] feat(html): scope selector lists in responsive variants Co-Authored-By: Virgil --- responsive.go | 11 ++++++++++- responsive_test.go | 8 ++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/responsive.go b/responsive.go index fc40939..e2feb5e 100644 --- a/responsive.go +++ b/responsive.go @@ -80,7 +80,16 @@ func ScopeVariant(name, selector string) string { if selector == "" { return scope } - return scope + " " + selector + + parts := strings.Split(selector, ",") + for i := range parts { + parts[i] = strings.TrimSpace(parts[i]) + if parts[i] == "" { + continue + } + parts[i] = scope + " " + parts[i] + } + return strings.Join(parts, ", ") } // responsive.go: Variant adds a named layout variant (e.g., "desktop", "tablet", "mobile"). diff --git a/responsive_test.go b/responsive_test.go index ee0a3e6..73d4d36 100644 --- a/responsive_test.go +++ b/responsive_test.go @@ -178,3 +178,11 @@ func TestScopeVariant(t *testing.T) { }) } } + +func TestScopeVariant_MultipleSelectors(t *testing.T) { + got := ScopeVariant("desktop", ".nav, .sidebar") + want := `[data-variant="desktop"] .nav, [data-variant="desktop"] .sidebar` + if got != want { + t.Fatalf("ScopeVariant with selector list = %q, want %q", got, want) + } +}