diff --git a/src/Roux/Html.hs b/src/Roux/Html.hs
index 9fb7502..91d3dcc 100644
--- a/src/Roux/Html.hs
+++ b/src/Roux/Html.hs
@@ -163,6 +163,12 @@ page title content =
, ".roux-header-links a:hover { color: var(--roux-accent); }"
, ".roux-header-links a.active { color: var(--roux-accent); }"
, ""
+ , "/* Recipe filter tabs */"
+ , ".roux-filter-tabs { display: flex; gap: 20px; margin-bottom: 1.25rem; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; }"
+ , ".roux-filter-tabs a { color: #6B5847; text-decoration: none; }"
+ , ".roux-filter-tabs a:hover { color: var(--roux-accent); }"
+ , ".roux-filter-tabs a.active { color: var(--roux-accent); }"
+ , ""
, "/* Search input */"
, "input[type=search] { background: var(--roux-bg); color: var(--roux-text); border-color: rgba(61, 44, 30, 0.2); }"
, "input[type=search]:focus { border-color: var(--roux-accent); box-shadow: 0 0 0 1px var(--roux-accent); }"
@@ -422,7 +428,7 @@ searchJs =
, "// Set active tab style based on hash"
, "function updateActiveNav() {"
, " const mode = getSortMode();"
- , " document.querySelectorAll('.roux-header-links a').forEach(a => {"
+ , " document.querySelectorAll('.roux-filter-tabs a').forEach(a => {"
, " a.classList.toggle('active', a.getAttribute('href') === '#' + mode);"
, " });"
, "}"
@@ -757,12 +763,15 @@ indexPage _mode recipes =
page "Roux — Recipes" $ do
renderHeader
[ ("/", "Home", False)
- , ("#alpha", "A-Z", True)
- , ("#tags", "By Tag", False)
- , ("#course", "By Course", False)
+ , ("/recipes", "Recipes", True)
, ("/import", "Import", False)
, ("/cook-history", "Cook History", False)
]
+ -- Filter tabs
+ H.div ! A.class_ "roux-filter-tabs" $ do
+ H.a ! A.href "#alpha" $ "A-Z"
+ H.a ! A.href "#tags" $ "By Tag"
+ H.a ! A.href "#course" $ "By Course"
-- Search input
H.input
! A.type_ "search"