Create a dropdown menu

  style = "default",
  status = "default",
  size = "md",
  icon = NULL,
  label = NULL,
  tooltip = FALSE,
  right = FALSE,
  up = FALSE,
  width = NULL,
  animate = FALSE,
  inputId = NULL



List of tag to be displayed into the dropdown menu.


Character. if default use Bootstrap button (like an actionButton), else use an actionBttn, see argument style (in actionBttn documentation) for possible values.


Add a class to the buttons, you can use Bootstrap status like 'info', 'primary', 'danger', 'warning' or 'success'. Or use an arbitrary strings to add a custom class, e.g. : with status = 'myClass', buttons will have class btn-myClass.


Size of the button : default, lg, sm, xs.


An icon to appear on the button.


Label to appear on the button. If circle = TRUE and tooltip = TRUE, label is used in tooltip.


Put a tooltip on the button, you can customize tooltip with tooltipOptions.


Logical. The dropdown menu starts on the right.


Logical. Display the dropdown menu above.


Width of the dropdown menu content.


Add animation on the dropdown, can be logical or result of animateOptions.


Optional, id for the button, the button act like an actionButton, and you can use the id to toggle the dropdown menu server-side.


This function is similar to dropdownButton but don't use Bootstrap, so you can put pickerInput in it. Moreover you can add animations on the appearance / disappearance of the dropdown with animate.css.

See also

animateOptions for animation, tooltipOptions for tooltip and actionBttn for the button.


## Only run examples in interactive R sessions if (interactive()) { library("shiny") library("shinyWidgets") ui <- fluidPage( tags$h2("pickerInput in dropdown"), br(), dropdown( tags$h3("List of Input"), pickerInput(inputId = 'xcol2', label = 'X Variable', choices = names(iris), options = list(`style` = "btn-info")), pickerInput(inputId = 'ycol2', label = 'Y Variable', choices = names(iris), selected = names(iris)[[2]], options = list(`style` = "btn-warning")), sliderInput(inputId = 'clusters2', label = 'Cluster count', value = 3, min = 1, max = 9), style = "unite", icon = icon("gear"), status = "danger", width = "300px", animate = animateOptions( enter = animations$fading_entrances$fadeInLeftBig, exit = animations$fading_exits$fadeOutRightBig ) ), plotOutput(outputId = 'plot2') ) server <- function(input, output, session) { selectedData2 <- reactive({ iris[, c(input$xcol2, input$ycol2)] }) clusters2 <- reactive({ kmeans(selectedData2(), input$clusters2) }) output$plot2 <- renderPlot({ palette(c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3", "#FF7F00", "#FFFF33", "#A65628", "#F781BF", "#999999")) par(mar = c(5.1, 4.1, 0, 1)) plot(selectedData2(), col = clusters2()$cluster, pch = 20, cex = 3) points(clusters2()$centers, pch = 4, cex = 4, lwd = 4) }) } shinyApp(ui = ui, server = server) }