The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

bslibdash bslibdash hex logo

Lifecycle: maturing R-CMD-check License: MIT

bslibdash gives you the vocabulary of a dashboard — a page shell, a sidebar menu, cards, KPI tiles, header widgets — built on top of bslib and Bootstrap 5. Because it’s a thin layer over bslib, dashboards built with bslibdash inherit your theme, dark mode and bslib::bs_themer() for free, and play nicely with other bslib-based Shiny packages like teal.

If you know shinydashboard, you already know most of the bslibdash API: function names and arguments mirror it wherever the underlying concept is the same, so porting an existing app is mostly search-and-replace.

Features

Installation

bslibdash isn’t on CRAN yet. Install the development version from GitHub:

# install.packages("pak")
pak::pak("Novartis/bslibdash")

Usage

library(shiny)
library(bslibdash)

ui <- dashboardPage(
  header = dashboardHeader(title = "bslibdash demo"),
  sidebar = dashboardSidebar(
    sidebarUserPanel("Jane Doe", subtitle = "Administrator"),
    sidebarMenu(
      id = "sidebarMenu",
      menuItem("Overview", tabName = "overview", icon = icon("house")),
      menuItem("Reports",  tabName = "reports",  icon = icon("bar-chart"))
    )
  ),
  body = dashboardBody(
    tabItems(
      tabItem(
        "overview",
        boxLayout(
          valueBox("128", "Open tickets", icon = icon("inbox"),
                   color = "primary"),
          valueBox("42%", "CPU load",     icon = icon("cpu"),
                   color = "warning"),
          infoBox("Status", "Healthy",    icon = icon("heart-pulse"),
                  color = "success")
        ),
        box("Hello, world!", title = "Welcome",
            status = "primary", collapsible = TRUE)
      ),
      tabItem("reports", box("Report body", title = "Quarterly"))
    )
  )
)

shinyApp(ui, server = function(input, output, session) {})

For a full walk-through of every component, run the kitchen-sink demo:

shiny::runApp(
  system.file("shiny/examples/14_kitchen_sink", package = "bslibdash")
)

Why bslibdash?

Because bslibdash is just bslib underneath, it also slots into apps built with teal, raw bslib::page_*() layouts, shinyuieditor and bsicons — all sharing the same theme, dark mode and bs_themer() machinery as your dashboard shell.

Learn more

Getting help

If you find a bug, please open an issue with a minimal reproducible example. To propose a change, see CONTRIBUTING.md.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.