Headless UI

When the default card is not what you want, replace it. The library still owns the popover element, so measurement, collision-aware placement, focus management and dialog semantics keep working; you own everything inside it.

A card the library did not draw

Rendered by this page, not by the library
Active projects
12
Usage this month
68%
Team members
7

Three levels of customisation

LevelHowUse it when
Restyle --bit-bonboarding-* custom properties The layout is right, the colours are not.
Recompose BonboardingStepDefinition.Header, .Body, .Footer One step needs a form, an image or a different set of buttons.
Replace BonboardingRoot.ChildContent, or a tour or step Template The card should look nothing like the default.

A per-step body

The second step of the tour above renders a form inside the popover and disables its own Next button until the form is filled in. It is ordinary Razor.

<BonboardingRoot Unstyled="true" PopoverClass="my-card">
    <ChildContent>
        <h2>@context.Title</h2>
        <p>@context.Description</p>
        <button @onclick="context.PreviousAsync">@context.PreviousLabel</button>
        <button @onclick="context.NextAsync">@context.NextLabel</button>
    </ChildContent>
</BonboardingRoot>

@* Or just one step, leaving the rest of the tour on the default chrome: *@
<BonboardingStep Anchor="plan" Title="Choose a plan">
    <MyPlanPicker OnPicked="context.NextAsync" />
</BonboardingStep>

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.