API Reference

February 26, 2026 · View on GitHub

Complete reference for all public types, interfaces, classes, and methods in UXDivers Popups.


Index

Core Library (UXDivers.Popups)

MAUI Implementation (UXDivers.Popups.Maui)

UI Controls (UXDivers.Popups.Maui.Controls)


Core Library (UXDivers.Popups)

Interfaces

IPopupService

Central service for popup navigation operations.

Namespace: UXDivers.Popups.Services

Static Properties

PropertyTypeDescription
CurrentIPopupServiceStatic instance of the popup service

Properties

PropertyTypeDescription
NavigationStackIReadOnlyList<IPopupPage>Current popup navigation stack

Methods

MethodReturnsDescription
PushAsync(IPopupPage, Dictionary<string, object?>?)TaskPush a popup instance onto the stack
PushAsync<T>(IPopupResultPage<T>, Dictionary<string, object?>?)Task<T?>Push a popup and return its result
PushAsync<TPopup>(Dictionary<string, object?>?)TaskPush a popup by type (DI resolution)
PushAsync<TPopup, TResult>(Dictionary<string, object?>?)Task<TResult?>Push a popup by type and return result
PopAsync(IPopupPage?)TaskPop a popup from the stack
Initialize(INativePopupManager, IUIThreadDispatcher, IViewModelAssignmentStrategy?)voidInitialize the service with platform dependencies

Events

EventTypeDescription
PopupPushedEventHandler<PopupEventArgs>Raised when a popup is pushed
PopupPoppedEventHandler<PopupEventArgs>Raised when a popup is popped
StackChangedEventHandler<PopupStackChangedEventArgs>Raised when stack changes
PopupOpeningEventHandler<PopupEventArgs>Raised before popup opens
PopupOpenedEventHandler<PopupEventArgs>Raised after popup opens
PopupClosingEventHandler<PopupEventArgs>Raised before popup closes
PopupClosedEventHandler<PopupEventArgs>Raised after popup closes

IPopupPage

Contract for popup pages.

Namespace: UXDivers.Popups.Controls

Properties

PropertyTypeDescription
BackgroundOpacitydouble?Overlay opacity
BackgroundColorobjectBackground color
AppearingAnimationIBaseAnimationAnimation when appearing
DisappearingAnimationIBaseAnimationAnimation when disappearing
CloseWhenBackgroundIsClickedboolAuto-close on background tap
BackgroundClickedCommandICommandCommand for background tap
BackgroundClickedCommandParameterobjectParameter for background command
BackgroundInputTransparentboolAllow taps through background
DisableWhenIsAnimatingboolDisable interaction during animation
SafeAreaAsPaddingSafeAreaAsPaddingSafe area edge handling
AvoidKeyboardboolAdjust content position to avoid virtual keyboard
PopupContentView?Content of the popup
ActualContentView?Actual visual content

Methods

MethodReturnsDescription
OnAppearing()voidCalled when popup appears
OnDisappearing()voidCalled when popup disappears
OnNavigatedTo(IReadOnlyDictionary<string, object?>)voidCalled with navigation parameters
SetInteractionEnabled(bool)voidEnable/disable interactions
OnPopupOpeningAsync(PopupEventArgs)TaskCalled before popup opens
OnPopupOpenedAsync(PopupEventArgs)TaskCalled after popup opens
OnPopupClosingAsync(PopupEventArgs)TaskCalled before popup closes
OnPopupClosedAsync(PopupEventArgs)TaskCalled after popup closes

Events

EventTypeDescription
PopupOpeningEventHandler<PopupEventArgs>Popup is opening
PopupOpenedEventHandler<PopupEventArgs>Popup has opened
PopupClosingEventHandler<PopupEventArgs>Popup is closing
PopupClosedEventHandler<PopupEventArgs>Popup has closed
PopupBackgroundClickedEventHandler<PopupEventArgs>Background was clicked

IPopupResultPage<T>

Contract for popups that return a typed result.

Namespace: UXDivers.Popups.Controls

Extends: IPopupPage

Properties

PropertyTypeDescription
ResultT?The result value

Methods

MethodReturnsDescription
SetResult(T?)voidSets the popup result

IPopupViewModel

Interface for ViewModels that receive navigation parameters.

Namespace: UXDivers.Popups

Methods

MethodReturnsDescription
OnPopupNavigatedAsync(IReadOnlyDictionary<string, object?>)TaskCalled with navigation parameters

IPopupRegistryService

Service for registering popup-viewmodel associations.

Namespace: UXDivers.Popups.Services

Static Properties

PropertyTypeDescription
CurrentIPopupRegistryServiceStatic instance of the service

Methods

MethodReturnsDescription
AddTransient<TPopup, TViewModel>()IPopupRegistryServiceRegister popup/VM as transient
AddSingleton<TPopup, TViewModel>()IPopupRegistryServiceRegister popup/VM as singleton
AddSingleton<TPopup, TViewModel>(instance)IPopupRegistryServiceRegister with existing VM instance
UseServiceProvider(Func<Type, object?>)IPopupRegistryServiceConfigure DI service provider

IBaseAnimation

Contract for popup animations.

Namespace: UXDivers.Popups

Properties

PropertyTypeDescription
DurationintAnimation duration in milliseconds
EasingEasingTypeEasing function
AnimateOnlyContentboolAnimate only content or entire popup

Methods

MethodReturnsDescription
RunAnimation(IPopupPage)TaskExecute the animation
PrepareAnimation(IPopupPage)voidPrepare the animation state

INativePopupManager

Manages native popup display across platforms.

Namespace: UXDivers.Popups.Services

Methods

MethodReturnsDescription
ShowNativeViewAsync(IPopupPage)Task<object>Display popup as native view
CloseNativeViewAsync(object)TaskClose and remove native view

IUIThreadDispatcher

Framework-agnostic UI thread dispatcher.

Namespace: UXDivers.Popups.Services

Methods

MethodReturnsDescription
Dispatch(Action)boolSchedule action on UI thread
Dispatch(Func<Task>)boolSchedule async action on UI thread
DispatchAsync<T>(Func<T>)Task<T>Execute function with result
DispatchAsync(Func<Task>)TaskExecute async action
DispatchAsync<T>(Func<Task<T>>)Task<T>Execute async function with result

Classes

PopupPage

Main popup control with lifecycle events and animations.

Namespace: UXDivers.Popups

Extends: ContentView

Implements: IPopupPage

Bindable Properties

PropertyTypeDefaultDescription
BackgroundOpacityPropertydouble?nullOverlay opacity
AppearingAnimationPropertyIBaseAnimationnullAppearing animation
DisappearingAnimationPropertyIBaseAnimationnullDisappearing animation
CloseWhenBackgroundIsClickedPropertyboolfalseClose on background tap
BackgroundClickedCommandPropertyICommandnullBackground click command
BackgroundClickedCommandParameterPropertyobjectnullCommand parameter
BackgroundInputTransparentPropertyboolfalseInput transparency
DisableWhenIsAnimatingPropertybooltrueDisable during animation
SafeAreaAsPaddingPropertySafeAreaAsPaddingTop|Right|Left|BottomSafe area handling
AvoidKeyboardPropertyboolfalseAdjust content position to avoid virtual keyboard

Virtual Methods

MethodDescription
OnAppearing()Override for appearing logic
OnDisappearing()Override for disappearing logic
OnNavigatedTo(IReadOnlyDictionary<string, object?>)Override for navigation parameters
OnPopupOpeningAsync(PopupEventArgs)Override for opening logic
OnPopupOpenedAsync(PopupEventArgs)Override for opened logic
OnPopupClosingAsync(PopupEventArgs)Override for closing logic
OnPopupClosedAsync(PopupEventArgs)Override for closed logic

PopupResultPage<T>

Generic popup that returns a typed result.

Namespace: UXDivers.Popups

Extends: PopupPage

Implements: IPopupResultPage<T>

Bindable Properties

PropertyTypeDescription
ResultPropertyT?The result value

Methods

MethodDescription
SetResult(T?)Sets the popup result before closing

PopupEventArgs

Event arguments for popup events.

Namespace: UXDivers.Popups.Controls

Properties

PropertyTypeDescription
PopupPageIPopupPageThe popup associated with the event

PopupStackChangedEventArgs

Event arguments for stack changes.

Namespace: UXDivers.Popups.Services

Properties

PropertyTypeDescription
StackIReadOnlyList<IPopupPage>Current popup stack

Enums

EasingType

Animation easing functions.

Namespace: UXDivers.Popups

ValueDescription
DefaultDefault easing
LinearConstant speed
BounceInBounce effect at start
BounceOutBounce effect at end
CubicInCubic acceleration
CubicOutCubic deceleration
CubicInOutCubic acceleration/deceleration
SinInSinusoidal acceleration
SinOutSinusoidal deceleration
SinInOutSinusoidal acceleration/deceleration
SpringInSpring effect at start
SpringOutSpring effect at end

SafeAreaAsPadding

Specifies which edges respect safe area insets.

Namespace: UXDivers.Popups

Flags Enum

ValueBinaryDescription
None0No safe area insets
Top1Top edge
Left2Left edge
Right4Right edge
Bottom8Bottom edge
All15All edges

RegistryLifetime

Service/popup registration lifetime.

Namespace: UXDivers.Popups

ValueDescription
SingletonSingle instance reused
TransientNew instance each time

MAUI Implementation (UXDivers.Popups.Maui)

Animations

PopupBaseAnimation

Abstract base class for all popup animations.

Namespace: UXDivers.Popups

Implements: IBaseAnimation, IMarkupExtension<IBaseAnimation>

Bindable Properties

PropertyTypeDefaultDescription
DurationPropertyint500Duration in milliseconds
EasingPropertyEasingTypeDefaultEasing function
AnimateOnlyContentPropertybooltrueAnimate only content

Abstract Methods

MethodReturnsDescription
CreateAnimation(VisualElement, PopupPage)AnimationCreates the animation logic
PrepareAnimation(VisualElement, PopupPage)voidPrepares animation state

StoryboardAnimation

Combines multiple animations with parallel or sequential execution.

Namespace: UXDivers.Popups

Implements: IBaseAnimation, IMarkupExtension<IBaseAnimation>

Properties

PropertyTypeDescription
Animation1 - Animation5IBaseAnimation?Animations in storyboard
StrategyStoryboardStrategyExecution strategy
AnimateOnlyContentboolAnimate only content
DurationintTotal duration (calculated)
EasingEasingTypeEasing type

FadeInPopupAnimation

Fades popup from transparent to opaque (0 → 1).

Namespace: UXDivers.Popups

Extends: FadeToPopupAnimation


FadeOutPopupAnimation

Fades popup from opaque to transparent (1 → 0).

Namespace: UXDivers.Popups

Extends: FadeToPopupAnimation


FadeToPopupAnimation

Base class for fade animations.

Namespace: UXDivers.Popups

Extends: PopupBaseAnimation

Properties

PropertyTypeDescription
InitialOpacitydouble?Starting opacity (0-1)
FinalOpacitydouble?Target opacity (0-1)

MoveInPopupAnimation

Moves popup in from a specified direction.

Namespace: UXDivers.Popups

Extends: TranslateToPopupAnimation

Properties

PropertyTypeDescription
MoveDirectionMoveDirectionDirection to move from
TranslationFromCenterdouble?Distance from center

MoveOutPopupAnimation

Moves popup out to a specified direction.

Namespace: UXDivers.Popups

Extends: TranslateToPopupAnimation

Properties

PropertyTypeDescription
MoveDirectionMoveDirectionDirection to move to
TranslationFromCenterdouble?Distance from center

TranslateToPopupAnimation

Base class for translation animations.

Namespace: UXDivers.Popups

Extends: PopupBaseAnimation

Properties

PropertyTypeDescription
TranslationXdouble?Target horizontal offset
TranslationYdouble?Target vertical offset

ScaleInPopupAnimation

Scales popup from smaller to normal size.

Namespace: UXDivers.Popups

Extends: ScaleToPopupAnimation

Properties

PropertyTypeDefaultDescription
ScaleFromdouble?0.6Starting scale value

ScaleOutPopupAnimation

Scales popup from normal to smaller size.

Namespace: UXDivers.Popups

Extends: ScaleToPopupAnimation

Properties

PropertyTypeDefaultDescription
ScaleTodouble?0.6Ending scale value

ScaleToPopupAnimation

Base class for scale animations.

Namespace: UXDivers.Popups

Extends: PopupBaseAnimation

Properties

PropertyTypeDescription
Scaledouble?Uniform scale for X and Y
ScaleXdouble?Horizontal scale
ScaleYdouble?Vertical scale

RotateToAnimation

Animates rotation on Z, X, and/or Y axes.

Namespace: UXDivers.Popups

Extends: PopupBaseAnimation

Properties

PropertyTypeDescription
Rotationdouble?Z-axis rotation (degrees)
RotationXdouble?X-axis rotation (degrees)
RotationYdouble?Y-axis rotation (degrees)

AppearingPopupAnimation

Combined animation: fade in + scale in + move in (parallel).

Namespace: UXDivers.Popups

Extends: StoryboardAnimation

Properties

PropertyTypeDescription
AppearingDirectionMoveDirectionDirection popup appears from

DisappearingPopupAnimation

Combined animation: fade out + scale out + move out (parallel).

Namespace: UXDivers.Popups

Extends: StoryboardAnimation

Properties

PropertyTypeDescription
DisappearingDirectionMoveDirectionDirection popup disappears to

Enums (MAUI)

MoveDirection

Direction for move animations.

Namespace: UXDivers.Popups

ValueDescription
LeftFrom/to left side
TopFrom/to top side
RightFrom/to right side
BottomFrom/to bottom side

StoryboardStrategy

Animation storyboard execution strategy.

Namespace: UXDivers.Popups

ValueDescription
RunAllAtStartRun all animations in parallel
RunAllSequentiallyRun animations one after another

Extension Methods

HostBuilderExtensions

Extension methods for MAUI app configuration.

Namespace: UXDivers.Popups

MethodReturnsDescription
UseUXDPopupsForMaui(this MauiAppBuilder)MauiAppBuilderConfigure core UXD Popups
UXDPopupsUseMauiServices(this IServiceCollection)IServiceCollectionConfigure registry with MAUI services

Namespace: UXDivers.Popups.Maui.Controls

MethodReturnsDescription
UseUXDiversPopups(this MauiAppBuilder, bool closePopupOnBackAndroid = true)MauiAppBuilderConfigure UXD Popups. On Android, closes the topmost popup on back button press by default.

ServiceCollectionExtensions

DI registration extension methods.

Namespace: UXDivers.Popups

MethodReturnsDescription
AddTransientPopup<TPopup>()IServiceCollectionRegister popup as transient
AddTransientPopup<TPopup, TViewModel>()IServiceCollectionRegister popup/VM as transient
AddSingletonPopup<TPopup>()IServiceCollectionRegister popup as singleton
AddSingletonPopup<TPopup, TViewModel>()IServiceCollectionRegister popup/VM as singleton
AddSingletonPopup<TPopup>(instance)IServiceCollectionRegister popup instance
AddSingletonPopup<TPopup, TViewModel>(vmInstance)IServiceCollectionRegister with VM instance
AddSingletonPopup<TPopup, TViewModel>(popupInstance)IServiceCollectionRegister popup instance with VM type
AddSingletonPopup<TPopup, TViewModel>(popup, vm)IServiceCollectionRegister both instances

Helpers

TypeTemplateSelector

DataTemplate selector based on item type.

Namespace: UXDivers.Popups

Properties

PropertyTypeDescription
ItemsList<TypeTemplateSelectorItem>Type-to-template mappings

TypeTemplateSelectorItem

Type-to-template mapping item.

Namespace: UXDivers.Popups

Properties

PropertyTypeDescription
TargetTypeType?Type to match
TemplateDataTemplate?Template for the type

UI Controls (UXDivers.Popups.Maui.Controls)

Toast

Lightweight notification popup.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDescription
IconTextstringIcon glyph
IconColorColorIcon color
TitlestringTitle text

FloaterPopup

Floating notification with icon and message.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDescription
IconTextstringIcon glyph
IconColorColorIcon color
TitlestringTitle text
TextstringMain text content

SimpleTextPopup

Simple informational popup with title and text.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDefaultDescription
CloseButtonIconTextstringnullClose button icon
CloseButtonIconColorColornullClose button color
CloseButtonCommandICommandPopAsyncClose button command
TitlestringnullTitle text
TextstringnullMain text content

SimpleActionPopup

Two-button confirmation dialog.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDefaultDescription
TitlestringnullTitle text
TextstringnullMain text content
ActionButtonCommandICommandPopAsyncPrimary button command
ActionButtonTextstringnullPrimary button text
ShowActionButtonbooltrueShow primary button
SecondaryActionButtonCommandICommandPopAsyncSecondary button command
SecondaryActionButtonTextstringnullSecondary button text
ShowSecondaryActionButtonbooltrueShow secondary button

IconTextPopup

Popup with prominent icon, title, and text content.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDefaultDescription
IconTextstringnullIcon glyph
IconColorColornullIcon color
TitlestringnullTitle text
TextstringnullMain text content
ActionButtonCommandICommandPopAsyncAction button command
ActionButtonTextstringnullAction button text
ShowActionButtonbooltrueShow action button

ActionModalPopup

Modal popup with title, close button, and customizable action area.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDefaultDescription
TitlestringnullTitle text
CloseButtonIconTextstringnullClose button icon
CloseButtonIconColorColornullClose button color
CloseButtonCommandICommandPopAsyncClose button command
ActionButtonCommandICommandPopAsyncAction button command
ActionButtonTextstringnullAction button text
ShowActionButtonbooltrueShow action button

ListActionPopup

Popup displaying a scrollable list with action button.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDefaultDescription
TitlestringnullTitle text
CloseButtonIconTextstringnullClose button icon
CloseButtonIconColorColornullClose button color
CloseButtonCommandICommandPopAsyncClose button command
ActionButtonCommandICommandPopAsyncAction button command
ActionButtonTextstringnullAction button text
ShowActionButtonbooltrueShow action button
ItemDataTemplateDataTemplatenullTemplate for list items
ItemsSourceIEnumerablenullItems collection

OptionSheetPopup

Bottom sheet popup with grouped selectable options.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupPage

Bindable Properties

PropertyTypeDefaultDescription
TitlestringnullTitle text
CloseButtonIconTextstringnullClose button icon
CloseButtonIconColorColornullClose button color
CloseButtonCommandICommandPopAsyncClose button command
ItemsIEnumerablenullOptions collection
ItemDataTemplateDataTemplatenullTemplate for option items

Properties

PropertyTypeDescription
GroupsIEnumerable<OptionSheetGroup>?Computed groups (read-only)

FormPopup

Form popup for collecting user input. Returns List<string?>.

Namespace: UXDivers.Popups.Maui.Controls

Extends: PopupResultPage<List<string?>>

Bindable Properties

PropertyTypeDefaultDescription
TitlestringnullTitle text
TextstringnullDescriptive text
ActionButtonCommandICommandOnMainActionClickedSubmit button command
ActionButtonTextstringnullSubmit button text
ShowActionButtonbooltrueShow submit button
SecondaryActionTextstringnullSecondary action label
SecondaryActionLinkTextstringnullSecondary action link text
SecondaryActionLinkCommandICommandnullSecondary action command
ItemsIEnumerablenullForm fields collection
ItemDataTemplateDataTemplatenullTemplate for form fields

Models

FormField

Model for form input fields.

Namespace: UXDivers.Popups.Maui.Controls

Properties

PropertyTypeDescription
Placeholderstring?Placeholder text
Iconstring?Field icon
IconColorColor?Icon color
Valuestring?Current field value
IsPasswordboolMask input as password

OptionSheetItem

Selectable option item.

Namespace: UXDivers.Popups.Maui.Controls

Implements: IOptionSheetGroupableItem

Properties

PropertyTypeDescription
Textstring?Display text
Iconstring?Item icon
IconColorColor?Icon color
CommandICommand?Selection command
CommandParameterobject?Command parameter
GroupNamestring?Group for categorization

OptionSheetGroup

Container for grouped options.

Namespace: UXDivers.Popups.Maui.Controls

Properties

PropertyTypeDescription
ItemsIEnumerable<object>Items in this group

IOptionSheetGroupableItem

Contract for groupable option items.

Namespace: UXDivers.Popups.Maui.Controls

Properties

PropertyTypeDescription
GroupNamestring?Group name for categorization

Themes

DarkTheme

ResourceDictionary with dark theme colors, spacing, and fonts.

Namespace: UXDivers.Popups.Maui.Controls

Color Resources

KeyDefaultDescription
PrimaryColor#3479FFPrimary accent color
PrimaryVariantColor#172949Primary variant
BackgroundColor#0A0A0AMain background
BackgroundSecondaryColor#181A1FSecondary background
BackgroundTertiaryColor#262930Tertiary background
PopupBackdropColor#AA000000Popup overlay
PopupBorderColor#262930Popup border
TextColor#FFFFFFPrimary text
TextSecondaryColor#AAB3CDSecondary text
TextTertiaryColor#8B95AETertiary text
EntryPlaceholderColor#5D5D5DEntry placeholder

Font Resources

KeyDescription
IconsFontFamilyIcons font family name
AppFontFamilyMain font family name
AppSemiBoldFamilySemi-bold font family name
UXDPopupsCloseIconButtonClose icon glyph
UXDPopupsCheckCircleIconButtonCheck circle icon glyph

Spacing Resources

KeyDefaultDescription
AirSpacing30General air spacing
PopupAirSpacing24Popup padding
SpacingXBig24Extra large spacing
SpacingBig20Large spacing
SpacingMedium16Medium spacing
SpacingSmall12Small spacing

Corner Radius Resources

KeyDefaultDescription
CornerRadiusXBig20Extra large radius
CornerRadiusBig16Large radius
BaseButtonCornerRadius20Button corner radius

PopupStyles

ResourceDictionary with control templates and styles for all popup types.

Namespace: UXDivers.Popups.Maui.Controls

Available Styles

KeyTarget TypeDescription
PopupBaseStylePopupPageBase style for all popups
DefaultToastStyleToastDefault toast style
DefaultFloaterPopupStyleFloaterPopupDefault floater style
DefaultSimpleTextPopupStyleSimpleTextPopupDefault simple text style
DefaultSimpleActionPopupStyleSimpleActionPopupDefault simple action style
DefaultIconTextPopupStyleIconTextPopupDefault icon text style
DefaultActionModalPopupStyleActionModalPopupDefault action modal style
DefaultListActionPopupStyleListActionPopupDefault list action style
DefaultOptionSheetPopupStyleOptionSheetPopupDefault option sheet style
DefaultFormPopupStyleFormPopupDefault form style

Helper Styles

KeyTarget TypeDescription
LabelDefaultStyleLabelDefault label style
TitleStyleLabelTitle text style
MainTitleStyleLabelMain title style
MainSubTitleStyleLabelMain subtitle style
SubTitleStyleLabelSubtitle style
CloseButtonStyleLabelClose button style
PrimaryActionButtonStyleButtonPrimary button style
SecondaryActionButtonStyleButtonSecondary button style
CardStyleBorderCard container style
EntryDefaultStyleEntryDefault entry style