Create a pretty checkbox that can be used to specify logical values.
Usage
prettyCheckbox(
inputId,
label,
value = FALSE,
status = "default",
shape = c("square", "curve", "round"),
outline = FALSE,
fill = FALSE,
thick = FALSE,
animation = NULL,
icon = NULL,
plain = FALSE,
bigger = FALSE,
inline = FALSE,
width = NULL
)
Arguments
- inputId
The
input
slot that will be used to access the value.- label
Display label for the control.
- value
Initial value (
TRUE
orFALSE
).- status
Add a class to the checkbox, you can use Bootstrap status like 'info', 'primary', 'danger', 'warning' or 'success'.
- shape
Shape of the checkbox between
square
,curve
andround
.- outline
Color also the border of the checkbox (
TRUE
orFALSE
).- fill
Fill the checkbox with color (
TRUE
orFALSE
).- thick
Make the content inside checkbox smaller (
TRUE
orFALSE
).- animation
Add an animation when checkbox is checked, a value between
smooth
,jelly
,tada
,rotate
,pulse
.- icon
Optional, display an icon on the checkbox, must be an icon created with
icon
.- plain
Remove the border when checkbox is checked (
TRUE
orFALSE
).- bigger
Scale the checkboxes a bit bigger (
TRUE
orFALSE
).- inline
Display the input inline, if you want to place checkboxes next to each other.
- width
The width of the input, e.g.
400px
, or100%
.
Note
Due to the nature of different checkbox design, certain animations are not applicable in some arguments combinations. You can find examples on the pretty-checkbox official page : https://lokesh-coder.github.io/pretty-checkbox/.
See also
See updatePrettyCheckbox
to update the value server-side. See prettySwitch
and
prettyToggle
for similar widgets.
Examples
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
tags$h1("Pretty checkbox"),
br(),
fluidRow(
column(
width = 4,
prettyCheckbox(
inputId = "checkbox1",
label = "Click me!"
),
verbatimTextOutput(outputId = "res1"),
br(),
prettyCheckbox(
inputId = "checkbox4",
label = "Click me!",
outline = TRUE,
plain = TRUE,
icon = icon("thumbs-up")
),
verbatimTextOutput(outputId = "res4")
),
column(
width = 4,
prettyCheckbox(
inputId = "checkbox2",
label = "Click me!",
thick = TRUE,
animation = "pulse",
status = "info"
),
verbatimTextOutput(outputId = "res2"),
br(),
prettyCheckbox(
inputId = "checkbox5",
label = "Click me!",
icon = icon("check"),
animation = "tada",
status = "default"
),
verbatimTextOutput(outputId = "res5")
),
column(
width = 4,
prettyCheckbox(
inputId = "checkbox3",
label = "Click me!",
shape = "round",
status = "danger",
fill = TRUE,
value = TRUE
),
verbatimTextOutput(outputId = "res3")
)
)
)
server <- function(input, output, session) {
output$res1 <- renderPrint(input$checkbox1)
output$res2 <- renderPrint(input$checkbox2)
output$res3 <- renderPrint(input$checkbox3)
output$res4 <- renderPrint(input$checkbox4)
output$res5 <- renderPrint(input$checkbox5)
}
if (interactive())
shinyApp(ui, server)
# Inline example ----
ui <- fluidPage(
tags$h1("Pretty checkbox: inline example"),
br(),
prettyCheckbox(
inputId = "checkbox1",
label = "Click me!",
status = "success",
outline = TRUE,
inline = TRUE
),
prettyCheckbox(
inputId = "checkbox2",
label = "Click me!",
thick = TRUE,
shape = "curve",
animation = "pulse",
status = "info",
inline = TRUE
),
prettyCheckbox(
inputId = "checkbox3",
label = "Click me!",
shape = "round",
status = "danger",
value = TRUE,
inline = TRUE
),
prettyCheckbox(
inputId = "checkbox4",
label = "Click me!",
outline = TRUE,
plain = TRUE,
animation = "rotate",
icon = icon("thumbs-up"),
inline = TRUE
),
prettyCheckbox(
inputId = "checkbox5",
label = "Click me!",
icon = icon("check"),
animation = "tada",
status = "primary",
inline = TRUE
),
verbatimTextOutput(outputId = "res")
)
server <- function(input, output, session) {
output$res <- renderPrint(
c(input$checkbox1,
input$checkbox2,
input$checkbox3,
input$checkbox4,
input$checkbox5)
)
}
if (interactive())
shinyApp(ui, server)