I would like to selectively control font-scaling with a slidebar. Is this possible?
I've attached an MRE that I believe demonstrates where I'm stuck and what I'm trying to achieve.
if(!require('pacman')) {install.packages("pacman")} # Ensures that pacman is installed for auto-installation
pacman::p_load(shiny, lipsum) # automatically installs and loads packages.
ui <- fluidPage( # Sidebar with a slider input for font size
sidebarLayout(sidebarPanel(
sliderInput("font_size", "Font Size:", min = 1, max = 200, value = 70
)
),
mainPanel(
wellPanel(
id = "textPanel",
style = "overflow-y:scroll; max-height: 50vh; font-size: 70%",
#style = paste0("overflow-y:scroll; max-height: 50vh; font-size: ",
# output$text_size,"70%"),
paste0(lipsum[2:10], collapse = "")))))
# Define server logic
server <- function(input, output) {
output$text_size = renderText({input$font_size})}
# Run the application
shinyApp(ui = ui, server = server)
You can use shinyjs
to run some JavaScript code to change any CSS, in this case the font-size
.
library(shiny)
library(shinyjs)
ui <- fluidPage(
shinyjs::useShinyjs(),
sidebarLayout(
sidebarPanel(
sliderInput("font_size", "Font Size:", min = 1, max = 200, value = 70)
),
mainPanel(
wellPanel(
id = "textPanel",
style = "overflow-y:scroll; max-height: 50vh; font-size: 70%",
paste0("Hello", collapse = ""))
)
)
)
server <- function(input, output) {
observeEvent(input$font_size, {
runjs(paste0('$("#textPanel").css("font-size","', input$font_size, '%")'))
})
}
shinyApp(ui = ui, server = server)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With