2016-07-18 16 views
0

Ich möchte die Schriftgröße des Wertes und den Untertitel für valueBox es ändern.Ändern der Schriftgröße von valueBoxes

Unten ist mein Versuch, aber wäre dankbar für irgendwelche Vorschläge, wie man es in einer Weise ändert, die dem Standard-Look ähnlich aussieht. Unten ist mein nachvollziehbares Beispiel.

require(shinydashboard) 

valueBox2 <- function (value,header_val=4, subtitle, icon = NULL, color = "aqua", width = 4, 
         href = NULL) { 
    shinydashboard:::validateColor(color) 
    if (!is.null(icon)) 
    shinydashboard:::tagAssert(icon, type = "i") 
    boxContent <- div(class = paste0("small-box bg-", color), 
        div(class = "inner", eval(parse(text=paste0('h',header_val,'(',shQuote(value),')'))), p(subtitle)), if (!is.null(icon)) 
         div(class = "icon-large", icon)) 
    if (!is.null(href)) 
    boxContent <- a(href = href, boxContent) 
    div(class = if (!is.null(width)) 
    paste0("col-sm-", width), boxContent) 
} 

ui = dashboardPage(title='hello', 
    dashboardHeader(title='hello2'), 
    dashboardSidebar(
    sliderInput('hval',label='header value',min=1,max=6,value=3) 
), 
    dashboardBody(
    valueBoxOutput('tmp') 
) 
) 

server = function(input, output) { 
    output$tmp <- renderValueBox({ 
    valueBox2(value='90k',header_val = input$hval, subtitle='some long descritptive text',icon=icon("car")) 
    }) 
} 

shinyApp(ui=ui,server=server) 

Antwort

3

Hallo Sie können Schriftgröße direkt mit einem p Tag ohne Umschreiben valueBox Funktion in valueBox ändern (wenn Sie Sie können wollen, nur value und subtitle args in tags$p wickeln), versuchen Sie:

library("shiny") 
library("shinydashboard") 

# header 
header <- dashboardHeader(title = "Changing the font size of valueBoxes", titleWidth = 450) 

# sidebar 
sidebar <- dashboardSidebar(disable = TRUE) 

# body 
body <- dashboardBody(
    valueBox(
    value = "90k", 
    subtitle = "some long descritptive text", 
    icon = icon("car") 
), 
    valueBox(
    value = tags$p("90k", style = "font-size: 150%;"), 
    subtitle = tags$p("some long descritptive text", style = "font-size: 150%;"), 
    icon = icon("car fa-lg") 
), 
    valueBox(
    value = tags$p("90k", style = "font-size: 200%;"), 
    subtitle = tags$p("some long descritptive text", style = "font-size: 200%;"), 
    icon = icon("car fa-2x") 
), 
    valueBoxOutput(outputId = "mybigbox") 
) 

# server 
server <- function(input, output) { 
    output$mybigbox <- renderValueBox({ 
    valueBox(
     value = tags$p("90k", style = "font-size: 300%;"), 
     subtitle = tags$p("some long descritptive text", style = "font-size: 300%;"), 
     icon = icon("car fa-3x") 
    ) 
    }) 
} 
shinyApp(ui = dashboardPage(header, sidebar, body), server = server) 
+0

Erstaunlicher , danke, eine kurze Frage, gibt es eine Möglichkeit, die Farbe in eine Nicht-Standardfarbe zu ändern, indem Sie einen Hexfarbencode anstelle von "Blau" oder "Aqua" verwenden? –

+1

Nicht mit 'shinydashboard', kannst du mit CSS, aber es ist nicht schön:' .small-box {background-color: # FFFF00! Wichtig; Farbe: # 000000! wichtig; } ' – Victorp

+0

Danke, eine Sache, die ich bemerkt habe, ist, dass du' valueBoxOutput' und 'renderValueBox' nicht benutzt hast ... das erlaubt ihnen, dynamisch zu sein ... wo deine Methode ziemlich fest ist ... kannst du empfehlen eine Anpassung? –