Skip to main content
Home pageComponentsIntroduction

Components

Latty components are Lit-based Web Components that consume --lt-* design tokens. They work natively in HTML, Vue, and Svelte, and ship with thin React wrappers in @latty-ds/react. Every component follows the same prop naming rules so you never have to guess — if you know one component you know them all.

Prop naming conventions​

Each prop name has exactly one meaning across the entire system. The table below is the canonical reference.

Boolean prop conventions​

A boolean attribute is true when present and false when absent — consistent with how HTML boolean attributes work (disabled, required, etc.).

Positive adjective or noun — use when the feature is off by default and the attribute enables it: disabled, loading, closable, striped, bordered, tooltip.

no- prefix

— use when the feature is on by default and the attribute suppresses it: no-close-button, no-marker.

Never verb phrases — hideCloseButton, showTooltip, withIcon are banned. They force the reader to reason about polarity instead of just checking presence.

All components​

Accordionlt-accordionCollapsible content panels with optional icons and fill styles
Alertlt-alertInline status message with optional icon and dismiss button
Avatarlt-avatarUser or entity image with fallback to initials
Badgelt-badgeSmall label for status, counts, or categories
Breadcrumblt-breadcrumbHierarchical navigation trail
Buttonlt-buttonInteractive control with variant, appearance, and icon slots
Calendarlt-calendarInteractive date and date-range picker grid
Checkboxlt-checkboxBoolean form input with indeterminate state
Chiplt-chipCompact tag for filters, selections, or metadata
Color Inputlt-color-inputRead-only field that opens the native color picker with a live swatch preview
Comboboxlt-comboboxSearchable single-select dropdown with keyboard filtering
Date Inputlt-date-inputCross-browser date field with locale-aware formatting and a calendar popover
Datepickerlt-datepickerStyled wrapper around the native date, time, and datetime-local inputs
Dialoglt-dialogModal overlay for confirmations and focused interactions
Dividerlt-dividerHorizontal or vertical rule with solid, dashed, or dotted appearance
Dropdownlt-dropdownAnchored popover menu triggered by a slotted element
Headerlt-headerTop app bar with title, navigation, and action slots
Icon Buttonlt-icon-buttonSquare or circular button containing a single icon
Imagelt-imageResponsive image with lazy loading and aspect-ratio control
Linklt-linkInline anchor styled with the design system
Listlt-list · lt-list-itemVertical list container with icon, divider, and marker options
Navigationlt-nav · lt-nav-itemSidebar navigation with grouped items and active state
Paginationlt-paginationPage navigation for paged data sets with ellipsis windowing
Progresslt-progressLinear progress bar with determinate and indeterminate modes
Radiolt-radioSingle-select form input, typically used in a group
Selectlt-selectStyled dropdown for choosing one option from a list
SidePanellt-sidepanelSliding drawer anchored to the left or right viewport edge
Skeletonlt-skeletonLoading placeholder in text, rect, or circle shapes
Sliderlt-sliderRange input for selecting a value within a bounded range
Snackbarlt-snackbarTransient notification anchored to the bottom of the viewport
Spinnerlt-spinnerCircular indeterminate loading indicator
Surfacelt-surfaceElevated container for cards, panels, and layered layouts
Switchlt-switchToggle control for binary on/off settings
Tablt-tab-group · lt-tabTabbed navigation with default and pills appearances
Tablelt-tableData grid with sortable columns, striped rows, and hoverable state
Textlt-textTypography component for headings, body, and label styles
Textfieldlt-textfieldText input with label, helper text, icon slots, and validation states
Tooltiplt-tooltipNon-interactive floating label on hover or focus