--- title: "Specifications" output: rmarkdown::html_vignette: number_sections: true vignette: > %\VignetteIndexEntry{Specifications} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` # Types The highdir framework defines four categories of specifications used to construct plots. Each category serves a distinct role in data definition, visual configuration, and geom‑level customization. ## 1. `hd_spec()` Defines the data specifications that apply universally across all geom types. These specifications describe the input data structure and mappings required by the plotting system. ## 2. `hd_opts()` Specifies presentation options that control chart appearance. These options are shared across multiple geoms and include settings related to layout, style, and display behavior. ## 3. Required Specifications Parameters that a given geom must provide for successful rendering. These vary by geom and represent the minimum information needed for the geom to function. ## 4. Optional Specifications Additional parameters that may be supplied depending on the selected geom. These extend or refine the behavior of a geom but are not mandatory. To see the required and optionals arguments: ```{r args, eval = FALSE} geom_args("line") #args in geom line geom_args("arearange") # or highdir:::.get_geom("ranked_bar")$optional_args highdir:::.get_geom("arearange")$required_args ``` --- # Theming {.unnumbered} ```{r, eval = FALSE} # Set package-wide defaults for the session hd_set_theme( hc_theme = "helsedirektoratet", colors = c("#025169", "#7C145C", "#C68803"), font = "Source Sans Pro" ) # All subsequent hd_make() calls use these settings automatically hd_make(spec, "column") ``` --- # JavaScript injection {.unnumbered} ```{r, eval = FALSE} fig <- hd_make(spec, "column") # Inline JS fig <- hd_add_js(fig, code = "console.log('chart loaded');") # From a .js file fig <- hd_add_js(fig, file = "path/to/my-plugin.js") # From a bundled plugin (inst/js/.js) fig <- hd_add_js(fig, plugin = "my-plugin") ```