Skip to content
Introducing AI Conversations: Natural Language Interaction for Your Apps! Learn More

Controls | Getting Started

A rich, ready-to-use UI controls library for both .NET MAUI and Blazor. One package per host covers TableView, Scheduler, FloatingPanel, ShinyDurationPicker, Fab/FabMenu, PillView, SecurityPin, SignaturePad, ImageViewer, ImageEditor, ChatView, ColorPicker, FontPicker, ProgressBar, GradientSlider, Overlay/LoadingOverlay, AutoCompleteEntry, CountryPicker, AddressEntry, and TextEntry. Markdown, Mermaid Diagrams, and Speech Add-ins are available as separate add-on packages for each host.

GitHubGitHub stars for shinyorg/controls
MAUINuGet downloads for Shiny.Maui.Controls
BlazorNuGet downloads for Shiny.Blazor.Controls
MAUI MarkdownNuGet downloads for Shiny.Maui.Controls.Markdown
Blazor MarkdownNuGet downloads for Shiny.Blazor.Controls.Markdown
MAUI Mermaid DiagramsNuGet downloads for Shiny.Maui.Controls.MermaidDiagrams
Blazor Mermaid DiagramsNuGet downloads for Shiny.Blazor.Controls.MermaidDiagrams
MAUI Speech Add-insNuGet downloads for Shiny.Maui.Controls.SpeechAddins
Blazor Speech Add-insNuGet downloads for Shiny.Blazor.Controls.SpeechAddins
Frameworks
.NET MAUI
Blazor
ControlDescription
TableViewSettings-style table with 14 cell types, cascading styles, drag-to-sort, sections, and full MVVM support
SchedulerCalendar grid, agenda timeline, and event list views with a shared ISchedulerEventProvider interface
FloatingPanelDraggable floating panel overlay (bottom, bottom with tabs, or top) with configurable detents, OverlayHost backdrop management, header peek, keyboard handling, and ShinyContentPage convenience base class
ShinyDurationPickerStandalone duration picker control that opens a FloatingPanel with hour/minute selection, min/max constraints, and configurable intervals
Fab & FabMenuMaterial-style floating action button and expanding multi-action menu with staggered animations, backdrop, and full color customization
PillViewStatus badge/label with 6 preset themes, custom colors, and WCAG-accessible contrast
SecurityPinPIN entry with individually rendered cells, optional character masking, and full styling control
ImageViewerFull-screen image overlay with pinch-to-zoom, pan, double-tap zoom, and animated transitions
ImageEditorInline image editor with crop, rotate, draw, line/arrow, text annotations with font selection, undo/redo, and export to PNG/JPEG/WEBP
FontPickerFont family and font size picker controls with inline list and popup button variants, each font rendered in its own typeface
ChatViewModern chat UI with message bubbles, typing indicators, per-participant colors/avatars, load-more, and input bar
ColorPickerFull-featured color picker with spectrum view, hue bar, opacity slider, hex input, and preview swatch
AutoCompleteEntryText input with debounced search, dropdown suggestions, busy indicator, and custom item templates
CountryPickerCountry search with flag emoji, name, and dial code from full ISO 3166-1 list
AddressEntryAddress search with geocoding (Nominatim by default) and structured address results
TextEntryMaterial Design-inspired text entry with animated floating placeholder, customizable border, tool slots, validation hints, and character count
SignaturePadSignature capture with canvas drawing, PNG export, and configurable panel overlay (requires OverlayHost or ShinyContentPage on MAUI)
ProgressBarProgress bar with gradient fill, Vista-style shimmer pulse, determinate/indeterminate modes, and text overlay
GradientSliderSlider with two-color gradient track, blended thumb, tooltip, and full drag/tap interaction
Overlay & LoadingOverlayFull-screen overlay with configurable backdrop, custom content template, and built-in loading mode (spinner or progress bar)
MarkdownRead-only markdown renderer and full editor with formatting toolbar and live preview (separate package)
Mermaid DiagramsNative Mermaid flowchart rendering with Sugiyama layout, themes, and pan/zoom (separate package)

Speech add-ins are available as separate packages (Shiny.Maui.Controls.SpeechAddins and Shiny.Blazor.Controls.SpeechAddins) that extend controls with voice capabilities.

ControlDescription
SpeechToTextToolSpeech recognition tool for the ChatView input bar — listens for voice input and backfills chat messages with configurable auto-send, silence timeout, culture/language selection, and customizable listening appearance
TextToSpeechBubbleToolText-to-speech tool for ChatView message bubbles — reads message text aloud with configurable speech rate, pitch, volume, voice, and culture
TextEntrySpeechToTextToolSpeech recognition tool for any TextEntry control — appends recognized speech to the input field with listening state indicator and customizable appearance
Shiny.Maui.ControlsNuGet package Shiny.Maui.Controls

Add the XAML namespace to your pages:

xmlns:shiny="http://shiny.net/maui/controls"

For Markdown controls (separate package: Shiny.Maui.Controls.Markdown):

xmlns:md="http://shiny.net/maui/markdown"

For Mermaid Diagrams (separate package: Shiny.Maui.Controls.MermaidDiagrams):

xmlns:diagram="http://shiny.net/maui/diagrams"

For Speech Add-ins (separate package: Shiny.Maui.Controls.SpeechAddins), no additional XML namespace is needed — speech controls use the same shiny namespace as the core controls.

Install Shiny.Blazor.Controls (plus Shiny.Blazor.Controls.Markdown, Shiny.Blazor.Controls.MermaidDiagrams, or Shiny.Blazor.Controls.SpeechAddins as needed) and add the @using directives — typically in _Imports.razor:

@using Shiny.Blazor.Controls
@using Shiny.Blazor.Controls.Cells
@using Shiny.Blazor.Controls.Sections
@using Shiny.Blazor.Controls.Scheduler
@using Shiny.Blazor.Controls.Chat
@using Shiny.Blazor.Controls.Markdown
@using Shiny.Blazor.Controls.MermaidDiagrams
@using Shiny.Blazor.Controls.SpeechAddins

No DI registration is required — drop the components into any .razor page.

claude plugin marketplace add shinyorg/skills
claude plugin install shiny-controls@shiny
copilot plugin marketplace add https://github.com/shinyorg/skills
copilot plugin install shiny-controls@shiny
View shiny-controls Plugin