Blazorise Bar component
A responsive navbar that can support images, links, buttons, and dropdowns.
The Bar
component is a responsive and versatile navigation bar that can be used as a top menu in Horizontal mode or as a sidebar in one of the three Vertical modes.
<Bar>
the main container.<BarBrand>
Horizontal: the left side, always visible. Vertical: top of Bar branding.<BarToggler>
Horizontal: toggles the bar. Vertical: read more below.<BarMenu>
Horizontal: the right side, hidden on breakpoint. Vertical: contains the core menu elements.<BarStart>
Horizontal: left side menu. Vertical: sticky top menu.<BarEnd>
Horizontal: right side menu. Vertical: sticky bottom menu.<BarItem >
each single item of the bar menu<BarLink>
item link or button<BarIcon>
icon for Bar item (required for BarMode.VerticalSmall)
<BarDropdown>
dropdown container (or popout for BarMode.VerticalPopout)<BarDropdownToggle>
dropdown trigger<BarDropdownMenu>
the dropdown menu, which can include bar items and dividers for BarMode.VerticalPopout)<BarDropdownItem>
each single item of the dropdown menu<BarDropdownDivider>
Divider that can be placed betweenBarDropdownItem
’s.<BarDropdown>
by adding this again inside the menu, you will create nested dropdowns
Top Bar (with dropdown)
<Bar Breakpoint="Breakpoint.Desktop" Background="Background.Light" ThemeContrast="ThemeContrast.Light"> <BarBrand> Brandname </BarBrand> <BarToggler /> <BarMenu> <BarStart> <BarItem> <BarLink To="#home">Home</BarLink> </BarItem> <BarItem> <BarLink To="#docs">Documentation</BarLink> </BarItem> <BarItem> <BarDropdown> <BarDropdownToggle>Dropdown</BarDropdownToggle> <BarDropdownMenu> <BarDropdownItem>Action</BarDropdownItem> <BarDropdownDivider /> <BarDropdownItem>Another action</BarDropdownItem> </BarDropdownMenu> </BarDropdown> </BarItem> </BarStart> <BarEnd> <BarItem> <Button Color="Color.Primary">Sign up</Button> <Button Color="Color.Secondary">Log in</Button> </BarItem> </BarEnd> </BarMenu> </Bar>
Vertical Bar (Sidebar)
When using the Bar in one of the Vertical modes for the purpose of a Sidebar, you need to place it inside theLayoutSiderContent
component.
Please see the Layout docs for more information on setup with Sidebar.
<Bar Mode="BarMode.VerticalInline" CollapseMode="BarCollapseMode.Small" Breakpoint="Breakpoint.Desktop" NavigationBreakpoint="Breakpoint.Tablet" ThemeContrast="ThemeContrast.Dark"> <BarBrand> <BarItem> <BarLink To="#"> <BarIcon IconName="IconName.Dashboard" /> Blazorise Demo </BarLink> </BarItem> </BarBrand> <BarMenu> <BarStart> <BarItem> <BarLink To="#home"> <BarIcon IconName="IconName.Dashboard" /> Home </BarLink> </BarItem> <BarItem> <BarLink To="#docs">Documentation</BarLink> </BarItem> <BarItem> <BarDropdown> <BarDropdownToggle> <BarIcon IconName="IconName.Edit" /> Dropdown </BarDropdownToggle> <BarDropdownMenu> <BarDropdownItem>Action</BarDropdownItem> <BarDropdownItem>Another action</BarDropdownItem> </BarDropdownMenu> </BarDropdown> </BarItem> </BarStart> </BarMenu> </Bar>
BarIcon
is required for each BarLink
or BarDropdownToggle
when using BarMode.VerticalSmall
or BarCollapseMode.Small
, in order for it work correctly.
For a demo of the Vertical bar in action, please check out this Blazorise demo.
Right-aligned Vertical Bar
You can create a right-alignedVertical
style Bar
easily by following two key principals.
-
Using the
Layout
to accommodate the right-align bar, by putting theLayoutSider
section after theLayout
section (see in example below). -
Adding
RightAligned
to ALLBarDropdownMenu
within theVertical
bar.
<Layout Sider> <LayoutSider> <LayoutSiderContent> <Bar Mode="BarMode.VerticalInline" CollapseMode="BarCollapseMode.Small" Breakpoint="Breakpoint.Desktop" Background="Background.Light" ThemeContrast="ThemeContrast.Light"> <BarBrand> <BarItem> <BarLink To="#"> <BarIcon IconName="IconName.Dashboard" /> Example </BarLink> </BarItem> </BarBrand> <BarMenu> <BarStart> <BarItem> <BarDropdown RightAligned> <BarDropdownToggle> <BarIcon IconName="IconName.Edit" /> Toggle </BarDropdownToggle> <BarDropdownMenu> <BarDropdownItem>Action</BarDropdownItem> <BarDropdownItem>Another action</BarDropdownItem> </BarDropdownMenu> </BarDropdown> </BarItem> </BarStart> </BarMenu> </Bar> </LayoutSiderContent> </LayoutSider> </Layout>
Vertical Bar Toggler
TheBarToggler
for Vertical Bar supports 2 modes:
BarTogglerMode.Normal (default)
BarTogglerMode.Popout
1. Inline
By simply adding theBarToggler
anywhere inside the Vertical Bar
component (at the top level), you will have an inline toggler added to your bar at this location.
<Bar Mode="BarMode.VerticalInline" Breakpoint="Breakpoint.Desktop" Background="Background.Light" ThemeContrast="ThemeContrast.Light"> <BarToggler /> <BarBrand> <BarItem> <BarLink To="#"> <BarIcon IconName="IconName.Dashboard" /> Example </BarLink> </BarItem> </BarBrand> <BarMenu> <BarItem>Example</BarItem> </BarMenu> </Bar>
<Bar Mode="BarMode.VerticalInline" Breakpoint="Breakpoint.Desktop" Background="Background.Light" ThemeContrast="ThemeContrast.Light"> <BarBrand> <BarItem> <BarLink To="#"> <BarIcon IconName="IconName.Dashboard" /> Blazorise Demo </BarLink> </BarItem> </BarBrand> <BarToggler Mode="BarTogglerMode.Popout" /> <BarMenu> <BarItem>Popout!</BarItem> </BarMenu> </Bar>
BarToggler
, you need to be using the top bar.
Where you have a top bar and vertical bar, you can add multiple BarTogglers
to the top bar and choose to have one of these control the vertical bar by simply setting the Bar
property.
In the example below, we will create two BarTogglers
inside the top bar.
- One to control the Vertical Bar (closest to it)
- One to control the Top Bar (at the opposite end)
<Layout Sider> <LayoutSider> <LayoutSiderContent> <Bar @ref="" Mode="BarMode.VerticalInline" Breakpoint="Breakpoint.Desktop" Background="Background.Light" ThemeContrast="ThemeContrast.Light"> <BarItem>Example</BarItem> </Bar> </LayoutSiderContent> </LayoutSider> <Layout> <LayoutHeader Fixed> <Bar Mode="BarMode.Horizontal" Background="Background.Light" ThemeContrast="ThemeContrast.Light"> <BarToggler Bar="" /> <BarBrand> <BarItem> <BarLink To="#"> <BarIcon IconName="IconName.Dashboard" /> Example </BarLink> </BarItem> </BarBrand> <BarMenu> <BarItem>Example</BarItem> </BarMenu> <BarToggler /> </Bar> </LayoutHeader> </Layout> </Layout>
@code { private Bar sidebar; }
Nested Dropdowns
To create nestedBarDropdowns
, you can simply add a BarDropdown
component inside the structure of an existing BarDropdownMenu
.
<Bar Breakpoint="Breakpoint.Desktop" Background="Background.Light" ThemeContrast="ThemeContrast.Light"> <BarMenu> <BarStart> <BarItem> <BarDropdown> <BarDropdownToggle> Top-level toggler </BarDropdownToggle> <BarDropdownMenu> <BarDropdownItem> Top-level item </BarDropdownItem> <BarDropdown> <BarDropdownToggle> Nested toggler </BarDropdownToggle> <BarDropdownMenu> <BarDropdownItem> Nested item </BarDropdownItem> </BarDropdownMenu> </BarDropdown> </BarDropdownMenu> </BarDropdown> </BarItem> </BarStart> </BarMenu> </Bar>
Header on top
For an example where the horizontalBar
is “on top” of the vertical Bar
, please look at this example in the Layout
docs.
API
Parameters
Bar
Parameter | Description | Type | Default |
---|---|---|---|
Alignment |
Defines the alignment within bar. Possible values: |
Alignment | Alignment.Default |
Breakpoint |
Used for responsive collapsing. Possible values: |
Breakpoint | Breakpoint.None |
ChildContent |
Specifies the content to be rendered inside this Bar. |
RenderFragment | null |
CollapseMode |
Defines how the bar will be collapsed. Possible values: |
BarCollapseMode | BarCollapseMode.Hide |
MenuToggleBehavior |
Defines how the bar menu will behave when toggled. Possible values: |
BarMenuToggleBehavior | BarMenuToggleBehavior.AllowMultipleMenus |
Mode |
Defines the orientation for the bar. Possible values: |
BarMode | BarMode.Horizontal |
NavigationBreakpoint |
Used for responsive collapsing after Navigation. Possible values: |
Breakpoint | Breakpoint.None |
ThemeContrast |
Defines the preferred theme contrast for this Bar component. Possible values: |
ThemeContrast | ThemeContrast.None |
Visible |
Controls the state of toggler and the menu. |
bool | false |
BarLink
Parameter | Description | Type | Default |
---|---|---|---|
ChildContent |
Specifies the content to be rendered inside this BarLink. |
RenderFragment | null |
Match |
URL matching behavior for a link. Possible values: |
Match | Match.All |
Target |
The target attribute specifies where to open the linked document. |
Target | Target.Default |
Title |
Specify extra information about the element. |
string | |
To |
Specifies the URL of the page the link goes to. |
string |
Events
Bar
Event | Description | Type |
---|---|---|
VisibleChanged |
Occurs when the bar visibility changes. |
EventCallback<bool> |
BarLink
Event | Description | Type |
---|---|---|
Clicked |
Occurs when the item is clicked. |
EventCallback<MouseEventArgs> |
CustomMatch |
A callback function that is used to compare current uri with the user defined uri. If defined, the BarLink.Match parameter will be ignored. |
Func<string, bool> |
Methods
Bar
Method | Description | Return | Parameters |
---|---|---|---|
OnBreakpoint |
Triggers the component to activate breakpoint. | Task | bool broken |
HideAllExcept |
Hides all items except the one that is passed as a parameter. | Task | BarItem barItem |