From b01f8d578372b499324e301bbf149cb586dd5544 Mon Sep 17 00:00:00 2001 From: Mathias Date: Fri, 12 Jun 2026 12:29:31 +0200 Subject: [PATCH] docs(bdd): visual_theme.feature scenarios (@pending until TDD, #17) --- docs/use-cases/visual_theme.feature | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 docs/use-cases/visual_theme.feature diff --git a/docs/use-cases/visual_theme.feature b/docs/use-cases/visual_theme.feature new file mode 100644 index 0000000..18454df --- /dev/null +++ b/docs/use-cases/visual_theme.feature @@ -0,0 +1,33 @@ +Feature: Visual refresh — one charm-reader layout, light + dark themes (ADR-032, #17) + As a reader who likes a TUI/charm aesthetic + I want a fresh look with a light and a dark theme + So that the app feels distinctive and reads well in either mode + + # Direction B (light) + C (dark) are one layout in two palettes (CSS variables), + # plus a persisted toggle and an OS-preference default. Colours are reviewed via + # the mockups in docs/sketches/, not unit-tested; these scenarios cover the + # testable structure. Each maps to a Go test in scenario_coverage_test.go. + + @pending # TestThemeHasLightAndDarkPalettes + Scenario: Light and dark themes share one layout via CSS variables + Given the app stylesheet + When it is rendered + Then it defines a light palette on the root and a dark palette under data-theme="dark", with no duplicate markup + + @pending # TestThemeFollowsOSPreference + Scenario: Without a stored choice the theme follows the OS preference + Given a visitor with no saved theme + When the page loads + Then a prefers-color-scheme dark block applies the dark palette automatically + + @pending # TestThemeTogglePersists + Scenario: A persisted toggle switches light and dark + Given any page + When it is rendered + Then it includes a theme-toggle control and a small script that flips data-theme and persists the choice + + @pending # TestExpandedCardEmbedsVideo + Scenario: The expanded card embeds the video player + Given a summarized video with a valid provider id + When its card is expanded + Then the expanded card includes the embedded video player