Components
Browse all 166 components across seven categories: layout, navigation, content, data, typography, input, and feedback.
Container
Max-width wrapper for page sections.
<arc-container> Section
Page section with optional uppercase label, consistent spacing.
<arc-section> App Shell
Full-page layout scaffold that composes a TopBar, Sidebar, and scrollable content area into a cohesive application frame. Handles responsive collapse, sidebar toggling, and optional table-of-contents rail out of the box.
<arc-app-shell> Auth Shell
Authentication page layout with centered and split variants for sign-in, sign-up, password-reset, and other credential flows. Provides logo, form card, footer, and optional aside slots out of the box.
<arc-auth-shell> Dashboard Grid
Responsive grid for dashboard metric cards.
<arc-dashboard-grid> Page Header
Page title area with positional slots for composing breadcrumbs, actions, tabs, or any content around a heading and description.
<arc-page-header> Page Layout
Page structure primitive that arranges content into sidebar-left, sidebar-right, centered, or wide layouts using CSS Grid. Handles responsive collapse, configurable gap and max-width, and exposes named slots for sidebar, main, and aside regions.
<arc-page-layout> Resizable
Resizable panel with drag handle.
<arc-resizable> Settings Layout
Settings page with side navigation and content area.
<arc-settings-layout> Split Pane
Resizable split layout with two panes.
<arc-split-pane> Status Bar
Bottom status bar with prefix, center, and suffix slots.
<arc-status-bar> Toolbar
Horizontal toolbar with prefix, center, and suffix slots.
<arc-toolbar> Masonry
Pinterest-style vertical-pack grid using CSS columns for efficient masonry layout without JavaScript.
<arc-masonry> Float Bar
Viewport-bottom floating toolbar with surface-overlay background, backdrop blur, and spring easing. For bulk actions, unsaved-changes prompts.
<arc-float-bar> Aspect Grid
Uniform aspect-ratio cell grid with configurable columns and ratio.
<arc-aspect-grid> Inset
Padding primitive consuming spacing tokens with optional negative-margin bleed mode.
<arc-inset> Sticky
Wrapper that goes sticky at a configurable offset and emits a stuck attribute/event for visual state changes.
<arc-sticky> Responsive Switcher
Container-query-based layout that flips between horizontal and vertical at a threshold width. No media queries needed.
<arc-responsive-switcher> Center
Content centering primitive with max-width, intrinsic centering, and text-center options.
<arc-center> Tabs
Tabbed content navigation with keyboard support and ARIA roles.
<arc-tabs> Breadcrumb
Wayfinding navigation trail that shows the user their current location within a hierarchical page structure, with separator icons and current-page indication.
<arc-breadcrumb> Drawer
Slide-out panel with backdrop overlay, keyboard dismissal, and left/right positioning for off-canvas navigation, filters, and detail views.
<arc-drawer> Footer
Page footer with branding, link columns, and legal text. Provides a structured layout with slots for a logo, navigational link groups, social icons, and copyright information.
<arc-footer> Link
Styled anchor with nav, muted, and default variants.
<arc-link> Navigation Menu
Horizontal navigation bar with hover-triggered dropdown sub-menus and full keyboard accessibility. Designed for marketing sites, documentation hubs, and product landing pages where top-level sections expand into categorised link lists.
<arc-navigation-menu> Pagination
Page navigation control with previous/next arrows, numbered page buttons, and smart ellipsis truncation.
<arc-pagination> Scroll Spy
Tracks scroll position and highlights the active navigation link.
<arc-scroll-spy> Sidebar
Collapsible navigation sidebar with grouped sections, heading labels, and active link highlighting. Ideal for documentation sites, admin panels, and any layout that needs persistent vertical navigation.
<arc-sidebar> Top Bar
Fixed header bar that anchors every page with a brand slot on the left, an optional center navigation area, and a right-aligned actions region for user controls, search, and settings.
<arc-top-bar> Tree View
Hierarchical tree structure with expandable/collapsible nodes, selection tracking, keyboard navigation, and indentation guide lines.
<arc-tree-view> Scroll To Top
Floating button that appears after scrolling and smoothly returns the user to the top of the page.
<arc-scroll-to-top> Scroll Indicator
Thin progress bar that tracks scroll position of the page or a target container. Sticks to the top or bottom edge with accent or gradient fill.
<arc-scroll-indicator> Command Bar
Always-visible search input designed to sit inside a top bar. Accent-primary bottom border on focus with glow ring.
<arc-command-bar> Stepper Nav
Wizard navigation with back/next/skip controls and step validation gates. Steps connected by gradient lines with interactive routing.
<arc-stepper-nav> Bottom Nav
Mobile bottom bar with icon + label items. Active item gets accent-primary glow underline with surface-overlay background and backdrop blur.
<arc-bottom-nav> Skip Link
Accessible skip-to-content link, invisible until focused. On focus shows as accent-primary filled pill with glow ring above the page.
<arc-skip-link> Anchor Nav
Vertical or horizontal in-page link bar with active highlight. Active link gets accent-primary background pill or underline glow.
<arc-anchor-nav> Breadcrumb Menu
Each breadcrumb segment doubles as a dropdown showing sibling pages at that hierarchy level. Dropdown panels match dropdown-menu styling.
<arc-breadcrumb-menu> Rail
Ultra-narrow icon-only vertical navigation like VS Code's activity bar. Icons use text-muted at rest, accent-primary glow on active. Expands on hover.
<arc-rail> Page Indicator
Dot-based position indicator for page-level navigation or onboarding flows. Active dot fills with accent-primary and scales up.
<arc-page-indicator> Menubar
Desktop-application-style menu bar (File / Edit / View) with nested submenus, keyboard shortcuts display, and full WAI-ARIA menubar keyboard navigation.
<arc-menubar> Card
Content container with subtle border styling and hover effects. Links the entire card surface when an href is provided, creating a seamless clickable area with an animated gradient border.
<arc-card> Feature Card
Card with icon, heading, description, and animated hover effects.
<arc-feature-card> Divider
Horizontal rule with multiple visual styles from subtle to glowing.
<arc-divider> Accordion
Expandable content sections with smooth height animations. Ideal for FAQs, settings panels, and any UI that benefits from progressive disclosure.
<arc-accordion> Avatar
User avatar with image or initials fallback.
<arc-avatar> Avatar Group
Stack of avatars with overflow count badge.
<arc-avatar-group> Color Swatch
Color sample square with label — useful for token docs.
<arc-color-swatch> CTA Banner
Full-width call-to-action banner with gradient background, eyebrow text, headline, body copy, and action buttons. Ideal for landing page CTAs, marketing sections, and page closers.
<arc-cta-banner> Empty State
Placeholder for empty lists or search results.
<arc-empty-state> Icon
Renders icons by name from any registered library — Phosphor (1,500+) and Lucide (1,900+) ship in `@arclux/arc-ui-icons` — with one-line library switching and custom icon registration.
<arc-icon> Skeleton
Loading placeholder with shimmer animation.
<arc-skeleton> Spinner
Animated loading spinner in three sizes.
<arc-spinner> Collapsible
A disclosure widget with a clickable heading that toggles the visibility of its slotted content using a smooth CSS grid animation.
<arc-collapsible> Carousel
A scrollable slide container with navigation arrows, dot indicators, auto-play, looping, and keyboard controls.
<arc-carousel> Infinite Scroll
Intersection Observer-powered container that fires a load event when the user scrolls near the bottom, with built-in loading spinner and end-of-list state.
<arc-infinite-scroll> Scroll Area
Styled scrollable container with custom thin scrollbar styling for Webkit and Firefox, configurable orientation, and optional max-height constraint.
<arc-scroll-area> Aspect Ratio
Container that enforces a consistent width-to-height ratio on its content, ideal for images, videos, and embedded media.
<arc-aspect-ratio> Marquee
Continuously scrolling content strip with configurable speed, direction, gap, and pause-on-hover behavior for logos, testimonials, and announcements.
<arc-marquee> Stack
Flexbox layout component for vertical or horizontal stacking with token-based spacing.
<arc-stack> Image
Enhanced image component with shimmer loading skeleton, smooth fade-in transition, error fallback, and aspect ratio presets.
<arc-image> Virtual List
Windowed list that renders only visible items for efficient scrolling through thousands of rows. Fixed item height with configurable overscan.
<arc-virtual-list> QR Code
Client-side QR code renderer that encodes any string into a crisp inline SVG. Themes automatically via currentColor, with an optional contrast card for guaranteed scanability on dark backgrounds.
<arc-qr-code> Lightbox
Full-screen image viewer on the overlay stack: open from a thumbnail, step through a gallery with wrapping prev/next navigation, zoom to 2x with drag-to-pan, and dismiss with Escape or a backdrop click.
<arc-lightbox> Image Compare
Before/after comparison with two layered images and a draggable divider revealing one over the other.
<arc-image-compare> Image Hotspots
An annotated image with glowing pin markers, each opening a small popover of detail content. Built for product-feature callouts, annotated screenshots, and simple maps.
<arc-image-hotspots> Video
House-styled video player with a glowing poster play overlay and minimal custom controls over the native video element.
<arc-video> Value Card
Horizontal card with icon and text, for values or features lists.
<arc-value-card> Stat
Numeric statistic display with gradient value and label.
<arc-stat> Badge
Compact pill-shaped label for status indicators, category tags, and notification counts. Seven color variants let you encode meaning at a glance across dashboards, tables, and card layouts.
<arc-badge> Stepper
Step indicator for multi-step workflows.
<arc-stepper> Tag
Compact pill-shaped label with color variants, custom color support, and an optional remove button, for categorisation, filtering, and selection feedback.
<arc-tag> Timeline
Vertical timeline with dated events.
<arc-timeline> Meter
Semantic gauge display with color-coded fill zones (success, warning, error) based on configurable low/high/optimum thresholds.
<arc-meter> Animated Number
Smooth count-up/down number animation with formatting options.
<arc-animated-number> List
Structured list container with optional selection, keyboard navigation, and multiple visual variants. Pairs with arc-list-item for rich content rows.
<arc-list> Diff
Line-based text diff viewer with inline and side-by-side display modes.
<arc-diff> Countdown Timer
Live countdown to a target date/time with days, hours, minutes, and seconds segments.
<arc-countdown-timer> Comparison
A two-column or multi-column comparison table for pricing tiers, feature breakdowns, or before/after comparisons. Each column is defined with an arc-comparison-column child element.
<arc-comparison> Sparkline
Tiny inline SVG chart for embedding lightweight line or bar visualizations inside tables, stat cards, and dashboards. Renders from a simple comma-separated data string with no external charting dependencies.
<arc-sparkline> Description List
Structured term/detail pair list in a responsive grid layout with optional dividers.
<arc-description-list> Chart
An SVG chart component for dashboards with line, area, bar, and donut types. Data-driven from a series array, with automatic nice-tick scales, a legend, hover crosshair and tooltips, and a visually-hidden data table for assistive technology.
<arc-chart> Data Grid
A spreadsheet-grade grid for working with tabular data: inline cell editing, multi-column sorting, pinned columns, row selection, and virtualized rendering. Columns are defined as a JavaScript array, and the grid implements the full WAI-ARIA grid keyboard pattern with a single tab stop.
<arc-data-grid> Kanban
A drag-and-drop kanban board driven by a `columns` data array. Cards can be dragged between and within columns with the pointer, or moved entirely from the keyboard with live screen-reader announcements. Column limits, tags, and descriptions are supported per card, and every move emits an `arc-card-move` event so the consumer can sync its source of truth.
<arc-kanban> Gauge
Radial gauge displaying a scalar value on an arc with color-coded zones (success, warning, error) and an animated sweep.
<arc-gauge> Waveform
Audio waveform visualization that doubles as a scrubber. Renders a consumer-computed peaks array as an SVG waveform with an accent played region and glowing playhead, and becomes a full seek control when interactive.
<arc-waveform> Level Meter
Segmented audio level meter with peak-hold. Zone-tinted segments light in proportion to a live value, with a decaying peak line — the live vertical sibling of Meter.
<arc-level-meter> Clock
Live clock with a digital or analog face, optionally pinned to an IANA timezone.
<arc-clock> Uptime
Status-page uptime history strip: one slim tick per period, colored by status, with hover and keyboard detail. Accepts plain uptime fractions or explicit status objects and renders the computed overall percentage above the track.
<arc-uptime> JSON Tree
Collapsible JSON explorer with house syntax coloring — the dev-tools inspector for API payloads, configuration objects, and structured state.
<arc-json-tree> Activity Heatmap
GitHub-style contribution calendar: a year of day cells, one column per week, each tinted by intensity on a five-step accent ramp, with hover and keyboard detail.
<arc-activity-heatmap> Text
Typography component with variants matching the arclight type scale.
<arc-text> Code Block
Syntax-highlighted code display with optional filename and copy button.
<arc-code-block> Kbd
Keyboard key indicator styled like a physical key.
<arc-kbd> Truncate
Multi-line text clamping with expandable show-more toggle.
<arc-truncate> Highlight
Text highlighting with search query match markers.
<arc-highlight> Markdown
Renders markdown content as styled HTML with zero dependencies. Supports headings, lists, code blocks, blockquotes, links, images, and inline formatting.
<arc-markdown> Blockquote
Styled pull-quote with optional citation for editorial emphasis.
<arc-blockquote> Prose
Long-form content container that applies typographic rhythm and styling to slotted HTML elements.
<arc-prose> Typewriter
Character-by-character text reveal animation with blinking cursor.
<arc-typewriter> Gradient Text
Inline text wrapper that applies gradient fills to text declaratively.
<arc-gradient-text> Number Format
Locale-aware number, currency, percentage, and compact formatter using Intl.NumberFormat.
<arc-number-format> Time Ago
Relative time display that auto-updates ("3 minutes ago", "yesterday").
<arc-time-ago> Terminal
Animated terminal window that types commands and prints their output line by line.
<arc-terminal> Keyboard Map
A rendered keyboard with highlighted keys and chords — the visual big sibling of Kbd and Hotkey, for shortcut documentation and editor cheat sheets.
<arc-keyboard-map> Button
Primary call-to-action element with three visual variants that map to action hierarchy. Supports prefix and suffix slots for icons. Renders as an anchor when given an href, making it ideal for navigation-driven actions across landing pages, toolbars, and forms.
<arc-button> Input
Versatile form control supporting single-line text, email, password, and multiline textarea modes with built-in label, placeholder, and validation states. Pairs with Form for complete data-entry workflows.
<arc-input> Toggle
On/off switch with smooth animation, glow effect, and ARIA switch role.
<arc-toggle> Checkbox
Multi-select form control supporting checked, indeterminate, and disabled states. Ideal for preferences, bulk-selection patterns, and consent forms where users need to toggle one or more independent options.
<arc-checkbox> Radio Group
Single-select option group with arrow-key navigation and ARIA radiogroup semantics. Ideal for pricing tiers, settings panels, and any context where exactly one choice must be made from a visible set of options.
<arc-radio-group> Select
Dropdown select with searchable options, keyboard navigation, and full ARIA listbox semantics for accessible form inputs.
<arc-select> Calendar
Interactive month-view calendar grid for date selection with min/max constraints, keyboard navigation, and today highlighting.
<arc-calendar> Combobox
Searchable dropdown with type-ahead filtering.
<arc-combobox> Copy Button
One-click copy-to-clipboard button with confirmation.
<arc-copy-button> Date Picker
Calendar-based date picker with keyboard navigation.
<arc-date-picker> File Upload
Drag-and-drop file upload zone with preview.
<arc-file-upload> Form
Form wrapper with built-in validation, error aggregation, and submit handling. Composes Input, Textarea, and Button into a cohesive data-entry workflow.
<arc-form> Icon Button
Compact button that renders an icon with optional text label, supporting ghost, secondary, and primary variants.
<arc-icon-button> Multi Select
Multi-value select with tag chips, inline search filtering, and keyboard navigation.
<arc-multi-select> Search
Search input with a magnifying glass icon, clear button, loading spinner, and autocomplete suggestions dropdown.
<arc-search> Range Slider
Dual-thumb range slider for selecting a numeric interval within a defined range, with accent-primary fill between the thumbs and live value display.
<arc-range-slider> Slider
Range input slider with a label, live numeric value display, accent-primary fill track, and customisable min/max/step.
<arc-slider> Textarea
Multi-line text input with integrated label, placeholder, resize control, and live character count that turns red at the limit.
<arc-textarea> Theme Toggle
Three-state theme toggle cycling through dark, light, and auto modes with animated icon transitions and localStorage persistence.
<arc-theme-toggle> Segmented Control
A radio-group-style toggle bar that renders slotted arc-option elements as a row of mutually exclusive buttons with an active highlight.
<arc-segmented-control> Number Input
A numeric stepper input with decrement and increment buttons flanking a central text field, supporting min/max clamping, step increments, and keyboard shortcuts.
<arc-number-input> Rating
A star-based rating input with hover preview, keyboard navigation, filled/unfilled SVG stars, and configurable max value.
<arc-rating> Chip
A toggleable pill-shaped element for filters, tags, or multi-select options, with a selected state highlighted in accent-primary.
<arc-chip> Sortable List
Drag-and-drop reorderable list with grip handles, keyboard reordering support, and visual insertion indicators.
<arc-sortable-list> Color Picker
Full-featured color picker with a saturation/lightness area, hue slider, hex input, and optional preset swatches.
<arc-color-picker> Pin Input
One-character-per-box input for PINs, OTPs, and verification codes with auto-advance, paste support, and optional masking.
<arc-pin-input> Label
Form label with required indicator, optional description text, and tooltip slot. Pairs with any input component via the `for` attribute.
<arc-label> Fieldset
Grouped form section with legend, description, error message, and optional card variant. Wraps related inputs with native fieldset semantics.
<arc-fieldset> Switch Group
Groups multiple toggle switches under a shared label with consistent sizing and disabled state. Supports vertical and horizontal layouts.
<arc-switch-group> Button Group
Connects multiple buttons into a single visual unit with shared borders and collapsed radii. Supports horizontal and vertical orientations.
<arc-button-group> Input Group
Combines an input with prefix and suffix addon slots for labels, icons, or buttons attached to the input border.
<arc-input-group> Hotkey
Invisible keyboard shortcut listener that supports modifier combos (Ctrl+K) and chord sequences (g i). Fires an event when the key pattern is matched.
<arc-hotkey> Time Picker
Scrollable column-based time picker with 12h/24h format support.
<arc-time-picker> Date Range Picker
Dual-calendar picker for selecting a start/end date range with presets and full keyboard navigation.
<arc-date-range-picker> Tag Input
Free-text token entry field with optional autocomplete suggestions, delimiter splitting, and duplicate rejection.
<arc-tag-input> Password Input
Password entry field with a built-in visibility toggle and an optional four-segment strength meter. Shares its styling and form behavior with Input, so mixed forms stay visually uniform.
<arc-password-input> Transfer List
Dual-listbox for moving items between an available and a selected pane, ideal for permissions and settings UIs.
<arc-transfer-list> Image Cropper
Crop-before-upload control with a draggable, resizable crop rectangle, aspect-ratio locking, zoom, and canvas export at natural image resolution.
<arc-image-cropper> Knob
Rotary knob input for continuous parameters, with a glowing 270-degree arc fill, vertical-drag interaction, magnetic detents, and a monospace value readout.
<arc-knob> Signature Pad
Canvas signature capture that participates in forms — freehand strokes serialize to a PNG data-URL and submit as the field value.
<arc-signature-pad> Masked Input
Text field that enforces a character mask as you type — dates, card numbers, phone numbers, license keys. The mask’s literals are typed for the user; value holds only the raw characters, and the raw value is what forms receive, so the mask stays presentation.
<arc-masked-input> Tree Select
Dropdown select whose panel is a hierarchical tree — categories, instrument banks, folder pickers. Group nodes expand and collapse; only leaf nodes are selectable.
<arc-tree-select> Inline Edit
Click-to-edit text that renders as plain content until activated, then swaps to a pre-filled field. Enter or blur commits, Escape cancels. Built for track renames, titles, and other fields where a permanent input box would be visual noise.
<arc-inline-edit> Alert
Contextual alert banner with five semantic variants and optional dismiss button for delivering timely, prominent feedback to users.
<arc-alert> Progress
Progress indicator as a bar or spinner, with determinate and indeterminate modes. Shows completion state for uploads, installations, and long-running operations.
<arc-progress> Toast
Stack-managed notification toasts with auto-dismiss, variant-colored indicators, configurable position, and smooth enter/exit animations.
<arc-toast> Tooltip
Contextual hint that appears on hover or focus, providing supplementary information without cluttering the UI. Supports four placement positions and a configurable show delay.
<arc-tooltip> Command Palette
Spotlight-style command palette with search and keyboard shortcuts.
<arc-command-palette> Context Menu
Right-click context menu with keyboard shortcuts.
<arc-context-menu> Dropdown Menu
Menu dropdown triggered by a button with keyboard navigation.
<arc-dropdown-menu> Hover Card
Card that appears on hover with a delay.
<arc-hover-card> Notification Panel
Notification dropdown panel triggered by a button.
<arc-notification-panel> Popover
Floating content panel anchored to a trigger element, with four placement positions and automatic outside-click dismissal.
<arc-popover> Sheet
A sliding overlay panel that emerges from the bottom or right edge of the viewport, with a blurred backdrop, header, scrollable body, and footer slot.
<arc-sheet> Dialog
General-purpose focus-trapping overlay on the platform <dialog> — backdrop blur, slide-up entrance, and Escape-to-dismiss for forms, settings, and rich content that needs full user attention.
<arc-dialog> Banner
Full-width persistent strip pinned to viewport or section top. Uses semantic variants like alert but edge-to-edge with no border-radius and a subtle gradient wash.
<arc-banner> Confirm
Programmatic confirmation API that wraps dialog. Call ArcConfirm.open() and await the returned promise. Same visual treatment as dialog.
<arc-confirm> Loading Overlay
Semi-transparent surface-overlay with backdrop blur covering a container or page. Centers a spinner with optional progress text.
<arc-loading-overlay> Connection Status
Auto-detects online/offline via navigator API. Offline triggers a persistent warning bar with amber glow pulse. Reconnection auto-dismisses with success flash.
<arc-connection-status> Announcement
ARIA live-region wrapper with no visual output. Announces dynamic content changes to screen readers. Zero visual footprint — pure accessibility utility.
<arc-announcement> Conversation
An AI chat transcript: role-attributed messages in a scrollable column that follows new replies without ever yanking a reader who scrolled up. Built as the assist panel for AI products.
<arc-conversation>