docs: design template catalog#522
Open
soma-enyi wants to merge 1 commit intoStellerCraft:mainfrom
Open
Conversation
|
@soma-enyi Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs: design template catalog browsing experience
Summary
Adds a comprehensive design specification for the template catalog browsing
experience at
/app/templates. The document captures the full discovery flowso that contributors, reviewers, and designers share a single source of truth
for how users browse, filter, and select templates.
Changes
Added
docs/template-catalog.mdLayout
Filter controls
max-w-md),type="search", 300 msdebounce, matches
nameanddescription.visible (no hidden dropdowns); clicking an active chip deselects it.
?category=&search=so statesurvives reload and is shareable.
iteration with rationale.
Card anatomy
category badge, name, description (line-clamp-2), enabled-feature count
(pluralised), and "Use Template" CTA button.
States
role="status", visually-hidden SR text.<ErrorState>with retry; special-cased 429 message.<EmptyState>with "Clear Filters" action.<EmptyState>without action button.aria-live="polite"region above the grid.Mobile behavior
2-column grid at sm–md; 3-column grid at ≥ lg.
Category discovery
Accessibility
role="group" aria-label="Filter by category"on chip group.aria-pressedon each chip.aria-live="polite"results count.aria-label="Use {name} template"on every card CTA.alttext on preview images;aria-hiddenon emoji fallbacks.Implementation reference
file for quick navigation.
Edge cases & assumptions
names, singular/plural result count, pagination and sort deferred.
Testing
No runtime code was changed. Existing component and hook tests
(
TemplateCard.test.tsx,TemplateCatalogFilters.test.tsx,TemplateGrid.test.tsx,useTemplates.test.ts) continue to cover theimplementation this document describes.
Closes
Closes #12