MyNixOS website logo
Description

Branding, Theme Application and Navigation Utilities for 'bs4Dash' Dashboards.

Provides branding, theme application, and navigation utilities for applications built with 'bs4Dash' and 'shiny'. Supports configurable sidebar brand display modes, hover-expand behavior, and theme customization using CSS variables. Includes standardized navigation components such as refresh and help controls, along with helpers for common navigation bar and footer layouts.

bs4Dashkit

Structured theming and navigation utilities for {bs4Dash} applications.

bs4Dashkit provides:

  • Unified brand and sidebar configuration
  • Configurable collapsed / expanded sidebar modes
  • Hover-expand sidebar behavior
  • Subtle CSS-variable theming
  • Standardized navigation components (refresh, help, user menu)
  • Lightweight dependency model compatible with native {bs4Dash} layouts

Installation

# Development version
remotes::install_github("PrigasG/bs4Dashkit")

Quick Start

library(shiny)
library(bs4Dash)
library(bs4Dashkit)

ttl <- dash_titles(
  brand_text = "OLTCR Dashboards",
  icon = icon("cloud"),
  collapsed = "icon-only",
  expanded = "icon-text"
)

ui <- bs4DashPage(
  title = ttl$app_name,
  header = bs4DashNavbar(title = ttl$brand),
  sidebar = bs4DashSidebar(
    bs4SidebarMenu(
      bs4SidebarMenuItem("Dashboard", tabName = "dash")
    )
  ),
  body = bs4DashBody(
    use_bs4Dashkit_core(ttl),
    bs4TabItems(
      bs4TabItem(
        tabName = "dash",
        h2("Hello Dashboard")
      )
    )
  )
)

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

Key Features

Sidebar Modes

  • "icon-only"
  • "icon-text"
  • "text-only"

Fully configurable for collapsed and expanded states.

brand_text is the primary label. It is used in the navbar and, by default, as the expanded sidebar label. The sidebar brand mirrors the navbar title you pass to bs4DashNavbar(title = ttl$brand). Use collapsed_text only when you want a very short label in the narrow collapsed sidebar. In practice, about 3 characters works best.

Theme System

CSS variable-driven theming:

use_dash_theme(accent = "#2f6f8f")

New Ergonomics

Recent additions make the package easier to wire up in real apps:

ttl <- dash_titles(
  brand_text = "OLTCR Dashboards",
  icon = icon("cloud"),
  collapsed_text = "OLT",
  expanded_text = "OLTCR Dashboards", # optional; brand_text is the default
  collapsed_text_size = "10px",
  expanded_text_size = "15px",
  collapsed_text_weight = 700,
  expanded_text_weight = 800
)

bs4dashkit_theme_presets()
bs4dashkit_example_app()
bs4dashkit_demo_app()

For a textless icon brand in both sidebar states:

ttl <- dash_titles(
  brand_text = NULL,
  app_name = "Icon Lab",
  icon = icon("cloud"),
  collapsed = "icon-only",
  expanded = "icon-only"
)

Navigation Utilities

Prebuilt components:

  • dash_nav_refresh_button()
  • dash_nav_help_button()
  • dash_user_menu()

Available presets:

bs4dashkit_theme_presets()

Server-side wiring example:

observeEvent(input$refresh, session$reload())

Documentation

Full documentation and examples are available at:

https://prigasg.github.io/bs4Dashkit/

For a fuller interactive demo, run:

bs4dashkit_demo_app()

or open the packaged example app file:

shiny::runApp(system.file("examples", "real-shiny-app", package = "bs4Dashkit"))

For a heavier stress-test example that exercises the shipped features together:

shiny::runApp(system.file("examples", "test-all", package = "bs4Dashkit"))

That packaged example is now a standalone full app source file, not just a wrapper around bs4dashkit_demo_app().


License

MIT

Full Example App

A complete working example (brand, sidebar modes, hover expand, theme preset, navbar tools, footer) is included in the documentation site:

  • Articles -> Complete Example App.
Metadata

Version

0.2.0

License

Unknown

Platforms (80)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows