如何从bootswatch中的“lux”主题中提取字体,并使用bslib在我的R Shiny应用程序中使用它?

wgx48brx  于 2023-05-26  发布在  其他
关注(0)|答案(1)|浏览(176)

如何从bootswatch主题中提取字体并在R Shiny应用中使用它?
我正在使用bslib库,并试图从“lux”主题中提取字体,以便我可以将其用于另一个主题。
我假设它在bs_add_variables函数或base_font中的某个地方?

bs_add_variables(
    "font-family-base" = "monospace"
nr7wwzry

nr7wwzry1#

基本字体系列可以通过bs_theme()base_font参数直接设置。使用Lux主题的基本字体"Nunito Sans"

library(shiny)
library(bslib)

ui <- page_fixed(
  theme = bs_theme(
    version = 5,
    base_font = font_google("Nunito Sans"),
  ),
  h2("Hello world")
)
shinyApp(ui, function(...) {})

编辑复制Lux主题的外观需要更多的努力,而不仅仅是改变基本字体,例如要复制标题的外观,需要设置字体大小和粗细,这可以通过BS变量实现,并使用bs_add_rules添加一些额外的CSS。但还不够完美。

library(shiny)
library(bslib)

ui <- page_fixed(
  theme = bs_theme(
    version = 5,
    base_font = font_google("Nunito Sans"),
    "h1-font-size" = "2rem",
    "headings-font-weight" = "600 !default"
  ) |> 
    bs_add_rules("h1 { text-transform: uppercase; letter-spacing: 3px;}"),
  h1("Replicating the \"Lux\""),
  h1("Hello world")
)

shinyApp(ui, function(...) {})

为了进行比较,直接使用Lux主题:

library(shiny)
library(bslib)

ui <- page_fixed(
  theme = bs_theme(
    version = 5,
    bootswatch = "lux"
  ),
  h1("Using bootswatch = \"lux\""),
  h1("Hello World")
)

shinyApp(ui, function(...) {})

相关问题