The
page_navbar
page_navbar_icon
page_navbar_dropdown
.nav-underline ... > a.active
.nav-link:not(.dropdown-toggle).active
Written by hand, not hosted through renderUI(), because the
children
Only data-value has to match the parent exactly: it is what Shiny reports as input$. The href fragments are made up here (bslib's are random), which is why tabPaneId() is exported for TabPane.
The
bslib::page_navbar() renders, pinned against the- gets "nav-item"
and only the selected tab's gets "active". Both bslib's active-tab
underline (
- instead.
page_navbar,page_navbar_iconandpage_navbar_dropdowncatalog samples: every tab's.nav-underline ... > a.active) and Shiny's Bootstrap 5 tab binding (.nav-link:not(.dropdown-toggle).active) read "active" on the ; the Bootstrap 3 shape puts it on theWritten by hand, not hosted through renderUI(), because the
mixes tab links with React siblings (nav_spacer(), nav_item() content). It is bound as a Shiny input through useBoundScope over its parent, since Shiny's find() is descendants-only and would never find the
as its own scope.
childrenwaits for that bind (see useBoundScope); the tab links do not, since they hold nothing hosted.Only data-value has to match the parent exactly: it is what Shiny reports as input$. The href fragments are made up here (bslib's are random),
which is why tabPaneId() is exported for TabPane.