Goal: Build the components and tooling needed for a Tailwind-first Blazor design system.
.NET 10 · Tailwind CSS 4.3.2
ComponentRegistry is the source of truth for component availability, names, and dependencies. The current registry contains 194 entries:
- 90 direct CLI targets shown by
shellui list - 104 hidden entries for sub-components, variants, models, services, and support assets
- Packable projects:
ShellUI.CLIandShellUI.Components
Hidden entries are not counted as direct targets. They can still be installed recursively when a parent target declares them.
The following categories describe the direct targets in the current registry, not a promise about future scope.
- Form (26): Button, ButtonGroup, ChatInput, Checkbox, Combobox, DataPicker, DatePicker, DateRangePicker, FileUpload, Form, Input, InputGroup, InputOTP, Label, MultiSelect, NumberInput, RadioGroup, Select, Slider, Switch, TagInput, Textarea, TimePicker, Toggle, ToggleGroup, TypedSelect
- Layout (13): Accordion, AspectRatio, Breadcrumb, Card, Collapsible, DashboardLayout01, DashboardLayout02, LinkCard, Navbar, Resizable, ScrollArea, Separator, Sidebar
- Feedback (9): Alert, Callout, EmptyState, Loading, Progress, Skeleton, Sonner, Toast, Tooltip
- Overlay (9): AlertDialog, Command, CommandPalette, Dialog, Drawer, Dropdown, HoverCard, Popover, Sheet
- Navigation (8): ContextMenu, Menubar, NavigationMenu, Pagination, PrevNextNav, Stepper, Tabs, TreeView
- Data Display (21): AreaChart, Avatar, Badge, BarChart, Calendar, Carousel, Chart, ChartSeries, Chat, ChatMessage, DataTable, DonutChart, LineChart, MultiSeriesChart, PieChart, QrCode, RadarChart, RadialChart, StatCard, Table, Timeline
- Typography (1): Kbd
- Media (1): ImageViewer
- Utility (2): CopyButton, ThemeToggle
- Kbd — keyboard key hint
- AspectRatio — fixed-ratio container
- ButtonGroup — joined buttons, horizontal or vertical
- ToggleGroup — single or multiple selection (
ToggleGroupItem) - InputGroup — input with prefix and suffix slots
- NumberInput — increment/decrement input with min, max and step
- StatCard — KPI tile with value, change and trend
- Timeline — vertical event timeline (
TimelineItem) - TreeView — expandable, selectable tree (
TreeViewItem) - QrCode — QR code rendered as SVG (QRCoder)
- ImageViewer — thumbnail with zoomable lightbox
- Chat, ChatMessage, ChatInput — AI chat panel, message bubbles with streaming indicator, and a prompt input (Enter sends, Shift+Enter adds a newline)
Documentation-site components are implemented in ShellDocs, which builds on ShellUI. They are not ShellUI CLI targets.
- CodeBlock —
CodeGroup,CodeTab, and syntax highlighting viaCodeBlockEnhancer - MarkdownRenderer —
MarkdownContent - FileTree —
FileTree,FileTreeItem - Full-text SearchDialog —
SearchDialogbacked bySearchIndex - TableOfContents
- DocsSidebar, DocsHeader, DocsBreadcrumb wrappers
- TypeTable —
TypeTableandAutoTypeTable - Tabs (Docs variant) —
CodeGroup/CodeTab - ShellDocs pipeline — frontmatter parsing, routing, search index, and live previews (
ComponentPreview,PreviewFrame)
ShellUI building blocks used by ShellDocs: Callout, CopyButton, LinkCard, PrevNextNav, Breadcrumb, Tabs, Stepper, Command/CommandPalette, Sidebar, Navbar, ThemeToggle and Table.
The current registry provides explicit sub-components for these parent components. Where a parent declares them, the installer resolves them recursively; other parents may expose parts through a separate composition path.
- Tabs —
TabsList,TabsTrigger,TabsContent, value-based state - Stepper —
StepperList,StepperStep,StepperContent, optional confirmation on the last step - Collapsible —
CollapsibleTrigger,CollapsibleContent - Dialog —
DialogTrigger,DialogContent,DialogHeader,DialogTitle,DialogDescription,DialogFooter,DialogClose - Card —
CardHeader,CardTitle,CardDescription,CardContent,CardFooter - Accordion —
AccordionItem,AccordionTrigger,AccordionContent - Dropdown —
DropdownTrigger,DropdownContent,DropdownItem - Popover —
PopoverTrigger,PopoverContent - HoverCard —
HoverCardTrigger,HoverCardContent - Drawer and Sheet — explicit trigger/content and variant support
These parts exist in the ShellUI.Components NuGet package, but their CLI templates are empty placeholders, so CLI installs only get the parent component.
- Select —
SelectTrigger,SelectContent,SelectItem(the native select works in both) - ContextMenu —
ContextMenuTrigger,ContextMenuContent,ContextMenuOption - NavigationMenu —
NavList,NavItem,NavTrigger,NavContent - Carousel —
CarouselList,CarouselSlide
The intended pattern is explicit child components, cascaded state and callbacks, value/label parameters, and Tailwind utility classes matching the shadcn-style API.
These are unscheduled ideas. They are not current registry targets, and no date or release commitment is implied.
- PromptSuggestions — clickable suggestion chips for empty chats
- Reasoning / ToolCall — collapsible blocks for model reasoning and tool results
- CodeBlock (ShellUI) — copyable code block for chat responses
- Field — label, description and validation message wrapper
- ColorPicker — swatches and HEX/RGB input
- Rating — star rating input
- SignaturePad — draw-to-sign canvas
- VirtualList — wrapper over Blazor
Virtualizewith ShellUI styling - InfiniteScroll — load more on scroll
- KanbanBoard — drag-and-drop columns and cards
- SortableList — drag-and-drop reordering
- JsonViewer — collapsible JSON tree with copy
- VideoPlayer — video playback with ShellUI controls
- AudioPlayer — audio playback with waveform-style progress
- ImageGallery — grid of images sharing one lightbox with next/previous
- Barcode — barcode display
- RichTextEditor — WYSIWYG editor
- Derive direct counts, names, categories, availability, and dependencies from
ComponentRegistry. - Move an idea into the implemented section only when it has a registered target and a working CLI installation path.
- Do not infer that a component is standalone from a prose list; use the dependency metadata described in COMPONENT_DEPENDENCIES.md.
- Keep future ideas explicitly unscheduled until a release owner assigns a scope and date.