README.md

EZRShiny

EZRShiny helps you build multi-page 'shiny' apps that all look and work the same way, with far less code. Describe your app as a set of tabs, fill them with inputs and outputs, and EZRShiny builds the page: navigation bar, logos, app name, sidebars, tooltips and a dark mode switch.

library(EZRShiny)

ui <- UINav(
  appName = "My App",
  barColor = "#1F4E79",

  singleTab("Upload",
    navUpload("dataUpload", "Upload a CSV",
              tooltipText = "CSV files only"),
    navButton("runData", "Run")
  ),

  biLevelTab("Results",
    subSidebarTab("Table",
      sidebarElements = list(navDownload("tableDownload", "Download table")),
      navOutputTable("resultsTable")
    ),
    subTab("Plot",
      navOutputPlot("resultsPlot")
    )
  )
)

Installation

Once EZRShiny is on CRAN:

install.packages("EZRShiny")

Until then, install the latest version from GitHub:

# install.packages("remotes")
remotes::install_github("vari-bbc/EZRShiny")

This skips the "Getting started" guide by default. To install the guide too, so vignette("getting-started", package = "EZRShiny") works (this needs pandoc, which RStudio includes):

remotes::install_github("vari-bbc/EZRShiny", build_vignettes = TRUE)

Or install from a local copy of the folder:

# install.packages("devtools")
devtools::install("path/to/EZRShiny")

Getting started

Start a new app from the template:

EZRShiny::createEZApp("myApp", appName = "My App")
shiny::runApp("myApp")

Or open the example app, which explores who survived the Titanic and uses every kind of tab:

EZRShiny::runExampleApp()

Then read the guide, which covers the folder layout, every tab, input and output function, and the server helpers:

vignette("getting-started", package = "EZRShiny")

What's included

| Group | Functions | |-------|-----------| | Page | UINav() | | Top-level tabs | singleTab(), sidebarLevelTab(), biLevelTab(), triLevelTab() | | Sub tabs | subTab(), subSidebarTab(), triSubTab(), triSubSidebarTab(), subTwoColPage() | | Inputs | navButton(), navSelect(), navUpload(), navDownload(), navCheckbox(), navText(), navNumeric(), navColor(), navDate(), navSpanText() | | Outputs | navOutputTable(), navOutputPlot(), navOutputPlotly(), navOutputGirafe(), navOutputPic(), sideNavOutputPic(), navOutputText() | | Server | activateItems(), deactivateItems(), showNavTabs(), hideNavTabs(), startSection(), endSection() | | Files | sourceFunctions(), createEZApp(), runExampleApp() |



Try the EZRShiny package in your browser

Any scripts or data that you put into this service are public.

EZRShiny documentation built on Oct. 10, 2026, 5:08 p.m.