Blocks

Ready-made screens built from the components, numbered like ShellUI's dashboard-01.

Next release

On the main branch of shellui-native; not in the 0.2.0-beta.1 CLI yet.

A block is a whole screen built from the components: an app shell with a bottom nav, or a page with an edge menu. add writes one file you own to Components/Blocks/ (namespace <App>.Components.Blocks, next to Components/UI or Components/Native) and installs the components it uses. Each block is a plain view in C#: use it as a page's content and edit it like any other code.

The previews are the Avalonia blocks at a phone's size, running in your browser.

Using a block

bash
shellui-native add bottom-nav-01
csharp
using MyApp.Components.Blocks;

var shell = new BottomNav01();
shell.Pages["home"] = new HomeView();      // one view per tab Value
shell.Pages["cards"] = new CardsView();
shell.ActionClicked += (_, _) => StartPayment();
Content = shell;

Until you put your views in Pages, each tab shows a placeholder page: a title over grey cards. Change the tabs, their icons and the variant in the file itself.

Member Blocks Description
Pages bottom-nav-01 to 05 One view per tab, keyed by the item's Value: Dictionary<string, View> on MAUI, Dictionary<string, Control> on Avalonia.
Nav bottom-nav-01 to 05 The BottomNav, to change the items or the selection.
Show(value) bottom-nav-01 to 05 Shows the page for a tab Value. A tap on a tab does it; call it after setting Nav.SelectedValue from code.
ActionClicked bottom-nav-01 The round Pay button in the middle was pressed.
Page edge-menu-01 The view under the menu: View? on MAUI, Control? on Avalonia.
Menu edge-menu-01 The EdgeMenu, to change the tiles.
ToolPicked edge-menu-01 A tile was picked; passes its Value.

Bottom nav

bottom-nav-01

An app shell like a wallet app's: a tab bar with a raised Pay button in the middle and the user's avatar on the last tab, with a count badge on Alerts and a dot on the avatar. The active tab is in the primary colour. Uses bottom-nav and avatar.

bash
shellui-native add bottom-nav-01
Avalonia, running in your browser

bottom-nav-02

An app shell with a Material 3 tab bar: a pill grows behind the active icon. Uses bottom-nav.

bash
shellui-native add bottom-nav-02
Avalonia, running in your browser

bottom-nav-03

An app shell with a floating tab bar over the page that slides away while the page scrolls down; only the active tab shows its label. Uses bottom-nav.

bash
shellui-native add bottom-nav-03
Avalonia, running in your browser

bottom-nav-04

An app shell with a compact capsule of icons; the active one widens into a pill with its label. The capsule slides away while the page scrolls down too. Uses bottom-nav.

bash
shellui-native add bottom-nav-04
Avalonia, running in your browser

bottom-nav-05

An app shell whose active tab rises into a circle over the bar; the bar slides away while the page scrolls down. Uses bottom-nav.

bash
shellui-native add bottom-nav-05
Avalonia, running in your browser

Edge menu

edge-menu-01

A page with a dock of tools on its right edge: a solid rail of five tiles (Settings, Notes, Calendar, Images, Camera) that dims the page while open. Put your view in Page, change the tiles to your tools and handle ToolPicked. Uses edge-menu.

bash
shellui-native add edge-menu-01
csharp
var page = new EdgeMenu01 { Page = new NotesView() };
page.ToolPicked += (_, tool) => OpenTool(tool);   // "settings", "notes", "calendar", ...
Content = page;
Avalonia, running in your browser

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.