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 )
inputId | The |
---|---|
label_on | Display label for the control when value is |
label_off | Display label for the control when value is |
icon_on | Optional, display an icon on the checkbox when value is |
icon_off | Optional, display an icon on the checkbox when value is |
value | Initial value ( |
status_on | Add a class to the checkbox when value is |
status_off | Add a class to the checkbox when value is |
shape | Shape of the checkbox between |
outline | Color also the border of the checkbox ( |
fill | Fill the checkbox with color ( |
thick | Make the content inside checkbox smaller ( |
plain | Remove the border when checkbox is checked ( |
bigger | Scale the checkboxes a bit bigger ( |
animation | Add an animation when checkbox is checked, a value between
|
inline | Display the input inline, if you want to place checkboxes next to each other. |
width | The width of the input, e.g. |
TRUE
or FALSE
server-side.
See updatePrettyToggle
to update the value server-side.
if (interactive()) { 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("remove")), 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) } 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-up", 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)) } shinyApp(ui, server) }