#' ggplot2 Theme Based On The Roboto Condensed Font Family
#'
#' Uses the built-in [rc_pkg] custom font.
#'
#' - `background_colour` dark mode is "`#121212`" else "`white`"
#' - `foreground_colour` dark mode is "`#e1e1e1`" else "`#262626`"
#' - `grid_col` dark mode is "`#606367`" else "`#cccccc`"
#' - `axis_col` dark mode is "`#606367`" else "`#2b2b2b`"
#'
#' @note this function updates `Geom` defaults; use [reset_ggplot2_defaults()] to
#'       restore ggplot2 geom default aeshetics
#' @param base_size base font size
#' @param line_height default line height
#' @param plot_title_size plot title size
#' @param plot_title_position plot title position
#' @param plot_title_margin plot title margin
#' @param subtitle_size subtitle size
#' @param subtitle_margin subtitle margin
#' @param strip_text_size strip text size
#' @param strip_placement strip placement
#' @param caption_size caption size
#' @param caption_margin caption margin
#' @param axis_text_size axis text size
#' @param axis_title_size axis title size
#' @param axis_title_just axis title just
#' @param text_geom_size text geom size
#' @param panel_spacing panel spacing
#' @param plot_margin plot margin
#' @param grid_col grid col
#' @param grid grid
#' @param axis_col axis col
#' @param axis axis
#' @param axis_text axis text labels
#' @param ticks ticks
#' @return ggplot2 theme
#' @export
#' @examples
#' ggplot() +
#'   geom_point(
#'     data = mtcars,
#'     aes(mpg, wt)
#'   ) +
#'   geom_label(
#'     aes(
#'       x = 30, y = 4.5,
#'       label = "A fairly useless\nannotation that\nuses the custom\nInter variant\nby default."
#'     ),
#'     label.size = 0
#'   ) +
#'   labs(
#'     x = "Fuel efficiency (mpg)", y = "Weight (tons)",
#'     title = "Seminal ggplot2 scatterplot example",
#'     subtitle = "A plot that is only useful for demonstration purposes",
#'     caption = "Brought to you by the letter 'g'"
#'   ) +
#'   theme_rc(grid = "XY")
theme_rc <- function(
  base_size = 10,
  line_height = 0.875,
  plot_title_size = 18,
  plot_title_position = "panel",
  plot_title_margin = 10,
  subtitle_size = 12,
  subtitle_margin = 12,
  strip_text_size = 12,
  strip_placement = "outer",
  caption_size = 9,
  caption_margin = 12,
  axis_text_size = base_size,
  axis_title_size = 9,
  axis_title_just = "rt",
  panel_spacing = grid::unit(2, "lines"),
  plot_margin = margin(30, 30, 30, 30),
  mode = c("light", "dark", "rstudio"),
  background_colour = theme_background_color(mode, light = "white", dark = "#121212"),
  foreground_colour = theme_foreground_color(mode, light = "#262626", dark = "#e1e1e1"),
  grid_col = theme_foreground_color(mode, light = "#cccccc", dark = "#606367"),
  axis_col = theme_foreground_color(mode, light = "#2b2b2b", dark = "#606367"),
  grid = TRUE,
  axis = FALSE,
  axis_text = TRUE,
  ticks = FALSE) {

  base_family <- rc_pkg$normal
  plot_title_family <- rc_pkg_prop$bold
  subtitle_family <- rc_pkg_prop$normal
  strip_text_family <- rc_pkg_prop$bold
  axis_text_family <- rc_pkg$normal
  caption_family <- rc_pkg_prop$normal_light
  axis_title_family <- rc_pkg_prop$bold

  finish_theme(
    base_size = base_size,
    line_height = line_height,
    plot_title_size = plot_title_size,
    plot_title_position = plot_title_position,
    plot_title_margin = plot_title_margin,
    subtitle_size = subtitle_size,
    subtitle_margin = subtitle_margin,
    strip_text_size = strip_text_size,
    strip_placement = strip_placement,
    caption_size = caption_size,
    caption_margin = caption_margin,
    axis_text_size = axis_text_size,
    axis_title_size = axis_title_size,
    axis_title_just = axis_title_just,
    panel_spacing = panel_spacing,
    plot_margin = plot_margin,
    mode = mode,
    background_colour = background_colour,
    foreground_colour = foreground_colour,
    grid_col = grid_col,
    axis_col = axis_col,
    grid = grid,
    axis = axis,
    axis_text = axis_text,
    ticks = ticks,
    base_family = base_family,
    plot_title_family = plot_title_family,
    subtitle_family = subtitle_family,
    strip_text_family = strip_text_family,
    axis_text_family = axis_text_family,
    caption_family = caption_family,
    axis_title_family = axis_title_family
  )
}
