Compatibility

Every GPUI Kit component, the Avalonia control that carries its look, and how far the port goes.

The table lists each GPUI Kit component the library ports, the Avalonia control (or the new gpui: control) that carries its look, and the optional package when the theme is not in AvaloniaUIKit itself. A control written as TextBox.group is the control with that style class; one written as ProgressBar (GpuiSpinner) is the control with that named theme.

The status means:

  • Full: the control's look and motion are covered.
  • Partial: the documented part of the control is themed. The GPUI Kit features beyond it are listed on the component's page under "Not covered", and the theme does not try to rebuild them.
  • New control: a small control the library adds because Avalonia has no counterpart.
ComponentGPUI KitAvaloniaStatusPackage
AccordionAccordionExpander, StackPanel.accordionPartial–
AlertAlertgpui:AlertNew control–
AvatarAvatar, AvatarGroupgpui:Avatar, gpui:AvatarGroupNew control–
BadgeBadgegpui:BadgeNew control–
BreadcrumbBreadcrumbgpui:Breadcrumb, gpui:BreadcrumbItemNew control–
BubbleBubblegpui:BubbleNew control–
ButtonButtonButtonFull–
Button GroupButtonGroupStackPanel.button-groupPartial–
CalendarCalendarCalendarPartial–
CarouselCarouselCarousel, PipsPager.carouselPartial–
CheckboxCheckboxCheckBoxFull–
ClipboardClipboardgpui:ClipboardNew control–
CollapsibleCollapsibleExpander (GpuiCollapsible)Partial–
Color PickerColorPickerColorPickerPartialAvaloniaUIKit.ColorPicker
ComboboxComboboxComboBox.combobox, AutoCompleteBoxPartial–
Data TableDataTableTableView, DataGridPartialAvaloniaUIKit.DataGrid
Date PickerDatePickerCalendarDatePickerPartial–
Description ListDescriptionListgpui:DescriptionListNew control–
Dropdown ButtonDropdownButtonSplitButtonFull–
EmptyEmptygpui:EmptyStateNew control–
FormForm, Fieldgpui:Form, gpui:FormFieldNew control–
Group BoxGroupBoxGroupBoxFull–
Hover CardHoverCardgpui:HoverCardNew control–
IconIconPathIconPartial–
ImageImageImagePartial–
InputInputTextBoxPartial–
Input GroupInputGroupTextBox.groupPartial–
KbdKbdgpui:KbdNew control–
LabelLabelTextBlock.label, LabelPartial–
LinkLinkHyperlinkButtonFull–
ListListListBoxPartial–
MarkerMarkergpui:MarkerNew control–
MenuMenu, ContextMenu, DropdownMenu, AppMenuBarMenu, ContextMenu, MenuFlyoutFull–
MessageMessagegpui:MessageNew control–
NotificationNotificationWindowNotificationManager, NotificationCardPartial–
Number InputNumberInputNumericUpDownFull–
PaginationPaginationPipsPagerPartial–
PopoverPopoverFlyoutPartial–
ProgressProgressProgressBarFull–
Progress CircleProgressCircleProgressBar (GpuiProgressCircle)Partial–
RadioRadioRadioButtonFull–
RatingRatinggpui:RatingNew control–
ResizableResizableGridSplitterPartial–
ScrollableScrollable, ScrollbarScrollViewerFull–
SelectSelectComboBoxPartial–
SeparatorSeparatorSeparatorFull–
SheetSheetDrawerPage.sheetPartial–
ShimmerShimmergpui:ShimmerTextNew control–
SidebarSidebarSplitView, DrawerPagePartial–
SkeletonSkeletongpui:SkeletonNew control–
SliderSliderSliderPartial–
SpinnerSpinnerProgressBar (GpuiSpinner)Full–
Status BarStatusBargpui:StatusBarNew control–
StepperSteppergpui:StepperNew control–
SwitchSwitchToggleSwitchFull–
TableTableTableView (GpuiTable)Partial–
TabsTabs, TabBarTabStrip, TabControlPartial–
TagTaggpui:TagLabelNew control–
TextareaTextareaTextBox (AcceptsReturn)Partial–
Time FieldTimeFieldTimePickerPartial–
Title BarTitleBarWindowDrawnDecorationsPartial–
ToggleToggleToggleButtonFull–
Toggle GroupToggleGroupListBox.toggle-groupPartial–
ToolbarToolbarCommandBarPartial–
TooltipTooltipToolTipFull–
TreeTreeTreeViewPartial–
Virtual ListVirtualListListBox, VirtualizingStackPanelPartial–

Not covered

GPUI Kit components that need a mechanism of their own (a modal layer, search, docking, an editor, charts) are not ported:

  • Dialog / AlertDialog
  • OtpInput
  • Command
  • Dock
  • Settings
  • Questionnaire
  • Editor
  • TextView / Markdown
  • Chart
  • Plot
  • Speech
  • Attachment
  • MessageScroller