Pretty Toggle Input
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.
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) } 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-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) ) } if (interactive()) shinyApp(ui, server)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.