diff --git a/R/ggplot-theme.R b/R/ggplot-theme.R
index 67f06c3..fc562e3 100644
--- a/R/ggplot-theme.R
+++ b/R/ggplot-theme.R
@@ -25,60 +25,69 @@
 #' @importFrom ggplot2 theme element_rect element_text element_line element_blank
 #' @export
 theme_ids <- function(base_size = 10,
-                     base_family = idsBaseFontFamily,
-                     style = c("default", "light", "dark"),
-                     bgcolor = NULL) {
-
+                      base_family = idsBaseFontFamily,
+                      style = c("default", "light", "dark", "mono"),
+                      bgcolor = NULL) {
   if (!is.null(bgcolor)) {
     warning("`bgcolor` is deprecated. Use `style` instead.")
     style <- bgcolor
   }
   style <- match.arg(style)
   bgcolor <- switch(style,
-                    default = backgroundColor,
-                    "light" = backgroundColor,
-                    "mono" = backgroundColor,
-                    "dark" = backgroundColorDark)
+    default = backgroundColor,
+    "light" = backgroundColor,
+    "mono" = backgroundColor,
+    "dark" = backgroundColorDark
+  )
 
-  ret <- theme(rect = element_rect(fill = bgcolor, linetype = 0, colour = NA),
-               text = element_text(size = base_size * 0.8, family = base_family),
-               plot.title = element_text(hjust = 0.5),
-               plot.subtitle = element_text(hjust = 0.5, size = base_size * 0.9, colour = mediumContrastColor),
-               title = element_text(hjust = 0.5),
-               axis.text = element_text(size = base_size * 1.0, family = base_family),
-               axis.title = element_text(size = base_size * 1.0, family = base_family),
-               legend.title = element_text(size = base_size * 1.0, family = base_family, colour = mediumContrastColor),
-               legend.text = element_text(size = base_size * 1.0, family = base_family),
-               strip.text =  element_text(size = base_size * 1.0, family = base_family),
-               axis.title.x = element_text(hjust = 0.5, size = base_size * 1.0,
-                                           colour = mediumContrastColor),
-               axis.title.y = element_text(hjust = 0.5, size = base_size * 1.0,
-                                           margin = margin(r = 10),
-                                           colour = mediumContrastColor),
-               panel.grid.major.x = element_line(linetype = "dotted", colour = lowContrastColor),
-               panel.grid.major.y = element_line(colour = lowContrastColor),
-               panel.grid.minor.y = element_blank(),
-               panel.grid.minor.x = element_blank(),
-               panel.border = element_blank(),
-               panel.background = element_blank(),
-               legend.position = "right",
-               legend.key = element_rect(fill = paste0(bgcolor,"00")))
+  base_family <- ids_resolve_font_family(base_family)
+
+  ret <- theme(
+    rect = element_rect(fill = bgcolor, linetype = 0, colour = NA),
+    text = element_text(size = base_size * 0.8, family = base_family),
+    plot.title = element_text(hjust = 0.5),
+    plot.subtitle = element_text(hjust = 0.5, size = base_size * 0.9, colour = mediumContrastColor),
+    title = element_text(hjust = 0.5),
+    axis.text = element_text(size = base_size * 1.0, family = base_family),
+    axis.title = element_text(size = base_size * 1.0, family = base_family),
+    legend.title = element_text(size = base_size * 1.0, family = base_family, colour = mediumContrastColor),
+    legend.text = element_text(size = base_size * 1.0, family = base_family),
+    strip.text = element_text(size = base_size * 1.0, family = base_family),
+    axis.title.x = element_text(
+      hjust = 0.5, size = base_size * 1.0,
+      colour = mediumContrastColor
+    ),
+    axis.title.y = element_text(
+      hjust = 0.5, size = base_size * 1.0,
+      margin = margin(r = 10),
+      colour = mediumContrastColor
+    ),
+    panel.grid.major.x = element_line(linetype = "dotted", colour = lowContrastColor),
+    panel.grid.major.y = element_line(colour = lowContrastColor),
+    panel.grid.minor.y = element_blank(),
+    panel.grid.minor.x = element_blank(),
+    panel.border = element_blank(),
+    panel.background = element_blank(),
+    legend.position = "right",
+    legend.key = element_rect(fill = paste0(bgcolor, "00"))
+  )
 
   if (style == "dark") {
-    ret <- (ret + theme(rect = element_rect(fill = bgcolor),
-                        text = element_text(colour = textColorDark),
-                        plot.title = element_text(colour = highContrastColorDark),
-                        plot.subtitle = element_text(colour = mediumContrastColorDark),
-                        axis.title.x = element_text(colour = textColorDark),
-                        axis.title.y = element_text(colour = textColorDark),
-                        axis.text.x = element_text(color=textColorDark),
-                        axis.text.y = element_text(color=textColorDark),
-                        panel.grid.major.y = element_line(colour = lowContrastColorDark),
-                        legend.title = element_text(colour = textColorDark)))
+    ret <- (ret + theme(
+      rect = element_rect(fill = bgcolor),
+      text = element_text(colour = textColorDark),
+      plot.title = element_text(colour = highContrastColorDark),
+      plot.subtitle = element_text(colour = mediumContrastColorDark),
+      axis.title.x = element_text(colour = textColorDark),
+      axis.title.y = element_text(colour = textColorDark),
+      axis.text.x = element_text(color = textColorDark),
+      axis.text.y = element_text(color = textColorDark),
+      panel.grid.major.y = element_line(colour = lowContrastColorDark),
+      legend.title = element_text(colour = textColorDark)
+    ))
   }
   update_geom_defaults("text", list(size = 3, family = base_family))
   ret
-
 }
 
 
@@ -99,7 +108,7 @@
 #' @rdname scale_ids
 #' @export
 scale_colour_ids <- function(palette = "default", ...) {
-  discrete_scale("colour", "ids", ids_pal(palette=palette, ...))
+  discrete_scale("colour", "ids", ids_pal(palette = palette, ...))
 }
 
 #' @rdname scale_ids
@@ -113,5 +122,5 @@
 #' @importFrom ggplot2 discrete_scale
 #' @export
 scale_fill_ids <- function(palette = "default", ...) {
-  discrete_scale("fill", "ids", ids_pal(palette=palette, ...))
+  discrete_scale("fill", "ids", ids_pal(palette = palette, ...))
 }
diff --git a/R/idsThemeR.R b/R/idsThemeR.R
index bbe510b..d370628 100644
--- a/R/idsThemeR.R
+++ b/R/idsThemeR.R
@@ -1,4 +1,34 @@
-idsBaseFontFamily <- 'Fira Sans Condensed'
+idsBaseFontFamily <- "Fira Sans Condensed"
+
+ids_font_available <- function(font_family) {
+  if (!requireNamespace("systemfonts", quietly = TRUE)) {
+    return(FALSE)
+  }
+  info <- tryCatch(systemfonts::font_info(font_family), error = function(e) NULL)
+  !is.null(info) && nrow(info) > 0
+}
+
+ids_resolve_font_family <- function(preferred = idsBaseFontFamily, fallback = "sans") {
+  candidates <- unique(stats::na.omit(c(preferred, idsBaseFontFamily, fallback)))
+  available <- vapply(candidates, ids_font_available, logical(1))
+  if (any(available)) {
+    return(candidates[which(available)[1]])
+  }
+
+  if (requireNamespace("sysfonts", quietly = TRUE)) {
+    try(sysfonts::font_add_google("Fira Sans Condensed", "Fira Sans Condensed"), silent = TRUE)
+    if (requireNamespace("showtext", quietly = TRUE)) {
+      try(showtext::showtext_auto(enable = TRUE), silent = TRUE)
+    }
+    candidates_after <- unique(c("Fira Sans Condensed", candidates))
+    available_after <- vapply(candidates_after, ids_font_available, logical(1))
+    if (any(available_after)) {
+      return(candidates_after[which(available_after)[1]])
+    }
+  }
+
+  fallback
+}
 
 
 #' Title
@@ -9,27 +39,27 @@
 #' @examples
 idsPaletteIDS <- function() {
   c(
-  '#F18700',
-  "#1E2662",
-  "#6A7702",
-  "#C10A25",
-  "#009EE3",
-  "#FAF3DE",
-  "#A7C2D2",
-  "#E2E8A4",
-  "#CFBCBD",
-  "#BCE3FA",
-  "#5C401C",
-  "#000000",
-  "#354C32",
-  "#5C131C",
-  "#273582",
-  "#FFE3BF",
-  "#8994E1",
-  "#A3B29E",
-  "#DF9599",
-  "#79B8DB"
-)
+    "#F18700",
+    "#1E2662",
+    "#6A7702",
+    "#C10A25",
+    "#009EE3",
+    "#FAF3DE",
+    "#A7C2D2",
+    "#E2E8A4",
+    "#CFBCBD",
+    "#BCE3FA",
+    "#5C401C",
+    "#000000",
+    "#354C32",
+    "#5C131C",
+    "#273582",
+    "#FFE3BF",
+    "#8994E1",
+    "#A3B29E",
+    "#DF9599",
+    "#79B8DB"
+  )
 }
 
 #' Title
@@ -40,27 +70,27 @@
 #' @examples
 idsPaletteD3 <- function() {
   c(
-  '#EB7C31',
-  "#1F77B4",
-  "#2CA02C",
-  "#D62728",
-  "#9467BD",
-  "#8C564B",
-  "#E377C2",
-  "#7F7F7F",
-  "#BCBD22",
-  "#17BECF",
-  "#AEC7E8",
-  "#FFBB78",
-  "#98DF8A",
-  "#FF9896",
-  "#C5B0D5",
-  "#C49C94",
-  "#F7B6D2",
-  "#C7C7C7",
-  "#DBDB8D",
-  "#9EDAE5"
-)
+    "#EB7C31",
+    "#1F77B4",
+    "#2CA02C",
+    "#D62728",
+    "#9467BD",
+    "#8C564B",
+    "#E377C2",
+    "#7F7F7F",
+    "#BCBD22",
+    "#17BECF",
+    "#AEC7E8",
+    "#FFBB78",
+    "#98DF8A",
+    "#FF9896",
+    "#C5B0D5",
+    "#C49C94",
+    "#F7B6D2",
+    "#C7C7C7",
+    "#DBDB8D",
+    "#9EDAE5"
+  )
 }
 
 #' Title
@@ -84,7 +114,7 @@
 #' @examples
 idsPaletteGreyscale <- function() {
   c(
-  "#000000", "#B2B0AD", "#737373", "#D8D7D6", "#B2B0AD", "#8C8984"
+    "#000000", "#B2B0AD", "#737373", "#D8D7D6", "#B2B0AD", "#8C8984"
   )
 }
 
@@ -125,13 +155,13 @@
 #'
 #' \url{https://github.com/d3/d3}
 #'
-ids_pal <- function(palette="default") {
+ids_pal <- function(palette = "default") {
   values <- switch(tolower(palette),
-                   ids = idsPaletteIDS(),
-                   gray = idsPaletteGreyscale(),
-                   grey = idsPaletteGreyscale(),
-                   poly20 = idsPalettePoly20(),
-                   idsPaletteD3()
+    ids = idsPaletteIDS(),
+    gray = idsPaletteGreyscale(),
+    grey = idsPaletteGreyscale(),
+    poly20 = idsPalettePoly20(),
+    idsPaletteD3()
   )
   f <- scales::manual_pal(values)
   attr(f, "max_n") <- length(values)
