diff --git a/src/lib/components/CatalogGrid.svelte b/src/lib/components/CatalogGrid.svelte index ba061c2..d67e4cf 100644 --- a/src/lib/components/CatalogGrid.svelte +++ b/src/lib/components/CatalogGrid.svelte @@ -35,7 +35,11 @@ let expanded = $state>({}); const visibleChildren = (group: Item) => { const all = group.children ?? []; - return expanded[group.name] ? all : all.filter((c) => c.featured ?? true); + return expanded[group.name] + ? all + : all.some((c) => c.featured) + ? all.filter((c) => c.featured) + : all; }; const hiddenCount = (group: Item) => (group.children?.length ?? 0) - visibleChildren(group).length; diff --git a/src/lib/components/SiteChrome.svelte b/src/lib/components/SiteChrome.svelte index d92a368..73e333e 100644 --- a/src/lib/components/SiteChrome.svelte +++ b/src/lib/components/SiteChrome.svelte @@ -693,8 +693,8 @@ --flyout-from: 4px; } @keyframes flyout-in { + /* Slide only: an opacity fade here left the flyout half see-through after hovering. */ from { - opacity: 0; transform: translateX(var(--flyout-from)); } } diff --git a/src/routes/start/+page.svelte b/src/routes/start/+page.svelte index fc92485..4151de3 100644 --- a/src/routes/start/+page.svelte +++ b/src/routes/start/+page.svelte @@ -69,7 +69,9 @@ const tileChildren = (t: Group) => filtering || expandedGroups[t.name] ? (t.children ?? []) - : (t.children ?? []).filter((c) => c.featured ?? true); + : (t.children ?? []).some((c) => c.featured) + ? (t.children ?? []).filter((c) => c.featured) + : (t.children ?? []); const hiddenChildren = (t: Group) => (t.children?.length ?? 0) - tileChildren(t).length; // The links filter (f) also narrows the trackers; a group stays if it or a chip matches. const shownTrackers = $derived.by(() => {