ComponentHealthMatrix
Catalogue QA dashboard for docs, demos, screenshots, tests, and theme support.
Live demo
01Catalogue QA
Component health matrix
Docs, demos, screenshots, tests, and theme support from the live component registry.
| Component | Shelf | Overall | Docs | Demo | Shot | Tests | Theme | Deps |
|---|---|---|---|---|---|---|---|---|
| Sidebar src/lib/components/Sidebar.svelte | Navigation & Shell | partial | Dual | None | ||||
| Navbar src/lib/components/Navbar.svelte | Navigation & Shell | partial | Light | None | ||||
| SpeedDial src/lib/components/SpeedDial.svelte | Navigation & Shell | partial | Light | None | ||||
| FloatingDock src/lib/components/FloatingDock.svelte | Navigation & Shell | partial | Light | None | ||||
| LiquidTabBar src/lib/components/LiquidTabBar.svelte | Navigation & Shell | partial | Light | None | ||||
| Drawer src/lib/components/Drawer.svelte | Navigation & Shell | partial | Light | None | ||||
| Breadcrumbs src/lib/components/Breadcrumbs.svelte | Navigation & Shell | partial | Light | None | ||||
| Pagination src/lib/components/Pagination.svelte | Navigation & Shell | partial | Light | None | ||||
| ReadingTOC src/lib/components/ReadingTOC.svelte | Navigation & Shell | ready | Dual | None | ||||
| ScrollProgressBar src/lib/components/ScrollProgressBar.svelte | Navigation & Shell | partial | Light | None | ||||
| Combobox src/lib/components/Combobox.svelte | Controls & Input | partial | Dual | None | ||||
| DatePicker src/lib/components/DatePicker.svelte | Controls & Input | partial | Dual | None | ||||
| DateRangePicker src/lib/components/DateRangePicker.svelte | Controls & Input | partial | Dual | None | ||||
| TreeView src/lib/components/TreeView.svelte | Controls & Input | partial | Dual | None | ||||
| RichTextEditor src/lib/components/RichTextEditor.svelte | Controls & Input | partial | Dual | None | ||||
| ColorPicker src/lib/components/ColorPicker.svelte | Controls & Input | partial | Dual | None | ||||
| TagInput src/lib/components/TagInput.svelte | Controls & Input | partial | Dual | None | ||||
| RangeSlider src/lib/components/RangeSlider.svelte | Controls & Input | partial | Dual | None | ||||
| Forms src/lib/components/forms/FormField.svelte | Controls & Input | partial | Light | None | ||||
| PinInput src/lib/components/PinInput.svelte | Controls & Input | partial | Light | None | ||||
| UploadDropzone src/lib/components/UploadDropzone.svelte | Controls & Input | partial | Light | None | ||||
| Switch src/lib/components/Switch.svelte | Controls & Input | partial | Light | None | ||||
| Slider src/lib/components/Slider.svelte | Controls & Input | partial | Dual | None | ||||
| SegmentedControl src/lib/components/SegmentedControl.svelte | Controls & Input | partial | Light | None | ||||
| FilterChips src/lib/components/FilterChips.svelte | Controls & Input | partial | Light | None | ||||
| RatingStars src/lib/components/RatingStars.svelte | Controls & Input | ready | Dual | None | ||||
| Stepper src/lib/components/Stepper.svelte | Controls & Input | partial | Light | None | ||||
| Accordion src/lib/components/Accordion.svelte | Controls & Input | partial | Light | None | ||||
| Tabs src/lib/components/Tabs.svelte | Controls & Input | partial | Light | None | ||||
| CommandPalette src/lib/components/CommandPalette.svelte | Controls & Input | partial | Light | None | ||||
| ContextMenu src/lib/components/ContextMenu.svelte | Controls & Input | partial | Light | None | ||||
| HoldToConfirm src/lib/components/HoldToConfirm.svelte | Controls & Input | ready | Light | None | ||||
| CopyButton src/lib/components/CopyButton.svelte | Controls & Input | partial | Light | None | ||||
| KbdShortcut src/lib/components/KbdShortcut.svelte | Controls & Input | ready | Dual | None | ||||
| Tooltip src/lib/components/Tooltip.svelte | Controls & Input | ready | Dual | None | ||||
| NotificationCentre src/lib/components/NotificationCentre.svelte | Feedback & Identity | partial | Dual | None | ||||
| ToastNotification src/lib/components/ToastNotification.svelte | Feedback & Identity | partial | Light | None | ||||
| AlertBanner src/lib/components/AlertBanner.svelte | Feedback & Identity | partial | Light | None | ||||
| EmptyState src/lib/components/EmptyState.svelte | Feedback & Identity | partial | Light | None | ||||
| SkeletonLoader src/lib/components/SkeletonLoader.svelte | Feedback & Identity | partial | Light | None | ||||
| ProgressRing src/lib/components/ProgressRing.svelte | Feedback & Identity | partial | Light | None | ||||
| ProgressBar src/lib/components/ProgressBar.svelte | Feedback & Identity | partial | Light | None | ||||
| Spinner src/lib/components/Spinner.svelte | Feedback & Identity | partial | Light | None | ||||
| BadgePill src/lib/components/BadgePill.svelte | Feedback & Identity | partial | Light | None | ||||
| Avatar src/lib/components/Avatar.svelte | Feedback & Identity | partial | Light | None | ||||
| AvatarStack src/lib/components/AvatarStack.svelte | Feedback & Identity | partial | Light | None | ||||
| StatCard src/lib/components/StatCard.svelte | Feedback & Identity | partial | Light | None | ||||
| Typewriter src/lib/components/Typewriter.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| ShinyText src/lib/components/ShinyText.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| ScrambledText src/lib/components/ScrambledText.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| TrueFocus src/lib/components/TrueFocus.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| VariableProximity src/lib/components/VariableProximity.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| GlitchText src/lib/components/GlitchText.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| SplitFlap src/lib/components/SplitFlap.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| TickerTape src/lib/components/TickerTape.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| Marquee src/lib/components/Marquee.svelte | Text, Time & Content Motion | partial | Dual | None | ||||
| CodeBlock src/lib/components/CodeBlock.svelte | Text, Time & Content Motion | ready | Dual | None | ||||
| Countdown src/lib/components/Countdown.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| CountUp src/lib/components/CountUp.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| Timeline src/lib/components/Timeline.svelte | Text, Time & Content Motion | partial | Light | None | ||||
| Kanban src/lib/components/Kanban.svelte | Cards & Layout | partial | Dual | None | ||||
| CardStack src/lib/components/CardStack.svelte | Cards & Layout | partial | Dual | None | ||||
| CardStackMotionFlip src/lib/components/CardStackMotionFlip.svelte | Cards & Layout | partial | Dual | None | ||||
| BentoGrid src/lib/components/BentoGrid.svelte | Cards & Layout | partial | Light | None | ||||
| Divider src/lib/components/Divider.svelte | Cards & Layout | partial | Light | None | ||||
| ExpandingCard src/lib/components/ExpandingCard.svelte | Cards & Layout | ready | Dual | None | ||||
| ScratchToReveal src/lib/components/ScratchToReveal.svelte | Cards & Layout | partial | Light | None | ||||
| StreamShowcase src/lib/components/StreamShowcase/StreamShowcase.svelte | Cards & Layout | partial | Light | None | ||||
| Cardwall src/lib/components/Cardwall/Cardwall.svelte | Cards & Layout | partial | Light | None | ||||
| InteractiveCards src/lib/components/InteractiveCards.svelte | Cards & Layout | partial | Dual | None | ||||
| MagicCard src/lib/components/MagicCard.svelte | Cards & Layout | ready | Dual | None | ||||
| MorphingDialog src/lib/components/MorphingDialog.svelte | Cards & Layout | partial | Light | None | ||||
| ShineBorder src/lib/components/ShineBorder.svelte | Motion Primitives | partial | Light | None | ||||
| SwishButton src/lib/components/SwishButton.svelte | Motion Primitives | partial | Light | None | ||||
| MagneticButton src/lib/components/MagneticButton.svelte | Motion Primitives | partial | Light | None | ||||
| ClickSpark src/lib/components/ClickSpark.svelte | Motion Primitives | partial | Light | None | ||||
| LinkImageHover src/lib/components/LinkImageHover.svelte | Motion Primitives | partial | Light | None | ||||
| AnimatedBeam src/lib/components/AnimatedBeam.svelte | Motion Primitives | partial | Light | None | ||||
| ScrollReveal src/lib/components/ScrollReveal.svelte | Motion Primitives | partial | Light | None | ||||
| OrbitalRing src/lib/components/OrbitalRing.svelte | Motion Primitives | partial | Light | None | ||||
| MagnetGrid src/lib/components/MagnetGrid.svelte | Motion Primitives | partial | Light | None | ||||
| PixelTrail src/lib/components/PixelTrail.svelte | Motion Primitives | partial | Light | None | ||||
| RippleGrid src/lib/components/RippleGrid.svelte | Motion Primitives | partial | Light | None | ||||
| GSAP Suite src/lib/components/GsapSplitTextHero.svelte | Motion Primitives | partial | Dual | gsap | ||||
| EqualizerBars src/lib/components/EqualizerBars.svelte | Motion Primitives | partial | Light | None | ||||
| ConfettiBurst src/lib/components/ConfettiBurst.svelte | Motion Primitives | ready | Dual | None | ||||
| Tilt3D src/lib/components/Tilt3D.svelte | Motion Primitives | partial | Light | None | ||||
| Pendulum src/lib/components/Pendulum.svelte | Motion Primitives | partial | Light | None | ||||
| AuroraBackdrop src/lib/components/AuroraBackdrop.svelte | Ambient Surfaces | partial | Light | None | ||||
| MeshGradient src/lib/components/MeshGradient.svelte | Ambient Surfaces | partial | Light | None | ||||
| MembraneHero src/lib/components/MembraneHero/MembraneHero.svelte | Ambient Surfaces | partial | Light | None | ||||
| PerspectiveGrid src/lib/components/PerspectiveGrid.svelte | Ambient Surfaces | partial | Light | None | ||||
| NoiseField src/lib/components/NoiseField.svelte | Ambient Surfaces | partial | Light | None | ||||
| NeonSign src/lib/components/NeonSign.svelte | Ambient Surfaces | partial | Light | None | ||||
| CRTScreen src/lib/components/CRTScreen.svelte | Ambient Surfaces | partial | Light | None | ||||
| HoloCard src/lib/components/HoloCard.svelte | Ambient Surfaces | partial | Light | None | ||||
| ElectricBorder src/lib/components/ElectricBorder.svelte | Ambient Surfaces | partial | Light | None | ||||
| TopologyColorGrid src/lib/components/TopologyColorGrid.svelte | Ambient Surfaces | partial | Dual | three, gsap | ||||
| Sparkline src/lib/components/Sparkline.svelte | Data & Visualisation | partial | Dual | None | ||||
| LineChart src/lib/components/LineChart.svelte | Data & Visualisation | partial | Dual | None | ||||
| BarChart src/lib/components/BarChart.svelte | Data & Visualisation | partial | Dual | None | ||||
| DonutChart src/lib/components/DonutChart.svelte | Data & Visualisation | partial | Dual | None | ||||
| DataGrid src/lib/components/DataGridBasic.svelte | Data & Visualisation | partial | Light | @svar-ui/svelte-grid | ||||
| CalendarHeatmap src/lib/components/CalendarHeatmap.svelte | Data & Visualisation | partial | Light | None | ||||
| Gantt src/lib/components/Gantt.svelte | Data & Visualisation | partial | Dual | None | ||||
| BubblePacking src/lib/components/BubblePacking.svelte | Data & Visualisation | partial | Light | None | ||||
| RadialCluster src/lib/components/RadialCluster.svelte | Data & Visualisation | partial | Light | None | ||||
| Sunburst src/lib/components/Sunburst.svelte | Data & Visualisation | partial | Light | None | ||||
| WordCloud src/lib/components/WordCloud.svelte | Data & Visualisation | partial | Light | None | ||||
| Sankey src/lib/components/ExpandableSankey.svelte | Data & Visualisation | partial | Dual | @unovis/svelte, @unovis/ts | ||||
| ExplainerCanvas src/lib/components/ExplainerCanvas/ExplainerCanvas.svelte | Data & Visualisation | ready | Light | None | ||||
| BeforeAfter src/lib/components/BeforeAfter.svelte | Media & Portfolio | partial | Light | None | ||||
| DomeGallery src/lib/components/DomeGallery.svelte | Media & Portfolio | partial | Light | None | ||||
| PortfolioPhotographer src/lib/components/PortfolioPhotographer/PortfolioPhotographer.svelte | Media & Portfolio | partial | Light | None | ||||
| Editor src/lib/components/Editor.svelte | Data-Backed Workflows | partial | Dual | None | ||||
| FolderFiles src/lib/components/FolderFiles.svelte | Data-Backed Workflows | partial | Light | None | ||||
| Maps src/lib/components/MapBasic.svelte | Maps & Location | partial | Light | leaflet, @types/leaflet | ||||
| Location src/lib/components/MapLocateMe.svelte | Maps & Location | partial | Light | leaflet, @types/leaflet | ||||
| GlobePresence src/lib/components/GlobePresence.svelte | Maps & Location | partial | Light | None | ||||
| GeoViz src/lib/components/GeoChoropleth.svelte | Maps & Location | partial | Light | None | ||||
| ComponentHealthMatrix src/lib/components/ComponentHealthMatrix.svelte | Library Operations | partial | Dual | None | ||||
| EvidenceCard src/lib/components/EvidenceCard.svelte | Library Operations | ready | Dual | None | ||||
| CopyPasteComposer src/lib/components/CopyPasteComposer.svelte | Library Operations | ready | Dual | None | ||||
| ThemeTokenInspector src/lib/components/ThemeTokenInspector.svelte | Library Operations | ready | Dual | None | ||||
| AgentLaneBoard src/lib/components/AgentLaneBoard.svelte | Library Operations | ready | Dual | None | ||||
| RoutePreviewRail src/lib/components/RoutePreviewRail.svelte | Library Operations | ready | Dual | None | ||||
| TokenSwatchGrid src/lib/components/TokenSwatchGrid.svelte | Library Operations | ready | Dual | None | ||||
| InteractionLab src/lib/components/InteractionLab.svelte | Library Operations | ready | Dual | None | ||||
| DataVizInspector src/lib/components/DataVizInspector.svelte | Library Operations | ready | Dual | None | ||||
| MediaLightboxPro src/lib/components/MediaLightboxPro.svelte | Library Operations | ready | Dual | None | ||||
| Auth Demo src/routes/auth/+page.svelte | Auth & OSS Demo | partial | Light | better-auth | ||||
| Dashboard src/routes/(protected)/dashboard/+page.svelte | Auth & OSS Demo | partial | Light | better-auth | ||||
| Profile src/routes/(protected)/profile/+page.svelte | Auth & OSS Demo | partial | Light | better-auth |
Implementation
02<script lang="ts">
import ComponentHealthMatrix, { createHealthRows } from '$lib/components/ComponentHealthMatrix.svelte';
β
const rows = createHealthRows(entries, availableFiles);
</script>
β
<ComponentHealthMatrix {rows} />ComponentHealthMatrix reads the same registry that powers the homepage and component shell. The route supplies browser-safe file availability through Vite glob sets and declared test metadata, then the component renders a searchable QA table without duplicating catalogue data.
Logic explainer
03What Does It Do? (Plain English)
ComponentHealthMatrix turns the live component catalogue into a QA dashboard. It shows whether each template has a source file, docs, demo route, screenshot, and test coverage, then lets maintainers filter by status, theme support, or search text.
How It Works (Pseudo-Code)
receive catalogue entries
receive available source/docs/demo/screenshot/test file paths
for each component:
compare declared paths with available paths
derive source/docs/demo/screenshot/test statuses
combine statuses into ready, partial, or missing
render summary counts
render searchable, filterable tableState Flow Diagram
componentCatalogEntries
-> route maps entries into ComponentHealthEntry[]
-> route builds available file sets with import.meta.glob
-> createHealthRows()
-> ComponentHealthMatrix rows prop
-> query/status/theme filters
-> filtered tableProps Reference
| Prop | Type | Default | Description |
|---|---|---|---|
rows |
ComponentHealthRow[] |
Required | Health rows generated by createHealthRows(). |
title |
string |
"Component health matrix" |
Heading shown above the dashboard. |
Edge Cases
- Missing screenshots are reported separately from missing docs or tests so visual QA debt is visible.
- Components with no dependencies render
Noneinstead of an empty table cell. - Search covers component name, shelf, route, source path, and dependency label.
- A component with mixed ready/missing fields becomes
partial, which is more useful than hiding it in a binary pass/fail state.
Dependencies
No external dependencies. The route usually pairs this component with componentCatalogEntries and Vite import.meta.glob file sets.
File Structure
src/lib/components/ComponentHealthMatrix.svelte
src/lib/components/ComponentHealthMatrix.test.ts
src/lib/components/ComponentHealthMatrix.md
src/routes/componenthealthmatrix/+page.svelteAPI
04| Export | Type | Description |
|---|---|---|
createHealthRows | (entries, files) => ComponentHealthRow[] | Compares catalogue metadata with available file sets. |
ComponentHealthMatrix | Svelte component | Renders summary counts, filters, and a component health table. |