Я хочу изменить цвет текста в приложении Shiny на основе ввода пользователя. Вот простой пример. Это в основном правильный подход? Если я жестко закодирую CSS, это работает. Например, если я изменю:
div(style = css_stub,
до
div(style = "inline-block; red;",
цвет текста меняется. Пожалуйста, объясните, как программно изменять CSS в приложении Shiny.
library(shiny)
css_stub <- paste0("'", "inline-block; color:black;", "'")
ui <- fluidPage(
titlePanel("Color Test"),
sidebarLayout(
sidebarPanel(
selectInput(inputId = "colors",
label = "Choose a color:",
choices = c("red", "blue"))
),
mainPanel(
div(style = css_stub,
textOutput("text_out"))
)
)
)
server <- function(input, output) {
observeEvent(input$colors, {
if (input$colors == "red") {
css_stub <- paste0("'", "inline-block; color:red;", "'")
output$text_out <- renderText({"hello - red"})
} else {
css_stub <- paste0("'", "inline-block; color:blue;", "'")
output$text_out <- renderText({"hello - blue"})
}
})
}
shinyApp(ui = ui, server = server)