Skip to content

Repository files navigation

OPX MudBlazor Flat UI

NuGet 2.1.37 includes form grids and external labels, content cards, checkbox/radio/list groups, and updated AppBar account-menu behavior. Guidance is imported; newer upstream sample integrations are not automatically copied into this showcase. Ribbon and account-menu APIs introduced in 2.1.36 remain available.

The 2.1.43 baseline requires MudBlazor 9.10.0 and Blazor Components 10.0.12. It includes package-owned MAUI safe-area geometry; see inset ownership and host migration boundaries. Native and CSS environment insets are alternatives, never additive. Existing gallery screenshots retain their original capture version; this upgrade is not native-device certification.

NuGet 2.1.37 guidance now includes UI spacing/non-overlap, input/sidebar refinements, and new component patterns. See the imported source map: new upstream showcase pages and host integrations are reference-only until separately imported. The existing screenshot gallery is unchanged.

Current baseline: NuGet 2.1.43, including opaque sticky lookup headers in Light/Dark. Consumer rules and template audits follow this version; the gallery remains labeled with its actual 2.1.27 capture version.

NuGet .NET MudBlazor Web and Mobile

OPX Flat UI is a NuGet-first UI reference and project template for responsive Blazor Web and .NET MAUI Blazor Hybrid applications. It combines reusable flat operational components, canonical application composition, responsive navigation, theme-aware behavior, and auditable consumer rules.

Web ready. MAUI Hybrid ready by contract. Powered by MudBlazor.

Just describe what you need in Codex

This repository provides samples, templates, skills, and rules so you can build by describing the application or feature you need. Codex reads the repository contracts, selects the closest canonical sample, and adapts the layout, components, forms, grids, spacing, responsive behavior, and Web/MAUI interactions. You do not need to specify each PageId, component name, or padding value.

Open this repository as a workspace in Codex. Start your first task with:

Read RULES.md, .agents/AGENTS.md, .agents/RULES.md, .agents/KNOWLEDGE.md,
.agents/PROMPTING.md, and the local opx-flat-ui-development skill.
Use the canonical samples as the source of truth and consume OPX through NuGet.
Build a supplier master page with search, Add, Edit, and Delete.
Choose a contract-compliant desktop/mobile layout, then run the audits and build.

Once the repository context is loaded, describe the business requirement. Copy-ready examples:

Build an employee leave request form with dates, leave type,
reason, and attachments. Use the closest canonical form pattern.
Build a sales dashboard for managers with monthly trends,
target versus actual results, and drill-down to transactions.
Use demo data for now; do not invent unspecified business formulas.
Build a purchase approval page for supervisors with document details,
Approve, Reject, and a rejection reason. Use sample data and prepare
integration callbacks; keep authorization and transaction decisions in the backend.
Create a MAUI Hybrid version of this application sharing its UI with Web.
Follow the MAUIHost sample for native pull-to-refresh, Back navigation,
AppBar/theme-matched status bars, safe areas, keyboard behavior, and startup loading.
Use Bottom navigation with Bottom Sheet and preserve unsaved-form guards.
Match the employee directory to the profile-grid sample in List mode.
Preserve the canonical layout, padding, typography, and behavior;
replace only application data and integrations.

Use this source in another project

Open the destination project folder in Codex and make sure the following source checkout is accessible. Adjust the path to your clone location:

Use D:\projects\git\mudblazor-flatui-samples-agents as this project's source of truth.
Read its rules, knowledge, prompting contract, and local skill;
import the relevant guidance into the destination project's .agents folder.

For a new project, start from the canonical template. For an existing project,
audit differences and preserve existing code and business integrations.
Use the NuGet version pinned by the source contract, original package CSS without
overrides, and the closest sample for layout and behavior. Do not add a
ProjectReference to the package source. Keep Settings, default navigation,
Light theme, Device font, Default spacing, and panel padding.

Build a Web and MAUI inventory application with an item master
and goods receipt transactions. Use demo data until the API is available.
Run the audits and build, and report which behaviors still need device testing.

Provide API endpoints, data models, user roles, and transaction rules when available. Codex selects routine UI details from the contract; unclear business rules, permissions, formulas, and integrations still require clarification. Results are checked through audits, builds, and appropriate tests. Device validation and production readiness require their own verification. See the prompting contract.

The reusable component API and original CSS are delivered by Opx.MudBlazor.FlatUi. This repository owns the canonical consumer composition, sample pages, project template, rules, skills, documentation, and validation gates.

The current dependency is 2.1.43, including the responsive report-toolbar and bounded mobile-card scrolling correction. Imported hybrid operations guidance covers document transfer, scanner/outbox coordination and explicit host obligations; new adapters are not automatically wired by a NuGet upgrade. The screenshot gallery below remains labeled with its actual 2.1.27 capture version.

The current package includes shared PDF printing through IFlatPrintService. The Web sample registers the browser service; MAUIHost supplies Android/Windows adapters. Printing uses authorized PDF bytes and reports Submitted when the final outcome is unknown. Native adapters require host integration; printer capability is not physical-printer discovery. See Print support.

NuGet 2.1.43 is the current signed package. In addition to the 2.1.20 Tree Grid and IconPicker APIs, it adds hybrid reliability and productivity contracts: explicit FlatRefreshMode, MAUI refresh/overlay/Back coordination, visual-viewport keyboard avoidance, snapshot-based Model CRUD dirty state, FlatPage.Title as an optional accessible region label, scroll restoration, latest-search cancellation, diagnostics, saved views, guarded context switching, nested filter trees, stable-key record workspaces, and failed-only bulk retry. See Mobile reliability, Hybrid hardening, P0 compatibility, and P1/P2 productivity.

The package remains UI-only: hosts own authentication and authorization, scoped persistence, API queries, transactions, refresh data loaders, cancellation/idempotency, native permissions, notification delivery, and native lifecycle evidence. A NuGet upgrade does not replace the canonical MAUI host adapters.

NuGet 2.1.19 added reusable ERP/HR/IoT operational compositions (FlatWorkInbox, freshness, scan, telemetry, record relationships, and personal workspace), semantic filled-surface contrast, and first-paint restoration of saved Device/Manual font size plus density. The Web and MAUI hosts seed the bootstrap contract before styles so theme or reconnect mounting cannot reset typography. See Multipurpose operational toolkit.

NuGet 2.1.18 added the public FlatCardGrid.SearchTrailingActions slot and package-owned input-boundary positioning, hover/focus treatment, responsive width, and reserved input space. Compact filter toggles therefore stay inside the search field while the separate toolbar action container is omitted when empty. This fixed the prior package integration gap; consumers must not recreate it with local CSS.

NuGet 2.1.17 introduced the FlatMudProviders DI precedence patch: resolve a directly registered FlatUiDisplayOptions instance before IOptions<FlatUiDisplayOptions> and defaults, so an implicit wrapper created by AddOptions() cannot mask the canonical Web/MAUI singleton configuration.

Web preview

Vertical navigation

Vertical is the default operational layout. It provides a searchable grouped sidebar, route-aware expansion, status badges, the mandatory Settings entry, and a right-aligned Logout action.

All sidebar groups are expanded below. The sidebar remains scrollable at ordinary desktop heights; open the complete menu image to inspect every entry.

OPX Flat UI Web dashboard with every Vertical sidebar group expanded

Vertical menu — expand all, complete menu tree Complete Vertical sidebar with all eleven groups expanded

Horizontal navigation

Horizontal is optimized for desktop Web. It moves the product identity and module navigation into a compact menu bar while retaining the same routes, permissions, theme, and page state.

OPX Flat UI Web dashboard with Horizontal navigation

Mobile preview

MAUI Hybrid follows native interaction patterns

MAUI Hybrid shares the Blazor/MudBlazor UI with Web and integrates platform interactions through the native host. The canonical behavior covers gestures, Back navigation, keyboard, system bars, and lifecycle—not only a responsive mobile layout. Razor content still renders inside BlazorWebView; native adapters own the platform integration.

  • Native pull-to-refresh: eligible pages with a real refresh handler use the host's native RefreshView. FlatRefreshMode.Auto selects the available native adapter in MAUI and the package gesture on Web. Refresh starts only when the actual scroll chain is already at the top; active overlays, busy state, and editing gestures suspend it. Disabled turns off package refresh gestures while ordinary scrolling remains available. Position the native spinner below the measured status-bar inset + 60dp AppBar + 8dp gap without moving the WebView.
  • Back navigation: Android system/gesture Back follows one pipeline: dismiss the visible keyboard, handle the topmost modal/sheet and its unsaved-change guard, traverse actual Blazor/WebView history, then use native root behavior. Rejected discard keeps the editor and route intact. Bottom navigation restores the visited submenu and parent before the actual origin: General Ledger → Finance → ERP → origin. Direct links do not invent a menu trail.
  • System bars and safe areas: the Toolkit host bridge follows the resolved AppBar/theme with contrast-aware status-bar icons. Use measured insets on rotation and layout changes. Native fullscreen editors consume the top inset once at the panel boundary, keep Back aligned with the AppBar, and leave the footer reachable.
  • Touch, scrolling, and keyboard: preserve normal scrolling while disabling native bounce/edge glow. Ordinary UI text is not selectable; text-bearing editors retain caret, selection, and clipboard behavior. Device typography and accessibility scaling remain the default. Focused fields stay visible above the keyboard through their actual scroll owner.
  • Startup and recovery: show the continuous theme-aware loading spinner (the sample label is Memuat, Indonesian for “Loading”) before interactivity and during session validation; create the Router only after the root check. Keep visited Bottom history across responsive sidebar transitions. Durable workspace/draft recovery is opt-in and host-scoped; restore drafts only with consent, and authorize deep links before navigation.
  • Native capabilities: connectivity, notifications, camera/gallery, permissions, and resume behavior use host-owned adapters. Request permissions at the appropriate user action and report unsupported or denied capabilities explicitly.

Use MAUIHost.Sample as the complete native-integration reference. A generated MAUI consumer must wire the required adapters when enabling a capability such as native pull-to-refresh; upgrading NuGet alone does not install those host integrations. Reuse package components/assets and canonical host seams rather than adding consumer CSS or duplicate gesture handlers. See Hybrid hardening, Back navigation, Native editor header, and Recovery.

These are implementation contracts. Validate Android gestures, IME, rotation, resume, and process recovery against the exact built APK on an emulator/device; validate iOS on macOS/Xcode and an iOS simulator/device. Responsive Web screenshots and successful builds do not establish native runtime parity.

Responsive views

The mobile composition is responsive, touch-aware, safe-area ready, and designed for both mobile Web and MAUI Blazor Hybrid. Tables can become equivalent cards, dialogs become full-screen editors, and controls retain usable touch geometry.

Phone Bottom menu Bottom Sheet — ERP menu open
OPX Flat UI Bottom menu at a 390px mobile viewport Package-owned Bottom Sheet opened from the mobile ERP Bottom menu

Bottom navigation reuses the same route tree as the other layouts and is selected from viewport width alone. The package default threshold is 600px; this template explicitly uses 900px, so tablet and phone widths receive the bottom bar while wider Web and Windows desktop windows receive the sidebar. It supports up to five root actions, a More entry for overflow, recursive child navigation, and safe-area spacing. Child and overflow navigation defaults to the package Bottom Sheet; the in-content MainView tile presentation is explicit opt-in.

Application Settings

Every initialized consumer keeps Settings → Application preferences in the AppBar overflow menu. The surface previews changes immediately, persists them only after Save, restores the current saved state on Cancel, and returns to host-configured defaults through Restore application defaults.

OPX Flat UI Application preferences in the canonical Light Web sample

The canonical Settings surface provides:

  • Theme: Light (default), Dark / Night, or Auto following the device preference.
  • Navigation: Vertical, Horizontal, or viewport-aware Bottom navigation; Bottom child menus can use a sheet or the main content view.
  • Color system: built-in operational palettes plus separate validated sidebar background/foreground colors for Light and Dark.
  • Density and fields: spacing defaults to the package Default density preset; Compact and Comfortable remain selectable, alongside the supported input presentation style.
  • Typography: Device ownership by default, or a bounded Manual font-size preference.
  • Surface behavior: backdrop opacity and controlled corner radius.
  • Recovery: live preview, Cancel rollback, Save persistence, and restoration to appsettings.json defaults.
  • Host extension: local OS/device notification preferences remain owned by the Web or MAUI host, including permission and scheduling.

The source defaults live under OpxFlatUi:Display in appsettings.json, including the canonical DefaultRoundedSizePx: 7 for ordinary buttons and bottom-sheet top corners. Other standard surfaces remain square, and consumers must not reproduce this package-owned geometry with local CSS. Real per-user storage, authorization, cross-device synchronization, notification delivery, and administrative policy remain consumer responsibilities.

OPX components beyond MudBlazor

MudBlazor remains the underlying visual component library. Opx.MudBlazor.FlatUi adds higher-level operational components and application contracts so consumers do not have to reconstruct responsive shells, workflows, editors, and enterprise states from individual controls.

Capability Principal OPX components
Application shell and navigation FlatAppShell, FlatHorizontalNavigation, FlatDynamicMenu, IFlatNavigationRouteResolver, FlatNavigationBadge, FlatPage, FlatPanel, FlatFab
Theme, startup, and system feedback FlatMudProviders, FlatDisplaySettings, FlatSessionRestore, FlatReconnectModal, FlatProcessingContainer, FlatMessageBoxDialog, FlatUnsavedChangesGuard, FlatDeviceNotification
Dashboard and status widgets FlatWidget, FlatMetricWidget, FlatActionMetricWidget, FlatProgressWidget, FlatSegmentProgressWidget, FlatCompactMetric, FlatStatCard, FlatStatusChip, FlatActivityItem, FlatTaskItem, FlatTimeline
Data grids and hierarchy FlatDataGrid with built-in materialized-view .xlsx export, FlatMobileGrid, FlatGroupedDataGrid, FlatEditableGrid, FlatAdvancedEditableGrid, FlatTreeGrid, FlatPager, FlatGridPreferencesPanel, FlatHierarchyDesigner
CRUD, forms, lookup, and input FlatModelCrud, FlatSchemaForm, FlatModelFormDesigner, FlatFormModal, FlatEditorWorkspace, FlatEntityLookup, FlatSearchComboBox, FlatMultiSelect, FlatNumberInput, FlatMoneyInput, FlatQuantityInput, FlatMaterialIconPicker
Files, images, and documents FlatFileUpload, FlatImageUpload, FlatDataImport, FlatDocumentWorkspace, FlatDocumentAttachmentManager, FlatPdfViewer, FlatPrintLayout
Reports and analytics FlatOperationalReportViewer, FlatPivotGrid, FlatPivotFieldChooser, FlatDataComparisonGrid, FlatQueryBuilder
Scheduling and planning FlatCalendar, FlatScheduler, FlatRecurrenceEditor, FlatKanbanBoard, FlatPlanningBoard, FlatDashboardComposer
Transactions, ERP, and operations FlatTransactionWorkspace, FlatEditableGrid, FlatRecordLifecycleHeader, FlatJournalEntryGrid, FlatReconciliationWorkspace, FlatInventoryAllocationWorkspace, FlatInventoryTraceabilityWorkspace, FlatBomRoutingEditor, FlatMrpCapacityWorkspace, FlatIntegrationCenter, FlatBackgroundOperationCenter
Workflow and governance FlatWorkflowPanel, FlatWorkflowDesigner, FlatApprovalInbox, FlatApprovalMatrixDesigner, FlatRuleBuilder, FlatBulkActionBar, FlatAuditTrail, FlatGovernancePanel
Communication and collaboration FlatChatShell, FlatChatMessage, FlatEmailShell, FlatCollaborationPanel, FlatConflictResolver, FlatNotificationCenter
Content, commerce, and profile FlatProductDetail, FlatCatalogGrid, FlatCatalogCard, FlatJobCard, FlatJobEmailApplicationDialog, FlatVacancyActions, FlatProfileCard, FlatProfileListItem, FlatProfileAvatar, FlatDetailSection, FlatInfoItem, FlatEmptyState
Spatial UI FlatVectorMap, FlatSpatialWorkspace and their typed region, route, marker, layer, and geofence models
Application experience FlatCommandPalette, FlatAccessibilitySettings, FlatPermissionView, FlatFeatureView, FlatMasterDetailWorkspace, FlatOfflineSyncPanel

The OPX components own presentation, responsive composition, interaction state, and typed intent. APIs, database access, business calculations, authorization, transaction commits, file storage, notifications, realtime transport, and audit persistence stay host-owned.

Component screenshot gallery

Browse the complete screenshot catalog for every shared showcase route, named component panels, widgets, and open dialog previews. Each entry links to its canonical Razor source and lists the OPX components used by that page. Expand a section below to view its screenshots without leaving this README.

Captured from the running NuGet 2.1.27 Web sample with original package styles, Light theme, Fluent Blue, Device typography, and Default spacing. Desktop captures use 1440 × 1000; the Bottom menu and Bottom Sheet use 390 × 844. The complete Vertical tree uses a taller viewport, with all eleven groups expanded through their normal controls. Images show sample data, not production records.

Coverage means the shared showcase's rendered pages and named panels—not every state, tab, virtualized row, or public API type. Dialog previews are included separately. Native-only MAUI capabilities and operating-system permission/print dialogs require device screenshots; responsive Web images do not prove native behavior. See the catalog's evidence notes and capture manifest.

Accordions — /accordions

Canonical source · Route: /accordions

FlatAccordion, FlatAccordionItem, FlatPage, FlatPanel.

Accordions showcase

Default accordion

Default accordion component panel

Accordion flush

Accordion flush component panel

Accordions with icons

Accordions with icons component panel

Accordions without toggle icons

Accordions without toggle icons component panel

Advanced Editable Grid — /advanced-editable-grid

Canonical source · Route: /advanced-editable-grid

FlatAdvancedEditableGrid, FlatAdvancedGridCommandKind, FlatNumberInput, FlatNumberText, FlatPage.

Advanced Editable Grid showcase

Advanced editable grid

Advanced editable grid component panel

Ai Chat — /ai-chat

Canonical source · Route: /ai-chat

FlatChatConversationItem, FlatChatMessage, FlatChatShell, FlatChatTypingIndicator, FlatEmptyState, FlatPage.

Ai Chat showcase

Blog — /blog

Canonical source · Route: /blog

Blog showcase

Business Toolkit — /business-toolkit

Canonical source · Route: /business-toolkit

FlatApprovalLevel, FlatApprovalMatrixDesigner, FlatBomNode, FlatBomRoutingEditor, FlatDataComparisonGrid, FlatDataComparisonRow, FlatDocumentAttachment, FlatDocumentAttachmentManager, FlatInventoryTraceabilityWorkspace, FlatPage, FlatQueryBuilder, FlatQueryField, FlatRecurrenceEditor, FlatRuleBuilder, FlatRuleField, FlatTraceabilityNode.

Business Toolkit showcase

Inventory Traceability

Inventory Traceability component panel

BOM and Routing

BOM and Routing component panel

Rule Builder

Rule Builder component panel

Approval Matrix

Approval Matrix component panel

Document Attachments

Document Attachments component panel

Recurrence Editor

Recurrence Editor component panel

Query Builder

Query Builder component panel

Data Comparison

Data Comparison component panel

Calendar — /calendar

Canonical source · Route: /calendar

FlatCalendar, FlatFormModal, FlatPage, FlatSchedulerItem.

Calendar showcase

Catalog — /catalog

Canonical source · Route: /catalog

FlatCatalogCard, FlatCatalogGrid, FlatFilterWorkspace, FlatPage.

Catalog showcase

Charts — /charts

Canonical source · Route: /charts

FlatPage, FlatPanel.

Charts showcase

Line

Line component panel

Line

Line component panel

Bar

Bar component panel

Stacked Bar

Stacked Bar component panel

Pie

Pie component panel

Donut

Donut component panel

Timeseries

Timeseries component panel

Heat Map

Heat Map component panel

Rose

Rose component panel

Radar

Radar component panel

Sankey

Sankey component panel

Scatter Plot

Scatter Plot component panel

Chat — /chat

Canonical source · Route: /chat

FlatChatConversationItem, FlatChatMessage, FlatChatShell, FlatChatTypingIndicator, FlatEmptyState, FlatPage, FlatProfileAvatar.

Chat showcase

Colors — /colors

Canonical source · Route: /colors

FlatColorReference, FlatPage.

Colors showcase

Components Gallery — /components

Canonical source · Route: /components

FlatDetailSection, FlatEmptyState, FlatFormModal, FlatInfoItem, FlatMaterialIconPicker, FlatMultiSelect, FlatMultiSelectOption, FlatNumberInput, FlatPageHeading, FlatPanel, FlatProcessingContainer, FlatProfileAvatar, FlatReconnectModal, FlatSearchComboBox, FlatSearchComboOption, FlatSessionRestore, FlatStatCard.

Components Gallery showcase

Theme Tokens

Theme Tokens component panel

Empty State

Empty State component panel

Button States

Button States component panel

Info Items

Info Items component panel

Formatted Number Input

Formatted Number Input component panel

Profile Avatar

Profile Avatar component panel

Optional Page Heading

Optional Page Heading component panel

Processing State

Processing State component panel

Message Box

Message Box component panel

Reconnect Notice

Reconnect Notice component panel

Form Modal

Form Modal component panel

MudBlazor Line Chart

MudBlazor Line Chart component panel

MudBlazor Pie Chart

MudBlazor Pie Chart component panel

Multi Select

Multi Select component panel

Search Combo Box

Search Combo Box component panel

Material Icon Picker

Material Icon Picker component panel

Multi Select with leading visuals

Multi Select with leading visuals component panel

Crud — /crud

Canonical source · Route: /crud

FlatDataGrid, FlatEmptyState, FlatFormModal, FlatInfoItem, FlatMobileGrid, FlatPage, FlatPager.

Crud showcase

Data Grid Large — /data-grid-large

Canonical source · Route: /data-grid-large

FlatDataGrid, FlatEmptyState, FlatInfoItem, FlatMobileGrid, FlatPage, FlatPager, FlatStatusChip.

Data Grid Large showcase

Development Rules — /development-rules

Canonical source · Route: /development-rules

FlatPage, FlatPanel.

Development Rules showcase

Canonical development path

Canonical development path component panel

Dynamic Menu — /dynamic-menu

Canonical source · Route: /dynamic-menu

FlatDynamicMenu, FlatDynamicMenuItem, FlatInfoItem, FlatNavigationMenuItem, FlatPage.

Dynamic Menu showcase

Edit Account — /account/edit

Canonical source · Route: /account/edit

FlatMultiSelect, FlatMultiSelectOption, FlatPage, FlatPanel, FlatProfileAvatar.

Edit Account showcase

Profile picture

Profile picture component panel

Account details

Account details component panel

Security

Security component panel

Email — /email

Canonical source · Route: /email

FlatEmailFolderItem, FlatEmailMessageItem, FlatEmailShell, FlatEmptyState, FlatFab, FlatPage, FlatProfileAvatar.

Email showcase

Enterprise Toolkit — /enterprise-toolkit

Canonical source · Route: /enterprise-toolkit

FlatAuditEvent, FlatAuditTrail, FlatBulkAction, FlatBulkActionBar, FlatDashboardComposer, FlatDashboardWidgetDefinition, FlatDataImport, FlatDataImportColumn, FlatDataImportField, FlatDataImportRow, FlatDocumentItem, FlatDocumentWorkspace, FlatDocumentWorkspaceAction, FlatFormFieldDefinition, FlatInfoItem, FlatMasterDetailWorkspace, FlatNotificationCenter, FlatNotificationItem, FlatOfflineSyncPanel, FlatPage, FlatPivotFieldChooser, FlatPivotFieldDefinition, FlatPrintLayout, FlatScheduler, FlatSchedulerItem, FlatSchemaForm, FlatSyncItem, FlatWorkflowPanel, FlatWorkflowStep.

Enterprise Toolkit showcase

Workspace productivity

Workspace productivity component panel

Workspace productivity

Workspace productivity component panel

Record workspace

Record workspace component panel

Bulk progress

Bulk progress component panel

ERP · HR · IoT work inbox

ERP · HR · IoT work inbox component panel

Telemetry and alarms

Telemetry and alarms component panel

My workspace

My workspace component panel

Data Import Wizard

Data Import Wizard component panel

Pivot Field Chooser

Pivot Field Chooser component panel

Master–Detail Workspace

Master–Detail Workspace component panel

Audit Trail and Diff

Audit Trail and Diff component panel

Schema Form

Schema Form component panel

Approval Workflow

Approval Workflow component panel

Bulk Actions

Bulk Actions component panel

Scheduler

Scheduler component panel

Dashboard Composer

Dashboard Composer component panel

Notification Center

Notification Center component panel

Offline Sync

Offline Sync component panel

Document Workspace

Document Workspace component panel

Print Layout

Print Layout component panel

Erp Finance — /erp/finance

Canonical source · Route: /erp/finance

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Finance showcase

Profit and loss trend

Profit and loss trend component panel

Period close

Period close component panel

Recent journal activity

Recent journal activity component panel

Erp Finance — /erp/finance/general-ledger

Canonical source · Route: /erp/finance/general-ledger

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Finance showcase

Erp Finance — /erp/finance/payables

Canonical source · Route: /erp/finance/payables

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Finance showcase

Supplier open items

Supplier open items component panel

Erp Finance — /erp/finance/receivables

Canonical source · Route: /erp/finance/receivables

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Finance showcase

Customer open items

Customer open items component panel

Erp Hr — /erp/hr

Canonical source · Route: /erp/hr

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Hr showcase

Workforce by department

Workforce by department component panel

People actions

People actions component panel

Recent employees

Recent employees component panel

Erp Hr — /erp/hr/employees

Canonical source · Route: /erp/hr/employees

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Hr showcase

Erp Hr — /erp/hr/attendance

Canonical source · Route: /erp/hr/attendance

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Hr showcase

Today's attendance

Today's attendance component panel

Erp Overview — /erp

Canonical source · Route: /erp

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Overview showcase

Revenue and operating cost

Revenue and operating cost component panel

Workflow inbox

Workflow inbox component panel

Business exceptions

Business exceptions component panel

Erp Production — /erp/production

Canonical source · Route: /erp/production

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Production showcase

Output by production line

Output by production line component panel

Shift performance

Shift performance component panel

Active production orders

Active production orders component panel

Erp Production — /erp/production/work-orders

Canonical source · Route: /erp/production/work-orders

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Production showcase

Erp Production — /erp/production/quality

Canonical source · Route: /erp/production/quality

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Production showcase

Quality inspection queue

Quality inspection queue component panel

Erp Release Train — /erp-release-train

Canonical source · Route: /erp-release-train

FlatApprovalInbox, FlatApprovalInboxItem, FlatCapacityBucket, FlatGovernanceCheck, FlatGovernancePanel, FlatIntegrationCenter, FlatIntegrationRun, FlatInventoryAllocation, FlatInventoryAllocationWorkspace, FlatJournalEntryGrid, FlatMaterialRequirement, FlatMrpCapacityWorkspace, FlatNumberText, FlatPage, FlatTransactionEngine, FlatValidationIssue, FlatWorkflowDesigner, FlatWorkflowNode.

Erp Release Train showcase

2.1 · Transaction Engine

2.1 · Transaction Engine component panel

2.2 · Inventory Allocation

2.2 · Inventory Allocation component panel

2.3 · Finance

2.3 · Finance component panel

2.4 · Workflow Designer

2.4 · Workflow Designer component panel

2.4 · Approval Inbox

2.4 · Approval Inbox component panel

2.5 · Integration Center

2.5 · Integration Center component panel

3.0 · MRP and Capacity

3.0 · MRP and Capacity component panel

3.0 · Governance

3.0 · Governance component panel

Erp Sales — /erp/sales

Canonical source · Route: /erp/sales

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Sales showcase

Sales versus target

Sales versus target component panel

Fulfillment pipeline

Fulfillment pipeline component panel

Sales orders

Sales orders component panel

Erp Sales — /erp/sales/orders

Canonical source · Route: /erp/sales/orders

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Sales showcase

Sales versus target

Sales versus target component panel

Fulfillment pipeline

Fulfillment pipeline component panel

Sales orders

Sales orders component panel

Erp Supply Chain — /erp/procurement

Canonical source · Route: /erp/procurement

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Supply Chain showcase

Spend by category

Spend by category component panel

Procurement actions

Procurement actions component panel

Recent purchase orders

Recent purchase orders component panel

Erp Supply Chain — /erp/inventory

Canonical source · Route: /erp/inventory

FlatInfoItem, FlatPage, FlatPanel, FlatStatCard.

Erp Supply Chain showcase

Erp Toolkit — /erp-toolkit

Canonical source · Route: /erp-toolkit

FlatBackgroundOperation, FlatBackgroundOperationCenter, FlatEntityLookup, FlatInfoItem, FlatJournalEntryGrid, FlatLifecycleStep, FlatMoneyInput, FlatPage, FlatPlanningBoard, FlatQuantityInput, FlatReconciliationWorkspace, FlatRecordLifecycleHeader, FlatTransactionAction, FlatTransactionWorkspace.

Erp Toolkit showcase

Transaction Workspace

Transaction Workspace component panel

Entity Lookup and Composite Inputs

Entity Lookup and Composite Inputs component panel

Background Operations

Background Operations component panel

Journal Entry Grid

Journal Entry Grid component panel

Reconciliation Workspace

Reconciliation Workspace component panel

Planning Board

Planning Board component panel

Experience Toolkit — /experience-toolkit

Canonical source · Route: /experience-toolkit

FlatAccessibilitySettings, FlatCollaborationComment, FlatCollaborationPanel, FlatCommandDefinition, FlatCommandPalette, FlatConflictField, FlatConflictResolver, FlatFeatureView, FlatFormFieldDefinition, FlatFormStepDefinition, FlatFormValidationIssue, FlatOperationState, FlatPage, FlatPermissionView, FlatPresenceUser, FlatSchemaForm, FlatSessionTimeout, FlatUnsavedChangesGuard.

Experience Toolkit showcase

Hybrid recovery

Hybrid recovery component panel

Hybrid recovery

Hybrid recovery component panel

Mobile reliability

Mobile reliability component panel

Command Palette

Command Palette component panel

Advanced Schema Form

Advanced Schema Form component panel

Accessibility Gate

Accessibility Gate component panel

Realtime Collaboration UI

Realtime Collaboration UI component panel

Offline Conflict Workspace

Offline Conflict Workspace component panel

Global Application Foundation

Global Application Foundation component panel

Workspace State & Server Data

Workspace State & Server Data component panel

Undo, Redo & Observability

Undo, Redo & Observability component panel

Security & Accessibility UX

Security & Accessibility UX component panel

File Upload — /file-upload

Canonical source · Route: /file-upload

FlatFileUpload, FlatFileUploadResult, FlatImageUpload, FlatPage, FlatPanel.

File Upload showcase

Flat File Upload

Flat File Upload component panel

Flat File Upload

Flat File Upload component panel

Multiple Image Upload

Multiple Image Upload component panel

Grid Editor — /grid-editor

Canonical source · Route: /grid-editor

FlatEditableGrid, FlatEmptyState, FlatGridEditResult, FlatInfoItem, FlatPage.

Grid Editor showcase

Grid Preferences — /grid-preferences

Canonical source · Route: /grid-preferences

FlatDataGrid, FlatGridCellContext, FlatGridPreferencesPanel, FlatPage, FlatPanel.

Grid Preferences showcase

Advanced Grid Preferences

Advanced Grid Preferences component panel

Advanced Grid Preferences

Advanced Grid Preferences component panel

Grouped Data Grid — /grouped-data-grid

Canonical source · Route: /grouped-data-grid

FlatGroupedDataGrid, FlatGroupedGridGroup, FlatInfoItem, FlatPage.

Grouped Data Grid showcase

Hierarchy Designer — /hierarchy-designer

Canonical source · Route: /hierarchy-designer

FlatHierarchyDesigner, FlatHierarchyDesignerItem, FlatPage, FlatPanel.

Hierarchy Designer showcase

Home — /

Canonical source · Route: /

FlatPage, FlatPanel, FlatStatCard.

Home showcase

Ticket Trend

Ticket Trend component panel

Recent Activity

Recent Activity component panel

Priority Assets

Priority Assets component panel

Job Landing — /job-landing

Canonical source · Route: /job-landing

FlatEmptyState, FlatJobEmailApplicationDialog.

Job Landing showcase

Jobs — /jobs

Canonical source · Route: /jobs

FlatCardGrid, FlatFormModal, FlatJobCard, FlatPage, FlatPanel, FlatVacancyActions.

Jobs showcase

Hiring trend

Hiring trend component panel

Hiring trend

Hiring trend component panel

Recent activity

Recent activity component panel

Open roles

Open roles component panel

Kanban — /kanban

Canonical source · Route: /kanban

FlatFab, FlatKanbanBoard, FlatKanbanCard, FlatPage.

Kanban showcase

Login — /login

Canonical source · Route: /login

Login showcase

Model Crud — /model-crud

Canonical source · Route: /model-crud

FlatEntityLookup, FlatFileUploadResult, FlatGridEditResult, FlatImageUpload, FlatModelCrud, FlatModelFieldDefinition, FlatPage.

Model Crud showcase

Model Form Designer — /model-form-designer

Canonical source · Route: /model-form-designer

FlatModelFieldDefinition, FlatModelFormDesigner, FlatPage.

Model Form Designer showcase

Monitoring — /monitoring

Canonical source · Route: /monitoring

FlatInfoItem, FlatPanel, FlatStatCard.

Monitoring showcase

Live endpoint status

Live endpoint status component panel

Incident feed

Incident feed component panel

Notebook Finance 01

Notebook Finance 01 component panel

Notebook HR 02

Notebook HR 02 component panel

Production Scanner Gate

Production Scanner Gate component panel

Warehouse Packing

Warehouse Packing component panel

Developer Mobile Rig

Developer Mobile Rig component panel

Quality Station

Quality Station component panel

Monitoring Computers — /monitoring/computers

Canonical source · Route: /monitoring/computers

FlatEmptyState, FlatInfoItem, FlatMobileGrid, FlatPage.

Monitoring Computers showcase

Monitoring Database — /monitoring-database

Canonical source · Route: /monitoring-database

FlatEmptyState, FlatInfoItem, FlatMobileGrid, FlatPage.

Monitoring Database showcase

Not Found — /not-found

Canonical source · Route: /not-found

Not Found showcase

Operations Workspace — /operations-workspace

Canonical source · Route: /operations-workspace

FlatEmptyState, FlatInfoItem, FlatOperationalWorkItem, FlatPage, FlatStatusChip.

Operations Workspace showcase

VPN access is unavailable

VPN access is unavailable component panel

Replace warehouse scanner

Replace warehouse scanner component panel

Pdf Viewer — /pdf-viewer

Canonical source · Route: /pdf-viewer

FlatPage, FlatPdfViewer.

Pdf Viewer showcase

Pivot — /pivot

Canonical source · Route: /pivot

FlatFormModal, FlatInfoItem, FlatPage, FlatPivotGrid.

Pivot showcase

Product Detail — /product-detail

Canonical source · Route: /product-detail

FlatFormModal, FlatPage, FlatProductDetail, FlatProductMetric.

Product Detail showcase

Product Editor — /product-editor

Canonical source · Route: /product-editor

FlatEditorSection, FlatEditorWorkspace, FlatFileUpload, FlatFileUploadItem, FlatMultiSelect, FlatMultiSelectOption, FlatPage, FlatUnsavedChangesGuard.

Product Editor showcase

Product Management — /product-management

Canonical source · Route: /product-management

FlatDataGrid, FlatEmptyState, FlatFilterWorkspace, FlatFormModal, FlatInfoItem, FlatMobileGrid, FlatPage, FlatPager.

Product Management showcase

Profile Grid — /profile-grid

Canonical source · Route: /profile-grid

FlatCardGrid, FlatFab, FlatFormModal, FlatPage, FlatProfileCard, FlatProfileCardStat, FlatProfileListItem, FlatStatusChip.

Profile Grid showcase

Reports — /reports

Canonical source · Route: /reports

FlatFormModal, FlatInfoItem, FlatOperationalReportViewer, FlatPage, FlatStatCard.

Reports showcase

Reset Password — /reset-password

Canonical source · Route: /reset-password

Reset Password showcase

Sales Pipeline — /sales-pipeline

Canonical source · Route: /sales-pipeline

FlatKanbanBoard, FlatPage, FlatPipelineCard.

Sales Pipeline showcase

Scheduler — /scheduler

Canonical source · Route: /scheduler

FlatPage, FlatScheduler, FlatSchedulerCalendar, FlatSchedulerItem.

Scheduler showcase

Simple Crud — /crud-simple

Canonical source · Route: /crud-simple

FlatPage.

Simple Crud showcase

Spatial Operations — /spatial-operations

Canonical source · Route: /spatial-operations

FlatMapPoint, FlatPage, FlatSpatialGeofence, FlatSpatialLayer, FlatSpatialWorkspace, FlatVectorMap, FlatVectorMapMarker, FlatVectorMapRegion, FlatVectorMapRoute.

Spatial Operations showcase

Static Data — /static-data

Canonical source · Route: /static-data

FlatEmptyState, FlatInfoItem, FlatMobileGrid, FlatPage.

Static Data showcase

Timeline — /timeline

Canonical source · Route: /timeline

FlatPage, FlatProfileAvatar, FlatTimeline.

Timeline showcase

Tree Grid — /tree-grid

Canonical source · Route: /tree-grid

FlatEmptyState, FlatPage, FlatPanel, FlatTreeGrid, FlatTreeGridMoveResult.

Tree Grid showcase

Two Step Verification — /two-step-verification

Canonical source · Route: /two-step-verification

Two Step Verification showcase

Vector Map — /vector-map

Canonical source · Route: /vector-map

FlatMapPoint, FlatPage, FlatVectorMap, FlatVectorMapMarker, FlatVectorMapRegion, FlatVectorMapRoute.

Vector Map showcase

Website Home — /website

Canonical source · Route: /website

FlatCatalogCard, FlatCatalogGrid.

Website Home showcase

Widgets — /widgets

Canonical source · Route: /widgets

FlatActionMetricWidget, FlatActivityItem, FlatCompactMetric, FlatMetricWidget, FlatPage, FlatProgressWidget, FlatSegmentProgressWidget, FlatTaskItem, FlatWidget.

Widgets showcase

Tile boxes

Tile boxes component panel

Compact metrics

Compact metrics component panel

Statistics

Statistics component panel

Other widgets

Other widgets component panel

Open dialogs and command palette

Question message box · /components

Question message box

Warning message box · /components

Warning message box

Information message box · /components

Information message box

Error message box · /components

Error message box

Form modal · /components

Form modal

Command palette · /experience-toolkit

Command palette

Special features

  • Three responsive navigation modes — Vertical sidebar, Horizontal desktop menu, and viewport-aware Bottom navigation from one route tree.
  • Adaptive data presentation — FlatDataGrid desktop tables and equivalent tablet/mobile cards preserve one query, filter, sort, paging, selection, permission, and loading state.
  • Native Excel export — FlatDataGrid can export its materialized visible view to .xlsx; permission-sensitive, remote, virtualized, and unbounded exports remain host-owned through OnExport.
  • Public and admin recruitment samples — the public Job Landing returns typed email-application intent without sending data, while the admin Jobs page demonstrates create/edit, publish/close, and delete vacancy intent.
  • Operational dashboards — compact KPI widgets, charts, activity feeds, status chips, summary lists, quick actions, and responsive panel composition.
  • CRUD and transaction workspaces — responsive editor shells, full-screen mobile forms, dirty-state protection, entity lookup, bulk actions, approval flows, and host-owned persistence boundaries.
  • Advanced reusable surfaces — Pivot, Kanban, Chat, Email, command palette, schema-driven forms, editable grids, audit trail, collaboration, conflict resolution, document workspaces, import, calendar, and notification samples.
  • Theme and display preferences — Light theme with Fluent Blue default palette, Dark / Night, Auto, multiple palettes, density presets, Device or Manual typography, configurable backdrop, and controlled corner sizing.
  • Shared loading system — responsive initial skeletons, AppBar operation progress, FlatReconnectModal, and the mandatory MAUI Memuat spinner using the same package-owned visual.
  • Secure startup presentation — FlatSessionRestore blocks protected UI while the host validates an untrusted saved-session hint. Local storage is never the authorization authority.
  • MAUI system integration contract — AppBar-synchronized Android/iOS status bar, Device typography, accessibility-scaled text buttons, safe areas, lifecycle resynchronization, audited Android network/notification permission declarations, and native verification gates.
  • Native interaction rules — normal scrolling without WebView bounce/edge glow, dedicated pull-to-refresh, and text selection limited to textbox-class inputs and editors.
  • Package-owned reusable CSS — consumers load _content/Opx.MudBlazor.FlatUi/opx-flat-ui.css; host CSS remains limited to application/domain composition.
  • No destination CSS override — consumer stylesheets may not target .flat-*/.mud-*, redeclare --opx-*, copy package rules, or patch package geometry with specificity/!important; reusable visual changes go through package options/public APIs or a source/package fix.
  • Auditable output — versioned JSON schema, consumer audit script, source mapping, responsive rules, Release build checks, and fresh-template validation.

Business data, formulas, permissions, authentication, persistence, integration, transactions, and server-side authorization remain owned by the consuming application.

Navigation modes

Mode Intended surface Behavior
Vertical Web desktop, tablet fallback, responsive drawer Searchable grouped sidebar with active-route expansion.
Horizontal Web desktop only Compact product/menu bar with module dropdowns.
Bottom Responsive Web, MAUI Hybrid, and resized Windows EXE Package threshold defaults to 600px; this template uses 900px, with sidebar fallback above it.

Navigation, theme, palette, density, and typography are available from the mandatory Settings → Application preferences surface.

Package baseline

Dependency Version
Opx.MudBlazor.FlatUi 2.1.27
MudBlazor 9.10.0
MAUI mobile template 10.0.90
CommunityToolkit.Maui 15.0.1
Target framework .NET 10
Consumer contract schema 3.1

Create a consumer project

Install or refresh the repository template:

dotnet new install . --force

Create a NuGet-only consumer:

dotnet new opx-flatui-web -n MyOpxApp
Set-Location MyOpxApp\MyOpxApp
.\run-clean.ps1

The Web template produces sibling MyOpxApp (thin executable host) and Opx.MudBlazor.FlatUi.Showcase (shared page composition) projects. The first run cleans both projects' exact bin and obj, restores reusable OPX UI 2.1.27 from NuGet.org, and starts with the canonical Light theme, Settings menu, default navigation, package-owned CSS, responsive rules, first-paint typography/density restoration, and runtime OPX attribution.

Audit a generated consumer before accepting its output:

..\.agents\skills\opx-flat-ui-development\scripts\audit_flat_ui_consumer.ps1 . -ExactSample
dotnet build -c Release --no-restore

Create the canonical Android/iOS MAUI Blazor Hybrid consumer:

dotnet new opx-flatui-maui -n MyOpxMobileApp
Set-Location MyOpxMobileApp
.\run-clean.ps1 -PrepareOnly
.\scripts\audit_maui_consumer.ps1 -ExactSample
dotnet build -f net10.0-android -c Release --no-restore

The MAUI template pins MAUI 10.0.90, CommunityToolkit.Maui 15.0.1, MudBlazor 9.10.0, and OPX Flat UI 2.1.27. It replaces stock .NET/MAUI splash artwork with a neutral white-on-white invisible launch asset, then hands off to the continuous Memuat spinner. It also includes first-paint Device/Manual font and density restoration, the native status-bar bridge, root-before-Router authorization gate, Settings, default sidebar/Bottom navigation, Device typography, no-bounce WebView handlers, textbox-only text selection, package-only reusable CSS, a machine-readable mobile contract, and its audit script. Android 12+ still owns a mandatory system splash frame; the template removes its stock artwork rather than claiming that OS frame can be eliminated. Replace the sample authorization validator and sample business data before production use.

When a prompt requests UI that is the same, exact, canonical, or matches the sample/source of truth, use Exact Sample Mode. Generate a fresh Web or MAUI template, resolve the PageId, and pass -ExactSample before wiring host data or services. The audit rejects drift in canonical shell/page files; branding, wording, data, authorization, callbacks, and persistence may then change through existing seams without changing geometry or behavior.

Repository map

  • samples/Opx.MudBlazor.FlatUi.Showcase — single shared source of truth for pages, sample services, navigation metadata, and composition CSS.
  • samples/Opx.MudBlazor.FlatUi.Sample — thin NuGet Web host and one half of the multi-project Web template.
  • .agents/skills/opx-flat-ui-development — UI/UX, business/data analysis, implementation, responsive, Web, and MAUI rules.
  • docs/CONSUMER-CONTRACT.md — consumer ownership and integration contract.
  • docs/DATA-GRID-EXCEL-EXPORT.md, docs/JOB-LANDING.md, and docs/JOBS-DASHBOARD.md — feature and sample ownership contracts.
  • RULES.md and .agents/RULES.md — mandatory implementation rules.
  • flat-ui.contract.json and its schema inside the sample — machine-readable baseline enforced by the audit.
  • templates/Opx.MudBlazor.FlatUi.Maui.Template — Android/iOS Blazor Hybrid source-of-truth template, mobile contract, and native audit.
  • samples/Opx.MudBlazor.FlatUi.MauiHost.Sample — thin NuGet Android/Windows host that loads the shared Showcase routes, with startup gating, native adapters, edge-to-edge AppBar/status-bar integration, and runtime performance measurements.
  • docs/MAUI-HYBRID-HOST.md — ownership, startup, responsive navigation, native status-bar, build, and device-evidence contract for the host sample.

Web and MAUI evidence boundary

The screenshots above are captured from the real local Blazor Web sample at representative desktop and phone viewports. They prove the rendered Web composition and responsive CSS at capture time.

The repository now includes a real Android/iOS MAUI Blazor Hybrid template in addition to the Web template. A successful Android compile proves source/package compatibility only. Status-bar appearance, safe areas, keyboard/IME, system back, lifecycle, suspend/resume, no-bounce WebView behavior, native text selection, and the Memuat bootstrap transition still require representative emulator or physical-device validation; iOS build and runtime validation require macOS/Xcode.


OPX Flat UI — Web and MAUI Hybrid ready. Powered by MudBlazor.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages