Цвет шрифта для одного текстового элемента в Shiny bsPopover - PullRequest
1 голос
/ 26 мая 2020

Я хотел бы изменить цвет шрифта одной части текста в аргументе содержимого bsPopover.

Этот синтаксис работает на стороне сервера, но не в аргументе содержимого функции bsPopover:


library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyBS)

ui <- dashboardPagePlus(title = 'My Title',
                        ###### Header ####
                        header=dashboardHeaderPlus(
                          title = 'Title'),
      sidebar=dashboardSidebar(
                            disable = TRUE),
                          ###### Body ####
      body = dashboardBody(
                   fluidRow(
                     bsPopover(id = 'attend',
                               title = '', 
                               content = HTML(paste0('<span style=\"color:', '#22a783', '\">', 
                                                      'Green', '</span>', 
                                                      '<br>', 'Red', '<br>', 'Blue', '<br>','Black')), 
                               placement = "bottom", 
                               trigger = "hover",
                               options = NULL),
                     actionButton(inputId = "attend", 
                                  label = "", 
                                  icon = icon('info')))))
#################### SERVER   #################### 
server = function(input, output, session) { 
}
# Run the application
shinyApp(ui = ui, server = server)

enter image description here

I хотелось бы, чтобы текст "зеленый" отображался зеленым цветом. Текст «красный» отображается красным цветом и т. Д. c.

Я могу изменить весь цвет текста в css, но я не могу точно настроить отдельные текстовые элементы за пределами a css

Спасибо за любые идеи.

1 Ответ

2 голосов
/ 26 мая 2020

В качестве альтернативы вы можете использовать dropMenu из shinyWidgets и напрямую использовать внутри него теги HTML:

library(shiny)
library(shinydashboard)
library(shinyWidgets)

ui <- dashboardPage(
  title = 'My Title',
  ###### Header ####
  header=dashboardHeader(
    title = 'Title'
  ),
  sidebar=dashboardSidebar(
    disable = TRUE
  ),
  ###### Body ####
  body = dashboardBody(
    fluidRow(
      dropMenu(
        actionButton(
          inputId = "attend", 
          label = "", 
          icon = icon('info')
        ),
        tags$div(
          tags$span(style = "color: #22a783;", "green"),
          tags$span(style = "color: red;", "Red"),
          tags$span(style = "color: green;", "Green"),
          "Black"
        ),
        placement = "bottom",
        trigger = "mouseenter"
      )
    )
  )
)
#################### SERVER   #################### 
server = function(input, output, session) { 
}
# Run the application
shinyApp(ui = ui, server = server)

enter image description here

...