Creates an action button or link whose value is initially zero, and increments by one each time it is pressed.
Usage
actionButton(
  inputId,
  label,
  icon = NULL,
  width = NULL,
  ...,
  status = NULL,
  gradient = FALSE,
  outline = FALSE,
  size = NULL,
  flat = FALSE
)Arguments
- inputId
- The - inputslot that will be used to access the value.
- label
- The contents of the button or link–usually a text label, but you could also use any other HTML, like an image. 
- icon
- An optional - shiny::icon()to appear on the button.
- width
- The width of the input, e.g. - '400px', or- '100%'; see- shiny::validateCssUnit().
- ...
- Named attributes to be applied to the button or link. 
- status
- Button status color. Valid statuses are defined as follows: - primary: #007bff .
- secondary: #6c757d .
- info: #17a2b8 .
- success: #28a745 .
- warning: #ffc107 .
- danger: #dc3545 .
 
- gradient
- Whether to apply gradient to color. Default to FALSE. 
- outline
- Whether to display an outline style. Status must not be NULL if TRUE. Default to FALSE. 
- size
- Button size. Default to NULL. Possible choices: - c("lg", "sm", "xs").
- flat
- Whether to apply a flat style. Default to FALSE. 
Note
One may also pass the status directly via the ... parameter using class = "btn-primary",
for the primary status for instance. Same thing for other styles like the size.
Server value
An integer of class "shinyActionButtonValue". This class differs from
ordinary integers in that a value of 0 is considered "falsy".
This implies two things:
- Event handlers (e.g., - shiny::observeEvent(),- shiny::eventReactive()) won't execute on initial load.
- Input validation (e.g., - shiny::req(),- shiny::need()) will fail on initial load.
Examples
## Only run examples in interactive R sessions
if (interactive()) {
 library(shiny)
 library(bs4Dash)
 shinyApp(
  ui = dashboardPage(
    header = dashboardHeader(
      title = bs4DashBrand(
        title = "My dashboard",
        color = "primary",
        src = "https://adminlte.io/themes/v3",
        image = "https://adminlte.io/themes/v3/dist/img/AdminLTELogo.png"
      )
    ),
    sidebar = dashboardSidebar(),
    body = dashboardBody(
      sliderInput("obs", "Number of observations", 0, 1000, 500),
      actionButton(
       "goButton", "Go!",
       status = "danger",
       outline = TRUE,
       flat = TRUE,
       size = "lg"
      ),
     plotOutput("distPlot")
    ),
    controlbar = dashboardControlbar(),
    title = "DashboardPage"
  ),
  server = function(input, output) {
   output$distPlot <- renderPlot({
    # Take a dependency on input$goButton. This will run once initially,
    # because the value changes from NULL to 0.
    input$goButton
    # Use isolate() to avoid dependency on input$obs
    dist <- isolate(rnorm(input$obs))
    hist(dist)
   })
  }
 )
}
## Example of adding extra class values
actionButton("largeButton", "Large Primary Button", class = "btn-primary btn-lg")
#> <button class="btn btn-default action-button btn-primary btn-lg" id="largeButton" type="button">Large Primary Button</button>
