# Loading Screens

standby offers several types of loading screens for Shiny apps. This document is a quickstart guide for using standby in your Shiny applications. Let us look at a simple example below:

    library(shiny)
    library(standby)

    ui <- fluidPage(

      standby::useSpinkit(), # include dependencies
      fluidRow(
        standby::spinkit(plotOutput("plot1")), # wrap output inside loader
        actionButton("render", "Render")
      )

    )

    server <- function(input, output, session) {

        output$plot1 <- renderPlot({
          input$render
          Sys.sleep(3)
          hist(mtcars$mpg)
        })

    }

    shinyApp(ui, server)

To use spinners/loaders from standby in your Shiny application, include the following in the UI part of the app:

- Include the dependencies using the appropriate `use*` functions (`useSpinkit()` in the above example).
- Wrap the target output using corresponding rendering function (`spinkit()` in the above example).

The below table displays the dependency and rendering functions along with references:

Index | Dependency | Render | Reference
--- | --- | --- | ---
1 | `useThreeDots()` | `threeDots()` | https://github.com/nzbin/three-dots
2 | `useSpinkit()` | `spinkit()` | https://github.com/tobiasahlin/SpinKit
3 | `useVizLoad()` | `vizLoad()` | https://github.com/RIDICS/Loading-Visualization
4 | `useSpinners()` | `spinners()` | https://github.com/lukehaas/css-loaders
5 | `useLoaders()` | `loaders()` | https://github.com/raphaelfabeni/css-loader

Visit the documentation to learn how to customize the alerts and notifications.