The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Introduction to cardargus

What is cardargus?

cardargus is an R package for creating informative cards in SVG format. Cards are self-contained, with all styles, fonts, and graphic elements embedded in the SVG file itself.

Installation

# Install from GitHub
devtools::install_github("castlab/cardargus")
library(cardargus)

Creating your first card

The simplest way to create a card is using the svg_card() function:

library(cardargus)

card <- svg_card(
  title = "PROJECT",
  badges_data = list(
    list(label = "Units", value = "192", color = "white"),
    list(label = "Budget", value = "$5.2M", color = "white"),
    list(label = "Status", value = "Active", color = "#4CAF50")
  ),
  fields = list(
    list(
      list(label = "Project Name", value = "Downtown Housing", with_icon = TRUE)
    ),
    list(
      list(label = "Address", value = "123 Main Street, City Center")
    ),
    list(
      list(label = "City", value = "New York"),
      list(label = "State", value = "NY")
    ),
    list(
      list(label = "Developer", value = "ABC Construction"),
      list(label = "Owner", value = "City Housing Authority")
    )
  ),
  bg_color = "#3498db",
  width = 500,
  footer = "Source: Housing Department - January 2026"
)

Displaying cards in R Markdown / Quarto

Use include_card() to display cards inline in your documents:

# Display card as SVG (best quality)
include_card(card)

# Display card as PNG (better compatibility)
include_card_png(card, dpi = 150)

For chunk-based workflow, register the cardargus engine:

# In setup chunk
register_knitr_engine()

# Then use cardargus chunks:
# ```{cardargus}
# svg_card(title = "My Card", ...)
# ```

Saving cards

As SVG

save_svg(card, "my_card.svg")

As PNG

# Standard conversion (uses rsvg)
svg_to_png(card, "my_card.png", dpi = 300)

# Chrome-based conversion (best font rendering)
svg_to_png_chrome(card, "my_card.png", dpi = 300)

# PNG with white background
svg_to_png(card, "my_card.png", dpi = 300, background = "white")

Using bundled logos

The package includes several SVG logos ready to use:

# List available logos
list_bundled_svgs()

# Use in a card
card <- svg_card(
  title = "FAR",
  badges_data = list(...),
  fields = list(...),
  bg_color = "#fab255",
  logos = c(get_svg_path("morar_bem.svg"), get_svg_path("seduh.svg")),
  logos_height = 40,
  bottom_logos = c(get_svg_path("gov_pe3.svg")),
  bottom_logos_height = 35
)

Custom cards

For more control, use svg_card() directly with all options:

# Define badges
badges <- list(
  list(label = "Units", value = "500", color = "white"),
  list(label = "Investment", value = "$50M", color = "#4CAF50")
)

# Define fields with custom icons
fields <- list(
  list(
    list(label = "Project", value = "Housing Development", 
         with_icon = icon_building())  # Or use a file path: "/path/to/icon.svg"
  ),
  list(
    list(label = "City", value = "Boston"),
    list(label = "State", value = "MA")
  ),
  list(
    list(label = "Start", value = "Jan/2024"),
    list(label = "End", value = "Dec/2025"),
    list(label = "Progress", value = "45%")
  )
)

# Create card
card <- svg_card(
  title = "HOUSING",
  badges_data = badges,
  fields = fields,
  bg_color = "#2c3e50",
  title_color = "#ecf0f1",
  width = 500
)

Next steps

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.