structyl

Documentation

Components

101 accessible, themable components. Preview any one below, then open its page for examples and a full API reference.

Atoms

17

Button

A clickable control with six variants and four sizes, complete with spring-press feedback.

Button

Avatar

An image element with a fallback for representing the user.

Avatar

Badge

A small visual indicator for statuses, counts and labels.

Badge

Card

A container that groups related content and actions.

Card

Alert

Displays a callout for user attention.

Alert

Progress

Displays an indicator showing the completion progress of a task.

Progress

Skeleton

A placeholder preview of content before the data loads.

Skeleton

Spinner

A status indicator for pending work.

Spinner

Separator

Visually or semantically separates content.

Separator

Aspect Ratio

Constrains content to a desired width / height ratio.

Aspect Ratio

Circular Progress

A circular progress indicator with determinate and indeterminate modes.

Circular Progress

Meter

A quantitative measurement within a known range.

Meter

Copy Button

Copies text to the clipboard with success feedback.

Copy Button

Typography

Theme-aware text styles.

Typography

Link

A styled anchor element.

Link

SvgIcon

A wrapper for custom SVG icons.

SvgIcon

Chip

A compact label with optional delete action.

Chip

Inputs

6

Button Group

Groups related buttons together.

Button Group

Floating Action Button

A prominent circular action button.

Floating Action Button

Rating

Collects a numeric star rating.

Rating

Autocomplete

MUI-style alias around the combobox pattern.

Autocomplete

Transfer List

Moves options between available and selected lists.

Transfer List

Textarea Autosize

A textarea that grows with its content.

Textarea Autosize

Form

19

Switch

A control that allows the user to toggle between checked and not checked.

Switch

Checkbox

A control that allows the user to toggle between checked, not checked, and indeterminate.

Checkbox

Slider

An input where the user selects a value from within a given range.

Slider

Input

A styled text input with focus ring and invalid state.

Input

Textarea

A styled multi-line text input.

Textarea

Toggle

A two-state button that can be on or off.

Toggle

Toggle Group

A set of two-state buttons that can be single or multiple select.

Toggle Group

Radio Group

A set of checkable buttons where only one can be checked at a time.

Radio Group

Form

A form with declarative validation built on native ValidityState.

Form

One-Time Password Field

A segmented input for OTP / PIN codes.

One-Time Password Field

Password Toggle Field

A password input with a show / hide toggle.

Password Toggle Field

Number Field

A numeric input with stepper buttons and Intl formatting.

Number Field

Calendar

A standalone calendar for selecting dates.

Calendar

Date Picker

A calendar inside a popover for picking a date.

Date Picker

Date Range Picker

Pick a start and end date from a popover calendar.

Date Range Picker

Time Picker

A MUI-style time field with a 12-hour analog clock panel.

Time Picker

Date Time Picker

Pick a date first, then choose the time from one popover with MUI-style props.

Date Time Picker

Color Picker

An HSV color picker with hue and alpha sliders.

Color Picker

File Upload

A drag-and-drop file input with validation.

File Upload

Data display

7

List

A vertical list of items and actions.

List

Image List

A grid for image collections.

Image List

Table

Styled native table parts.

Table

Timeline

A chronological event list.

Timeline

Code Block

A presentational code block with an optional filename header, line numbers, and a built-in copy button.

Code Block

Description List

A semantic dl / dt / dd compound for key–value pairs, with horizontal or vertical layout.

Description List

Marquee

A CSS-only scrolling strip for logos, testimonials, or announcements. Respects reduced-motion.

Marquee

Feedback

3

Backdrop

A full-screen scrim for modal states.

Backdrop

Snackbar

A brief status message.

Snackbar

Banner

A full-width, site-level announcement bar with variants, an optional action, and a dismiss button.

Banner

Surface

1

Paper

A neutral elevated surface.

Paper

Layout

5

Box

A low-level layout primitive.

Box

Container

Centers content with responsive max-widths.

Container

Stack

Arranges children in a row or column with consistent spacing.

Stack

Grid

A responsive CSS grid wrapper.

Grid

Masonry

A masonry-style column layout.

Masonry

Disclosure

6

Accordion

A vertically stacked set of interactive headings that each reveal a section of content.

Accordion

Tabs

A set of layered sections of content — known as tab panels — displayed one at a time.

Tabs

Collapsible

An interactive component that expands / collapses a panel.

Collapsible

Breadcrumb

Displays the path to the current resource.

Breadcrumb

Pagination

Navigation bar matching DataTable pagination: page controls, rows-per-page selector, and total row count.

Pagination

Stepper

A multi-step process indicator.

Stepper

Overlays

8

Dialog

A window overlaid on the primary content, rendering the content underneath inert.

Dialog

Popover

Displays rich content in a portal, triggered by a button.

Popover

Tooltip

A popup that displays information related to an element when it receives keyboard focus or hover.

Tooltip

Toast

A succinct message that is displayed temporarily.

Toast

Alert Dialog

A modal dialog that interrupts the user and expects a response.

Alert Dialog

Sheet

A panel that slides in from any edge of the screen.

Sheet

Drawer

A bottom-anchored sheet, ideal for mobile.

Drawer

Hover Card

A rich popover shown when an element receives hover.

Hover Card

Compound

8

Dropdown Menu

Displays a menu to the user — such as a set of actions or functions — triggered by a button.

Dropdown Menu

Select

Displays a list of options for the user to pick from, triggered by a button.

Select

Multi Select

Lets users choose multiple options from a searchable dropdown list.

Multi Select

Context Menu

A menu triggered by right-click or long-press.

Context Menu

Menubar

A horizontal bar of dropdown menus, like a desktop app.

Menubar

Navigation Menu

A collection of links for navigating a website.

Navigation Menu

Combobox

An autocomplete input with a filtered list of options.

Combobox

Command

A command palette with fuzzy search, cmdk-style.

Command

Utils

7

Click-Away Listener

Calls a handler when interaction happens outside its child.

Click-Away Listener

No SSR

Defers rendering until after mount.

No SSR

Portal

Renders children into document.body or a custom container.

Portal

Popper

Low-level floating positioning primitive anchored to an element.

Popper

Transition

Manages entering/entered/exiting/exited states for CSS transitions.

Transition

CSS Baseline

Injects a small global reset.

CSS Baseline

Init Color Scheme Script

Sets the initial color-scheme attribute before hydration.

Init Color Scheme Script

Misc

8

Scroll Area

A container with custom, themeable scrollbars.

Scroll Area

Toolbar

A container for grouping a set of controls.

Toolbar

Resizable

Resizable panel groups with draggable handles.

Resizable

Carousel

A slideshow for cycling through images or content.

Carousel

Tree

A hierarchical list, like a file explorer.

Tree

Editable

Inline-editable text that swaps between preview and input.

Editable

Tags Input

An input that collects a list of tags as chips.

Tags Input

Mentions

A textarea with @-mention autocomplete.

Mentions

Data

2

Chart

A comprehensive custom SVG chart library with 45+ components — bar, line, area, pie/donut, scatter, bubble, radar, heatmap, treemap, funnel, gauge, candlestick, radial bar, radial line, sankey, waterfall, gantt, boxplot, sunburst, chord, histogram, and more. No external charting dependency.

Chart

DataTable

A full-featured data grid with a rich column definition API, tree data, copy/paste, density, bulk actions, row action menus, custom slots, search, nested filters, virtualization, pinning, grouping, aggregation and more.

DataTable

Media

1

Video Player

A fully-featured HTML5 video player with playlists, chapter markers, SRT/VTT subtitles, video filters, quality levels, and HLS adaptive streaming.

Video Player