【问题标题】:Bootswatch theme in Shiny Flexdashboard RShiny Flexdashboard R 中的 Bootswatch 主题
【发布时间】:2020-11-04 09:53:30
【问题描述】:

我从 bootswatch (https://bootswatch.com) 下载了一个 css,并将文件 (bootstrap.css) 保存在我的 flexdashboard 文件所在的位置。所以我尝试用这段代码加载css:

---
title: "Untitled"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    css: bootstrap.css
---

```{r setup, include=FALSE}
library(flexdashboard)
```

Column {data-width=650}
-----------------------------------------------------------------------

### Chart A

```{r}

```

但是 css 没有加载。我想使用 Bootswatch 的“Mint”主题。请问,你知道这个问题的解决方案吗?提供的任何帮助将不胜感激。

【问题讨论】:

  • 我不相信您的 .css 文件位于正确的位置,如果您要在此代码示例中使用它,它需要与您的 flexdashboard 位于同一目录中
  • 你好@DanielJachetta,是的,它在同一个目录中,我什至检查了它以使其成为工作目录。
  • @Alexis,你的 R 版本是多少?
  • 你好@Waldi,R 版本是 3.6.1

标签: css r shiny r-markdown flexdashboard


【解决方案1】:

我下载了Minty theme from Bootswatch

我的第一个观察是 :root css 不是 RStudio/flexdashboard 识别的格式:missing R_BRACE 由于此:root 部分主要定义颜色名称,因此我将其删除,因为颜色在其#HEX 代码直接定义的其他部分中。在此之后,css 文件似乎有效,只有警告。

然后我将这个 css 文件与 default flexdashboard css files 进行了比较。
例如:theme-bootstrap.css

我看到的主要区别是flexdashboard 使用了您在bootstrap.css 中找不到的自定义标签,因为它针对的是HTML 格式,而不是专门针对flexdashboard 格式。

flexdashboard 特定标签的示例:
-.section.sidebar
-.value-box
-.chart-title
-...

这就是您看不到任何变化的原因:css 文件已正确加载,但遗憾的是其大部分 HTML 标记不适用于 flexdashboard

css styles 中所述,flexdashboard 的导航栏对其每个主题都使用navbar-inverse 类,因此如果您想创建自己的主题,则必须对其进行修改。

要检查这一点,请创建一个非常简单的style.css

.navbar-inverse {
  background-color: #fd7e14;
  border-color: #1967be;
}

.chart-title {
    font-size: 50px;
    color: #fd7e14;
}

现在您可以在以下 Markdown 文件中使用此自定义 css:

---
title: "Test"
output: 
  flexdashboard::flex_dashboard:
    css: style.css
---

Column {data-width=650}
-----------------------------------------------------------------------

### My Gauge

`r flexdashboard::gauge(15, min = 0, max = 50, href="#details")`

【讨论】:

  • 你好@Waldi,这是一个完整的、经过充分测试的答案!。然后似乎 RStudio 的人们可以澄清,即使使用类似 Bootswatch 中的 Cerulean 的调色板,直接导入也不容易。只是一个问题,如果我导入一个 css,它会覆盖 flexdashboard 中使用的基本 css 吗?还是只在定义的标签中?
  • 您仍然可以设置您喜欢的主题,例如 Cerulean,并添加一个 css 文件,该文件只会修改您更改的标签,或者根据您更改的标签修改标签。如上所述,navbar-inverse 是许多其他标签的基类,因此如果您修改它,您会看到其他标签发生变化。
  • 太好了!请问,我可以问最后一个问题吗?您是如何收到missing R_BRACE 消息的?您是否在 RStudio 中打开了 css 文件?
  • 是的,当我在 RStudio 中打开 Minty css 时,我会在左侧看到那些红十字,当我点击它们时,我会收到缺少的 R_BRACE 错误
  • 有趣的是 RStudio 可以做什么,所以似乎通过打开 css 文件!。非常感谢@Waldi,感谢您为这个答案付出的时间和精力,希望它对社区的其他成员有所帮助,如果他们不得不加载 bootswatch 文件。
【解决方案2】:

同时,您可以使用theme: yaml 标头或其他类似的flexdashboard themes,例如yetijournalspacelab

---
title: "Untitled"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    theme: lumen
---

```{r setup, include=FALSE}
library(flexdashboard)
```

Column {data-width=650}
-----------------------------------------------------------------------

### Chart A

```{r}

```

它为您提供了一些预设主题,然后您可以微调 .css。但是我遇到了同样的问题,我在同一个目录中有.css,但是没有添加样式,我们一定做错了,但是主题至少可以让您在平均时间。

【讨论】:

  • 您好@Daniel Jachetta,我一直在使用“Cerulean”和“Cosmo”主题,但我想加载我自己的css,这就是我提出问题的原因。如果您能指导我如何加载该 CSS,我将不胜感激。谢谢。
  • 这将取决于您的 .css 文件。 CSS 非常广泛但功能强大
  • @Alexis 修改一个已经集成在 Flexdashboard 中的主题,然后将其放在 YAML Header 中,到目前为止,它对我来说和 Shiny 一起工作。问候。
猜你喜欢
  • 2020-04-03
  • 2019-07-24
  • 2019-03-24
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
  • 2022-01-12
  • 2019-03-07
  • 2020-04-26
相关资源
最近更新 更多