Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hrbrmstr/hrbragg

Typography-centric Themes, Theme Components, and Utilities for 'ggplot2' and 'ragg'.
https://github.com/hrbrmstr/hrbragg

ggplot2 r ragg rstats typography

Last synced: 6 days ago
JSON representation

Typography-centric Themes, Theme Components, and Utilities for 'ggplot2' and 'ragg'.

Awesome Lists containing this project

README

        

---
output: rmarkdown::github_document
editor_options:
chunk_output_type: console
---
```{r pkg-knitr-opts, include=FALSE}
hrbrpkghelpr::global_opts()
```

```{r ragg, echo = FALSE}
knitr::opts_chunk$set(
dev = "ragg_png",
cache = TRUE
)
```

```{r badges, results='asis', echo=FALSE, cache=FALSE}
hrbrpkghelpr::stinking_badges()
```

```{r description, results='asis', echo=FALSE, cache=FALSE}
hrbrpkghelpr::yank_title_and_description()
```

## What's Inside The Tin

The following functions are implemented:

```{r ingredients, results='asis', echo=FALSE, cache=FALSE}
hrbrpkghelpr::describe_ingredients()
```

## Installation

```{r install-ex, results='asis', echo=FALSE, cache=FALSE}
hrbrpkghelpr::install_block()
```

## Usage

```{r lib-ex}
library(tibble)
library(hrbragg)
library(ggplot2)

# current version
packageVersion("hrbragg")

```

For the moment, you'll need to install Inter:

```{r install-font, eval = FALSE}
install_inter()
```

### Inspect the definitions of the feature codes:

```{r ex-00}
str(inter_pkg, 1)

data("feature_dict")

feature_dict[feature_dict$tag %in% textshaping::get_font_features("Inter")[[1]],]
```

### Let's make a plot!

```{r ex-01}
ggplot() +
geom_point(
data = mtcars,
aes(mpg, wt, color = factor(cyl))
) +
geom_label(
aes(
x = 15, y = 5.48,
label = "<- A fairly useless annotation\n that uses the custom Inter\n variant by default."
),
label.size = 0, hjust = 0, vjust = 1
) +
labs(
x = "Fuel efficiency (mpg)", y = "Weight (tons)",
title = "Seminal ggplot2 scatterplot example",
subtitle = "A plot that is only useful for demonstration purposes",
caption = "Brought to you by the letter 'g'"
) -> gg1
```

### Dark & light mode support with just a parameter change!

```{r dark-mode-01}
gg1 + theme_inter(grid = "XY", mode = "dark")
```

Note the ligatures aren't as nice in Goldman Sans

```{r dark-mode-01-rc}
gg1 + theme_rc(grid = "XY", mode = "dark")
```

### Note the ligatures aren't as nice in or Roboto Condensed

```{r dark-mode-01-gs}
gg1 + theme_gs(grid = "XY", mode = "dark")
```

```{r light-mode-01}
gg1 + theme_inter(grid = "XY", mode = "light")
```

```{r light-mode-01-rc}
gg1 + theme_rc(grid = "XY", mode = "light")
```

```{r light-mode-01-gs}
gg1 + theme_gs(grid = "XY", mode = "light")
```

### Making sure we got all the various plot components styled

```{r ex-02}
ggplot() +
geom_point(
data = mpg,
aes(displ, hwy, color = trans)
) +
facet_wrap(
vars(cyl, drv), scales = "free", drop = TRUE
) +
labs(
x = "Displacement", y = "Highway",
title = "Another seminal ggplot2 scatterplot example",
subtitle = "A plot that is only useful for demonstration purposes",
caption = "Brought to you by the letter 'g'"
) -> gg2
```

```{r light-mode-02, fig.width=1400/96, fig.height=700/96}
gg2 + theme_inter(grid = "XY", mode = "light")
```

```{r dark-mode-02, fig.width=1400/96, fig.height=700/96}
gg2 + theme_inter(grid = "XY", mode = "dark")
```

### Here's a way to preview any variants you create:

```{r preview-00, fig.width=600/96, fig.height=1300/96}
preview_variant(inter_pkg)
```

```{r preview-01, fig.width=400/96, fig.height=300/96}
reconfigure_font(
family = "Trattatello",
width = "normal",
ligatures = "discretionary",
calt = 1, tnum = 1, case = 1,
dlig = 1, kern = 1,
zero = 0, salt = 0
) -> trat

preview_variant(trat)
```

```{r preview-02, fig.width=600/96, fig.height=1100/96}
reconfigure_font(
family = "Barlow",
width = "normal",
ligatures = "standard",
tnum = 1, kern = 1
) -> barlow

preview_variant(barlow)
```

## hrbragg Metrics

```{r cloc, echo=FALSE}
cloc::cloc_pkg_md()
```

## Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.