Skip to content

UI Components

The complete component library for Vienna plugins. Built on Radix UI + Tailwind CSS v4 + CVA.

Auto-generated

This reference is generated from the @tryvienna/ui source code and Storybook stories. Regenerate with pnpm --filter @vienna/docs generate:ui-reference.

Form Controls

  • Button — Primary interactive element for triggering actions
  • Input — Text input field with focus rings and error states
  • Label — Accessible form label via Radix UI
  • Textarea — Multi-line text input
  • Checkbox — Toggle checkbox via Radix UI
  • Switch — Toggle switch via Radix UI
  • RadioGroup — Single-selection radio buttons via Radix UI
  • Slider — Range input via Radix UI
  • Form — React Hook Form integration with accessible labels and validation

Layout & Display

  • Card — Composable content container with semantic sections
  • Separator — Visual divider via Radix UI
  • AspectRatio — Maintains width-to-height ratio via Radix UI
  • ScrollArea — Custom scrollable area via Radix UI
  • Badge — Small status indicator or label
  • Avatar — User avatar with image, fallback, badge, and group layout
  • Skeleton — Loading placeholder with pulse animation
  • Progress — Horizontal progress bar via Radix UI
  • Alert — Callout for important messages
  • Table — HTML table with consistent styling

Overlays

  • Tooltip — Popup text label on hover/focus via Radix UI
  • Dialog — Modal dialog overlay via Radix UI
  • AlertDialog — Confirmation dialog requiring user action via Radix UI
  • Popover — Floating content panel via Radix UI
  • HoverCard — Card that appears on hover via Radix UI
  • Sheet — Side-sliding panel overlay via Radix UI Dialog
  • Drawer — Bottom sheet drawer via vaul library
  • Accordion — Collapsible content sections via Radix UI
  • Tabs — Tabbed interface via Radix UI
  • Breadcrumb — Page hierarchy navigation
  • Collapsible — Simple show/hide toggle via Radix UI
  • Toggle — Two-state button via Radix UI
  • ToggleGroup — Group of toggle buttons via Radix UI
  • Pagination — Page navigation with previous/next and numbered links

Data Display + Notifications

  • Calendar — Individual day cell button within the Calendar
  • Carousel — Access carousel context (scroll state, API, orientation).
  • ChartContainer — Configuration object for chart data series.
  • Toaster — Toast notification container built on Sonner
  • NotificationToast — Apply to toast.custom()'s options.className to neutralize Sonner's
  • Sidebar — Access sidebar state and controls.

Composed Components

  • ContentProvider — Context-based density system for content layout
  • ContentSection — Section wrapper with optional title, actions, and collapsible state
  • MetadataList — Key-value pairs in a grid layout with optional copy and link actions
  • Timeline — Vertical timeline with connecting line and dot variants
  • EmptyState — Placeholder for empty content areas with icon, title, description, and action
  • EntityCard — Card component for displaying entities with icon, badges, and stats
  • InlineEdit — Inline text editing with click-to-edit and marquee overflow
  • SearchFilterBar — Search input with optional filter dropdown
  • ConfirmDialog — Convenience wrapper around AlertDialog for confirmation flows
  • Combobox — Advanced combobox with single and multi-select support
  • LoadingState — Standardized loading indicator for panels, sections, and pages

Rich Content

  • Markdown — Renders raw markdown as styled HTML with syntax highlighting
  • MarkdownEditor — Write/Preview toggle editor for markdown content
  • MermaidBlock — Renders Mermaid diagrams as SVG
  • ChartBlock — Renders data visualizations from JSON configuration

Utility & Status Components

  • Spinner — Animated SVG loading spinner with size and color variants
  • StatusBadge
  • FullscreenOverlay — Portal-based fullscreen overlay with Escape-to-close
  • FullscreenButton — Toggle button for entering/exiting fullscreen presentation mode
  • SidePanel — 8pt grid sizing table for comfortable density.
  • DrawerPanel — Drawer layout primitives for composing drawer/panel content without custom CSS.
  • FileTypeIcon — Generic file icon
  • FileTree — File directory tree view with language-aware icons
  • KeyboardHint — Displays one or more keyboard key badges