如何从bootswatch主题中提取字体并在R Shiny应用中使用它?我正在使用bslib库,并试图从“lux”主题中提取字体,以便我可以将其用于另一个主题。我假设它在bs_add_variables函数或base_font中的某个地方?
bs_add_variables( "font-family-base" = "monospace"
nr7wwzry1#
基本字体系列可以通过bs_theme()的base_font参数直接设置。使用Lux主题的基本字体"Nunito Sans":
bs_theme()
base_font
"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。但还不够完美。
bs_add_rules
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(...) {})
1条答案
按热度按时间nr7wwzry1#
基本字体系列可以通过
bs_theme()
的base_font
参数直接设置。使用Lux主题的基本字体"Nunito Sans"
:编辑复制Lux主题的外观需要更多的努力,而不仅仅是改变基本字体,例如要复制标题的外观,需要设置字体大小和粗细,这可以通过BS变量实现,并使用
bs_add_rules
添加一些额外的CSS。但还不够完美。为了进行比较,直接使用Lux主题: