fa: Generate Font Awesome icons as SVGs

View source: R/fa.R

faR Documentation

Generate Font Awesome icons as SVGs


Add one or more Font Awesome icons as SVGs contained within <svg>...</svg>. We can optionally set certain style attributes. The fa() function can be used directly within inline evaluations of R code in R Markdown documents.


  fill = NULL,
  fill_opacity = NULL,
  stroke = NULL,
  stroke_width = NULL,
  stroke_opacity = NULL,
  height = NULL,
  width = NULL,
  margin_left = NULL,
  margin_right = NULL,
  vertical_align = NULL,
  position = NULL,
  title = NULL,
  prefer_type = c("regular", "solid"),
  a11y = c("deco", "sem", "none")



The name of the Font Awesome icon. This could be as a short name (e.g., "npm", "drum", etc.), or, a full name (e.g., "fab fa-npm", "fas fa-drum", etc.). The names should correspond to current Version 6 Font Awesome names. A list of short and full names can be accessed through the fa_metadata() function with fa_metadata()$icon_names and fa_metadata()$icon_names_full. If supplying a previous name associated with the icon, it will be internally translated to the current name and a Version 6 icon will be returned.

fill, fill_opacity

The fill color of the icon can be set with fill. If not provided then the default value of "currentColor" is applied so that the SVG fill matches the color of the parent HTML element's color attribute. The opacity level of the SVG fill can be controlled with a decimal value between 0 and 1.

stroke, stroke_width, stroke_opacity

The stroke options allow for setting the color, width, and opacity of the SVG outline stroke. By default, the stroke width is very small at "1px" so a size adjustment with "stroke_width" can be useful. The "stroke_opacity" value can be any decimal values between 0 and 1 (bounds included).

height, width

The height and width style attributes of the rendered SVG. If nothing is provided for height then a default value of "1em" will be applied. If a width isn't given, then it will be calculated in units of "em" on the basis of the icon's SVG "viewBox" dimensions.

margin_left, margin_right

The length value for the margin that's either left or right of the icon. By default, "auto" is used for both properties. If space is needed on either side then a length of "0.2em" is recommended as a starting point.


The vertical alignment of the icon. By default, a length of "-0.125em" is used.


The value for the position style attribute. By default, "relative" is used here.


An option for populating the SVG 'title' attribute, which provides on-hover text for the icon. By default, no title text is given to the icon. If a11y == "semantic" then title text will be automatically given to the rendered icon, however, providing text here will override that.


Chooses the type of icon returned if: (1) providing a short name, and (2) that icon has both solid and regular types. For example, using name = "address-book" will result in two types of icons for an Address Book. By default, this preference is set to "regular" and the other option is "solid".


Cases that distinguish the role of the icon and inform which accessibility attributes to be used. Icons can either be "deco" (decorative, the default case) or "sem" (semantic). Using "none" will result in no accessibility features for the icon.


A fontawesome object.


if (interactive()) {

# Create a Font Awesome SVG icon
fa(name = "r-project")


rstudio/fontawesome documentation built on Feb. 2, 2023, 10:26 a.m.