blob: d370628b5a955895d695d1cc5c163c08a781b6d7 [file] [log] [blame]
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
#'
#' @return
#' @export
#'
#' @examples
idsPaletteIDS <- function() {
c(
"#F18700",
"#1E2662",
"#6A7702",
"#C10A25",
"#009EE3",
"#FAF3DE",
"#A7C2D2",
"#E2E8A4",
"#CFBCBD",
"#BCE3FA",
"#5C401C",
"#000000",
"#354C32",
"#5C131C",
"#273582",
"#FFE3BF",
"#8994E1",
"#A3B29E",
"#DF9599",
"#79B8DB"
)
}
#' Title
#'
#' @return
#' @export
#'
#' @examples
idsPaletteD3 <- function() {
c(
"#EB7C31",
"#1F77B4",
"#2CA02C",
"#D62728",
"#9467BD",
"#8C564B",
"#E377C2",
"#7F7F7F",
"#BCBD22",
"#17BECF",
"#AEC7E8",
"#FFBB78",
"#98DF8A",
"#FF9896",
"#C5B0D5",
"#C49C94",
"#F7B6D2",
"#C7C7C7",
"#DBDB8D",
"#9EDAE5"
)
}
#' Title
#'
#' @return
#' @export
#'
#' @examples
idsPalettePoly20 <- function() {
c(
"#EF8700", "#1642FF", "#00D20D", "#FF00CB", "#162E35", "#00C8FC", "#FF004B", "#BBB96A", "#DFA2ED", "#881640", "#22D0AD", "#CF0DF7",
"#2E0D95", "#AFB9BD", "#FC4792", "#EBA392", "#1C7C00", "#939CFF", "#AB00A4", "#AF1C00"
)
}
#' Title
#'
#' @return
#' @export
#'
#' @examples
idsPaletteGreyscale <- function() {
c(
"#000000", "#B2B0AD", "#737373", "#D8D7D6", "#B2B0AD", "#8C8984"
)
}
#' Title
#'
#' @return
#' @export
#'
#' @examples
idsPalette <- function() {
idsPaletteD3()
}
backgroundColorDark <- "#2a2a2a"
textColorDark <- "#E0E0E3"
lowContrastColorDark <- "#707073"
highContrastColorDark <- "#F0F0F3"
mediumContrastColorDark <- "#808083"
backgroundColor <- "#ffffff"
textColor <- "#383838"
highContrastColor <- "#101013"
lowContrastColor <- "#E0E0E3"
mediumContrastColor <- "#404043"
tooltipBackgroundColor <- "#ffffffe0"
boxplotFillColor <- "#505053"
candlestickColor <- "black"
errorbarColor <- "black"
#' IDS color palette
#'
#' @param palette \code{c("d3", "grey", "ids", "poly20")} - default: (adapted) d3 palette
#'
#' @importFrom scales manual_pal
#' @export
#'
#' @references
#'
#' \url{https://github.com/d3/d3}
#'
ids_pal <- function(palette = "default") {
values <- switch(tolower(palette),
ids = idsPaletteIDS(),
gray = idsPaletteGreyscale(),
grey = idsPaletteGreyscale(),
poly20 = idsPalettePoly20(),
idsPaletteD3()
)
f <- scales::manual_pal(values)
attr(f, "max_n") <- length(values)
f
}