A single checkbox that changes appearance if checked or not.
prettyToggle(
inputId,
label_on,
label_off,
icon_on = NULL,
icon_off = NULL,
value = FALSE,
status_on = "success",
status_off = "danger",
shape = c("square", "curve", "round"),
outline = FALSE,
fill = FALSE,
thick = FALSE,
plain = FALSE,
bigger = FALSE,
animation = NULL,
inline = FALSE,
width = NULL
)The input slot that will be used to access the value.
Display label for the control when value is TRUE.
Display label for the control when value is FALSE
Optional, display an icon on the checkbox when value is TRUE, must be an icon created with icon.
Optional, display an icon on the checkbox when value is FALSE, must be an icon created with icon.
Initial value (TRUE or FALSE).
Add a class to the checkbox when value is TRUE,
you can use Bootstrap status like 'info', 'primary', 'danger', 'warning' or 'success'.
Add a class to the checkbox when value is FALSE,
you can use Bootstrap status like 'info', 'primary', 'danger', 'warning' or 'success'.
Shape of the checkbox between square, curve and round.
Color also the border of the checkbox (TRUE or FALSE).
Fill the checkbox with color (TRUE or FALSE).
Make the content inside checkbox smaller (TRUE or FALSE).
Remove the border when checkbox is checked (TRUE or FALSE).
Scale the checkboxes a bit bigger (TRUE or FALSE).
Add an animation when checkbox is checked, a value between
smooth, jelly, tada, rotate, pulse.
Display the input inline, if you want to place checkboxes next to each other.
The width of the input, e.g. 400px, or 100%.
TRUE or FALSE server-side.
See updatePrettyToggle to update the value server-side.
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
tags$h1("Pretty toggles"),
br(),
fluidRow(
column(
width = 4,
prettyToggle(
inputId = "toggle1",
label_on = "Checked!",
label_off = "Unchecked..."
),
verbatimTextOutput(outputId = "res1"),
br(),
prettyToggle(
inputId = "toggle4", label_on = "Yes!",
label_off = "No..", outline = TRUE,
plain = TRUE,
icon_on = icon("thumbs-up"),
icon_off = icon("thumbs-down")
),
verbatimTextOutput(outputId = "res4")
),
column(
width = 4,
prettyToggle(
inputId = "toggle2",
label_on = "Yes!", icon_on = icon("check"),
status_on = "info", status_off = "warning",
label_off = "No..", icon_off = icon("xmark")
),
verbatimTextOutput(outputId = "res2")
),
column(
width = 4,
prettyToggle(
inputId = "toggle3", label_on = "Yes!",
label_off = "No..", shape = "round",
fill = TRUE, value = TRUE
),
verbatimTextOutput(outputId = "res3")
)
)
)
server <- function(input, output, session) {
output$res1 <- renderPrint(input$toggle1)
output$res2 <- renderPrint(input$toggle2)
output$res3 <- renderPrint(input$toggle3)
output$res4 <- renderPrint(input$toggle4)
}
if (interactive())
shinyApp(ui, server)
# Inline example ----
ui <- fluidPage(
tags$h1("Pretty toggles: inline example"),
br(),
prettyToggle(
inputId = "toggle1",
label_on = "Checked!",
label_off = "Unchecked...",
inline = TRUE
),
prettyToggle(
inputId = "toggle2",
label_on = "Yep",
status_on = "default",
icon_on = icon("ok-circle", lib = "glyphicon"),
label_off = "Nope",
status_off = "default",
icon_off = icon("remove-circle", lib = "glyphicon"),
plain = TRUE,
inline = TRUE
),
prettyToggle(
inputId = "toggle3",
label_on = "",
label_off = "",
icon_on = icon("volume-high", lib = "glyphicon"),
icon_off = icon("volume-off", lib = "glyphicon"),
status_on = "primary",
status_off = "default",
plain = TRUE,
outline = TRUE,
bigger = TRUE,
inline = TRUE
),
prettyToggle(
inputId = "toggle4",
label_on = "Yes!",
label_off = "No..",
outline = TRUE,
plain = TRUE,
icon_on = icon("thumbs-up"),
icon_off = icon("thumbs-down"),
inline = TRUE
),
verbatimTextOutput(outputId = "res")
)
server <- function(input, output, session) {
output$res <- renderPrint(
c(input$toggle1,
input$toggle2,
input$toggle3,
input$toggle4)
)
}
if (interactive())
shinyApp(ui, server)