---
title: "Advanced"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Advanced}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
library(linne)
```
## Define
You can use the `define` method to define global variables. This can make things clearer and more efficient. Note that these variables are referred to by their bare (unquoted) names in the `rule` method.
```{r}
Linne$
new()$
define(
theme = "blue",
font_size = 20
)$
rule(
sel_tag("h1"),
color = theme,
fontSize = font_size
)$
rule(
sel_tag("p"),
color = theme
)
```
In the example above were I to later want to change the `theme` color it would have to be changed in only one place.
## Import
There is a method called `import` which corresponds to the CSS at-rule of the same name. It allows importing other CSS files. It is often used for fonts.
For instance to use [Google fonts](https://fonts.google.com/) visit the [website](https://fonts.google.com/), Click a font you would like to use from the main grid then (see print screen below) click "Select this style," this should open a drawer on the right from which you can copy the URL and CSS rule to use that font.
![Google font](google-font.png)
The Robot font (print screen above) can thus be applied like so.
```{r}
Linne$
new()$
import("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap")$
rule(
sel_all(),
fontFamily = "'Roboto', sans-serif"
)
```