Skip to main content

Component reference

Every @matt-riley/ui-astro component has a dedicated docs page with a curated example and compact reference notes.

Foundations

Layout

Own the document shell and head slot. The sturdy foundation upon which all your pages are built.

PageShell

Provide the shared page-width and vertical rhythm wrapper. The invisible corset that keeps your layout looking trim and proper.

Hero

Render the page-level introduction block. A bold, unapologetic welcome mat for your page.

Section

Create titled content sections with a stable heading contract. The building blocks of a well-structured document.

Panel

Provide the shared flat, bordered, elevated, or glass surface wrapper. A nice little box to put your things in.

Card

A flexible content card with Snurble surface variants, padding scale, and optional linked or interactive affordance.

DataTable

Render shared table styling for structured row-and-column data. Because sometimes you just need a really good looking spreadsheet.

MetaList

Display compact metadata rows. A wonderfully neat way to present 'Key: Value' information.

CodeSnippet

Render inline or block code examples with beautiful syntax highlighting. Perfect for showing off your elegant, bug-free (hopefully) code.

Stack

Apply consistent vertical spacing. The bouncer that keeps your elements at exactly the right distance from each other.

Divider

Render a tokenized horizontal or vertical separator with optional label support. A tidy line that knows when to stay quiet for assistive tech.

VisuallyHidden

Hide content visually while keeping it available to screen readers. Perfect for icon-only controls that still need a real name.

BentoGrid

A responsive CSS Grid container for modular bento-box layouts. Perfect for modern, information-dense dashboards and portfolios.

BentoItem

A layout wrapper for items within a BentoGrid. Controls column and row spanning.

Shell

FontAssets

Inject the shared font-face declarations. The invisible magic that makes our typography look so darn good.

JsonLd

Publish structured data in the document head. Food for search engines and web crawlers.

SkipLink

Provide a hidden-until-focus anchor. The secret teleportation pad for power users.

SeoMeta

Emit Open Graph and Twitter metadata. Making sure your links look pretty when shared on social media.

ServiceWorker

Register a PWA service worker. The invisible magic that makes your web app work even when the wifi dies.

Header

A generic app header with brand, primary navigation, optional actions, and sticky behavior.

Footer

A responsive footer shell with brand, navigation links, social links, and copyright slots.

Sidebar

A nested side-navigation surface with active-link styling and optional small-screen collapse behavior.

Profile and social

ProfileHero

Render the shared profile banner pattern. The ultimate 'Look at me!' component for personal portfolios.

SocialLinks

Render the package-owned social link list. A neat row of icons to prove you exist on other parts of the internet.

DecoratedHeading

Display the shared decorative heading treatment for spotlight content and branded sections. When regular text just isn't fancy enough.

Projects

ProjectCard

Render a single project summary card. The perfect display case for your digital trophies.

ProjectGrid

Lay out project cards in a responsive grid. Because standard lists are boring.

Experience

ExperienceCard

Render a single experience or role entry. The perfect way to humblebrag about your past jobs.

ExperienceList

Group multiple experience entries into a stacked timeline. Your career history, elegantly formatted.

SkillIcon

Render single skill or technology icon. Cute little badges to show off the languages you theoretically know.

SkillIconList

Arrange multiple skill icons. A concentrated blast of your technical prowess.

AgentDiscoveryHint

Embed hidden machine-readable discovery hints in the page without changing visible layout content. It's an invisibility cloak for your metadata.

Actions and status

Button

Render the primary shared action control for the highest-priority calls to action. The absolute workhorse of any UI.

IconButton

Render a compact icon-only action. Perfect for when you want a button, but you're too lazy to write words.

LinkButton

Render navigation styled like a button. For those times when an anchor tag just doesn't carry enough visual weight.

Badge

Display compact status or taxonomy labels. It's like putting a colorful little sticker on your data to make it feel special.

Avatar

Render a profile image or initials fallback with consistent sizing, shape, and optional status treatment.

Alert

Render a structured status message for info, success, warning, or danger states. Basically, it's the UI equivalent of tapping the user on the shoulder very persistently.

Callout

Highlight supporting guidance or caveats without the stronger semantics of a stateful alert. It's the 'by the way' of UI components.

EmptyState

Render the shared no-results state. The friendly ghost town of your application.

Skeleton

Render a loading placeholder surface or text-line group. The ghostly apparition of content yet to come, now with better manners for assistive tech.

Spinner

A compact circular loading indicator with decorative or announced accessibility modes.

Progress

A tokenized progress indicator with determinate and indeterminate states plus optional visible value text.

LoadingButton

A Button-style action with an inline spinner, disabled loading state, and accessible loading label.

ThemeToggle

A pill-shaped theme switcher with animated icons. Give your users the power to choose their own light (or lack thereof).

Sparkle

A tiny, animated SVG star. A sprinkle of magic for your micro-interactions.

Toast

A non-blocking notification overlay. The polite whisper that tells you something just happened.

Breadcrumbs

Render hierarchical navigation links for nested docs and application sections. Hansel and Gretel would have loved this component.

Tabs

Render a named-panel disclosure pattern. It's like having multiple pages without actually leaving the page.

Accordion

A stack of expandable sections perfect for progressive disclosure. Think of it as a set of magical drawers that organize your content neatly without taking up too much precious screen space.

Pagination

Render previous/next and page-link navigation. Because sometimes your collection of cute cat photos is just too big for one page.

TableOfContents

Render a page-local heading index. The roadmap for long-form docs.

SegmentedControl

A pill-shaped selection control. Like a Radio Group, but with better posture and a satisfying slide animation.

Forms

Field

Provide the wrapper contract for labels, hints, and errors. Because every input deserves good context.

Input

Render the shared single-line text input surface. The bread and butter of data collection.

Textarea

Render the shared multiline text-entry control. The blank canvas for user feedback and epic novels.

Checkbox

Render the shared boolean checkbox control. The classic, undeniable way to say 'yes, please' or 'absolutely not'.

RadioGroup

Render a grouped single-choice input set. The classic multiple-choice exam format, now in UI form.

Select

Render the shared select control wrapper. The polite way of asking a user to pick one thing from a long list.

Switch

Render the shared immediate-toggle switch control. The digital equivalent of flipping a light switch.

FormHint

Render supporting field guidance. The helpful little whisper that prevents form validation errors.

FormError

Render validation feedback. The digital equivalent of red pen on a spelling test.

InputGroup

A field-control wrapper that visually merges prefix, input, and suffix content into one tokenized control.

SearchInput

A rounded search field with icon affordance, optional clear button, and accessible label.

Combobox

A filterable single-select form control with listbox semantics, keyboard selection, and form submission support.

Overlays and menus

DialogActions

A small action-row helper for modal and drawer footers with responsive stacking.

DialogFooter

A footer region helper for dialog content with border separation and alignment controls.

Dialog

Render the shared modal dialog overlay pattern. Takes over the screen to command your user's undivided attention.

Drawer

Render a slide-in side panel for contextual controls. A smooth operator that enters stage left (or right, or top, or bottom).

Popover

Render a lightweight anchored overlay. Like a tooltip that went to the gym and got buff.

DropdownMenu

Render an action menu for compact secondary actions. A neat little list of things you can do, hidden behind a button.

MenuButton

A complete menu trigger with accessible menu attributes, roving keyboard navigation, and custom select events.

CommandMenu

A dialog-backed command palette with grouped commands, local filtering, keyboard movement, and custom select events.

Tooltip

Render a small hover or focus tooltip. A polite little whisper of extra information.

Data display

StatCard

Render a headline metric with optional trend. Because big numbers look cool.

DescriptionList

Render structured term-definition pairs for compact reference data. Perfect for displaying metadata like it's a sleek dossier.

FilterBar

Render the shared search-and-filter container. The control center for finding exactly what you need.

SortIndicator

Render sort direction affordance. A tiny little arrow doing a very important job.