Accent color
# Nav
**Also known as:** Tree, TreeView
## Description
A navigation pane (Nav) provides links to the main areas of an app or site. This component can also be used as a TreeView to show parent-child data in a tree.
## Parameters
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| Accent | `BitColor?` | null | The accent color of the nav. |
| AllExpanded | `bool` | false | Expands all items on first render. |
| ChevronDownIcon | `BitIconInfo?` | null | The icon for the chevron-down element of each nav item. Takes precedence over ChevronDownIconName when both are set. |
| ChevronDownIconName | `string?` | null | The custom icon name of the chevron-down element of each nav item. |
| ChildContent | `RenderFragment?` | null | Items to render as children. |
| Classes | `BitNavClassStyles?` | null | Custom CSS classes for different parts of the BitNav component. |
| Color | `BitColor?` | null | The general color of the nav that is only used for colored parts like icons. |
| DefaultSelectedItem | `TItem?` | null | The initially selected item in manual mode. |
| FitWidth | `bool` | false | Renders the nav in a width to only fit its content. |
| FullWidth | `bool` | false | Renders the nav in full width of its container element. |
| HeaderTemplate | `RenderFragment<TItem>?` | null | Used to customize how content inside the group header is rendered. |
| HeaderTemplateRenderMode | `BitNavItemTemplateRenderMode` | BitNavItemTemplateRenderMode.Normal | The render mode of the custom HeaderTemplate. |
| IconOnly | `bool` | false | Only renders the icon of each nav item. |
| IndentPadding | `int` | 27 | The indentation padding in px for items without children (compensation space for chevron icon). |
| IndentReversedPadding | `int` | 4 | The indentation padding in px for items in reversed mode. |
| IndentValue | `int` | 16 | The indentation value in px for each level of depth of child item. |
| Items | `IList<TItem>` | new List<TItem>() | A collection of item to display in the navigation bar. |
| ItemTemplate | `RenderFragment<TItem>?` | null | Used to customize how content inside the item is rendered. |
| ItemTemplateRenderMode | `BitNavItemTemplateRenderMode` | BitNavItemTemplateRenderMode.Normal | The render mode of the custom ItemTemplate. |
| Match | `BitNavMatch?` | null | Gets or sets a value representing the global URL matching behavior of the nav. |
| Mode | `BitNavMode` | BitNavMode.Automatic | Determines how the navigation will be handled. |
| NameSelectors | `BitNavNameSelectors<TItem>?` | null | Names and selectors of the custom input type properties. |
| NoCollapse | `bool` | | Hides all collapse/expand buttons and remove their spaces at the start of each node. |
| OnItemClick | `EventCallback<TItem>` | | Callback invoked when an item is clicked. |
| OnItemToggle | `EventCallback<TItem>` | | Callback invoked when a group header is clicked and Expanded or Collapse. |
| OnSelectItem | `EventCallback<TItem>` | | Callback invoked when an item is selected. |
| RenderType | `BitNavRenderType` | BitNavRenderType.Normal | The way to render nav items. |
| Reselectable | `bool` | false | Enables recalling the select events when the same item is selected. |
| ReversedChevron | `bool` | false | Reverses the location of the expander chevron. |
| SelectedItem | `TItem?` | null | Selected item to show in the BitNav. |
| SingleExpand | `bool` | false | Enables the single-expand mode in the BitNav. |
| Styles | `BitNavClassStyles?` | null | Custom CSS styles for different parts of the BitNav component. |
| AriaLabel | `string?` | null | Gets or sets the accessible label for the component, used by assistive technologies. |
| Class | `string?` | null | Gets or sets the CSS class name(s) to apply to the rendered element. |
| Dir | `BitDir?` | null | Gets or sets the text directionality for the component's content. |
| ForceAnimation | `bool` | false | Gets or sets a value indicating whether the component's animations play at their full duration even when reduced motion is requested. |
| HtmlAttributes | `Dictionary<string, object>` | new Dictionary<string, object>() | Captures additional HTML attributes to be applied to the rendered element, in addition to the component's parameters. |
| Id | `string?` | null | Gets or sets the unique identifier for the component's root element. |
| IsEnabled | `bool` | true | Gets or sets a value indicating whether the component is enabled and can respond to user interaction. |
| Style | `string?` | null | Gets or sets the CSS style string to apply to the rendered element. |
| TabIndex | `string?` | null | Gets or sets the tab order index for the component when navigating with the keyboard. |
| Visibility | `BitVisibility` | BitVisibility.Visible | Gets or sets the visibility state (visible, hidden, or collapsed) of the component. |
## Public Members
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| CollapseAll | `Action<TItem? item>` | | Collapses all items and children. |
| ExpandAll | `Action<TItem? item>` | | Expands all items and children in non-SingleExpand mode. |
| ToggleItem | `Func<Task, TItem>` | | Toggles an item. |
| UniqueId | `Guid` | Guid.NewGuid() | Gets the readonly unique identifier for the component's root element, assigned when the component instance is constructed. |
| RootElement | `ElementReference` | | Gets the reference to the root HTML element associated with this component. |
## Enums
### BitColor Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Primary | 0 | Info Primary general color. |
| Secondary | 1 | Secondary general color. |
| Tertiary | 2 | Tertiary general color. |
| Info | 3 | Info general color. |
| Success | 4 | Success general color. |
| Warning | 5 | Warning general color. |
| SevereWarning | 6 | SevereWarning general color. |
| Error | 7 | Error general color. |
| PrimaryBackground | 8 | Primary background color. |
| SecondaryBackground | 9 | Secondary background color. |
| TertiaryBackground | 10 | Tertiary background color. |
| PrimaryForeground | 11 | Primary foreground color. |
| SecondaryForeground | 12 | Secondary foreground color. |
| TertiaryForeground | 13 | Tertiary foreground color. |
| PrimaryBorder | 14 | Primary border color. |
| SecondaryBorder | 15 | Secondary border color. |
| TertiaryBorder | 16 | Tertiary border color. |
### BitNavMatch Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Exact | 0 | Specifies that the nav item should be active when it matches exactly the current URL. |
| Prefix | 1 | Specifies that the nav item should be active when it matches any prefix of the current URL. |
| Regex | 2 | Specifies that the nav item should be active when its provided regex matches the current URL. |
| Wildcard | 3 | Specifies that the nav item should be active when its provided wildcard matches the current URL. |
### BitNavMode Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Automatic | 0 | The value of selected key will change using NavigationManager and the current url inside the component. |
| Manual | 1 | Selected key changes will be sent back to the parent component and the component won't change its value. |
### BitNavRenderType Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Normal | 0 | All items will be rendered normally only based on their own properties. |
| Grouped | 1 | Root elements are rendered in a specific way that resembles a grouped list of items. |
### BitNavItemAriaCurrent Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Page | 0 | |
| Step | 1 | |
| Location | 2 | |
| Date | 3 | |
| Time | 4 | |
| True | 5 | |
### BitNavItemTemplateRenderMode Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Normal | 0 | Renders the template inside the button/anchor root element of the item. |
| Replace | 1 | Replaces the button/anchor root element of the item. |
### BitVisibility Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Visible | 0 | The content of the component is visible. |
| Hidden | 1 | The content of the component is hidden, but the space it takes on the page remains (visibility:hidden). |
| Collapsed | 2 | The component is hidden (display:none). |
### BitDir Enum
| Name | Value | Description |
| :--- | :--- | :---------- |
| Ltr | 0 | Ltr (left to right) is to be used for languages that are written from the left to the right (like English). |
| Rtl | 1 | Rtl (right to left) is to be used for languages that are written from the right to the left (like Arabic). |
| Auto | 2 | Auto lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then applies that directionality to the whole element. |
## Sub Classes
### BitNavItem Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| AriaCurrent | `BitNavAriaCurrent` | BitNavAriaCurrent.Page | Aria-current token for active nav item. Must be a valid token value, and defaults to 'page'. |
| AriaLabel | `string?` | null | Aria label for nav item. Ignored if CollapseAriaLabel or ExpandAriaLabel is provided. |
| Class | `string?` | null | Custom CSS class for the nav item. |
| ChildItems | `List<BitNavItem>` | [] | A list of items to render as children of the current nav item. |
| CollapseAriaLabel | `string?` | null | Aria label when nav item is collapsed and can be expanded. |
| Data | `object?` | null | The custom data for the nav item to provide additional state. |
| Description | `string?` | null | The description for the nav item. |
| ExpandAriaLabel | `string?` | null | Aria label when nav item is collapsed and can be expanded. |
| ForceAnchor | `bool` | false | Forces an anchor element render instead of button. |
| Icon | `BitIconInfo?` | null | The icon to render next to the nav item. Takes precedence over IconName when both are set. |
| IconName | `string?` | null | Name of an icon to render next to the nav item. |
| IsEnabled | `bool` | true | Whether or not the nav item is enabled. |
| IsExpanded | `bool` | false | Whether or not the nav item is in an expanded state. |
| IsSeparator | `bool` | false | Indicates that the nav item should render as a separator. |
| Key | `string?` | null | A unique value to use as a key or id of the nav item. |
| Match | `BitNavMatch?` | null | Gets or sets a value representing the URL matching behavior of the nav item. |
| Style | `string?` | null | Custom CSS style for the nav item. |
| Target | `string?` | null | Link target, specifies how to open the nav item's link. |
| Template | `RenderFragment<BitNavItem>?` | null | The custom template for the nav item to render. |
| TemplateRenderMode | `BitNavItemTemplateRenderMode` | BitNavItemTemplateRenderMode.Normal | The render mode of the nav item's custom template. |
| Text | `string` | string.Empty | Text to render for the nav item. |
| Title | `string?` | null | Text for the tooltip of the nav item. |
| Url | `string?` | null | The nav item's link URL. |
| AdditionalUrls | `IEnumerable<string>?` | null | Alternative URLs to be considered when auto mode tries to detect the selected nav item by the current URL. |
### BitNavOption Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| AriaCurrent | `BitNavAriaCurrent` | BitNavAriaCurrent.Page | Aria-current token for active nav option. Must be a valid token value, and defaults to 'page'. |
| AriaLabel | `string?` | null | Aria label for nav option. Ignored if CollapseAriaLabel or ExpandAriaLabel is provided. |
| Class | `string?` | null | Custom CSS class for the nav option. |
| ChildContent | `RenderFragment?` | null | A list of options to render as children of the current nav option. |
| CollapseAriaLabel | `string?` | null | Aria label when nav option is collapsed and can be expanded. |
| Data | `object?` | null | The custom data for the nav option to provide additional state. |
| Description | `string?` | null | The description for the nav option. |
| ExpandAriaLabel | `string?` | null | Aria label when nav option is collapsed and can be expanded. |
| ForceAnchor | `bool` | false | Forces an anchor element render instead of button. |
| Icon | `BitIconInfo?` | null | The icon to render next to the nav option. Takes precedence over IconName when both are set. |
| IconName | `string?` | null | Name of an icon to render next to the nav option. |
| IsEnabled | `bool` | true | Whether or not the nav option is enabled. |
| IsExpanded | `bool` | false | Whether or not the nav option is in an expanded state. |
| IsSeparator | `bool` | false | Indicates that the nav option should render as a separator. |
| Key | `string?` | null | A unique value to use as a key or id of the nav option. |
| Match | `BitNavMatch?` | null | Gets or sets a value representing the URL matching behavior of the nav option. |
| Style | `string?` | null | Custom CSS style for the nav option. |
| Target | `string?` | null | Link target, specifies how to open the nav option's link. |
| Template | `RenderFragment<BitNavItem>?` | null | The custom template for the nav option to render. |
| TemplateRenderMode | `BitNavItemTemplateRenderMode` | BitNavItemTemplateRenderMode.Normal | The render mode of the nav option's custom template. |
| Text | `string` | string.Empty | Text to render for the nav option. |
| Title | `string?` | null | Text for the tooltip of the nav option. |
| Url | `string?` | null | The nav option's link URL. |
| AdditionalUrls | `IEnumerable<string>?` | null | Alternative URLs to be considered when auto mode tries to detect the selected nav option by the current URL. |
### BitNavNameSelectors<TItem> Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| AriaCurrent | `BitNameSelectorPair<TItem, BitNavAriaCurrent?>` | new(nameof(BitNavItem.AriaCurrent)) | The AriaCurrent field name and selector of the custom input class. |
| AriaLabel | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.AriaLabel)) | The AriaLabel field name and selector of the custom input class. |
| Class | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Class)) | The Class field name and selector of the custom input class. |
| ChildItems | `BitNameSelectorPair<TItem, List<TItem>?>` | new(nameof(BitNavItem.ChildItems)) | The ChildItems field name and selector of the custom input class. |
| CollapseAriaLabel | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.CollapseAriaLabel)) | The CollapseAriaLabel field name and selector of the custom input class. |
| Data | `BitNameSelectorPair<TItem, object?>` | new(nameof(BitNavItem.Data)) | The Data field name and selector of the custom input class. |
| Description | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Description)) | The Description field name and selector of the custom input class. |
| ExpandAriaLabel | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.ExpandAriaLabel)) | The ExpandAriaLabel field name and selector of the custom input class. |
| ForceAnchor | `BitNameSelectorPair<TItem, bool?>` | new(nameof(BitNavItem.ForceAnchor)) | The ForceAnchor field name and selector of the custom input class. |
| Icon | `BitNameSelectorPair<TItem, BitIconInfo?>` | new(nameof(BitNavItem.Icon)) | The Icon field name and selector of the custom input class. |
| IconName | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.IconName)) | The IconName field name and selector of the custom input class. |
| IsEnabled | `BitNameSelectorPair<TItem, bool?>` | new(nameof(BitNavItem.IsEnabled)) | The IsEnabled field name and selector of the custom input class. |
| IsExpanded | `BitNameSelectorPair<TItem, bool?>` | new(nameof(BitNavItem.IsExpanded)) | The IsExpanded field name and selector of the custom input class. |
| IsSeparator | `BitNameSelectorPair<TItem, bool?>` | new(nameof(BitNavItem.IsSeparator)) | The IsSeparator field name and selector of the custom input class. |
| Key | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Key)) | The Key field name and selector of the custom input class. |
| Match | `BitNameSelectorPair<TItem, BitNavMatch?>` | new(nameof(BitNavItem.Match)) | The Match field name and selector of the custom input class. |
| Style | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Style)) | The Style field name and selector of the custom input class. |
| Target | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Target)) | The Target field name and selector of the custom input class. |
| TemplateRenderMode | `BitNameSelectorPair<TItem, BitNavItemTemplateRenderMode?>` | new(nameof(BitNavItem.TemplateRenderMode)) | The TemplateRenderMode field name and selector of the custom input class. |
| Text | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Text)) | The Text field name and selector of the custom input class. |
| Title | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Title)) | The Title field name and selector of the custom input class. |
| Url | `BitNameSelectorPair<TItem, string?>` | new(nameof(BitNavItem.Url)) | The Url field name and selector of the custom input class. |
| AdditionalUrls | `BitNameSelectorPair<TItem, IEnumerable<string>?>` | new(nameof(BitNavItem.AdditionalUrls)) | The AdditionalUrls field name and selector of the custom input class. |
### BitNavClassStyles Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| Root | `String?` | null | Custom CSS classes/styles for the root element of the BitNav. |
| Item | `String?` | null | Custom CSS classes/styles for the item of the BitNav. |
| SelectedItem | `String?` | null | Custom CSS classes/styles for the selected item of the BitNav. |
| ItemContainer | `String?` | null | Custom CSS classes/styles for the item container of the BitNav. |
| ItemIcon | `String?` | null | Custom CSS classes/styles for the item icon of the BitNav. |
| ItemText | `String?` | null | Custom CSS classes/styles for the item text of the BitNav. |
| SelectedItemContainer | `String?` | null | Custom CSS classes/styles for the selected item container of the BitNav. |
| ToggleButton | `String?` | null | Custom CSS classes/styles for the toggle button of the BitNav. |
| Separator | `String?` | null | Custom CSS classes/styles for the separator of the BitNav. |
### BitIconInfo Properties
| Name | Type | Default Value | Description |
| :--- | :--- | :------------ | :---------- |
| Name | `string?` | null | Gets or sets the name of the icon. |
| BaseClass | `string?` | null | Gets or sets the base CSS class for the icon. For built-in Fluent UI icons, this defaults to "bit-icon". For external icon libraries like FontAwesome, you might set this to "fa" or leave empty. |
| Prefix | `string?` | null | Gets or sets the CSS class prefix used before the icon name. For built-in Fluent UI icons, this defaults to "bit-icon--". For external icon libraries, you might set this to "fa-" or leave empty. |
## Examples
\n**Basic**:
```razor
```
```csharp
private static readonly List basicNavItems =
[
new()
{
Text = "bit platform",
Description = "the bit platform description",
ChildItems =
[
new() { Text = "Home", IconName = BitIconName.Home, Url = "https://bitplatform.dev/" },
new()
{
Text = "Products & Services",
ChildItems =
[
new()
{
Text = "Project Templates",
ChildItems =
[
new() { Text = "Todo sample", IconName = BitIconName.ToDoLogoOutline, Url = "https://bitplatform.dev/templates/overview" },
new() { Text = "AdminPanel sample", IconName = BitIconName.LocalAdmin, Url = "https://bitplatform.dev/templates/overview" },
]
},
new() { Text = "BlazorUI", IconName = BitIconName.F12DevTools, Url = "https://bitplatform.dev/components" },
new() { Text = "Cloud hosting solutions", IconName = BitIconName.Cloud, Url = "https://bitplatform.dev/#", IsEnabled = false },
new() { Text = "Bit academy", IconName = BitIconName.LearningTools, Url = "https://bitplatform.dev/#", IsEnabled = false },
]
},
new() { Text = "Pricing", IconName = BitIconName.Money, Url = "https://bitplatform.dev/pricing" },
new() { Text = "About", IconName = BitIconName.Info, Url = "https://bitplatform.dev/about-us" },
new() { Text = "Contact us", IconName = BitIconName.Contact, Url = "https://bitplatform.dev/contact-us" },
],
},
new()
{
Text = "Community",
ChildItems =
[
new() { Text = "LinkedIn", IconName = BitIconName.LinkedInLogo , Url = "https://www.linkedin.com/company/bitplatformhq" },
new() { Text = "Twitter", IconName = BitIconName.Globe , Url = "https://twitter.com/bitplatformhq" },
new() { Text = "GitHub repo", IconName = BitIconName.GitGraph , Url = "https://github.com/bitfoundation/bitplatform" },
]
},
new() { Text = "Iconography", IconName = BitIconName.AppIconDefault, Url = "/iconography" },
];
```
\n**Grouped**:
```razor
```
```csharp
private static readonly List carNavItems =
[
new()
{
Text = "Mercedes-Benz",
ExpandAriaLabel = "Mercedes-Benz Expanded",
CollapseAriaLabel = "Mercedes-Benz Collapsed",
Title = "Mercedes-Benz Car Models",
IsExpanded = true,
Description = "Cars manufactured under the brand of Mercedes-Benz",
ChildItems =
[
new()
{
Text = "SUVs",
ChildItems =
[
new() { Text = "GLA", Url = "https://www.mbusa.com/en/vehicles/class/gla/suv", Target = "_blank" },
new() { Text = "GLB", Url = "https://www.mbusa.com/en/vehicles/class/glb/suv", Target = "_blank" },
new() { Text = "GLC", Url = "https://www.mbusa.com/en/vehicles/class/glc/suv", Target = "_blank" },
]
},
new()
{
Text = "Sedans & Wagons",
ChildItems =
[
new() { Text = "A Class", Url = "https://www.mbusa.com/en/vehicles/class/a-class/sedan", Target = "_blank" },
new() { Text = "C Class", Url = "https://www.mbusa.com/en/vehicles/class/c-class/sedan", Target = "_blank" },
new() { Text = "E Class", Url = "https://www.mbusa.com/en/vehicles/class/e-class/sedan", Target = "_blank" },
]
},
new()
{
Text = "Coupes",
ChildItems =
[
new() { Text = "CLA Coupe", Url = "https://www.mbusa.com/en/vehicles/class/cla/coupe", Target = "_blank" },
new() { Text = "C Class Coupe", Url = "https://www.mbusa.com/en/vehicles/class/c-class/coupe", Target = "_blank" },
new() { Text = "E Class Coupe", Url = "https://www.mbusa.com/en/vehicles/class/e-class/coupe", Target = "_blank" },
]
},
]
},
new()
{
Text = "Tesla",
ExpandAriaLabel = "Tesla Expanded",
CollapseAriaLabel= "Tesla Collapsed",
Title = "Tesla Car Models",
ChildItems =
[
new() { Text = "Model S", Url = "https://www.tesla.com/models", Target = "_blank" },
new() { Text = "Model X", Url = "https://www.tesla.com/modelx", Target = "_blank" },
new() { Text = "Model Y", Url = "https://www.tesla.com/modely", Target = "_blank" },
]
},
];
```
\n**Manual Mode**:
```razor
```
```csharp
private static readonly List foodNavItems =
[
new()
{
Text = "Fast foods",
IconName = BitIconName.HeartBroken,
IsExpanded = true,
Description = "List of fast foods",
ChildItems =
[
new()
{
Text = "Burgers",
Description = "List of burgers",
ChildItems =
[
new() { Text = "Beef Burger" },
new() { Text = "Veggie Burger" },
new() { Text = "Bison Burger" },
new() { Text = "Wild Salmon Burger" },
]
},
new()
{
Text = "Pizza",
ChildItems =
[
new() { Text = "Cheese Pizza" },
new() { Text = "Veggie Pizza" },
new() { Text = "Pepperoni Pizza" },
new() { Text = "Meat Pizza" },
]
},
new() { Text = "French Fries" },
]
},
new()
{
Text = "Fruits",
IconName = BitIconName.Health,
ChildItems =
[
new() { Text = "Apple" },
new() { Text = "Orange" },
new() { Text = "Banana" },
]
},
new() { Text = "Ice Cream" },
new() { Text = "Cookie" },
];
private static readonly List FoodMenuDropdownItems = new()
{
new()
{
Text = "Beef Burger",
Value = "Beef Burger",
},
new()
{
Text = "Veggie Burger",
Value = "Veggie Burger",
},
new()
{
Text = "Bison Burger",
Value = "Bison Burger",
},
new()
{
Text = "Wild Salmon Burger",
Value = "Wild Salmon Burger",
},
new()
{
Text = "Cheese Pizza",
Value = "Cheese Pizza",
},
new()
{
Text = "Veggie Pizza",
Value = "Veggie Pizza",
},
new()
{
Text = "Pepperoni Pizza",
Value = "Pepperoni Pizza",
},
new()
{
Text = "Meat Pizza",
Value = "Meat Pizza",
},
new()
{
Text = "French Fries",
Value = "French Fries",
},
new()
{
Text = "Aplle",
Value = "Aplle",
},
new()
{
Text = "Orange",
Value = "Orange",
},
new()
{
Text = "Benana",
Value = "Benana",
},
new()
{
Text = "Ice Cream",
Value = "Ice Cream",
},
new()
{
Text = "Cookie",
Value = "Cookie",
},
};
private static List Flatten(IList e) => e.SelectMany(c => Flatten(c.Items)).Concat(e).ToList();
private BitNavItem SelectedItemNav = foodNavItems[0].Items[2];
private string SelectedItemText = foodNavItems[0].Items[2].Text;
```
\n**Custom Templates**:
```razor
```
```csharp
private static readonly List carNavItems =
[
new()
{
Text = "Mercedes-Benz",
ExpandAriaLabel = "Mercedes-Benz Expanded",
CollapseAriaLabel = "Mercedes-Benz Collapsed",
Title = "Mercedes-Benz Car Models",
IsExpanded = true,
Description = "Cars manufactured under the brand of Mercedes-Benz",
ChildItems =
[
new()
{
Text = "SUVs",
ChildItems =
[
new() { Text = "GLA", Url = "https://www.mbusa.com/en/vehicles/class/gla/suv", Target = "_blank" },
new() { Text = "GLB", Url = "https://www.mbusa.com/en/vehicles/class/glb/suv", Target = "_blank" },
new() { Text = "GLC", Url = "https://www.mbusa.com/en/vehicles/class/glc/suv", Target = "_blank" },
]
},
new()
{
Text = "Sedans & Wagons",
ChildItems =
[
new() { Text = "A Class", Url = "https://www.mbusa.com/en/vehicles/class/a-class/sedan", Target = "_blank" },
new() { Text = "C Class", Url = "https://www.mbusa.com/en/vehicles/class/c-class/sedan", Target = "_blank" },
new() { Text = "E Class", Url = "https://www.mbusa.com/en/vehicles/class/e-class/sedan", Target = "_blank" },
]
},
new()
{
Text = "Coupes",
ChildItems =
[
new() { Text = "CLA Coupe", Url = "https://www.mbusa.com/en/vehicles/class/cla/coupe", Target = "_blank" },
new() { Text = "C Class Coupe", Url = "https://www.mbusa.com/en/vehicles/class/c-class/coupe", Target = "_blank" },
new() { Text = "E Class Coupe", Url = "https://www.mbusa.com/en/vehicles/class/e-class/coupe", Target = "_blank" },
]
},
]
},
new()
{
Text = "Tesla",
ExpandAriaLabel = "Tesla Expanded",
CollapseAriaLabel= "Tesla Collapsed",
Title = "Tesla Car Models",
ChildItems =
[
new() { Text = "Model S", Url = "https://www.tesla.com/models", Target = "_blank" },
new() { Text = "Model X", Url = "https://www.tesla.com/modelx", Target = "_blank" },
new() { Text = "Model Y", Url = "https://www.tesla.com/modely", Target = "_blank" },
]
},
];
private static readonly List foodNavItems =
[
new()
{
Text = "Fast foods",
IconName = BitIconName.HeartBroken,
IsExpanded = true,
Description = "List of fast foods",
ChildItems =
[
new()
{
Text = "Burgers",
Description = "List of burgers",
ChildItems =
[
new() { Text = "Beef Burger" },
new() { Text = "Veggie Burger" },
new() { Text = "Bison Burger" },
new() { Text = "Wild Salmon Burger" },
]
},
new()
{
Text = "Pizza",
ChildItems =
[
new() { Text = "Cheese Pizza" },
new() { Text = "Veggie Pizza" },
new() { Text = "Pepperoni Pizza" },
new() { Text = "Meat Pizza" },
]
},
new() { Text = "French Fries" },
]
},
new()
{
Text = "Fruits",
IconName = BitIconName.Health,
ChildItems =
[
new() { Text = "Apple" },
new() { Text = "Orange" },
new() { Text = "Banana" },
]
},
new() { Text = "Ice Cream" },
new() { Text = "Cookie" },
];
```
\n**Events**:
```razor
Clicked Item: @ClickedItem?.Text
Selected Item: @SelectedItem?.Text
Toggled Item: @(ToggledItem is null ? "N/A" : $"{ToggledItem.Text} ({(ToggledItem.IsExpanded ? "Expanded" : "Collapsed")})")
```
```csharp
private static readonly List foodNavItems =
[
new()
{
Text = "Fast foods",
IconName = BitIconName.HeartBroken,
IsExpanded = true,
Description = "List of fast foods",
ChildItems =
[
new()
{
Text = "Burgers",
Description = "List of burgers",
ChildItems =
[
new() { Text = "Beef Burger" },
new() { Text = "Veggie Burger" },
new() { Text = "Bison Burger" },
new() { Text = "Wild Salmon Burger" },
]
},
new()
{
Text = "Pizza",
ChildItems =
[
new() { Text = "Cheese Pizza" },
new() { Text = "Veggie Pizza" },
new() { Text = "Pepperoni Pizza" },
new() { Text = "Meat Pizza" },
]
},
new() { Text = "French Fries" },
]
},
new()
{
Text = "Fruits",
IconName = BitIconName.Health,
ChildItems =
[
new() { Text = "Apple" },
new() { Text = "Orange" },
new() { Text = "Banana" },
]
},
new() { Text = "Ice Cream" },
new() { Text = "Cookie" },
];
private BitNavItem ClickedItem;
private BitNavItem SelectedItem;
private BitNavItem ToggledItem;
```
\n**External Icons**:
```razor
```
```csharp
private static readonly List externalIconNavItems =
[
new()
{
Text = "bit platform",
Description = "Nav with external icons (FontAwesome)",
ChildItems =
[
new() { Text = "Home", Icon = BitIconInfo.Css("fa-solid fa-house"), Url = "https://bitplatform.dev/" },
new()
{
Text = "Products & Services",
ChildItems =
[
new() { Text = "BlazorUI", Icon = BitIconInfo.Fa("solid code"), Url = "https://bitplatform.dev/components" },
new() { Text = "Pricing", Icon = BitIconInfo.Css("fa-solid fa-tag"), Url = "https://bitplatform.dev/pricing" },
]
},
new() { Text = "About", Icon = BitIconInfo.Fa("solid circle-info"), Url = "https://bitplatform.dev/about-us" },
new() { Text = "Contact us", Icon = BitIconInfo.Css("fa-solid fa-envelope"), Url = "https://bitplatform.dev/contact-us" },
],
},
new() { Text = "Iconography", Icon = BitIconInfo.Css("fa-solid fa-icons"), Url = "/iconography" },
];
```
\n**Custom Styles**:
```razor
```
```csharp
private static readonly List customStyleNavItems =
[
new()
{
Text = "bit platform",
Description = "the bit platform description",
ChildItems =
[
new() { Text = "Home", IconName = BitIconName.Home, Url = "https://bitplatform.dev/" },
new()
{
Text = "Products & Services",
ChildItems =
[
new()
{
Text = "Project Templates",
ChildItems =
[
new() { Text = "Todo sample", IconName = BitIconName.ToDoLogoOutline, Url = "https://bitplatform.dev/templates/overview" },
new() { Text = "AdminPanel sample", IconName = BitIconName.LocalAdmin, Url = "https://bitplatform.dev/templates/overview" },
]
},
new() { Text = "BlazorUI", IconName = BitIconName.F12DevTools, Url = "https://bitplatform.dev/components" },
new() { Text = "Cloud hosting solutions", IconName = BitIconName.Cloud, Url = "https://bitplatform.dev/#", IsEnabled = false },
new() { Text = "Bit academy", IconName = BitIconName.LearningTools, Url = "https://bitplatform.dev/#", IsEnabled = false },
]
},
new() { Text = "Pricing", IconName = BitIconName.Money, Url = "https://bitplatform.dev/pricing" },
new() { Text = "About", IconName = BitIconName.Info, Url = "https://bitplatform.dev/about-us" },
new() { Text = "Contact us", IconName = BitIconName.Contact, Url = "https://bitplatform.dev/contact-us" },
],
},
new()
{
Text = "Community",
ChildItems =
[
new() { Text = "LinkedIn", IconName = BitIconName.LinkedInLogo , Url = "https://www.linkedin.com/company/bitplatformhq" },
new() { Text = "Twitter", IconName = BitIconName.Globe , Url = "https://twitter.com/bitplatformhq" },
new() { Text = "GitHub repo", IconName = BitIconName.GitGraph , Url = "https://github.com/bitfoundation/bitplatform" },
]
},
new() { Text = "Iconography", IconName = BitIconName.AppIconDefault, Url = "/iconography" },
];
```
\n**RTL**:
```razor
```
```csharp
private static readonly List RtlbasicNavItems =
[
new()
{
Text = "پلتفرمِ بیت",
Description = "توضیحاتِ پلتفرمِ بیت",
ChildItems =
[
new() { Text = "خانه", IconName = BitIconName.Home, Url = "https://bitplatform.dev/" },
new()
{
Text = "محصولات و خدمات",
ChildItems =
[
new()
{
Text = "قالب های پروژه",
ChildItems =
[
new() { Text = "نمونه ی Todo", IconName = BitIconName.ToDoLogoOutline, Url = "https://bitplatform.dev/templates/overview" },
new() { Text = "نمونه ی AdminPanel", IconName = BitIconName.LocalAdmin, Url = "https://bitplatform.dev/templates/overview" },
]
},
new() { Text = "رابط کاربری Blazor", IconName = BitIconName.F12DevTools, Url = "https://blazorui-ai.bitplatform.dev/" },
new() { Text = "راه های هاست ابری", IconName = BitIconName.Cloud, Url = "https://bitplatform.dev/#", IsEnabled = false },
new() { Text = "آکادمی بیت", IconName = BitIconName.LearningTools, Url = "https://bitplatform.dev/#", IsEnabled = false },
]
},
new() { Text = "قیمت", IconName = BitIconName.Money, Url = "https://bitplatform.dev/pricing" },
new() { Text = "درباره ما", IconName = BitIconName.Info, Url = "https://bitplatform.dev/about-us" },
new() { Text = "ارتباط با ما", IconName = BitIconName.Contact, Url = "https://bitplatform.dev/contact-us" },
],
},
new()
{
Text = "انجمن ها",
ChildItems =
[
new() { Text = "لینکدین", IconName = BitIconName.LinkedInLogo , Url = "https://www.linkedin.com/company/bitplatformhq" },
new() { Text = "توییتر", IconName = BitIconName.Globe , Url = "https://twitter.com/bitplatformhq" },
new() { Text = "گیتهاب", IconName = BitIconName.GitGraph , Url = "https://github.com/bitfoundation/bitplatform" },
]
},
new() { Text = "شمایل نگاری", IconName = BitIconName.AppIconDefault, Url = "/iconography" },
];
```
Basic
Two-Way Bind
Header Template (in Grouped mode)
Item Template