Skip to contents

R wrapper for using Phosphor Icons in shiny applications or rmarkdown documents. Visit for a list of all available icons.


Install from CRAN with:


You can install development version from GitHub with:


Icons usage

Create an icon with ph() function:


There’s 5 weights available:

ph("lightning", weight = "thin")

ph("lightning", weight = "light")

ph("lightning", weight = "regular")

ph("lightning", weight = "bold")

ph("lightning", weight = "fill")

Colorize icon using fill argument:

ph("lightning", weight = "bold", fill = "gold")

There’s two type of icons:

  • SVG icons, created with ph()
  • Font icons, created with ph_i()

There’s a big debate between Web Fonts vs SVG for icons, but mainly:

  • Web fonts require an htmlDependency that include all icons even if you use one, it will increase the size of your document in self contained mode.
  • SVG icons won’t currently work with some shiny functions with an icon argument.


Fill icon according to percentage:

  ph("heart", weight = "fill", height = 128),
  colors = c("#DF0101", "#F6CECE"),
  breaks = 0.7

  ph("star", weight = "fill", height = 128, stroke = "gold", `stroke-width` = 10),
  colors = c("gold", "#FFF"),
  breaks = 0.5,
  orientation = "h"

Icon waffle:

  values = sample(c("Cats", "Dogs"), 200, TRUE),
  colors = list(
    Cats = "#456990",
    Dogs = "#F45B69"
  icons = list(
    Cats = ph("cat", height = NULL),
    Dogs = ph("dog", height = NULL)
  ncol = 15,
  nrow = 8,
  width = "500px"