Learn R Programming

⚠️There's a newer version (1.1.6) of this package.Take me there.

dashboardthemes

Blog | Contact

An R package to provide custom theme options for Shinydashboard applications.

Features

  • Straightforward use of a new set of themes and logos.

  • Easy creation of new themes and logos, without knowledge of CSS code.

  • Use of live theme switchers in apps (Guide available here).

  • Theme designer (Available here)

Installation

From CRAN:

install.packages("dashboardthemes")

From GitHub:

library(devtools)
install_github("nik01010/dashboardthemes")

Functions

FunctionDescriptionInputOutput
shinyDashboardThemesCalls a custom theme created using shinyDashboardThemeDIYTheme nameTheme settings object
shinyDashboardLogoCalls a custom logo created using shinyDashboardLogoDIYTheme name and logo textLogo settings object
shinyDashboardThemeDIYCreates a custom theme objectSize, colour and other settings for each UI element. See function documentation for input optionsTheme settings object
shinyDashboardLogoDIYCreates a custom logo object. Inspired from hereSize and colour for the logo. See function documentation for input optionsLogo settings object
cssGradientThreeColorsCreates a three colour gradient to be used in themesGradient direction, colours, position of middle colourCSS gradient

Using logos

Use by inserting into the title parameter within the dashboardHeader part of an application.


  ...
  ### ui
  ui <- dashboardPage(
    
    ### ui header
    dashboardHeader(
  
      ### changing logo
      title = shinyDashboardLogo(
        theme = "blue_gradient",
        boldText = "Shiny",
        mainText = "App",
        badgeText = "v1.1"
      )
      ...

Using themes

Use by inserting into the dashboardBody part of an application.


  ...
  ### ui body
  dashboardBody(
    
    ### changing theme
    shinyDashboardThemes(
      theme = "blue_gradient"
    )
    
    ### ui tabs
    ,tabItems(
      tabItem(
        ...

Creating new logos

Example of creating a custom logo object. Each parameter can be changed as required.


  ### creating custom logo object
  customLogo <- shinyDashboardLogoDIY(

    boldText = "SD"
    ,mainText = "Themes"
    ,textSize = 16
    ,badgeText = "v1.1"
    ,badgeTextColor = "white"
    ,badgeTextSize = 2
    ,badgeBackColor = "#40E0D0"
    ,badgeBorderRadius = 3
  
  )
  
  ### calling custom logo object in shinydashboard
    ...
    ### ui
    ui <- dashboardPage(
      
      ### ui header
      dashboardHeader(
    
        ### changing logo
        title = customLogo
        ...
        

Creating new themes

Example of creating a custom theme object. Each parameter can be changed as required.


  ### creating custom theme object
  customTheme <- shinyDashboardThemeDIY(
  
    ### general
    appFontFamily = "Arial"
    ,appFontColor = "rgb(0,0,0)"
    ,primaryFontColor = "rgb(0,0,0)"
    ,infoFontColor = "rgb(0,0,0)"
    ,successFontColor = "rgb(0,0,0)"
    ,warningFontColor = "rgb(0,0,0)"
    ,dangerFontColor = "rgb(0,0,0)"
    ,bodyBackColor = "rgb(248,248,248)"
  
    ### header
    ,logoBackColor = "rgb(23,103,124)"
  
    ,headerButtonBackColor = "rgb(238,238,238)"
    ,headerButtonIconColor = "rgb(75,75,75)"
    ,headerButtonBackColorHover = "rgb(210,210,210)"
    ,headerButtonIconColorHover = "rgb(0,0,0)"
  
    ,headerBackColor = "rgb(238,238,238)"
    ,headerBoxShadowColor = "#aaaaaa"
    ,headerBoxShadowSize = "2px 2px 2px"
  
    ### sidebar
    ,sidebarBackColor = cssGradientThreeColors(
      direction = "down"
      ,colorStart = "rgb(20,97,117)"
      ,colorMiddle = "rgb(56,161,187)"
      ,colorEnd = "rgb(3,22,56)"
      ,colorStartPos = 0
      ,colorMiddlePos = 50
      ,colorEndPos = 100
    )
    ,sidebarPadding = 0
  
    ,sidebarMenuBackColor = "transparent"
    ,sidebarMenuPadding = 0
    ,sidebarMenuBorderRadius = 0
  
    ,sidebarShadowRadius = "3px 5px 5px"
    ,sidebarShadowColor = "#aaaaaa"
  
    ,sidebarUserTextColor = "rgb(255,255,255)"
  
    ,sidebarSearchBackColor = "rgb(55,72,80)"
    ,sidebarSearchIconColor = "rgb(153,153,153)"
    ,sidebarSearchBorderColor = "rgb(55,72,80)"
  
    ,sidebarTabTextColor = "rgb(255,255,255)"
    ,sidebarTabTextSize = 13
    ,sidebarTabBorderStyle = "none none solid none"
    ,sidebarTabBorderColor = "rgb(35,106,135)"
    ,sidebarTabBorderWidth = 1
  
    ,sidebarTabBackColorSelected = cssGradientThreeColors(
      direction = "right"
      ,colorStart = "rgba(44,222,235,1)"
      ,colorMiddle = "rgba(44,222,235,1)"
      ,colorEnd = "rgba(0,255,213,1)"
      ,colorStartPos = 0
      ,colorMiddlePos = 30
      ,colorEndPos = 100
    )
    ,sidebarTabTextColorSelected = "rgb(0,0,0)"
    ,sidebarTabRadiusSelected = "0px 20px 20px 0px"
  
    ,sidebarTabBackColorHover = cssGradientThreeColors(
      direction = "right"
      ,colorStart = "rgba(44,222,235,1)"
      ,colorMiddle = "rgba(44,222,235,1)"
      ,colorEnd = "rgba(0,255,213,1)"
      ,colorStartPos = 0
      ,colorMiddlePos = 30
      ,colorEndPos = 100
    )
    ,sidebarTabTextColorHover = "rgb(50,50,50)"
    ,sidebarTabBorderStyleHover = "none none solid none"
    ,sidebarTabBorderColorHover = "rgb(75,126,151)"
    ,sidebarTabBorderWidthHover = 1
    ,sidebarTabRadiusHover = "0px 20px 20px 0px"
  
    ### boxes
    ,boxBackColor = "rgb(255,255,255)"
    ,boxBorderRadius = 5
    ,boxShadowSize = "0px 1px 1px"
    ,boxShadowColor = "rgba(0,0,0,.1)"
    ,boxTitleSize = 16
    ,boxDefaultColor = "rgb(210,214,220)"
    ,boxPrimaryColor = "rgba(44,222,235,1)"
    ,boxInfoColor = "rgb(210,214,220)"
    ,boxSuccessColor = "rgba(0,255,213,1)"
    ,boxWarningColor = "rgb(244,156,104)"
    ,boxDangerColor = "rgb(255,88,55)"
  
    ,tabBoxTabColor = "rgb(255,255,255)"
    ,tabBoxTabTextSize = 14
    ,tabBoxTabTextColor = "rgb(0,0,0)"
    ,tabBoxTabTextColorSelected = "rgb(0,0,0)"
    ,tabBoxBackColor = "rgb(255,255,255)"
    ,tabBoxHighlightColor = "rgba(44,222,235,1)"
    ,tabBoxBorderRadius = 5
  
    ### inputs
    ,buttonBackColor = "rgb(245,245,245)"
    ,buttonTextColor = "rgb(0,0,0)"
    ,buttonBorderColor = "rgb(200,200,200)"
    ,buttonBorderRadius = 5
  
    ,buttonBackColorHover = "rgb(235,235,235)"
    ,buttonTextColorHover = "rgb(100,100,100)"
    ,buttonBorderColorHover = "rgb(200,200,200)"
  
    ,textboxBackColor = "rgb(255,255,255)"
    ,textboxBorderColor = "rgb(200,200,200)"
    ,textboxBorderRadius = 5
    ,textboxBackColorSelect = "rgb(245,245,245)"
    ,textboxBorderColorSelect = "rgb(200,200,200)"
  
    ### tables
    ,tableBackColor = "rgb(255,255,255)"
    ,tableBorderColor = "rgb(240,240,240)"
    ,tableBorderTopSize = 1
    ,tableBorderRowSize = 1
  
  )
  
  ### calling custom theme object in shinydashboard
    ...
    ### ui body
    dashboardBody(
      
      ### changing theme
      customTheme
      
      ### ui tabs
      ,tabItems(
        tabItem(
          ...

New themes

ThemeCodeDescription
Blue gradientblue_gradientDemonstrates use of gradients, shadows and rounded corners
Flat Redflat_redFlat colour theme with red highlights.
Grey lightgrey_lightSimple, light theme using a grey colour schemes
Grey darkgrey_darkDemonstrates use of inverted dark colour schemes
OneNoteonenoteStyled similarly to the OneNote application
Poor man's Flatlypoor_mans_flatlyPoor man's version of the Flatly theme
Purple gradientpurple_gradientDemonstrates high use of gradients and a smaller sidebar

Blue gradient

Flat Red

Grey light

Grey dark

OneNote

Poor man's Flatly

Purple gradient

Known issues

Some application components have not been fully customised:

  • Action button when pressed

  • Dropdown menu background

  • Popup menu and placeholder font colour in date inputs

  • Checkbox and radio buttons

Disclaimer

This is not part of the official Shinydashboard package and is released as a separate set of functionality. Efforts will be made to ensure compatibility with future versions of Shinydashboard but there could be delays in doing so.

Copy Link

Version

Install

install.packages('dashboardthemes')

Monthly Downloads

851

Version

1.1.5

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Nik Lilovski

Last Published

August 21st, 2021

Functions in dashboardthemes (1.1.5)

theme_flat_red

theme_flat_red
theme_grey_dark

theme_grey_dark
theme_purple_gradient

theme_purple_gradient
theme_poor_mans_flatly

theme_poor_mans_flatly
theme_grey_light

theme_grey_light
theme_onenote

theme_onenote
logo_purple_gradient

logo_purple_gradient
theme_blue_gradient

theme_blue_gradient
shinyDashboardThemes

shinyDashboardThemes
shinyDashboardLogo

shinyDashboardLogo
shinyDashboardThemeDIY

shinyDashboardThemeDIY
shinyDashboardLogoDIY

shinyDashboardLogoDIY
logo_blue_gradient

logo_blue_gradient
logo_flat_red

logo_flat_red
logo_grey_light

logo_grey_light
cssGradientThreeColors

cssGradientThreeColors
logo_poor_mans_flatly

logo_poor_mans_flatly
logo_onenote

logo_onenote
logo_grey_dark

logo_grey_dark
dashboardthemes

dashboardthemes: a package for custom themes in shinydashboard applications