Skip to content

[dev-v5] Demo site - Implement static rendering - #4969

Draft
Denis Voituron (dvoituron) wants to merge 13 commits into
devfrom
users/dvoituron/dev-v5/docviewer-static-ssr
Draft

Denis Voituron (dvoituron) wants to merge 13 commits into
devfrom
users/dvoituron/dev-v5/docviewer-static-ssr

Conversation

@dvoituron

@dvoituron Denis Voituron (dvoituron) commented Jun 26, 2026 •

Copy link
Copy Markdown
Collaborator

[dev-v5] Demo site - Implement static rendering

In order to provide documentation that is more easily usable by MCP servers and other external tools, we switche the demo application's default render mode from Interactive Server to Static (SSR), and apply interactivity selectively only where it is actually needed: the navigation, the header, the providers/aside, and all samples.

Previously the whole Routes tree was rendered with InteractiveServerRenderMode. Now the page is statically rendered by default, and @rendermode is applied per-component.

TODO

  • Reactivate the Console button
  • Sample source code
  • Code highlight
Copilot AI review requested due to automatic review settings June 26, 2026 13:58
@github-actions

Copy link
Copy Markdown

✅ All tests passed successfully

Details on your Workflow / Core Tests page.

@github-actions

github-actions Bot commented Jun 26, 2026 •

Copy link
Copy Markdown

Summary - Unit Tests Code Coverage

Summary
Generated on: 09/24/2026 - 18:11:13
Parser: MultiReport (6x Cobertura)
Assemblies: 2
Classes: 329
Files: 384
Line coverage: 98.4% (12289 of 12485)
Covered lines: 12289
Uncovered lines: 196
Coverable lines: 12485
Total lines: 47072
Branch coverage: 92.3% (7318 of 7926)
Covered branches: 7318
Total branches: 7926
Method coverage: Feature is only available for sponsors
Tag: 7777_36038789830

Coverage

Microsoft.FluentUI.AspNetCore.Components - 98.4%
Name Line Branch
Microsoft.FluentUI.AspNetCore.Components 98.4% 92.2%
Microsoft.FluentUI.AspNetCore.Components.AdditionalAttributesExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.AdditionalAttributesExtensions.Add
itionalAttributeCondition
100% 100%
Microsoft.FluentUI.AspNetCore.Components.AdditionalAttributesExtensions.Add
itionalAttributeCondition.AdditionalAttributeConditionItem
100%
Microsoft.FluentUI.AspNetCore.Components.AutocompleteHeaderFooterContent<TO
ption>
100% 50%
Microsoft.FluentUI.AspNetCore.Components.CachedServices 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarExtended 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarTitles 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarTValue 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarTValue 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.ColorHelper 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.DefaultColors 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.HsvColor 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.WheelColor 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnBase 79.1% 75.8%
Microsoft.FluentUI.AspNetCore.Components.ColumnBase 99% 90.2%
Microsoft.FluentUI.AspNetCore.Components.ColumnHeaderCapabilities 100% 80%
Microsoft.FluentUI.AspNetCore.Components.ColumnKeyGridSort 96.1% 87.5%
Microsoft.FluentUI.AspNetCore.Components.ColumnMenuSettings 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnReorderOptions 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnResizeOptions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnResizeOptions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnSortMenuItems 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnSortMenuItems 93.5% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnSortOptions 100%
Microsoft.FluentUI.AspNetCore.Components.CustomEmoji 100% 100%
Microsoft.FluentUI.AspNetCore.Components.CustomIcon 100%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.Defer 100%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.Hierarchic
alSortHelper
88.8% 85%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.Hierarchic
alSortHelper
88.8% 85%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.InternalGr
idContext
100% 100%
Microsoft.FluentUI.AspNetCore.Components.DataGridSortColumn 0% 0%
Microsoft.FluentUI.AspNetCore.Components.DataGridSortEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.DateTimeProvider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DateTimeProviderContext 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.DefaultStyles 100%
Microsoft.FluentUI.AspNetCore.Components.DefaultValues 100% 96.1%
Microsoft.FluentUI.AspNetCore.Components.DefaultValues 100% 96.1%
Microsoft.FluentUI.AspNetCore.Components.DefaultValuesComponentBuilder<TCom
ponent, TValue>
100% 100%
Microsoft.FluentUI.AspNetCore.Components.DefaultValuesComponentBuilder<TCom
ponent>
100% 96.4%
Microsoft.FluentUI.AspNetCore.Components.Dialog.MessageBox.FluentMessageBox 100% 75%
Microsoft.FluentUI.AspNetCore.Components.DialogEventArgs 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.DialogInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptions 94.1%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsFooter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsFooterAction 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsHeader 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsHeaderAction 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogResult 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogResult 100%
Microsoft.FluentUI.AspNetCore.Components.DialogService 100% 82.8%
Microsoft.FluentUI.AspNetCore.Components.DynamicComponentRenderer 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Emoji 100% 100%
Microsoft.FluentUI.AspNetCore.Components.EmojiCompress 100% 100%
Microsoft.FluentUI.AspNetCore.Components.EmojiExtensions 100% 50%
Microsoft.FluentUI.AspNetCore.Components.EmojiInfo 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.DateTimeExtensions 98.4% 90.3%
Microsoft.FluentUI.AspNetCore.Components.Extensions.DisplayAttributeExtensi
ons
100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.Extensions.EnumExtensions 100% 92.3%
Microsoft.FluentUI.AspNetCore.Components.Extensions.FieldSizeExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.FluentInputExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FileSizeConverter 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAccordion 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAccordionItem 100% 95.8%
Microsoft.FluentUI.AspNetCore.Components.FluentAnchorButton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAppBar 97.2% 81.1%
Microsoft.FluentUI.AspNetCore.Components.FluentAppBarItem 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAutocomplete<TOption, TValue
>
97.5% 94.7%
Microsoft.FluentUI.AspNetCore.Components.FluentAutocomplete<TOption, TValue
>
92.8% 88.2%
Microsoft.FluentUI.AspNetCore.Components.FluentAvatar 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentBadge 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentButton 97.7% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendar 96.7% 76.6%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendar 96.6% 83.5%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarBase 100% 89.1%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarDay 100% 95.4%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarMonth 100% 85.7%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarYear 100% 91.6%
Microsoft.FluentUI.AspNetCore.Components.FluentCard 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCheckbox 100% 97.3%
Microsoft.FluentUI.AspNetCore.Components.FluentColorPicker 97.3% 94.8%
Microsoft.FluentUI.AspNetCore.Components.FluentColorPickerInput 98.5% 95.6%
Microsoft.FluentUI.AspNetCore.Components.FluentCombobox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCombobox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentComponentBase 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCompoundButton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCounterBadge 100% 95.2%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid 97.8% 94.7%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid 97.9% 94.4%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridCell 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridCell 97.2% 89.7%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridRow 96.9% 96.4%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridRow 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDatePicker 100% 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentDatePicker 96.6% 82.2%
Microsoft.FluentUI.AspNetCore.Components.FluentDialog 97.7% 89.8%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogBody 97.5% 94.4%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogProvider 95.3% 77.5%
Microsoft.FluentUI.AspNetCore.Components.FluentDivider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDragContainer 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDropZone 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDropZone 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentEmoji 100% 95%
Microsoft.FluentUI.AspNetCore.Components.FluentErrorBoundary 94.7% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentField 98.3% 95%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldCondition 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldConditionItem 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldConditionOptions 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldParameterSelector 97.7% 94.8%
Microsoft.FluentUI.AspNetCore.Components.FluentGrid 100% 90%
Microsoft.FluentUI.AspNetCore.Components.FluentGridItem 100% 98.4%
Microsoft.FluentUI.AspNetCore.Components.FluentHighlighter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentIcon 100%
Microsoft.FluentUI.AspNetCore.Components.FluentIcon 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentImage 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputBase 68.7% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentInputBase 89.2% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFile 98.6% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFileBuffer 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFileErrorEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputImmediateBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputImmediateBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputImmediateManager 97.6% 97%
Microsoft.FluentUI.AspNetCore.Components.FluentJSModule 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCode 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCodeEventArgs 100% 77.7%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCodeProvider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLabel 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLabelInfo 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLayout 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentLayoutHamburger 97.7% 89.4%
Microsoft.FluentUI.AspNetCore.Components.FluentLayoutItem 100% 91.6%
Microsoft.FluentUI.AspNetCore.Components.FluentLink 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentListBase<TOption, TValue> 100% 96.4%
Microsoft.FluentUI.AspNetCore.Components.FluentListBase<TOption, TValue> 89.5% 86.6%
Microsoft.FluentUI.AspNetCore.Components.FluentListbox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentListbox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLocalizerExtensions 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLocalizerInternal 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMenu 100% 90%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuButton 100% 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuItem 100% 92.5%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuList 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMessageBar 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMessageBarProvider 100% 92.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitter 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterPane 100% 85.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterResizeEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNav 98.6% 95.8%
Microsoft.FluentUI.AspNetCore.Components.FluentNavBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNavCategory 96.6% 91.2%
Microsoft.FluentUI.AspNetCore.Components.FluentNavItem 100% 91.4%
Microsoft.FluentUI.AspNetCore.Components.FluentNavSectionHeader 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInput 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInput 99.1% 89.5%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInputCultureInfo 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOption 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOption 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOptionString 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOverflow 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOverflow 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOverlay 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentPaginator 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.FluentPopover 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentPresenceBadge 100% 95.4%
Microsoft.FluentUI.AspNetCore.Components.FluentProgress 100%
Microsoft.FluentUI.AspNetCore.Components.FluentProgressBar 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentProgressRing 100%
Microsoft.FluentUI.AspNetCore.Components.FluentProviders 100%
Microsoft.FluentUI.AspNetCore.Components.FluentPullToRefresh 99.3% 91.7%
Microsoft.FluentUI.AspNetCore.Components.FluentRadio 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentRadioGroup 100% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentRadioGroup 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentRatingDisplay 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSelect<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSelect<TOption, TValue> 100% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentServiceBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentServiceBase 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentServiceProviderException<TPr
ovider>
100%
Microsoft.FluentUI.AspNetCore.Components.FluentSkeleton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSlider 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSlider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableList 91.6% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableList 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableListEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSpacer 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSpinner 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSplitButton 100%
Microsoft.FluentUI.AspNetCore.Components.FluentStack 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentStatus 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSwitch 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTab 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTabs 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentText 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTextArea 98.3% 61.5%
Microsoft.FluentUI.AspNetCore.Components.FluentTextInput 100% 82.1%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker.TimeEqualityCompa
rer
100% 58.3%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker 100% 72.7%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker 98.7% 71.1%
Microsoft.FluentUI.AspNetCore.Components.FluentToast 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.FluentToastProvider 99% 96.9%
Microsoft.FluentUI.AspNetCore.Components.FluentToggleButton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTooltip 97.9% 89.2%
Microsoft.FluentUI.AspNetCore.Components.FluentTooltipProvider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTreeItem 100% 94.7%
Microsoft.FluentUI.AspNetCore.Components.FluentTreeView 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationMessage 100%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationMessage 97.5% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationSummary 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentWizard 98.4% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStep 97.8% 92.7%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepChangeEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepValidator 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FreeOptionOutput 100%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderRequest<TGridItem
>
95.1% 87.5%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderResult 100%
Microsoft.FluentUI.AspNetCore.Components.GridSort<TGridItem, U> 87.5% 79.1%
Microsoft.FluentUI.AspNetCore.Components.GridSort 100% 100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridItem<TItem, TGridI
tem>
100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridItem<TItem, TGridI
tem>
100% 100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridUtilities 100% 100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridUtilities<TGridIte
m, TItem>
100% 100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalSelectColumn<TGridItem
>
100% 95.2%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalSelectColumn<TGridItem
>
98% 95.9%
Microsoft.FluentUI.AspNetCore.Components.HighlighterSplitter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Icon 100% 95%
Microsoft.FluentUI.AspNetCore.Components.IconFromImage 100%
Microsoft.FluentUI.AspNetCore.Components.IconInfo 100%
Microsoft.FluentUI.AspNetCore.Components.IconsExtensions 100% 50%
Microsoft.FluentUI.AspNetCore.Components.IFluentComponentBase 100%
Microsoft.FluentUI.AspNetCore.Components.IFluentComponentChangeAfterKeyPres
s
100% 100%
Microsoft.FluentUI.AspNetCore.Components.IFluentLocalizer 100% 100%
Microsoft.FluentUI.AspNetCore.Components.IGridSort 0%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
ibable
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
ibable
100%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
iber
100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.InputFileInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.InputFileOptions 100%
Microsoft.FluentUI.AspNetCore.Components.InternalAppBarContext 100% 100%
Microsoft.FluentUI.AspNetCore.Components.InternalListContext 100%
Microsoft.FluentUI.AspNetCore.Components.JSRuntimeExtensions 100% 25%
Microsoft.FluentUI.AspNetCore.Components.JSRuntimeExtensions 100% 25%
Microsoft.FluentUI.AspNetCore.Components.KeyCodeService 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.KeyCodeService.KeyCodeListener 100% 100%
Microsoft.FluentUI.AspNetCore.Components.KeyPress 100%
Microsoft.FluentUI.AspNetCore.Components.LabelInfo 100%
Microsoft.FluentUI.AspNetCore.Components.LayoutHamburgerEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.LibraryToastOptions 100%
Microsoft.FluentUI.AspNetCore.Components.LibraryTooltipOptions 100%
Microsoft.FluentUI.AspNetCore.Components.Localization.LanguageResource 100% 100%
Microsoft.FluentUI.AspNetCore.Components.MarkupSanitizedOptions 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBarEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBarInstance 94.1% 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBarOptions 94.4%
Microsoft.FluentUI.AspNetCore.Components.MessageBarResult 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBoxOptions 100%
Microsoft.FluentUI.AspNetCore.Components.Migration.AppearanceExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Migration.FluentInputAppearanceExt
ensions
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Migration.TooltipPositionExtension 100% 100%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 98.1% 97.4%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 98.1% 97.4%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 98.1% 97.4%
Microsoft.FluentUI.AspNetCore.Components.OptionsSearchEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.OverflowContext 100%
Microsoft.FluentUI.AspNetCore.Components.OverlayOptions 100%
Microsoft.FluentUI.AspNetCore.Components.PaginationState 100% 81.2%
Microsoft.FluentUI.AspNetCore.Components.PropertyColumn<TGridItem, TProp> 100% 75%
Microsoft.FluentUI.AspNetCore.Components.PropertyColumn<TGridItem, TProp> 100% 84.6%
Microsoft.FluentUI.AspNetCore.Components.RangeOfDates 96.5% 86.8%
Microsoft.FluentUI.AspNetCore.Components.SelectAllTemplateArgs 100%
Microsoft.FluentUI.AspNetCore.Components.SelectColumn.ItemKeyEqualityCompar
er
72.7% 66.6%
Microsoft.FluentUI.AspNetCore.Components.SelectColumn 88.7% 93.1%
Microsoft.FluentUI.AspNetCore.Components.SelectColumn 96% 85.8%
Microsoft.FluentUI.AspNetCore.Components.ServiceProviderExtensions 100%
Microsoft.FluentUI.AspNetCore.Components.SpacingExtensions 100% 97.3%
Microsoft.FluentUI.AspNetCore.Components.TemplateColumn 100% 100%
Microsoft.FluentUI.AspNetCore.Components.TemplateColumn 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Theme 100% 80%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeBorders 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeColors 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeCurves 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeFonts 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeLines 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeSpacings 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeStrokes 100%
Microsoft.FluentUI.AspNetCore.Components.ThemeExtensions 93.3% 94.4%
Microsoft.FluentUI.AspNetCore.Components.ThemeService 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.ThemeSettings 100%
Microsoft.FluentUI.AspNetCore.Components.ToastEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.ToastInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ToastOptions 94.7%
Microsoft.FluentUI.AspNetCore.Components.ToastResult 100%
Microsoft.FluentUI.AspNetCore.Components.TooltipEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.TotalItemCountChangedEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.TreeViewItem 100% 100%
Microsoft.FluentUI.AspNetCore.Components.TreeViewItemExpandedEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.AddTag 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.CssBuilder 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.Debounce 93.3% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.Identifier 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.IdentifierContext 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Utilities.InlineStyleBuilder 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.Utilities.MarkupStringSanitized 100% 92.5%
Microsoft.FluentUI.AspNetCore.Components.Utilities.MarkupStringSanitized.Pa
rsedContent
100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.RangeOf 96.5% 97.2%
Microsoft.FluentUI.AspNetCore.Components.Utilities.StyleBuilder 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ZIndex 100%
Microsoft.FluentUI.AspNetCore.Components.Charts - 100%
Name Line Branch
Microsoft.FluentUI.AspNetCore.Components.Charts 100% 95.6%
Microsoft.FluentUI.AspNetCore.Components.Charts.AreaChartSeries 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.ChartAxisValue 100% 90%
Microsoft.FluentUI.AspNetCore.Components.Charts.ChartAxisValueJsonConverter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.DataVizPaletteExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.DonutDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentAreaChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentCartesianChartBase 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentChartBase 100% 90%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentDonutChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentFunnelChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentGanttChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentHorizontalBarChart 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentHorizontalBarChartWit
hAxis
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FunnelDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FunnelSubValue 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.GanttChartDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.HorizontalBarChartDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.HorizontalBarChartSeries 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.HorizontalBarChartWithAxisD
ataPoint
100% 100%

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the FluentUI demo app to default to static (SSR) rendering and applies interactivity selectively (via @rendermode) to specific UI boundaries (header, navigation, providers/aside, and samples). This improves the demo’s suitability for external tooling by reducing always-interactive rendering.

Changes:

  • Switch the app-level routes rendering to static by default and apply @rendermode only where needed.
  • Introduce SampleContainer to enable per-sample interactive rendering while still using DynamicComponent.
  • Move system dark-mode detection in ThemeDesigner to first render.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
examples/Tools/FluentUI.Demo.DocViewer/Components/SampleContainer.razor.cs New wrapper component that resolves a sample component type from a serializable name inside an interactive boundary.
examples/Tools/FluentUI.Demo.DocViewer/Components/SampleContainer.razor Renders the resolved type via DynamicComponent or a not-found message.
examples/Tools/FluentUI.Demo.DocViewer/Components/MarkdownViewer.razor.cs Adds a parameter to pass a render mode through to sample rendering.
examples/Tools/FluentUI.Demo.DocViewer/Components/MarkdownViewer.razor Replaces direct DynamicComponent rendering with SampleContainer and applies @rendermode per sample.
examples/Demo/FluentUI.Demo/Components/App.razor Removes render mode from the whole Routes tree; applies render mode to HeadOutlet via DocViewer.DemoRenderMode.
examples/Demo/FluentUI.Demo.Client/Layout/DemoMainLayout.razor.cs Removes header-related JS logic from the layout code-behind (now handled in DemoHeader).
examples/Demo/FluentUI.Demo.Client/Layout/DemoMainLayout.razor Applies @rendermode to header/nav/aside/providers to keep the rest SSR by default.
examples/Demo/FluentUI.Demo.Client/Layout/DemoHeader.razor.cs New interactive header component containing JS interop for theme/dir switching and external navigation.
examples/Demo/FluentUI.Demo.Client/Layout/DemoHeader.razor New header markup extracted from the main layout.
examples/Demo/FluentUI.Demo.Client/DocViewer.razor Passes a centralized demo render mode into MarkdownViewer and exposes the render mode for other components.
examples/Demo/FluentUI.Demo.Client/Documentation/General/Theme/Designer/ThemeDesigner.razor.cs Defers system dark-mode detection to OnAfterRenderAsync(firstRender).
Comment on lines +34 to +41
protected override void OnParametersSet()
{
_componentType = DocViewerService.ComponentsAssembly?
.GetTypes()
.Where(t => t.IsSubclassOf(typeof(ComponentBase)) && !t.IsAbstract)
.FirstOrDefault(i => i.Name == ComponentName);
}
}
}
else
{
<div class="component-not-found">&#9888; The component {{ @ComponentName }} was not found.</div>

@code
{
public static IComponentRenderMode DemoRenderMode = new InteractiveServerRenderMode(false);
@vnbaaij Vincent Baaij (vnbaaij) added this to the v5.0-RC.5 milestone Jul 28, 2026
@dvoituron
Denis Voituron (dvoituron) changed the base branch from dev-v5 to dev September 17, 2026 10:09
@vnbaaij Vincent Baaij (vnbaaij) added the v5 For the next major version label Sep 18, 2026
@vnbaaij Vincent Baaij (vnbaaij) removed the v5 For the next major version label Sep 24, 2026
@vnbaaij Vincent Baaij (vnbaaij) modified the milestones: v5.0, v5.0.x Sep 25, 2026
@vnbaaij Vincent Baaij (vnbaaij) added the status:in-progress Work is in progress label Sep 25, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:in-progress Work is in progress

3 participants