diff --git a/DESCRIPTION b/DESCRIPTION
index ddda406fe9b708c1e58de6c008e57dc17759649f..9a083d515560bf630ee8c06b1784aabd7dda7f72 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -25,7 +25,7 @@ License: GPL-3 + file LICENSE
 Encoding: UTF-8
 LazyData: true
 Imports: deldir, geodata, geonetwork, igraph, methods, rhandsontable,
-        shiny, shinydashboard, shinyFiles, sf, terra (>= 1.7.23), utils
+        shiny, shinycssloaders, shinydashboard, shinyFiles, sf, terra (>= 1.7.23), utils
 Suggests: covr, devtools, knitr, lintr, lwgeom, mapview, rmarkdown,
         roxygen2, testthat
 RoxygenNote: 7.3.1
diff --git a/NAMESPACE b/NAMESPACE
index 4ad1ef7ff9ac0e9ed899071fbcf3c097e504dd05..bf9843b97d38559d6d95782c7a7a5a027a2fccaa 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -34,6 +34,7 @@ import(rhandsontable)
 import(sf)
 import(shiny)
 import(shinyFiles)
+import(shinycssloaders)
 import(shinydashboard)
 import(terra)
 importFrom(geodata,gadm)
diff --git a/R/mapMCDA_app.R b/R/mapMCDA_app.R
index 4b72fa10989d0e41fd54d7dc5e049f96b39c4b2d..856dd285916fd89597b91235d226cc8127d7f39e 100644
--- a/R/mapMCDA_app.R
+++ b/R/mapMCDA_app.R
@@ -4,7 +4,7 @@
 #' 
 #' @param bg Logical. If TRUE, the GUI is launched in the background, leaving
 #'   available the current session.
-#' @import shiny rhandsontable shinyFiles shinydashboard
+#' @import shiny rhandsontable shinyFiles shinycssloaders shinydashboard 
 #' @export
 mapMCDA_app <- function (bg = FALSE) {
   
diff --git a/inst/interface/global.R b/inst/interface/global.R
index 9713622c80525ab09f446772f1f5ab605446aabc..e1701cd41178d6667584e7e456464f8bbc2a4461 100644
--- a/inst/interface/global.R
+++ b/inst/interface/global.R
@@ -8,6 +8,7 @@ library(shiny)
 library(shinydashboard)
 library(rhandsontable)
 library(shinyFiles)
+library(shinycssloaders)
 
 #### MAIN VARIABLES ####
 
diff --git a/inst/interface/ui.R b/inst/interface/ui.R
index fa39ffda20f9a058052aabd6128dda9eaf28a9c2..5cc47ddbca367d743326cda830c2af958722a215 100644
--- a/inst/interface/ui.R
+++ b/inst/interface/ui.R
@@ -94,7 +94,7 @@ body <- dashboardBody(
             box(title = uiOutput("unitMapTextUI"), status = "primary", width = 6, solidHeader = TRUE,
                 
                 # Display map
-                plotOutput("unitMapDisplay")
+                shinycssloaders::withSpinner(plotOutput("unitMapDisplay"))
                 
             ),
             
@@ -118,7 +118,7 @@ body <- dashboardBody(
             box(title = uiOutput("riskRawMapTextUI"), status = "primary", width = 6, solidHeader = TRUE,
                 
                 # Original raw layer
-                plotOutput("rawLayerDisplay")
+                shinycssloaders::withSpinner(plotOutput("rawLayerDisplay"))
                 
             ),
             
@@ -126,7 +126,7 @@ body <- dashboardBody(
             box(title = uiOutput("riskStandRasterTextUI"), status = "success", width = 6, solidHeader = TRUE,
                 
                 # Standardized raster
-                plotOutput("standRasterDisplay")
+                shinycssloaders::withSpinner(plotOutput("standRasterDisplay"))
                 
             ),