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)
