Learn R Programming

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

shinyWidgets

Extend widgets available in shiny

Overview

This package offers custom widgets and other components to enhance your shiny applications.

You can replace classical checkboxes with switch button, add colors to radio buttons and checkbox group, use buttons as radio or checkboxes. Each widget has an update method to change the value of an input from the server.

Installation :

# From CRAN
install.packages("shinyWidgets")

# From Github
# install.packages("devtools")
devtools::install_github("dreamRs/shinyWidgets")

Demo :

shinyWidgets::shinyWidgetsGallery()

A live version is available here : http://shinyapps.dreamrs.fr/shinyWidgets

Widgets available :

Bootstrap switch

Turn checkboxes into toggle switches :

switchInput(inputId = "id", value = TRUE)

Material switch

Turn checkboxes into toggle switches (again) :

materialSwitch(inputId = "id", label = "Primary switch", status = "danger")

Pretty Checkbox

Checkbox and radio buttons with the beautiful CSS library pretty-checkbox :

prettyCheckbox(
  inputId = "pretty_1", label = "Check me!", icon = icon("check")
),
prettyCheckbox(
  inputId = "pretty_2", label = "Check me!", icon = icon("thumbs-up"), 
  status = "default", shape = "curve", animation = "pulse"
),
prettyCheckbox(
  inputId = "pretty_3", label = "Check me!", icon = icon("users"), 
  animation = "pulse", plain = TRUE, outline = TRUE
),
prettyCheckbox(
  inputId = "pretty_4", label = "Check me!",
  status = "success", outline = TRUE
),
prettyCheckbox(
  inputId = "pretty_5", label = "Check me!",
  shape = "round", outline = TRUE, status = "info"
),

...

Sweet Alert

Displays a message to the user :

See examples in ?sendSweetAlert.

Request confirmation from the user :

See examples in ?confirmSweetAlert.

Slider Text

Slider with strings, to pass whatever you want :

sliderTextInput(
  inputId = "mySliderText", 
  label = "Your choice:", 
  grid = TRUE, 
  force_edges = TRUE,
  choices = c("Strongly disagree",
              "Disagree", "Neither agree nor disagree", 
              "Agree", "Strongly agree")
)

Knob Input

A jQuery based knob, similar to sliderInput or sliderTextInput:

knobInput(
  inputId = "myKnob",
  label = "jQuery knob example:",
  value = 0,
  min = -100,
  displayPrevious = TRUE, 
  lineCap = "round",
  fgColor = "#428BCA",
  inputColor = "#428BCA"
)

Select picker

Dropdown menu with a lot of options :

pickerInput(
  inputId = "myPicker", 
  label = "Select/deselect all + format selected", 
  choices = LETTERS, 
  options = list(
    `actions-box` = TRUE, 
    size = 10,
    `selected-text-format` = "count > 3"
  ), 
  multiple = TRUE
)

Checkbox and radio buttons

Turn buttons into checkbox or radio :

checkboxGroupButtons(
  inputId = "somevalue", label = "Make a choice :", 
  choices = c("Choice A", "Choice B", " Choice C", "Choice D"), 
  justified = TRUE, status = "primary",
  checkIcon = list(yes = icon("ok", lib = "glyphicon"), no = icon("remove", lib = "glyphicon"))
)

Search bar

A text input only triggered by hitting 'Enter' or clicking search button :

searchInput(
  inputId = "id", 
  label = "Enter your search :", 
  placeholder = "This is a placeholder", 
  btnSearch = icon("search"), 
  btnReset = icon("remove"), 
  width = "100%"
)

Dropdown button

Hide input in a button :

dropdownButton(
  tags$h3("List of Input"),
  selectInput(inputId = 'xcol', label = 'X Variable', choices = names(iris)),
  selectInput(inputId = 'ycol', label = 'Y Variable', choices = names(iris), selected = names(iris)[[2]]),
  sliderInput(inputId = 'clusters', label = 'Cluster count', value = 3, min = 1, max = 9),
  circle = TRUE, status = "danger", icon = icon("cog"), width = "300px",
  tooltip = tooltipOptions(title = "Click to see inputs !")
)

And others !

Copy Link

Version

Install

install.packages('shinyWidgets')

Monthly Downloads

54,141

Version

0.6.3

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Victor Perrier

Last Published

January 10th, 2022

Functions in shinyWidgets (0.6.3)

actionGroupButtons

Actions Buttons Group Inputs
dropdownButton

Dropdown Button
chooseSliderSkin

Theme selector for sliderInput
execute_safely

Execute an expression safely in server
demoNumericRange

An example showing how numericRangeInput works
numericInputIcon

Create a numeric input control with icon(s)
bootstrap-utils

Bootstrap panel / alert
airDatepicker

Air Date Picker Input
awesomeRadio

Awesome Radio Buttons Input Control
downloadBttn

Create a download actionBttn
colorPickr

Color Pickr
closeSweetAlert

Close Sweet Alert
numericRangeInput

Numeric Range Input
circleButton

Circle Action button
dropMenuOptions

Drop menu options
searchInput

Search Input
radioGroupButtons

Buttons Group Radio Input Control
updateCurrencyInput

Update a Formatted Numeric Input Widget
knobInput

Knob Input
currencyInput

Format Numeric Inputs
materialSwitch

Material Design Switch Input Control
updateAirDateInput

updateMultiInput

Change the value of a multi input on the client
updateAutonumericInput

Update an Autonumeric Input Object
dropdown

Dropdown
shinyWidgetsGallery

Launch the shinyWidget Gallery
show_toast

Show a toast notification
prettyCheckboxGroup

Pretty Checkbox Group Input Control
inputSweetAlert

Launch an input text dialog
html-dependencies

HTML dependencies
pickerOptions

Options for pickerInput
colorSelectorInput

Color Selector Input
selectizeGroup-module

Selectize Group
prettyRadioButtons

Pretty radio Buttons Input Control
updateAwesomeRadio

Change the value of a radio input on the client
setBackgroundColor

Custom background color for your shinyapp
updateCheckboxGroupButtons

Change the value of a checkboxes group buttons input on the client
toggleDropdownButton

Toggle a dropdown menu
tooltipOptions

Tooltip options
demoNoUiSlider

Some examples on how to use noUiSliderInput
demoAirDatepicker

Some examples on how to use airDatepickerInput
multiInput

Create a multiselect input control
drop-menu-interaction

Interact with Drop Menu
prettyCheckbox

Pretty Checkbox Input
updateRadioGroupButtons

Change the value of a radio group buttons input on the client
noUiSliderInput

Numeric range slider
prettySwitch

Pretty Switch Input
prettyToggle

Pretty Toggle Input
setBackgroundImage

Custom background image for your shinyapp
updateNoUiSliderInput

Change the value of a no ui slider input on the client
setSliderColor

Color editor for sliderInput
updatePrettyCheckboxGroup

Change the value of a pretty checkbox on the client
pickerGroup-module

Picker Group
dropMenu

Drop Menu
updateSliderTextInput

Change the value of a slider text input on the client
useBs4Dash

Use 'bs4Dash' in 'shiny'
updateSearchInput

Change the value of a search input on the client
useShinydashboard

Use 'shinydashboard' in 'shiny'
setShadow

Custom shadows
sweetalert

Display a Sweet Alert to the user
updatePrettyRadioButtons

Change the value pretty radio buttons on the client
switchInput

Bootstrap Switch Input Control
updateSwitchInput

Change the value of a switch input on the client
shinyWidgets

shinyWidgets: Custom inputs widgets for Shiny.
updateSpectrumInput

Change the value of a spectrum input on the client
updateNumericInputIcon

Change the value of a numeric input icon on the client
updatePrettyCheckbox

Change the value of a pretty checkbox on the client
updateNumericRangeInput

Change the value of a numeric range input
useTablerDash

Use 'tablerDash' in 'shiny'
updatePickerInput

Change the value of a select picker input on the client
pickerInput

Select Picker Input Control
progress-bar

Progress Bars
vertical-tab

Vertical tab panel
progressSweetAlert

Progress bar in a sweet alert
spectrumInput

Palette Color Picker with Spectrum Library
sliderTextInput

Slider Text Input Widget
textInputAddon

Text with Add-on Input Control
wNumbFormat

Format numbers in noUiSliderInput
updateTextInputIcon

Change the value of a text input icon on the client
stati-card

Minimal statistic cards
updateKnobInput

Change the value of a knob input on the client
updateMaterialSwitch

Change the value of a materialSwitch input on the client
sweetalert-confirmation

Launch a confirmation dialog
useShinydashboardPlus

Use 'shinydashboardPlus' in 'shiny'
useSweetAlert

Load Sweet Alert dependencies
updateAwesomeCheckboxGroup

textInputIcon

Create a text input control with icon(s)
updateAwesomeCheckbox

Change the value of an awesome checkbox input on the client
updateVerticalTabsetPanel

Update selected vertical tab
useArgonDash

Use 'argonDash' in 'shiny'
updatePrettyToggle

Change the value of a pretty toggle on the client
updatePrettySwitch

Change the value of a pretty switch on the client
addSpinner

Display a spinner above an output when this one recalculate
awesomeCheckbox

Awesome Checkbox Input Control
appendVerticalTab

Mutate Vertical Tabset Panel
actionBttn

Awesome action button
awesomeCheckboxGroup

Awesome Checkbox Group Input Control
autonumericInput

Autonumeric Input Widget
animateOptions

Animate options
animations

Animation names
checkboxGroupButtons

Buttons Group checkbox Input Control