Browse Source

better font reg

master
boB Rudis 1 year ago
parent
commit
0ed13acdf7
No known key found for this signature in database GPG Key ID: 1D7529BE14E2BBA9
  1. 2
      DESCRIPTION
  2. 5
      NAMESPACE
  3. 114
      R/check-register-install.R
  4. 221
      R/finish-theme.R
  5. 11
      R/install-fonts.R
  6. 228
      R/theme-gs.R
  7. 228
      R/theme-inter.R
  8. 229
      R/theme-rc.R
  9. 87
      R/x-font-reg.R
  10. 86
      R/zzz.R
  11. 3
      README.Rmd
  12. 48
      README.md
  13. 0
      inst/fonts/goldman-sans-condensed/GoldmanSansCd_Bd.ttf
  14. 0
      inst/fonts/goldman-sans-condensed/GoldmanSansCd_Rg.ttf
  15. BIN
      man/figures/README-dark-mode-01-1.png
  16. BIN
      man/figures/README-dark-mode-01-gs-1.png
  17. BIN
      man/figures/README-dark-mode-01-rc-1.png
  18. BIN
      man/figures/README-dark-mode-02-1.png
  19. BIN
      man/figures/README-light-mode-01-1.png
  20. BIN
      man/figures/README-light-mode-01-gs-1.png
  21. BIN
      man/figures/README-light-mode-01-rc-1.png
  22. BIN
      man/figures/README-light-mode-02-1.png
  23. BIN
      man/figures/README-preview-00-1.png
  24. BIN
      man/figures/README-preview-01-1.png
  25. BIN
      man/figures/README-preview-02-1.png
  26. 28
      man/gs_pkg.Rd
  27. 6
      man/install_goldman_sans.Rd
  28. 21
      man/inter_pkg.Rd
  29. 19
      man/rc_pkg.Rd

2
DESCRIPTION

@ -2,7 +2,7 @@ Package: hrbragg
Type: Package
Title: Typography-centric Themes, Theme Components, and Utilities
for 'ggplot2' and 'ragg'.
Version: 0.1.0
Version: 0.2.0
Date: 2021-02-16
Authors@R: c(
person(

5
NAMESPACE

@ -6,14 +6,11 @@ export(elb)
export(ell)
export(elr)
export(elt)
export(gs_pkg)
export(gsc_pkg)
export(install_goldman_sans)
export(install_goldman_sans_condensed)
export(install_inter)
export(install_roboto_condensed)
export(inter_pkg)
export(preview_variant)
export(rc_pkg)
export(reconfigure_font)
export(reset_ggplot2_defaults)
export(scale_x_comma)

114
R/check-register-install.R

@ -0,0 +1,114 @@
font_is_installed <- function(family) {
first <- systemfonts::font_info(family[1])[["family"]][1]
first == family[1]
}
it_is_ok_to_annoy <- function() {
getOption("hrbragg.verbose", TRUE) && interactive()
}
startup_msg <- function(...) {
if (it_is_ok_to_annoy()) packageStartupMessage(...)
}
register_reconfig <- function(family,
glob_prefix,
inst_f,
font_dir,
width = "normal",
ligatures = NULL,
letters = NULL,
numbers = NULL,
...) {
if (!font_is_installed(family)) {
startup_msg(
"Please run '", inst_f, "' to install '", family, "', then restart your R session."
)
return()
# startup_msg(
# "Using {hrbragg} copy of '", family, ". ",
# "Run '", inst_f, "' to install the font."
# )
#
# systemfonts::register_font(
# name = family,
# plain = system.file("fonts", font_dir, package = "hrbragg")
# )
}
startup_msg("Registering '", family, "' font variant.")
reconfigure_font(
prefix = "hrbragg-pkg tab",
family = family,
width = width,
ligatures = ligatures,
tnum = 1, ...
) -> has_tnum
reconfigure_font(
prefix = "hrbragg-pkg prop",
family = family,
width = width,
ligatures = "discretionary",
tnum = 0, ...
) -> no_tnum
assign(sprintf("%s_pkg", glob_prefix), has_tnum, .GlobalEnv)
assign(sprintf("%s_pkg_prop", glob_prefix), no_tnum, .GlobalEnv)
}
register_fonts <- function() {
register_reconfig(
family = "Inter",
glob_prefix = "inter",
inst_f = "install_inter()",
font_dir = "inter",
width = "normal",
ligatures = "discretionary",
calt = 1, case = 1, dlig = 1, ss01 = 1,
kern = 1, zero = 0, salt = 0
)
register_reconfig(
family = "Roboto Condensed",
glob_prefix = "rc",
inst_f = "install_roboto_condensed()",
font_dir = "roboto-condensed",
width = "normal",
ligatures = "standard",
ccmp = 1, kern = 1
)
register_reconfig(
family = "Goldman Sans",
glob_prefix = "gs",
inst_f = "install_goldman_sans()",
font_dir = "goldman-sans",
width = "normal",
ligatures = "standard",
kern = 1
)
register_reconfig(
family = "Goldman Sans Condensed",
glob_prefix = "gsc",
inst_f = "install_goldman_sans_condensed()",
font_dir = "goldman-sans-condensed",
width = "semicondensed",
ligatures = "standard",
kern = 1
)
startup_msg(
"Use `options(hrbragg.verbose = FALSE)` to silence font registration messages"
)
}

221
R/finish-theme.R

@ -0,0 +1,221 @@
finish_theme <- function(base_size,
line_height,
plot_title_size,
plot_title_position,
plot_title_margin,
subtitle_size,
subtitle_margin,
strip_text_size,
strip_placement,
caption_size,
caption_margin,
axis_text_size,
axis_title_size,
axis_title_just,
panel_spacing,
plot_margin,
mode,
background_colour,
foreground_colour,
grid_col,
axis_col,
grid,
axis,
ticks,
base_family,
plot_title_family,
subtitle_family,
strip_text_family,
axis_text_family,
caption_family,
axis_title_family) {
c(
"GeomRect", "GeomLabel", "GeomTile", "GeomViolin"
) -> has_reverse_cols
geoms <- ls(pattern = '^Geom', env = as.environment('package:ggplot2'))
for (geom in geoms) {
update_geom_defaults(
geom = get(geom),
new = list(
# arrow.fill = background_colour,
# outlier.colour = foreground_colour,
# outlier.fill = background_colour,
colour = foreground_colour,
fill = if (geom %in% c(has_reverse_cols)) background_colour else NA,
family = base_family,
lineheight = line_height
)
)
}
theme_minimal(
base_family = base_family,
base_size = base_size,
) +
theme(
rect = element_rect(colour = foreground_colour, fill = background_colour),
line = element_line(colour = foreground_colour),
title = element_text(colour = foreground_colour),
legend.background = element_blank(),
legend.key = element_blank(),
legend.text = element_text(colour = foreground_colour, family = inter_pkg$medium),
legend.title = element_text(colour = foreground_colour, family = inter_pkg$semibold)
) -> ret
if (inherits(grid, "character") | grid == TRUE) {
ret +
theme(
panel.grid = element_line(colour = grid_col, size = 0.2),
panel.grid.major = element_line(colour = grid_col, size = 0.2),
panel.grid.minor = element_line(colour = grid_col, size = 0.15)
) -> ret
if (inherits(grid, "character")) {
if (regexpr("X", grid)[1] < 0) ret <- ret + theme(panel.grid.major.x = element_blank())
if (regexpr("Y", grid)[1] < 0) ret <- ret + theme(panel.grid.major.y = element_blank())
if (regexpr("x", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.x = element_blank())
if (regexpr("y", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.y = element_blank())
}
} else {
ret <- ret + theme(panel.grid = element_blank())
}
if (inherits(axis, "character") | axis == TRUE) {
ret <- ret + theme(axis.line = element_line(colour = axis_col, size = 0.15))
if (inherits(axis, "character")) {
axis <- tolower(axis)
if (regexpr("x", axis)[1] < 0) {
ret <- ret + theme(axis.line.x = element_blank())
} else {
ret <- ret + theme(axis.line.x = element_line(colour = axis_col, size = 0.15))
}
if (regexpr("y", axis)[1] < 0) {
ret <- ret + theme(axis.line.y = element_blank())
} else {
ret <- ret + theme(axis.line.y = element_line(colour = axis_col, size = 0.15))
}
} else {
ret + theme(
axis.line.x = element_line(colour = axis_col, size = 0.15),
axis.line.y = element_line(colour = axis_col, size = 0.15)
) -> ret
}
} else {
ret <- ret + theme(axis.line = element_blank())
}
if (!ticks) {
ret + theme(
axis.ticks = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank()
) -> ret
} else {
ret + theme(
axis.ticks = element_line(size = 0.15),
axis.ticks.x = element_line(size = 0.15),
axis.ticks.y = element_line(size = 0.15),
axis.ticks.length = grid::unit(5, "pt")
) -> ret
}
xj <- switch(tolower(substr(axis_title_just, 1, 1)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
yj <- switch(tolower(substr(axis_title_just, 2, 2)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
ret +
theme(
axis.text.x = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.top = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.bottom = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.y = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.left = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.right = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.title = element_text(
size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.top = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.bottom = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.left = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.right = element_text(
hjust = yj, size = axis_title_size, angle = 90,
family = axis_title_family, lineheight = line_height
),
strip.placement = strip_placement,
strip.text = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.text.x = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.background = element_rect(
fill = background_colour, color = NA
),
strip.background.x = element_rect(
fill = background_colour, color = NA
),
strip.background.y = element_rect(
fill = background_colour, color = NA
),
strip.text.y = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
panel.spacing = panel_spacing,
panel.background = element_rect(color = NA, fill = background_colour),
plot.background = element_rect(color = NA, fill = background_colour),
plot.title.position = plot_title_position,
plot.margin = plot_margin,
plot.title = element_text(
hjust = 0, size = plot_title_size, margin = margin(b = plot_title_margin),
family = plot_title_family, lineheight = line_height
),
plot.subtitle = element_text(
hjust = 0, size = subtitle_size, margin = margin(b = subtitle_margin),
family = subtitle_family, lineheight = line_height
),
plot.caption = element_text(
hjust = 1, size = caption_size, margin = margin(t = caption_margin),
family = caption_family, lineheight = line_height
),
) -> ret
ret
}

11
R/install-fonts.R

@ -33,7 +33,7 @@ install_font <- function(family_name, sub_dir) {
}
#' Install Goldman Sans (Condensed)
#' Install Goldman Sans
#'
#' Goldman Sans is a clean, modern typeface designed for dense data-rich
#' environments. From open letter shapes, enlarged x-height, and optical
@ -45,8 +45,15 @@ install_font <- function(family_name, sub_dir) {
#' @references [Goldman Sans](https://design.gs.com/d/story/goldman-sans/)
#' @examples
#' install_goldman_sans()
#' install_goldman_sans_condensed()
install_goldman_sans <- function() {
install_font("Goldman Sans (Condensed)", "goldman-sans")
install_font("Goldman Sans", "goldman-sans")
}
#' @rdname install_goldman_sans
#' @export
install_goldman_sans_condensed <- function() {
install_font("Goldman Sans", "goldman-sans-condensed")
}
#' Install Roboto Condensed

228
R/theme-gs.R

@ -80,199 +80,45 @@ theme_gs <- function(
ticks = FALSE) {
base_family <- gsc_pkg$normal
plot_title_family <- gs_pkg$bold
subtitle_family <- gs_pkg$normal
strip_text_family <- gsc_pkg$bold
plot_title_family <- gs_pkg_prop$bold
subtitle_family <- gs_pkg_prop$normal
strip_text_family <- gs_pkg_prop$bold
axis_text_family <- gsc_pkg$normal
caption_family <- gsc_pkg$normal
axis_title_family <- gs_pkg$medium
caption_family <- gs_pkg_prop$normal
axis_title_family <- gs_pkg_prop$medium
c(
"GeomRect", "GeomLabel", "GeomTile", "GeomViolin"
) -> has_reverse_cols
geoms <- ls(pattern = '^Geom', env = as.environment('package:ggplot2'))
for (geom in geoms) {
update_geom_defaults(
geom = get(geom),
new = list(
arrow.fill = background_colour,
outlier.colour = foreground_colour,
outlier.fill = background_colour,
colour = foreground_colour,
fill = if (geom %in% c(has_reverse_cols)) background_colour else NA,
family = base_family,
lineheight = line_height
)
)
}
theme_minimal(
base_family = base_family,
finish_theme(
base_size = base_size,
) +
theme(
rect = element_rect(colour = foreground_colour, fill = background_colour),
line = element_line(colour = foreground_colour),
title = element_text(colour = foreground_colour),
legend.background = element_blank(),
legend.key = element_blank(),
legend.text = element_text(colour = foreground_colour, family = inter_pkg$medium),
legend.title = element_text(colour = foreground_colour, family = inter_pkg$semibold)
) -> ret
if (inherits(grid, "character") | grid == TRUE) {
ret +
theme(
panel.grid = element_line(colour = grid_col, size = 0.2),
panel.grid.major = element_line(colour = grid_col, size = 0.2),
panel.grid.minor = element_line(colour = grid_col, size = 0.15)
) -> ret
if (inherits(grid, "character")) {
if (regexpr("X", grid)[1] < 0) ret <- ret + theme(panel.grid.major.x = element_blank())
if (regexpr("Y", grid)[1] < 0) ret <- ret + theme(panel.grid.major.y = element_blank())
if (regexpr("x", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.x = element_blank())
if (regexpr("y", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.y = element_blank())
}
} else {
ret <- ret + theme(panel.grid = element_blank())
}
if (inherits(axis, "character") | axis == TRUE) {
ret <- ret + theme(axis.line = element_line(colour = axis_col, size = 0.15))
if (inherits(axis, "character")) {
axis <- tolower(axis)
if (regexpr("x", axis)[1] < 0) {
ret <- ret + theme(axis.line.x = element_blank())
} else {
ret <- ret + theme(axis.line.x = element_line(colour = axis_col, size = 0.15))
}
if (regexpr("y", axis)[1] < 0) {
ret <- ret + theme(axis.line.y = element_blank())
} else {
ret <- ret + theme(axis.line.y = element_line(colour = axis_col, size = 0.15))
}
} else {
ret + theme(
axis.line.x = element_line(colour = axis_col, size = 0.15),
axis.line.y = element_line(colour = axis_col, size = 0.15)
) -> ret
}
} else {
ret <- ret + theme(axis.line = element_blank())
}
if (!ticks) {
ret + theme(
axis.ticks = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank()
) -> ret
} else {
ret + theme(
axis.ticks = element_line(size = 0.15),
axis.ticks.x = element_line(size = 0.15),
axis.ticks.y = element_line(size = 0.15),
axis.ticks.length = grid::unit(5, "pt")
) -> ret
}
xj <- switch(tolower(substr(axis_title_just, 1, 1)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
yj <- switch(tolower(substr(axis_title_just, 2, 2)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
ret +
theme(
axis.text.x = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.top = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.bottom = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.y = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.left = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.right = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.title = element_text(
size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.top = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.bottom = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.left = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.right = element_text(
hjust = yj, size = axis_title_size, angle = 90,
family = axis_title_family, lineheight = line_height
),
strip.placement = strip_placement,
strip.text = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.text.x = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.background = element_rect(
fill = background_colour, color = NA
),
strip.background.x = element_rect(
fill = background_colour, color = NA
),
strip.background.y = element_rect(
fill = background_colour, color = NA
),
strip.text.y = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
panel.spacing = panel_spacing,
panel.background = element_rect(color = NA, fill = background_colour),
plot.background = element_rect(color = NA, fill = background_colour),
plot.title.position = plot_title_position,
plot.margin = plot_margin,
plot.title = element_text(
hjust = 0, size = plot_title_size, margin = margin(b = plot_title_margin),
family = plot_title_family, lineheight = line_height
),
plot.subtitle = element_text(
hjust = 0, size = subtitle_size, margin = margin(b = subtitle_margin),
family = subtitle_family, lineheight = line_height
),
plot.caption = element_text(
hjust = 1, size = caption_size, margin = margin(t = caption_margin),
family = caption_family, lineheight = line_height
),
) -> ret
ret
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,
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
)
}

228
R/theme-inter.R

@ -80,199 +80,45 @@ theme_inter <- function(
ticks = FALSE) {
base_family <- inter_pkg$normal
plot_title_family <- inter_pkg$ultrabold
subtitle_family <- inter_pkg$medium
strip_text_family <- inter_pkg$semibold
plot_title_family <- inter_pkg_prop$ultrabold
subtitle_family <- inter_pkg_prop$medium
strip_text_family <- inter_pkg_prop$semibold
axis_text_family <- inter_pkg$normal
caption_family <- inter_pkg$normal
axis_title_family <- inter_pkg$medium
caption_family <- inter_pkg_prop$normal
axis_title_family <- inter_pkg_prop$medium
c(
"GeomRect", "GeomLabel", "GeomTile", "GeomViolin"
) -> has_reverse_cols
geoms <- ls(pattern = '^Geom', env = as.environment('package:ggplot2'))
for (geom in geoms) {
update_geom_defaults(
geom = get(geom),
new = list(
# arrow.fill = background_colour,
# outlier.colour = foreground_colour,
# outlier.fill = background_colour,
colour = foreground_colour,
fill = if (geom %in% c(has_reverse_cols)) background_colour else NA,
family = base_family,
lineheight = line_height
)
)
}
theme_minimal(
base_family = base_family,
finish_theme(
base_size = base_size,
) +
theme(
rect = element_rect(colour = foreground_colour, fill = background_colour),
line = element_line(colour = foreground_colour),
title = element_text(colour = foreground_colour),
legend.background = element_blank(),
legend.key = element_blank(),
legend.text = element_text(colour = foreground_colour, family = inter_pkg$medium),
legend.title = element_text(colour = foreground_colour, family = inter_pkg$semibold)
) -> ret
if (inherits(grid, "character") | grid == TRUE) {
ret +
theme(
panel.grid = element_line(colour = grid_col, size = 0.2),
panel.grid.major = element_line(colour = grid_col, size = 0.2),
panel.grid.minor = element_line(colour = grid_col, size = 0.15)
) -> ret
if (inherits(grid, "character")) {
if (regexpr("X", grid)[1] < 0) ret <- ret + theme(panel.grid.major.x = element_blank())
if (regexpr("Y", grid)[1] < 0) ret <- ret + theme(panel.grid.major.y = element_blank())
if (regexpr("x", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.x = element_blank())
if (regexpr("y", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.y = element_blank())
}
} else {
ret <- ret + theme(panel.grid = element_blank())
}
if (inherits(axis, "character") | axis == TRUE) {
ret <- ret + theme(axis.line = element_line(colour = axis_col, size = 0.15))
if (inherits(axis, "character")) {
axis <- tolower(axis)
if (regexpr("x", axis)[1] < 0) {
ret <- ret + theme(axis.line.x = element_blank())
} else {
ret <- ret + theme(axis.line.x = element_line(colour = axis_col, size = 0.15))
}
if (regexpr("y", axis)[1] < 0) {
ret <- ret + theme(axis.line.y = element_blank())
} else {
ret <- ret + theme(axis.line.y = element_line(colour = axis_col, size = 0.15))
}
} else {
ret + theme(
axis.line.x = element_line(colour = axis_col, size = 0.15),
axis.line.y = element_line(colour = axis_col, size = 0.15)
) -> ret
}
} else {
ret <- ret + theme(axis.line = element_blank())
}
if (!ticks) {
ret + theme(
axis.ticks = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank()
) -> ret
} else {
ret + theme(
axis.ticks = element_line(size = 0.15),
axis.ticks.x = element_line(size = 0.15),
axis.ticks.y = element_line(size = 0.15),
axis.ticks.length = grid::unit(5, "pt")
) -> ret
}
xj <- switch(tolower(substr(axis_title_just, 1, 1)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
yj <- switch(tolower(substr(axis_title_just, 2, 2)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
ret +
theme(
axis.text.x = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.top = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.bottom = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.y = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.left = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.right = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.title = element_text(
size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.top = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.bottom = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.left = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.right = element_text(
hjust = yj, size = axis_title_size, angle = 90,
family = axis_title_family, lineheight = line_height
),
strip.placement = strip_placement,
strip.text = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.text.x = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.background = element_rect(
fill = background_colour, color = NA
),
strip.background.x = element_rect(
fill = background_colour, color = NA
),
strip.background.y = element_rect(
fill = background_colour, color = NA
),
strip.text.y = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
panel.spacing = panel_spacing,
panel.background = element_rect(color = NA, fill = background_colour),
plot.background = element_rect(color = NA, fill = background_colour),
plot.title.position = plot_title_position,
plot.margin = plot_margin,
plot.title = element_text(
hjust = 0, size = plot_title_size, margin = margin(b = plot_title_margin),
family = plot_title_family, lineheight = line_height
),
plot.subtitle = element_text(
hjust = 0, size = subtitle_size, margin = margin(b = subtitle_margin),
family = subtitle_family, lineheight = line_height
),
plot.caption = element_text(
hjust = 1, size = caption_size, margin = margin(t = caption_margin),
family = caption_family, lineheight = line_height
),
) -> ret
ret
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,
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
)
}

229
R/theme-rc.R

@ -80,199 +80,44 @@ theme_rc <- function(
ticks = FALSE) {
base_family <- rc_pkg$normal
plot_title_family <- rc_pkg$bold
subtitle_family <- rc_pkg$normal
strip_text_family <- rc_pkg$bold
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$normal_light
axis_title_family <- rc_pkg$bold
caption_family <- rc_pkg_prop$normal_light
axis_title_family <- rc_pkg_prop$bold
c(
"GeomRect", "GeomLabel", "GeomTile", "GeomViolin"
) -> has_reverse_cols
geoms <- ls(pattern = '^Geom', env = as.environment('package:ggplot2'))
for (geom in geoms) {
update_geom_defaults(
geom = get(geom),
new = list(
arrow.fill = background_colour,
outlier.colour = foreground_colour,
outlier.fill = background_colour,
colour = foreground_colour,
fill = if (geom %in% c(has_reverse_cols)) background_colour else NA,
family = base_family,
lineheight = line_height
)
)
}
theme_minimal(
base_family = base_family,
finish_theme(
base_size = base_size,
) +
theme(
rect = element_rect(colour = foreground_colour, fill = background_colour),
line = element_line(colour = foreground_colour),
title = element_text(colour = foreground_colour),
legend.background = element_blank(),
legend.key = element_blank(),
legend.text = element_text(colour = foreground_colour, family = inter_pkg$medium),
legend.title = element_text(colour = foreground_colour, family = inter_pkg$semibold)
) -> ret
if (inherits(grid, "character") | grid == TRUE) {
ret +
theme(
panel.grid = element_line(colour = grid_col, size = 0.2),
panel.grid.major = element_line(colour = grid_col, size = 0.2),
panel.grid.minor = element_line(colour = grid_col, size = 0.15)
) -> ret
if (inherits(grid, "character")) {
if (regexpr("X", grid)[1] < 0) ret <- ret + theme(panel.grid.major.x = element_blank())
if (regexpr("Y", grid)[1] < 0) ret <- ret + theme(panel.grid.major.y = element_blank())
if (regexpr("x", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.x = element_blank())
if (regexpr("y", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.y = element_blank())
}
} else {
ret <- ret + theme(panel.grid = element_blank())
}
if (inherits(axis, "character") | axis == TRUE) {
ret <- ret + theme(axis.line = element_line(colour = axis_col, size = 0.15))
if (inherits(axis, "character")) {
axis <- tolower(axis)
if (regexpr("x", axis)[1] < 0) {
ret <- ret + theme(axis.line.x = element_blank())
} else {
ret <- ret + theme(axis.line.x = element_line(colour = axis_col, size = 0.15))
}
if (regexpr("y", axis)[1] < 0) {
ret <- ret + theme(axis.line.y = element_blank())
} else {
ret <- ret + theme(axis.line.y = element_line(colour = axis_col, size = 0.15))
}
} else {
ret + theme(
axis.line.x = element_line(colour = axis_col, size = 0.15),
axis.line.y = element_line(colour = axis_col, size = 0.15)
) -> ret
}
} else {
ret <- ret + theme(axis.line = element_blank())
}
if (!ticks) {
ret + theme(
axis.ticks = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank()
) -> ret
} else {
ret + theme(
axis.ticks = element_line(size = 0.15),
axis.ticks.x = element_line(size = 0.15),
axis.ticks.y = element_line(size = 0.15),
axis.ticks.length = grid::unit(5, "pt")
) -> ret
}
xj <- switch(tolower(substr(axis_title_just, 1, 1)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
yj <- switch(tolower(substr(axis_title_just, 2, 2)), b = 0, l = 0, m = 0.5, c = 0.5, r = 1, t = 1)
ret +
theme(
axis.text.x = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.top = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.x.bottom = element_text(size = axis_text_size, margin = margin(t = 0), lineheight = line_height),
axis.text.y = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.left = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.text.y.right = element_text(size = axis_text_size, margin = margin(r = 0), lineheight = line_height),
axis.title = element_text(
size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.top = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.x.bottom = element_text(
hjust = xj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.left = element_text(
hjust = yj, size = axis_title_size,
family = axis_title_family, lineheight = line_height
),
axis.title.y.right = element_text(
hjust = yj, size = axis_title_size, angle = 90,
family = axis_title_family, lineheight = line_height
),
strip.placement = strip_placement,
strip.text = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.text.x = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
strip.background = element_rect(
fill = background_colour, color = NA
),
strip.background.x = element_rect(
fill = background_colour, color = NA
),
strip.background.y = element_rect(
fill = background_colour, color = NA
),
strip.text.y = element_text(
hjust = 0, size = strip_text_size, color = foreground_colour,
family = strip_text_family, lineheight = line_height
),
panel.spacing = panel_spacing,
panel.background = element_rect(color = NA, fill = background_colour),
plot.background = element_rect(color = NA, fill = background_colour),
plot.title.position = plot_title_position,
plot.margin = plot_margin,
plot.title = element_text(
hjust = 0, size = plot_title_size, margin = margin(b = plot_title_margin),
family = plot_title_family, lineheight = line_height
),
plot.subtitle = element_text(
hjust = 0, size = subtitle_size, margin = margin(b = subtitle_margin),
family = subtitle_family, lineheight = line_height
),
plot.caption = element_text(
hjust = 1, size = caption_size, margin = margin(t = caption_margin),
family = caption_family, lineheight = line_height
),
) -> ret
ret
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,
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
)
}

87
R/x-font-reg.R

@ -1,9 +1,10 @@
#' Inter Font Variant
#' Inter Font Variants
#'
#' On load hrbragg creates a custom Inter font family variant
#' and makes it available in the global environment.
#' On load hrbragg creates two custom Inter font family variants:
#' (`inter_pkg`, `inter_pkg_prop`) and makes them available in the
#' global environment.
#'
#' The reconfigured family variant has the following features:
#' The reconfigured family variants share the following features:
#'
#' - `calt`: (_Contextual Alternates_): Applies a second substitution feature
#' based on a match of a character pattern within a context of surrounding patterns
@ -12,12 +13,15 @@
#' - `kern` (_Kerning_): Fine horizontal positioning of one glyph to the next, based on the shapes of the glyphs
#' - `salt` (_Stylistic Alternates_): **DISABLED** — Either replaces with, or displays list of, stylistic alternatives for a character
#' - `ss01` (_Stylistic set 1: Alternate digits_): An alternate style of digits.
#' - `tnum` (_Tabular Figures_): Replaces numerals with glyphs of uniform width, often also lnum
#' - `zero` (_Slashed Zero_): **DISABLED** — Replaces 0 figure with slashed 0
#'
#' They differ in that the `_prop` variant does not have tabular numbers
#' (`tnum`) enabled (which is more appropriate for titles and general
#' annotations).
#'
#' Inter online documentation has [specific descriptions and examples of these features](https://rsms.me/inter/#features).
#'
#' This object has the following names corresponding to individual,
#' The objects have the following names corresponding to individual,
#' customized font variants (ordered by font weight):
#'
#' - `ultralight`
@ -38,29 +42,36 @@
#' - `heavy_italic`
#'
#' @docType data
#' @name inter_pkg
#' @format A list
#' @export
inter_pkg <- NULL
NULL
#' @name inter_pkg_prop
#' @rdname inter_pkg
NULL
#' Robot Condensed Font Variant
#' Roboto Condensed Font Variants
#'
#' On load hrbragg creates a custom Roboto Condensed font family variant
#' and makes it available in the global environment.
#' On load hrbragg creates two custom Roboto Condensed font family variants:
#' (`rc_pkg`, `rc_pkg_prop`) and makes them available in the global environment.
#'
#' The reconfigured family variant has the following features:
#' The reconfigured family variants have the following features:
#'
#' - `ccmp` (_Glyph Composition/Decomposition_): Either calls a ligature replacement
#' on a sequence of characters or replaces a character with a sequence of glyphs.
#' Provides logic that can for example effectively alter the order of input characters.
#' - `liga`/`ligatures` (_Standard Ligatures_): Replaces (by default) sequence of characters with a single ligature glyph
#' - `kern` (_Kerning_): Fine horizontal positioning of one glyph to the next, based on the shapes of the glyphs
#' - `tnum` (_Tabular Figures_): Replaces numerals with glyphs of uniform width, often also lnum
#'
#' They differ in that the `_prop` variant does not have tabular numbers
#' (`tnum`) enabled (which is more appropriate for titles and general
#' annotations).
#' Roboto Condensed
#' [font family preview/info](https://fonts.google.com/specimen/Roboto+Condensed)
#'
#' This object has the following names corresponding to individual,
#' This objects have the following names corresponding to individual,
#' customized font variants (ordered by font weight):
#'
#' - `normal_light`
@ -70,20 +81,33 @@ inter_pkg <- NULL
#'
#' @docType data
#' @format A list
#' @export
rc_pkg <- NULL
#' @name rc_pkg
NULL
# rc_pkg <- NULL
#' @name rc_pkg_prop
#' @rdname rc_pkg
NULL
#' Goldman Sans & Goldman Sans Condensed Font Variants
#'
#' On load hrbragg creates a custom Goldman Sans & Goldman Sans Condensed
#' font family variants and makes them available in the global environment.
#' On load hrbragg creates four custom Goldman Sans & Goldman Sans Condensed
#' font family variants: (`gs_pkg`, `gs_pkg_prop`, `gsc_pkg`, `gsc_pkg_prop`)
#' and makes them available in the global environment.
#'
#' The reconfigured family variants have the following features:
#'
#' - `dlig`/`ligatures` (_Discretionary Ligatures_): Ligatures to be applied at the user's discretion
#' - `kern` (_Kerning_): Fine horizontal positioning of one glyph to the next, based on the shapes of the glyphs
#'
#' The reconfigured family variant has the following features:
#' They differ in that the `_prop` variant does not have tabular numbers
#' (`tnum`) enabled (which is more appropriate for titles and general
#' annotations).
#'
#' This object has the following names corresponding to individual,
#' The objects have the following names corresponding to individual,
#' customized font variants (ordered by font weight):
#'
#' **Goldman Sans** (`gs_rc`)
#' **Goldman Sans** (`gs_pkg`, `gs_pkg_prop`)
#'
#' - `light`
#' - `normal_italic`
@ -94,17 +118,24 @@ rc_pkg <- NULL
#' - `bold_italic`
#' - `heavy`
#'
#' **Goldman Sans Condensed** (`gsc_rc`)
#' **Goldman Sans Condensed** (`gsc_pkg`, `gsc_pkg_prop`)
#'
#' - `normal`
#' - `bold`
#'
#' @docType data
#' @format A list
#' @export
gs_pkg <- NULL
#' @name gs_pkg
NULL
#' @docType data
#' @format A list
#' @export
gsc_pkg <- NULL
#' @name gs_pkg_prop
#' @rdname gs_pkg
NULL
#' @name gsc_pkg
#' @rdname gs_pkg
NULL
#' @name gsc_pkg_prop
#' @rdname gs_pkg
NULL

86
R/zzz.R

@ -1,87 +1,3 @@
.onLoad <- function(...) {
if (systemfonts::font_info("Inter")[["family"]][1] == "Inter") {
if (interactive()) packageStartupMessage("Registering 'Inter' font variant.")
reconfigure_font(
prefix = "hrbragg-pkg",
family = "Inter",
width = "normal",
ligatures = "discretionary",
calt = 1, tnum = 1, case = 1,
dlig = 1, ss01 = 1, kern = 1,
zero = 0, salt = 0
) ->> inter_pkg
} else {
packageStartupMessage(
"Please run `install_inter()`. This is only an interim requirement."
)
}
if (systemfonts::font_info("Roboto Condensed")[["family"]][1] == "Roboto Condensed") {
reconfigure_font(
prefix = "hrbragg",
family = "Roboto Condensed",
width = "normal",
ligatures = "standard",
ccmp = 1, kern = 1, tnum = 1
) ->> rc_pkg
} else {
packageStartupMessage(
"Please run `install_roboto_condensed()`. This is only an interim requirement."
)
}
if (systemfonts::font_info("Goldman Sans")[["family"]][1] == "Goldman Sans") {
reconfigure_font(
prefix = "hrbragg",
family = "Goldman Sans",
width = "normal",
ligatures = "standard",
kern = 1, tnum = 1
) ->> gs_pkg
reconfigure_font(
prefix = "hrbragg",
family = "Goldman Sans Condensed",
width = "semicondensed",
ligatures = "standard",
kern = 1, tnum = 1
) ->> gsc_pkg
} else {
packageStartupMessage(
"Please run `install_goldman_sans()`. This is only an interim requirement."
)
}
register_fonts()
}

3
README.Rmd

@ -9,7 +9,8 @@ hrbrpkghelpr::global_opts()
```{r ragg, echo = FALSE}
knitr::opts_chunk$set(
dev = "ragg_png"
dev = "ragg_png",
cache = TRUE
)
```

48
README.md

@ -36,14 +36,14 @@ The following functions are implemented:
- `elt`: Shortcut for element\_text
- `feature_dict`: OpenType feature description lookup table
- `gs_pkg`: Goldman Sans & Goldman Sans Condensed Font Variants
- `install_goldman_sans`: Install Goldman Sans (Condensed)
- `install_goldman_sans`: Install Goldman Sans
- `install_inter`: Install Inter
- `install_roboto_condensed`: Install Roboto Condensed
- `inter_pkg`: Inter Font Variant
- `inter_pkg`: Inter Font Variants
- `opentype_typographic_features`: OpenType Typographic Features
- `preview_variant`: Preview numbers, kerning, and ligatures from font
variants you create
- `rc_pkg`: Robot Condensed Font Variant
- `rc_pkg`: Roboto Condensed Font Variants
- `reconfigure_font`: Create an complete, alternate font family with
the same customized features
- `reset_ggplot2_defaults`: Restore all ggplot2 geom to default
@ -92,23 +92,23 @@ install_inter()
``` r
str(inter_pkg, 1)
## List of 17
## $ ultralight_italic: chr "hrbragg-pkg Inter Thin Italic"
## $ ultralight : chr "hrbragg-pkg Inter Thin"
## $ light : chr "hrbragg-pkg Inter Extra Light"
## $ light_italic : chr "hrbragg-pkg Inter Extra Light Italic"
## $ normal_italic : chr "hrbragg-pkg Inter Light Italic"
## $ normal_light : chr "hrbragg-pkg Inter Light"
## $ normal : chr "hrbragg-pkg Inter Regular"
## $ medium_italic : chr "hrbragg-pkg Inter Medium Italic"
## $ medium : chr "hrbragg-pkg Inter Medium"
## $ semibold : chr "hrbragg-pkg Inter Semi Bold"
## $ semibold_italic : chr "hrbragg-pkg Inter Semi Bold Italic"
## $ bold : chr "hrbragg-pkg Inter Bold"
## $ bold_italic : chr "hrbragg-pkg Inter Bold Italic"
## $ ultrabold_italic : chr "hrbragg-pkg Inter Extra Bold Italic"
## $ ultrabold : chr "hrbragg-pkg Inter Extra Bold"
## $ heavy_italic : chr "hrbragg-pkg Inter Black Italic"
## $ heavy : chr "hrbragg-pkg Inter Black"
## $ ultralight : chr "hrbragg-pkg tab Inter Thin"
## $ ultralight_italic: chr "hrbragg-pkg tab Inter Thin Italic"
## $ light : chr "hrbragg-pkg tab Inter Extra Light"
## $ light_italic : chr "hrbragg-pkg tab Inter Extra Light Italic"
## $ normal_italic : chr "hrbragg-pkg tab Inter Light Italic"
## $ normal : chr "hrbragg-pkg tab Inter Regular"
## $ normal_light : chr "hrbragg-pkg tab Inter Light"
## $ medium_italic : chr "hrbragg-pkg tab Inter Medium Italic"
## $ medium : chr "hrbragg-pkg tab Inter Medium"
## $ semibold_italic : chr "hrbragg-pkg tab Inter Semi Bold Italic"
## $ semibold : chr "hrbragg-pkg tab Inter Semi Bold"
## $ bold : chr "hrbragg-pkg tab Inter Bold"
## $ bold_italic : chr "hrbragg-pkg tab Inter Bold Italic"
## $ ultrabold : chr "hrbragg-pkg tab Inter Extra Bold"
## $ ultrabold_italic : chr "hrbragg-pkg tab Inter Extra Bold Italic"
## $ heavy : chr "hrbragg-pkg tab Inter Black"
## $ heavy_italic : chr "hrbragg-pkg tab Inter Black Italic"
## - attr(*, "family")= chr "Inter"
data("feature_dict")
@ -274,10 +274,10 @@ preview_variant(barlow)
| Lang | \# Files | (%) | LoC | (%) | Blank lines | (%) | \# Lines | (%) |
|:-----|---------:|-----:|-----:|-----:|------------:|-----:|---------:|-----:|
| SVG | 1 | 0.02 | 2574 | 0.34 | 0 | 0.00 | 0 | 0.00 |
| R | 19 | 0.45 | 1131 | 0.15 | 215 | 0.42 | 642 | 0.45 |
| Rmd | 1 | 0.02 | 74 | 0.01 | 43 | 0.08 | 67 | 0.05 |
| SUM | 21 | 0.50 | 3779 | 0.50 | 258 | 0.50 | 709 | 0.50 |
| SVG | 1 | 0.02 | 2574 | 0.35 | 0 | 0.00 | 0 | 0.00 |
| R | 21 | 0.46 | 977 | 0.13 | 158 | 0.39 | 679 | 0.46 |
| Rmd | 1 | 0.02 | 75 | 0.01 | 43 | 0.11 | 67 | 0.04 |
| SUM | 23 | 0.50 | 3626 | 0.50 | 201 | 0.50 | 746 | 0.50 |
clock Package Metrics for hrbragg

0
inst/fonts/goldman-sans/GoldmanSansCd_Bd.ttf → inst/fonts/goldman-sans-condensed/GoldmanSansCd_Bd.ttf

0
inst/fonts/goldman-sans/GoldmanSansCd_Rg.ttf → inst/fonts/goldman-sans-condensed/GoldmanSansCd_Rg.ttf

BIN
man/figures/README-dark-mode-01-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 29 KiB

BIN
man/figures/README-dark-mode-01-gs-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 27 KiB

BIN
man/figures/README-dark-mode-01-rc-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 27 KiB

BIN
man/figures/README-dark-mode-02-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 66 KiB

BIN
man/figures/README-light-mode-01-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 29 KiB

BIN
man/figures/README-light-mode-01-gs-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 28 KiB

BIN
man/figures/README-light-mode-01-rc-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 28 KiB

BIN
man/figures/README-light-mode-02-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 68 KiB

BIN
man/figures/README-preview-00-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 KiB

After

Width:  |  Height:  |  Size: 151 KiB

BIN
man/figures/README-preview-01-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
man/figures/README-preview-02-1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

After

Width:  |  Height:  |  Size: 100 KiB

28
man/gs_pkg.Rd

@ -3,24 +3,33 @@
\docType{data}