😎 Give your xaringan slides some style
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
Garrick Aden-Buie 899bb02f83 Add examples for scale_xaringan* functions 6 anos atrás
R Add examples for scale_xaringan* functions 6 anos atrás
inst Update rmarkdown skeleton with style_* syntax 6 anos atrás
man Add examples for scale_xaringan* functions 6 anos atrás
man-roxygen Move extra param documentation to man-roxygen/theme_params.R 6 anos atrás
pkgdown Add link to NEWS and my website to pkgdown title bar 6 anos atrás
tests wrap long error messages elsewhere in pkg 6 anos atrás
vignettes pkgdown: put articles with child chunks back in vignettes/ 6 anos atrás
.Rbuildignore pkgdown: put articles with child chunks back in vignettes/ 6 anos atrás
.gitignore update .gitignore 6 anos atrás
.travis.yml [travis] build/test release versions first 6 anos atrás
DESCRIPTION Set default fonts via *_font_* instead of google_fonts 6 anos atrás
LICENSE Prepping for 0.1.0 8 anos atrás
LICENSE.md Prepping for 0.1.0 8 anos atrás
NAMESPACE More rcmd check fixes 6 anos atrás
NEWS.md Update news with extra_fonts improvements 6 anos atrás
README.Rmd switch badge to travis-ci.com 6 anos atrás
README.md change inline fonts to use `em` not `rem` 6 anos atrás
appveyor.yml Enable CI, build pkgdown through CI 6 anos atrás
index.Rmd Restructure pkgdown 6 anos atrás
make.R Restructure pkgdown 6 anos atrás
tic.R [travis] log which branch, push pkgdown if dev 6 anos atrás
xaringanthemer.Rproj Initial commit, MWP 8 anos atrás

README.md

xaringanthemer

CRAN status travis Codecov

Give your xaringan slides some style with xaringanthemer within your slides.Rmd file without (much) CSS.

Animation previewing many xaringanthemer themes

Installation

You can install xaringanthemer from CRAN

install.packages("xaringanthemer")

or you can install the development version of xaringanthemer from GitHub.

# install.packages("devtools")
devtools::install_github("gadenbuie/xaringanthemer")

Quick Intro

First, add the xaringan-themer.css file to the YAML header of your xaringan slides.

output:
  xaringan::moon_reader:
    lib_dir: libs
    css: xaringan-themer.css

Then, in a hidden chunk just after the knitr setup chunk, load xaringanthemer and try one of the theme functions.

```{r xaringan-themer, include = FALSE}
library(xaringanthemer)
style_mono_light(
  base_color = "#1c5253",
  header_font_google = google_font("Josefin Sans"),
  text_font_google   = google_font("Montserrat", "300", "300i"),
  code_font_google   = google_font("Droid Mono")
)
```

Example title and normal slides using a green xaringanthemer theme

Tab Completion

xaringanthemer is Tab friendly – use autocomplete to explore the template variables that you can adjust in each of the themes!

Demonstration of argument auto-completion with RStudio

R Markdown Template in RStudio

You can also skip the above and just create a Ninja Themed Presentation from the New R Markdown Document menu in RStudio.

The 'New R Markdown Document' menu in RStudio

Themes

Monotone

Use these functions to automatically create a consistent color palette for your slides, based around a single color.

style_mono_light()

A light theme based around a single color.

style_mono_light(base_color = "#23395b")

style_mono_dark()

A dark theme based around a single color.

style_mono_dark(base_color = "#cbf7ed")

style_mono_accent()

The default xaringan theme with a single color used for color accents on select elements (headers, bold text, etc.).

style_mono_accent(base_color = "#43418A")

style_mono_accent_inverse()

An “inverted” default xaringan theme with a single color used for color accents on select elements (headers, bold text, etc.).

style_mono_accent_inverse(base_color = "#3C989E")

Duotone

These themes build from two (ideally) complementary colors.

style_duo()

A two-colored theme based on a primary and secondary color.

style_duo(primary_color = "#1F4257", secondary_color = "#F97B64")

style_duo_accent()

The default Xaringan theme with two accent colors.

style_duo_accent(primary_color = "#006747", secondary_color = "#CFC493")

style_duo_accent_inverse()

An “inverted” default Xaringan theme with two accent colors.

style_duo_accent_inverse(primary_color = "#006747", secondary_color = "#CFC493")

Solarized

There are also two themes based around the solarized color palette, style_solarized_light() and style_solarized_dark(). For both themes, it is advisted to change the syntax highlighting theme to solarized-light or solarized-dark (looks great paired or constrasted).

style_solarized_light()

style_solarized_light()

style_solarized_dark()

style_solarized_dark()

To do this, your YAML header should look more-or-less like this:

output:
  xaringan::moon_reader:
    lib_dir: libs
    css: ["xaringan-themer.css"]
    nature:
      highlightStyle: solarized-dark
      highlightLines: true
      countIncrementalSlides: false

Theme Settings

The theme functions listed above are just wrappers around the central function of this package, style_xaringan(). If you want to start from the default xaringan theme and make a few modifications, start there.

All of the theme template variables are repeated in each of the theme functions (instead of relying on ...) so that you can use autocompletion to find and change the defaults for any theme function. To override the default value of any theme functions, set the appropriate argument in the theme function. A table of all template variables is included in vignette("template-variables", "xaringanthemer").

As an example, try loading xaringanthemer, type out duo_theme( and then press Tab to see all of the theme options.

All of the theme options are named so that you first think of the element you want to change, then the property of that element.

Here are some of the text_ theme options:

  • text_color
  • text_bold_color
  • text_slide_number_color
  • text_font_size
  • text_slide_number_font_size
  • and more …

And here are the title slide theme options:

  • title_slide_text_color
  • title_slide_background_color
  • title_slide_background_image
  • title_slide_background_size
  • title_slide_background_position

Adding Custom CSS

You can also add custom CSS classes using the extra_css argument in the theme functions. This argument takes a named list of CSS definitions each containing a named list of CSS property-value pairs.

extra_css <- list(
  ".red"   = list(color = "red"),
  ".small" = list("font-size" = "90%"),
  ".full-width" = list(
    display = "flex",
    width   = "100%",
    flex    = "1 1 auto"
  )
)

If you would rather keep your additional css definitions in a separate file, you can call style_extra_css() separately. Just be sure to include your new CSS file in the list of applied files in your YAML header.

style_extra_css(css = extra_css, outfile = "custom.css")
/* Extra CSS */
.red {
  color: red;
}
.small {
  font-size: 90%;
}
.full-width {
  display: flex;
  width: 100%;
  flex: 1 1 auto;
}

This is most helpful when wanting to define helper classes to work with the remark.js .class[] syntax. Using the above example, we could color text red .red[like this] or write .small[in smaller font size].

Fonts

Yihui picked out great fonts for the default xaringan theme, but sometimes you want something new and interesting.

xaringanthemer makes it easy to use Google Fonts in your presentations (well, as long as you have an internet connection) or to fully specify your font files.

To use Google Fonts, set the _font_google theme arguments – text_font_google, header_font_google, code_font_google — using the google_font() helper. See ?google_font for more info.

style_mono_light(
  header_font_google = google_font("Josefin Slab", "600"),
  text_font_google   = google_font("Work Sans", "300", "300i"),
  code_font_google   = google_font("IBM Plex Mono")
)

If you set an xxx_font_google theme arguments, then xxx_font_family, xxx_font_weight and xxx_font_url are overwritten – where xxx in {header, text, code}. Of course, you can manually set header_font_url, etc., and ignore the header_font_google argument.

For example, suppose you want to use a ligature font for the code font, such as Fira Code. Just set code_font_family and code_font_url!

style_solarized_dark(
  code_font_family = "Fira Code",
  code_font_url = "https://cdn.rawgit.com/tonsky/FiraCode/1.204/distr/fira_code.css"
)

If you need to import additional fonts for use in custom CSS definitions, you can use the extra_fonts argument to pass a list of URLs or google_font()s.

style_mono_light(
  extra_fonts = list(google_font("Sofia")),
  extra_css = list(".title-slide h2" = list("font-family" = "Sofia"))
)

xaringanthemer was built by Garrick Aden-Buie (@grrrck).

Big thank you to Yihui Xie, especially for xaringan. Also thanks to Ole Petter Bang for remark.js.

Feel free to file an issue if you find a bug or have a theme suggestion – or better yet, submit a pull request!