Getting StartedInstallationSupportChangelogGithubFrameworksAngularVueReactDemosFoundationThemesInternationalizationTypographyIconsLayoutGetting StartedBlockInlineGridComponentsAccordionAlertAlert GroupBadgeBreadcrumbButtonButton GroupButton ExpandButton HandleButton IconButton Icon GroupButton SortCardCheckboxColorData GridDateDialogDividerDrawerDropdownFileFormsForm InteractionsForm ValidationHeaderInputMenuMonthNavPaginationPasswordProgress BarProgress CircleRadioRangeSearchSelectShellSwitchTabsTagTextareaTimeToastTooltipData GridGetting StartedFooterPlaceholderAsyncResponsiveScroll HeightPaginationBordersHoverColumn AlignmentColumn WidthColumn FixedColumn StickyColumn VisibilityRow HeaderRow Multi SelectRow Single SelectRow HeightRow ActionRow Action BulkRow StickyRow StripeRow FixedRow SortRow Groups

The Navigation component that allows users to navigate between different sections or pages. The component should contain links to different sections or pages within the application. The links should be clearly labeled and easily distinguishable.

Example

code
<script type="module">
import '@blueprintui/components/include/nav.js';
import '@blueprintui/icons/include.js';
import '@blueprintui/icons/shapes/home.js';
</script>
<bp-nav expanded style="--height: 350px">
<bp-nav-item>
<bp-icon shape="home"></bp-icon>
<a href="#">item 1</a>
</bp-nav-item>
<bp-nav-item selected>
<bp-icon shape="home"></bp-icon>
<a href="#">item 2</a>
</bp-nav-item>
<bp-nav-item>
<bp-icon shape="home"></bp-icon>
item 3
</bp-nav-item>
</bp-nav>

Collapsed

item 1item 2item 3
code
<bp-nav expandable style="--height: 350px">
<bp-nav-item>
<bp-icon shape="home"></bp-icon>
item 1
</bp-nav-item>
<bp-nav-item selected>
<bp-icon shape="home"></bp-icon>
item 2
</bp-nav-item>
<bp-nav-item>
<bp-icon shape="home"></bp-icon>
item 3
</bp-nav-item>
</bp-nav>
<script type="module">
import '@blueprintui/components/include/nav.js';
import '@blueprintui/icons/include.js';
import '@blueprintui/icons/shapes/home.js';

const nav = document.querySelector('bp-nav');
const items = document.querySelectorAll('bp-nav-item');

nav.addEventListener('change', () => (nav.expanded = !nav.expanded));
nav.addEventListener('click', (e) => {
if (e.target.tagName === 'BP-NAV-ITEM') {
items.forEach((item) => (item.selected = false));
e.target.selected = !e.target.selected;
}
});
</script>

Icon

item 1item 2item 3
code
<script type="module">
import '@blueprintui/components/include/nav.js';
import '@blueprintui/icons/include.js';
import '@blueprintui/icons/shapes/home.js';
</script>
<bp-nav expanded style="--height: 350px">
<bp-nav-item>
<bp-icon shape="home"></bp-icon>
item 1
</bp-nav-item>
<bp-nav-item selected>
<bp-icon shape="home"></bp-icon>
item 2
</bp-nav-item>
<bp-nav-item>
<bp-icon shape="home"></bp-icon>
item 3
</bp-nav-item>
</bp-nav>

Groups

item 1group 1group item 1group item 2group item 3group 1group item 1group item 2
code
<script type="module">
import '@blueprintui/components/include/nav.js';
import '@blueprintui/icons/include.js';
import '@blueprintui/icons/shapes/home.js';
</script>
<bp-nav expanded style="--height: 350px">
<bp-nav-item> <bp-icon shape="home"></bp-icon> item 1 </bp-nav-item>
<bp-nav-group expanded>
<bp-nav-item><bp-icon shape="home"></bp-icon> group 1</bp-nav-item>
<bp-nav-item>group item 1</bp-nav-item>
<bp-nav-item selected>group item 2</bp-nav-item>
<bp-nav-item>group item 3</bp-nav-item>
</bp-nav-group>
<bp-nav-group>
<bp-nav-item><bp-icon shape="home"></bp-icon> group 1</bp-nav-item>
<bp-nav-item><bp-icon shape="home"></bp-icon> group item 1</bp-nav-item>
<bp-nav-item><bp-icon shape="home"></bp-icon> group item 2</bp-nav-item>
</bp-nav-group>
</bp-nav>

Install

NPM

// npm package
import '@blueprintui/components/include/nav.js';

CDN

<script type="module">
import 'https://cdn.jsdelivr.net/npm/@blueprintui/components/include/nav.js/+esm';
</script>

Accessibility

  • The currently selected page should be highlighted in the navigation menu.
  • The component should be accessible to screen readers, with clear and descriptive labels for each link.
  • The links should be focusable and have a clear visual indication when focused.

bp-nav

Events

NameTypesDescription
changeCustomEvent

Properties

NameTypesDescription
expandedboolean
expandableboolean
i18n
items

Attributes

NameTypesDescription
expandedboolean
expandableboolean
i18n

CSS Properties

NameTypesDescription
--background
--padding
--width
--height
--max-height

Slots

NameTypesDescription
defaultcontent