diff --git a/NEWS.md b/NEWS.md
index 961e70d..f2e60ef 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,5 +1,8 @@
# gitdevr 0.0.0.9000
-- Code blocks now use the GitHub palette in light mode and One Dark in dark mode, matching the Chulapa highlighters.
+- Code blocks now use the GitHub palette in light mode and One Dark in dark mode, with small adjustments to comments and One Dark names for accessible contrast.
+- Navigation hover and focus states have improved contrast, and linked code tokens retain their underline.
+- Mobile code blocks scroll within their containers.
+- Page transitions and callout icon animations respect reduced motion preferences.
- The package is in active development.
- `test()` now returns `NULL` invisibly, as documented.
diff --git a/data-raw/compress_css.R b/data-raw/compress_css.R
index fe8793f..98f725f 100644
--- a/data-raw/compress_css.R
+++ b/data-raw/compress_css.R
@@ -1,9 +1,25 @@
# Compress CSS with `sass`.
library(sass)
-lns <- readLines("inst/pkgdown/assets/BS5/gitdevr.css")
+source_path <- "inst/pkgdown/assets/BS5/gitdevr.css"
+lns <- paste(readLines(source_path), collapse = "\n")
+palette <- yaml::read_yaml("inst/brand_yml/_brand.yml")$color$palette
+names(palette) <- gsub("-", "_", names(palette), fixed = TRUE)
-# writeLines(lns, "inst/pkgdown/assets/BS5/gitdevr.min.css")
+# Keep Bootstrap's RGB utilities in sync with the same brand colors.
+pattern <- "--bs-[a-z0-9-]+: var\\(--brand-[a-z0-9_]+\\);"
+declarations <- regmatches(lns, gregexpr(pattern, lns))[[1]]
+for (declaration in declarations) {
+ property <- sub(":.*", "", declaration)
+ color <- sub(".*--brand-([a-z0-9_]+)\\);", "\\1", declaration)
+ channels <- paste(grDevices::col2rgb(palette[[color]])[, 1], collapse = ", ")
+ lns <- gsub(
+ paste0(property, "-rgb: [^;]+;"),
+ paste0(property, "-rgb: ", channels, ";"),
+ lns
+ )
+}
+writeLines(lns, source_path)
sass(
lns,
diff --git a/inst/brand_yml/_brand.yml b/inst/brand_yml/_brand.yml
index b5430b1..8bda68e 100644
--- a/inst/brand_yml/_brand.yml
+++ b/inst/brand_yml/_brand.yml
@@ -33,6 +33,7 @@ color:
footer-text: "#8b949e"
footer-link: "#58a6ff"
dk-dark: "#343a40"
+ dk-body: "#24292f"
dk-black: "#373e47"
dk-border: "#6a788a"
dk-gray: "#a8b3c1"
diff --git a/inst/pkgdown/_pkgdown.yml b/inst/pkgdown/_pkgdown.yml
index 8ff680e..95b0cab 100644
--- a/inst/pkgdown/_pkgdown.yml
+++ b/inst/pkgdown/_pkgdown.yml
@@ -30,6 +30,7 @@ template:
footer-text: "#8b949e"
footer-link: "#58a6ff"
dk-dark: "#343a40"
+ dk-body: "#24292f"
dk-black: "#373e47"
dk-border: "#6a788a"
dk-gray: "#a8b3c1"
diff --git a/inst/pkgdown/assets/BS5/gitdevr.css b/inst/pkgdown/assets/BS5/gitdevr.css
index 32bcc45..81b1185 100644
--- a/inst/pkgdown/assets/BS5/gitdevr.css
+++ b/inst/pkgdown/assets/BS5/gitdevr.css
@@ -1,10 +1,10 @@
-/*! Compressed with sass R library https: //rstudio.github.io/sass/*/
+/*! Minified with sass; RGB companions are generated from the brand palette. */
[data-bs-theme="dark"] {
color-scheme: dark;
- --bs-body-bg: #24292f;
+ --bs-body-bg: var(--brand-dk_body);
--bs-body-bg-rgb: 36, 41, 47;
- --bs-body-color: #fff;
+ --bs-body-color: var(--brand-white);
--bs-body-color-rgb: 255, 255, 255;
--bs-gray-500: var(--brand-dk_gray);
@@ -13,10 +13,10 @@
--bs-blue-color: var(--brand-dk_blue);
--bs-blue-color-rgb: 121, 184, 255;
- --bs-primary: #383d43;
- --bs-primary-rgb: 56.1, 60.6, 66.9;
- --bs-primary-color: #383d43;
- --bs-primary-color-rgb: 56.1, 60.6, 66.9;
+ --bs-primary: var(--brand-dk_black);
+ --bs-primary-rgb: 55, 62, 71;
+ --bs-primary-color: var(--brand-dk_black);
+ --bs-primary-color-rgb: 55, 62, 71;
--bs-secondary: var(--brand-dk_gray);
--bs-secondary-rgb: 168, 179, 193;
@@ -42,14 +42,14 @@
--bs-danger-color: var(--brand-dk_red);
--bs-danger-color-rgb: 238, 143, 149;
- --bs-light: #f8f9fa;
+ --bs-light: var(--brand-light);
--bs-light-rgb: 248, 249, 250;
- --bs-light-color: #f8f9fa;
+ --bs-light-color: var(--brand-light);
--bs-light-color-rgb: 248, 249, 250;
- --bs-dark: #343a40;
+ --bs-dark: var(--brand-dk_dark);
--bs-dark-rgb: 52, 58, 64;
- --bs-dark-color: #343a40;
+ --bs-dark-color: var(--brand-dk_dark);
--bs-dark-color-rgb: 52, 58, 64;
--bs-link: var(--brand-dk_blue);
@@ -57,10 +57,8 @@
--bs-link-color: var(--brand-dk_blue);
--bs-link-color-rgb: 121, 184, 255;
- --bs-link-hover: #a8d1ff;
- --bs-link-hover-rgb: 168, 209, 255;
- --bs-link-hover-color: #a8d1ff;
- --bs-link-hover-color-rgb: 168, 209, 255;
+ --bs-link-hover: color-mix(in srgb, var(--bs-link-color) 70%, white);
+ --bs-link-hover-color: var(--bs-link-hover);
--bs-code-color: var(--brand-dk_code);
}
@@ -154,10 +152,23 @@ mark,
}
/* ---Nav pills--- */
+.nav-pills,
+.nav-tabs {
+ --bs-nav-link-color: var(--bs-link-color);
+ --bs-nav-link-hover-color: var(--bs-link-hover-color);
+}
+
.nav-item .nav-link:hover,
-.nav-pills .nav-link.active:hover {
+.nav-pills .nav-link:focus-visible {
background-color: rgba(var(--bs-body-color-rgb), 0.08);
- color: var(--brand-dk_gray);
+ color: var(--bs-link-hover-color);
+}
+
+/* Keep active pills legible against their filled background. */
+.nav-pills .nav-link.active:hover,
+.nav-pills .nav-link.active:focus-visible {
+ color: var(--bs-nav-pills-link-active-color);
+ background-color: var(--bs-nav-pills-link-active-bg);
}
/* ---Footer--- */
@@ -252,8 +263,14 @@ footer .pkgdown-footer-left {
/* ---Misc--- */
-@view-transition {
- navigation: auto;
+@media (prefers-reduced-motion: no-preference) {
+ @view-transition {
+ navigation: auto;
+ }
+
+ .callout .callout-btn-toggle .callout-toggle::before {
+ transition: transform 0.2s linear;
+ }
}
img.logo {
@@ -340,33 +357,17 @@ code {
word-wrap: break-word;
}
-@media (max-width: 575.98px) {
- /* See https://github.com/r-lib/pkgdown/pull/2970 */
-
- /* Need to override pkgdown */
- .btn-copy-ex {
- right: 5px;
- }
-
- div > pre {
- border-radius: 0;
- }
-
- :not(li, blockquote) > div > pre {
- margin-left: calc(var(--bs-gutter-x) * -0.5);
- margin-right: calc(var(--bs-gutter-x) * -0.5);
- padding-left: 1rem;
- padding-right: 1rem;
- }
-
- :not(li, blockquote) > div > .btn-copy-ex {
- right: calc(var(--bs-gutter-x) * -0.5 + 5px);
- }
+/* Keep long code scrollable inside columns, lists, and callouts. */
+main,
+main .sourceCode,
+main .cell,
+main .callout-body-container {
+ min-width: 0;
+}
- .code-with-filename {
- margin-right: calc(var(--bs-gutter-x) * 0.5);
- margin-left: calc(var(--bs-gutter-x) * 0.5);
- }
+main pre {
+ max-width: 100%;
+ overflow-x: auto;
}
/* --- Inherited args --- */
@@ -377,11 +378,12 @@ code {
/* --- Syntax highlighting: Chulapa github (light) and one.dark (dark). --- */
/* Palettes: https://github.com/dieghernan/chulapa/tree/main/_sass/highlight
- * Adapted from Rouge tokens to Pandoc/downlit classes used by pkgdown. */
+ * Adapted from Rouge tokens to Pandoc/downlit classes used by pkgdown.
+ * Comments and One Dark names are adjusted to meet 4.5:1 contrast. */
pre {
--gitdevr-hl-bg: #f6f8fa;
--gitdevr-hl-fg: #24292f;
- --gitdevr-hl-comment: #6e7781;
+ --gitdevr-hl-comment: #6a737d;
--gitdevr-hl-keyword: #cf222e;
--gitdevr-hl-number: #0550ae;
--gitdevr-hl-constant: #0550ae;
@@ -402,7 +404,7 @@ pre {
[data-bs-theme="dark"] pre {
--gitdevr-hl-bg: #282c34;
--gitdevr-hl-fg: #abb2bf;
- --gitdevr-hl-comment: #7f848e;
+ --gitdevr-hl-comment: #8e939d;
--gitdevr-hl-keyword: #c678dd;
--gitdevr-hl-number: #d19a66;
--gitdevr-hl-constant: #e5c07b;
@@ -411,8 +413,8 @@ pre {
--gitdevr-hl-string: #98c379;
--gitdevr-hl-function: #61afef;
--gitdevr-hl-operator: #56b6c2;
- --gitdevr-hl-variable: #e06c75;
- --gitdevr-hl-attribute: #e06c75;
+ --gitdevr-hl-variable: #e37079;
+ --gitdevr-hl-attribute: #e37079;
--gitdevr-hl-error: #abb2bf;
--gitdevr-hl-error-bg: transparent;
color: var(--gitdevr-hl-fg);
@@ -562,6 +564,17 @@ pre code :is(span, a).wa,
font-weight: bold;
}
+pre code a:any-link,
+[data-bs-theme="dark"] pre code a:any-link {
+ text-decoration: underline;
+ text-underline-offset: 0.15em;
+}
+
+pre code a:focus-visible {
+ outline: 2px solid currentColor;
+ outline-offset: 2px;
+}
+
/* Dark reactable */
[data-bs-theme="dark"] {
@@ -821,10 +834,6 @@ pre code :is(span, a).wa,
margin-top: 5px;
}
-.callout .callout-btn-toggle .callout-toggle::before {
- transition: transform 0.2s linear;
-}
-
.callout .callout-header[aria-expanded="false"] .callout-toggle::before {
transform: rotate(-90deg);
}
@@ -1011,216 +1020,125 @@ div.callout-body-container.callout-body .btn-copy-ex {
width: 1px;
}
-/* --- Buttons in dark mode--- */
+/* --- Buttons in dark mode: derive every state from the semantic palette. --- */
[data-bs-theme="dark"] {
.btn-default {
- --bs-btn-color: #373e47;
- --bs-btn-bg: #c3c5c8;
- --bs-btn-border-color: #c3c5c8;
- --bs-btn-hover-color: #373e47;
- --bs-btn-hover-bg: #ccced0;
- --bs-btn-hover-border-color: #c9cbce;
- --bs-btn-focus-shadow-rgb: 174, 177, 181;
- --bs-btn-active-color: #373e47;
- --bs-btn-active-bg: #cfd1d3;
- --bs-btn-active-border-color: #c9cbce;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: #373e47;
- --bs-btn-disabled-bg: #c3c5c8;
- --bs-btn-disabled-border-color: #c3c5c8;
+ --gitdevr-btn-bg: var(--brand-dk_gray);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
}
.btn-primary {
- --bs-btn-bg: var(--bs-primary-color);
- --bs-btn-border-color: var(--bs-primary-color);
- --bs-btn-hover-bg: #303439;
- --bs-btn-hover-border-color: #2d3136;
- --bs-btn-focus-shadow-rgb: 86, 90, 95;
- --bs-btn-active-bg: #2d3136;
- --bs-btn-active-border-color: #2a2e32;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-bg: var(--bs-primary-color);
- --bs-btn-disabled-border-color: var(--bs-primary-color);
+ --gitdevr-btn-bg: var(--bs-primary-color);
+ --gitdevr-btn-fg: var(--bs-body-color);
+ --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}
.btn-success {
- --bs-btn-bg: var(--bs-success-color);
- --bs-btn-border-color: var(--bs-success-color);
- --bs-btn-hover-bg: #4db269;
- --bs-btn-hover-border-color: #42ad60;
- --bs-btn-focus-shadow-rgb: 47, 149, 77;
- --bs-btn-active-bg: #57b671;
- --bs-btn-active-border-color: #42ad60;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-bg: var(--bs-success-color);
- --bs-btn-disabled-border-color: var(--bs-success-color);
+ --gitdevr-btn-bg: var(--bs-success-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-success-rgb);
}
.btn-info {
- --bs-btn-bg: var(--bs-info-color);
- --bs-btn-border-color: var(--bs-info-color);
- --bs-btn-hover-bg: #a698c8;
- --bs-btn-hover-border-color: #a192c5;
- --bs-btn-focus-shadow-rgb: 136, 123, 172;
- --bs-btn-active-bg: #ab9ecb;
- --bs-btn-active-border-color: #a192c5;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-bg: var(--bs-info-color);
- --bs-btn-disabled-border-color: var(--bs-info-color);
+ --gitdevr-btn-bg: var(--bs-info-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-info-rgb);
}
.btn-warning {
- --bs-btn-color: #22272e;
- --bs-btn-bg: var(--bs-warning-color);
- --bs-btn-border-color: var(--bs-warning-color);
- --bs-btn-hover-color: #22272e;
- --bs-btn-hover-bg: #dab44c;
- --bs-btn-hover-border-color: #d8b041;
- --bs-btn-focus-shadow-rgb: 188, 151, 48;
- --bs-btn-active-color: #22272e;
- --bs-btn-active-bg: #ddb956;
- --bs-btn-active-border-color: #d8b041;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: #22272e;
- --bs-btn-disabled-bg: var(--bs-warning-color);
- --bs-btn-disabled-border-color: var(--bs-warning-color);
+ --gitdevr-btn-bg: var(--bs-warning-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-warning-rgb);
}
.btn-danger {
- --bs-btn-bg: var(--bs-danger-color);
- --bs-btn-border-color: var(--bs-danger-color);
- --bs-btn-hover-bg: #de858a;
- --bs-btn-hover-border-color: #dc7d83;
- --bs-btn-focus-shadow-rgb: 192, 104, 110;
- --bs-btn-active-bg: #e08c91;
- --bs-btn-active-border-color: #dc7d83;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-bg: var(--bs-danger-color);
- --bs-btn-disabled-border-color: var(--bs-danger-color);
+ --gitdevr-btn-bg: var(--bs-danger-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-danger-rgb);
+ }
+
+ .btn-default,
+ .btn-primary,
+ .btn-success,
+ .btn-info,
+ .btn-warning,
+ .btn-danger {
+ --bs-btn-color: var(--gitdevr-btn-fg);
+ --bs-btn-bg: var(--gitdevr-btn-bg);
+ --bs-btn-border-color: var(--gitdevr-btn-bg);
+ --bs-btn-hover-color: var(--gitdevr-btn-fg);
+ --bs-btn-hover-bg: color-mix(in srgb, var(--gitdevr-btn-bg) 85%, white);
+ --bs-btn-hover-border-color: var(--bs-btn-hover-bg);
+ --bs-btn-active-color: var(--gitdevr-btn-fg);
+ --bs-btn-active-bg: color-mix(in srgb, var(--gitdevr-btn-bg) 80%, white);
+ --bs-btn-active-border-color: var(--bs-btn-active-bg);
+ --bs-btn-disabled-color: var(--gitdevr-btn-fg);
+ --bs-btn-disabled-bg: var(--gitdevr-btn-bg);
+ --bs-btn-disabled-border-color: var(--gitdevr-btn-bg);
}
.btn-outline-default {
- --bs-btn-color: #c3c5c8;
- --bs-btn-border-color: #c3c5c8;
- --bs-btn-hover-color: #373e47;
- --bs-btn-hover-bg: #c3c5c8;
- --bs-btn-hover-border-color: #c3c5c8;
- --bs-btn-focus-shadow-rgb: 195, 197, 200;
- --bs-btn-active-color: #373e47;
- --bs-btn-active-bg: #c3c5c8;
- --bs-btn-active-border-color: #c3c5c8;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: #c3c5c8;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #c3c5c8;
- --bs-btn-bg: transparent;
- --bs-gradient: none;
+ --gitdevr-btn-bg: var(--brand-dk_gray);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
}
.btn-outline-primary {
- --bs-btn-color: var(--bs-link-color);
- --bs-btn-border-color: var(--bs-link-color);
- --bs-btn-hover-color: var(--bs-body-bg);
- --bs-btn-hover-bg: var(--bs-link-color);
- --bs-btn-hover-border-color: var(--bs-link-color);
+ --gitdevr-btn-bg: var(--bs-link-color);
+ --gitdevr-btn-fg: var(--bs-body-bg);
--bs-btn-focus-shadow-rgb: var(--bs-link-color-rgb);
- --bs-btn-active-color: var(--bs-body-bg);
- --bs-btn-active-bg: var(--bs-link-color);
- --bs-btn-active-border-color: var(--bs-link-color);
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: var(--bs-link-color);
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: var(--bs-link-color);
- --bs-btn-bg: transparent;
- --bs-gradient: none;
}
.btn-outline-success {
- --bs-btn-color: var(--bs-success-color);
- --bs-btn-border-color: var(--bs-success-color);
- --bs-btn-hover-bg: var(--bs-success-color);
- --bs-btn-hover-border-color: var(--bs-success-color);
- --bs-btn-focus-shadow-rgb: 45, 164, 78;
- --bs-btn-active-bg: var(--bs-success-color);
- --bs-btn-active-border-color: var(--bs-success-color);
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: var(--bs-success-color);
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: var(--bs-success-color);
- --bs-btn-bg: transparent;
- --bs-gradient: none;
+ --gitdevr-btn-bg: var(--bs-success-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-success-rgb);
}
.btn-outline-info {
- --bs-btn-color: var(--bs-info-color);
- --bs-btn-border-color: var(--bs-info-color);
- --bs-btn-hover-bg: var(--bs-info-color);
- --bs-btn-hover-border-color: var(--bs-info-color);
- --bs-btn-focus-shadow-rgb: 150, 134, 190;
- --bs-btn-active-bg: var(--bs-info-color);
- --bs-btn-active-border-color: var(--bs-info-color);
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: var(--bs-info-color);
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: var(--bs-info-color);
- --bs-btn-bg: transparent;
- --bs-gradient: none;
+ --gitdevr-btn-bg: var(--bs-info-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-info-rgb);
}
.btn-outline-warning {
- --bs-btn-color: var(--bs-warning-color);
- --bs-btn-border-color: var(--bs-warning-color);
- --bs-btn-hover-color: #373e47;
- --bs-btn-hover-bg: var(--bs-warning-color);
- --bs-btn-hover-border-color: var(--bs-warning-color);
- --bs-btn-focus-shadow-rgb: 212, 167, 44;
- --bs-btn-active-color: #373e47;
- --bs-btn-active-bg: var(--bs-warning-color);
- --bs-btn-active-border-color: var(--bs-warning-color);
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: var(--bs-warning-color);
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: var(--bs-warning-color);
- --bs-btn-bg: transparent;
- --bs-gradient: none;
+ --gitdevr-btn-bg: var(--bs-warning-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-warning-rgb);
}
.btn-outline-danger {
- --bs-btn-color: var(--bs-danger-color);
- --bs-btn-border-color: var(--bs-danger-color);
- --bs-btn-hover-bg: var(--bs-danger-color);
- --bs-btn-hover-border-color: var(--bs-danger-color);
- --bs-btn-focus-shadow-rgb: 216, 111, 117;
- --bs-btn-active-bg: var(--bs-danger-color);
- --bs-btn-active-border-color: var(--bs-danger-color);
- --bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);
- --bs-btn-disabled-color: var(--bs-danger-color);
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: var(--bs-danger-color);
+ --gitdevr-btn-bg: var(--bs-danger-color);
+ --gitdevr-btn-fg: var(--brand-black);
+ --bs-btn-focus-shadow-rgb: var(--bs-danger-rgb);
+ }
+
+ .btn-outline-default,
+ .btn-outline-primary,
+ .btn-outline-success,
+ .btn-outline-info,
+ .btn-outline-warning,
+ .btn-outline-danger {
+ --bs-btn-color: var(--gitdevr-btn-bg);
+ --bs-btn-border-color: var(--gitdevr-btn-bg);
--bs-btn-bg: transparent;
- --bs-gradient: none;
+ --bs-btn-hover-color: var(--gitdevr-btn-fg);
+ --bs-btn-hover-bg: var(--gitdevr-btn-bg);
+ --bs-btn-hover-border-color: var(--gitdevr-btn-bg);
+ --bs-btn-active-color: var(--gitdevr-btn-fg);
+ --bs-btn-active-bg: var(--gitdevr-btn-bg);
+ --bs-btn-active-border-color: var(--gitdevr-btn-bg);
+ --bs-btn-disabled-color: var(--gitdevr-btn-bg);
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: var(--gitdevr-btn-bg);
}
.btn-link {
- --bs-btn-font-weight: 400;
--bs-btn-color: var(--bs-link-color);
- --bs-btn-bg: transparent;
- --bs-btn-border-color: transparent;
--bs-btn-hover-color: var(--bs-link-hover-color);
- --bs-btn-hover-border-color: transparent;
--bs-btn-active-color: var(--bs-link-hover-color);
- --bs-btn-active-border-color: transparent;
- --bs-btn-disabled-color: #878b91;
- --bs-btn-disabled-border-color: transparent;
- --bs-btn-box-shadow: 0 0 0 #000;
- --bs-btn-focus-shadow-rgb: 45, 131, 226;
- }
-
- .btn-link:focus-visible {
- color: var(--bs-btn-color);
- }
-
- .btn-link:hover {
- color: var(--bs-btn-hover-color);
+ --bs-btn-disabled-color: var(--bs-secondary);
+ --bs-btn-focus-shadow-rgb: var(--bs-link-color-rgb);
}
}
diff --git a/inst/pkgdown/assets/BS5/gitdevr.min.css b/inst/pkgdown/assets/BS5/gitdevr.min.css
index 357a2a2..5a2bfbb 100644
--- a/inst/pkgdown/assets/BS5/gitdevr.min.css
+++ b/inst/pkgdown/assets/BS5/gitdevr.min.css
@@ -1 +1 @@
-/*! Compressed with sass R library https: //rstudio.github.io/sass/*/[data-bs-theme="dark"]{color-scheme:dark;--bs-body-bg: #24292f;--bs-body-bg-rgb: 36, 41, 47;--bs-body-color: #fff;--bs-body-color-rgb: 255, 255, 255;--bs-gray-500: var(--brand-dk_gray);--bs-blue: var(--brand-dk_blue);--bs-blue-rgb: 121, 184, 255;--bs-blue-color: var(--brand-dk_blue);--bs-blue-color-rgb: 121, 184, 255;--bs-primary: #383d43;--bs-primary-rgb: 56.1, 60.6, 66.9;--bs-primary-color: #383d43;--bs-primary-color-rgb: 56.1, 60.6, 66.9;--bs-secondary: var(--brand-dk_gray);--bs-secondary-rgb: 168, 179, 193;--bs-secondary-color: var(--brand-dk_gray);--bs-success: var(--brand-dk_green);--bs-success-rgb: 111, 221, 140;--bs-success-color: var(--brand-dk_green);--bs-success-color-rgb: 111, 221, 140;--bs-info: var(--brand-dk_purple);--bs-info-rgb: 184, 167, 230;--bs-info-color: var(--brand-dk_purple);--bs-info-color-rgb: 184, 167, 230;--bs-warning: var(--brand-dk_orange);--bs-warning-rgb: 227, 186, 82;--bs-warning-color: var(--brand-dk_orange);--bs-warning-color-rgb: 227, 186, 82;--bs-danger: var(--brand-dk_red);--bs-danger-rgb: 238, 143, 149;--bs-danger-color: var(--brand-dk_red);--bs-danger-color-rgb: 238, 143, 149;--bs-light: #f8f9fa;--bs-light-rgb: 248, 249, 250;--bs-light-color: #f8f9fa;--bs-light-color-rgb: 248, 249, 250;--bs-dark: #343a40;--bs-dark-rgb: 52, 58, 64;--bs-dark-color: #343a40;--bs-dark-color-rgb: 52, 58, 64;--bs-link: var(--brand-dk_blue);--bs-link-rgb: 121, 184, 255;--bs-link-color: var(--brand-dk_blue);--bs-link-color-rgb: 121, 184, 255;--bs-link-hover: #a8d1ff;--bs-link-hover-rgb: 168, 209, 255;--bs-link-hover-color: #a8d1ff;--bs-link-hover-color-rgb: 168, 209, 255;--bs-code-color: var(--brand-dk_code)}main img{margin-left:auto;margin-right:auto;border-radius:var(--bs-border-radius)}.caption,.figure,.figcaption,figcaption,caption{color:var(--bs-secondary);margin-left:auto;margin-right:auto;margin-top:1rem;margin-bottom:1rem;font-size:0.875rem;width:100%}.navbar-brand,#navbar,.navbar .dropdown-item{font-family:"Inter Tight", Roboto;font-weight:800}.navbar .text-muted{color:var(--bs-gray) !important}.navbar .text-danger{color:#ff4d4f !important}#navbar .nav-link:hover,#navbar .nav-link:focus{color:var(--brand-dk_gray) !important;background-color:transparent}#navbar .dropdown-menu .dropdown-item.active:hover,#navbar .dropdown-menu .dropdown-item.active:focus{color:var(--brand-dk_gray)}#navbar .nav-item.active .nav-link,#navbar .dropdown-menu .dropdown-item.active{color:var(--bs-gray-200);background:transparent}#navbar .dropdown-menu .dropdown-item .fa{opacity:1;color:inherit}.navbar-toggler{border:none}.navbar-nav .nav-item.dropdown ul li:first-child hr{display:none}.algolia-autocomplete .aa-dropdown-menu{color:var(--bs-body-color);background-color:var(--bs-body-bg)}mark,.mark{background:linear-gradient(-100deg, RGBA(var(--bs-link-color-rgb), 0.2), RGBA(var(--bs-link-color-rgb), 0.7) 95%, RGBA(var(--bs-link-color-rgb), 0.1));color:var(--bs-body-color)}.nav-item .nav-link:hover,.nav-pills .nav-link.active:hover{background-color:rgba(var(--bs-body-color-rgb), 0.08);color:var(--brand-dk_gray)}footer{--gitdevr-footer-bg: var(--brand-footer_bg);width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;margin-bottom:0;font-family:"Inter Tight", Roboto;font-weight:700;background-color:var(--gitdevr-footer-bg) !important}[data-bs-theme="dark"] footer{--gitdevr-footer-bg: var(--bs-body-bg);background-color:var(--bs-body-bg) !important}footer a{color:var(--brand-footer_link);text-decoration:none}footer a:hover,footer a:focus{color:color-mix(in srgb, var(--brand-footer_link) 80%, var(--gitdevr-footer-bg))}footer .pkgdown-footer-right{margin-right:auto;padding-right:1.25rem}footer .pkgdown-footer-left{margin-left:auto;padding-left:1.25rem}@media screen and (max-width: 576px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{margin-right:0.75rem;margin-left:0.75rem;padding-left:12px;padding-right:12px}}@media (max-width: 768px) and (min-width: 576px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:270px}}@media (max-width: 992px) and (min-width: 768px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:360px}}@media (max-width: 1200px) and (min-width: 992px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:480px}}@media (max-width: 1400px) and (min-width: 1200px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:570px}}@media (min-width: 1400px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:660px}}@view-transition{navigation:auto}img.logo{display:none}.template-home img.logo{display:inline}.author,.date{color:var(--bs-secondary);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);margin-bottom:0.5rem}[data-bs-theme="dark"] img.r-plt,[data-bs-theme="dark"] pre .r-plt.img img,[data-bs-theme="dark"] .cell-output-display img{filter:brightness(80%) !important}[data-bs-theme="dark"] img:not(.logo,.d-inline-block){filter:brightness(80%) !important}blockquote,.blockquote{border-left:0.25rem solid RGBA(var(--bs-link-color-rgb), 0.3);margin-bottom:1rem;font-size:1.25rem}.pkg{font-weight:bold}.tippy-box[data-theme~="light-border"]{background-color:var(--bs-body-bg);color:var(--bs-body-color);font-size:0.9rem;padding:0.75rem;box-shadow:4px 4px 8px RGBA(var(--bs-body-color-rgb), 0.3);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.code-with-filename{margin-bottom:1rem}.code-with-filename .code-with-filename-file pre:not(.sourceCode){margin-bottom:0;padding-top:0.25rem;padding-bottom:0.25rem;border-radius:0;color:var(--bs-body-color);background-color:RGBA(var(--bs-body-color-rgb), 0.1)}.code-with-filename .code-with-filename-file pre{border-top-left-radius:0;border-top-right-radius:0}code a:any-link{text-decoration:underline;background-color:transparent !important}a>code{text-decoration:underline;color:var(--bs-code-color)}code{word-wrap:break-word}@media (max-width: 575.98px){.btn-copy-ex{right:5px}div>pre{border-radius:0}:not(li,blockquote)>div>pre{margin-left:calc(var(--bs-gutter-x) * -0.5);margin-right:calc(var(--bs-gutter-x) * -0.5);padding-left:1rem;padding-right:1rem}:not(li,blockquote)>div>.btn-copy-ex{right:calc(var(--bs-gutter-x) * -0.5 + 5px)}.code-with-filename{margin-right:calc(var(--bs-gutter-x) * 0.5);margin-left:calc(var(--bs-gutter-x) * 0.5)}}.template-reference-topic dt{font-weight:800;font-family:"Inter Tight", Roboto}pre{--gitdevr-hl-bg: #f6f8fa;--gitdevr-hl-fg: #24292f;--gitdevr-hl-comment: #6e7781;--gitdevr-hl-keyword: #cf222e;--gitdevr-hl-number: #0550ae;--gitdevr-hl-constant: #0550ae;--gitdevr-hl-builtin: #953800;--gitdevr-hl-type: #cf222e;--gitdevr-hl-string: #0a3069;--gitdevr-hl-function: #8250df;--gitdevr-hl-operator: #0550ae;--gitdevr-hl-variable: #0550ae;--gitdevr-hl-attribute: #116329;--gitdevr-hl-error: #82071e;--gitdevr-hl-error-bg: #ffebe9;border:none;color:var(--gitdevr-hl-fg);background-color:var(--gitdevr-hl-bg)}[data-bs-theme="dark"] pre{--gitdevr-hl-bg: #282c34;--gitdevr-hl-fg: #abb2bf;--gitdevr-hl-comment: #7f848e;--gitdevr-hl-keyword: #c678dd;--gitdevr-hl-number: #d19a66;--gitdevr-hl-constant: #e5c07b;--gitdevr-hl-builtin: #e5c07b;--gitdevr-hl-type: #e5c07b;--gitdevr-hl-string: #98c379;--gitdevr-hl-function: #61afef;--gitdevr-hl-operator: #56b6c2;--gitdevr-hl-variable: #e06c75;--gitdevr-hl-attribute: #e06c75;--gitdevr-hl-error: #abb2bf;--gitdevr-hl-error-bg: transparent;color:var(--gitdevr-hl-fg);background-color:var(--gitdevr-hl-bg)}pre code,[data-bs-theme="dark"] pre code{color:var(--gitdevr-hl-fg);background-color:transparent}pre code :is(span, a).an,pre code :is(span, a).co,pre code :is(span, a).cv,pre code :is(span, a).do,pre code :is(span, a).in,pre code :is(span, a).re,[data-bs-theme="dark"] pre code :is(span, a).an,[data-bs-theme="dark"] pre code :is(span, a).co,[data-bs-theme="dark"] pre code :is(span, a).cv,[data-bs-theme="dark"] pre code :is(span, a).do,[data-bs-theme="dark"] pre code :is(span, a).in,[data-bs-theme="dark"] pre code :is(span, a).re{color:var(--gitdevr-hl-comment);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).cf,pre code :is(span, a).kw,pre code :is(span, a).pp,[data-bs-theme="dark"] pre code :is(span, a).cf,[data-bs-theme="dark"] pre code :is(span, a).kw,[data-bs-theme="dark"] pre code :is(span, a).pp{color:var(--gitdevr-hl-keyword);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).bn,pre code :is(span, a).dv,pre code :is(span, a).fl,[data-bs-theme="dark"] pre code :is(span, a).bn,[data-bs-theme="dark"] pre code :is(span, a).dv,[data-bs-theme="dark"] pre code :is(span, a).fl{color:var(--gitdevr-hl-number);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).cn,[data-bs-theme="dark"] pre code :is(span, a).cn{color:var(--gitdevr-hl-constant);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).bu,[data-bs-theme="dark"] pre code :is(span, a).bu{color:var(--gitdevr-hl-builtin);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).dt,[data-bs-theme="dark"] pre code :is(span, a).dt{color:var(--gitdevr-hl-type);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).ch,pre code :is(span, a).im,pre code :is(span, a).ot,pre code :is(span, a).sc,pre code :is(span, a).ss,pre code :is(span, a).st,pre code :is(span, a).vs,[data-bs-theme="dark"] pre code :is(span, a).ch,[data-bs-theme="dark"] pre code :is(span, a).im,[data-bs-theme="dark"] pre code :is(span, a).ot,[data-bs-theme="dark"] pre code :is(span, a).sc,[data-bs-theme="dark"] pre code :is(span, a).ss,[data-bs-theme="dark"] pre code :is(span, a).st,[data-bs-theme="dark"] pre code :is(span, a).vs{color:var(--gitdevr-hl-string);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).ex,pre code :is(span, a).fu,[data-bs-theme="dark"] pre code :is(span, a).ex,[data-bs-theme="dark"] pre code :is(span, a).fu{color:var(--gitdevr-hl-function);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).op,[data-bs-theme="dark"] pre code :is(span, a).op{color:var(--gitdevr-hl-operator);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).va,[data-bs-theme="dark"] pre code :is(span, a).va{color:var(--gitdevr-hl-variable);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).at,[data-bs-theme="dark"] pre code :is(span, a).at{color:var(--gitdevr-hl-attribute);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).al,pre code :is(span, a).er,pre code :is(span, a).wa,[data-bs-theme="dark"] pre code :is(span, a).al,[data-bs-theme="dark"] pre code :is(span, a).er,[data-bs-theme="dark"] pre code :is(span, a).wa{color:var(--gitdevr-hl-error);font-style:normal;font-weight:normal;text-decoration:none;background-color:var(--gitdevr-hl-error-bg)}[data-bs-theme="dark"] pre code :is(span, a).fu{font-weight:bold}[data-bs-theme="dark"] .reactable.html-widget{filter:none !important}[data-bs-theme="dark"] .Reactable{background-color:var(--bs-body-bg);color:var(--bs-body-color)}[data-bs-theme="dark"] .rt-sticky,[data-bs-theme="dark"] .rt-tbody,[data-bs-theme="dark"] .rt-tr,[data-bs-theme="dark"] .rt-tr-group{background-color:inherit}[data-bs-theme="dark"] .rt-table{border-color:var(--brand-dk_border)}[data-bs-theme="dark"] .rt-th{border-bottom:2px solid var(--brand-dk_border);border-left-color:var(--brand-dk_border)}[data-bs-theme="dark"] .rt-td{border-left-color:var(--brand-dk_border);border-top:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-th-group:after{background-color:var(--brand-dk_border)}[data-bs-theme="dark"] .rt-tr-striped{background-color:rgba(0,0,0,0.03)}[data-bs-theme="dark"] .rt-tr-striped-sticky{background-color:var(--brand-dk_black)}[data-bs-theme="dark"] .rt-tr-highlight:hover,[data-bs-theme="dark"] .rt-tr-highlight-sticky:hover{background-color:var(--bs-gray-800)}[data-bs-theme="dark"] .rt-td-filter{border-bottom:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-filter{background-color:var(--brand-dk_black);border:1px solid var(--brand-dk_border);color:inherit}[data-bs-theme="dark"] .rt-filter:focus{border:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-expander:after{border-top:7px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-pagination{border-top:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-page-jump,[data-bs-theme="dark"] .rt-page-size-select{background-color:var(--bs-body-bg);border:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-page-button:hover{background-color:var(--bs-gray-800)}[data-bs-theme="dark"] .rt-page-button:active{background-color:rgba(0,0,0,0.08)}[data-bs-theme="dark"] .rt-keyboard-active .rt-page-button:focus{background-color:rgba(0,0,0,0.04)}[data-bs-theme="dark"] .rt-page-button:disabled:focus,[data-bs-theme="dark"] .rt-page-button:disabled:hover{background-color:transparent}[data-bs-theme="dark"] .rt-tbody-no-data .rt-td{border-color:transparent}[data-bs-theme="dark"] .rt-search{background-color:var(--brand-dk_black);border:1px solid var(--brand-dk_border);color:var(--bs-body-color)}[data-bs-theme="dark"] .rt-search:active,[data-bs-theme="dark"] .rt-search:focus{border:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-borderless .rt-td,[data-bs-theme="dark"] .rt-tr-group:first-child>.rt-tr:first-child .rt-td{border-top-color:var(--brand-dk_border)}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:0.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:0.4em 0.7em;border-left:5px solid;border-right:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-top:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-bottom:1px solid RGBA(var(--bs-body-color-rgb), 0.1)}.callout.callout-style-default{border-left:5px solid;border-right:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-top:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-bottom:1px solid RGBA(var(--bs-body-color-rgb), 0.1)}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:0.9rem;font-weight:400;margin-bottom:-0.4em;margin-top:0.5em}.callout.callout-style-default .callout-body{font-size:0.9rem;font-weight:400;padding-left:0.5em;padding-right:0.5em}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:0.2em;margin-bottom:-0.2em}.callout.callout-empty-content>.callout-header{margin-bottom:0em;border-bottom-right-radius:calc(0.25rem + -1px)}.callout>.callout-header.collapsed{border-bottom-right-radius:calc(0.25rem + -1px)}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:0.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:0.9rem;padding-left:0.5em;padding-right:0.5em;border-top-right-radius:calc(0.25rem + -1px)}.callout.callout-style-default .callout-body>:first-child{padding-top:0.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle="collapse"]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded="false"],.callout.callout-style-default .callout-header[aria-expanded="true"]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:0.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:0.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:0.2rem}.callout.callout-style-simple:not(.callout-titled) .callout-body>:last-child,.callout.callout-style-simple:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:0.5em}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:0.9rem;width:0.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:0.9rem 0.9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform 0.2s linear}.callout .callout-header[aria-expanded="false"] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded="true"] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:0.2em;padding-right:0.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:0.1em;padding-right:0.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:0.3em;padding-right:0.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:var(--bs-secondary)}div.callout.callout-style-default>.callout-header{background-color:var(--bs-secondary)}div.callout-note.callout{border-left-color:var(--bs-link-color)}div.callout-note.callout-style-default>.callout-header{background-color:RGBA(var(--bs-link-color-rgb), 0.1)}div.callout-note:not(.callout-titled) .callout-icon::before,div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:var(--bs-success)}div.callout-tip.callout-style-default>.callout-header{background-color:RGBA(var(--bs-success-rgb), 0.1)}div.callout-tip:not(.callout-titled) .callout-icon::before,div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:var(--bs-warning)}div.callout-warning.callout-style-default>.callout-header{background-color:RGBA(var(--bs-warning-rgb), 0.1)}div.callout-warning:not(.callout-titled) .callout-icon::before,div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:var(--bs-warning)}div.callout-caution.callout-style-default>.callout-header{background-color:RGBA(var(--bs-warning-rgb), 0.1)}div.callout-caution:not(.callout-titled) .callout-icon::before,div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:var(--bs-danger)}div.callout-important.callout-style-default>.callout-header{background-color:RGBA(var(--bs-danger-rgb), 0.1)}div.callout-important:not(.callout-titled) .callout-icon::before,div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-note:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-tip:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-warning:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-caution:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-important:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-body-container.callout-body pre{margin-left:calc(var(--bs-gutter-x) * 0.5) !important;margin-right:calc(var(--bs-gutter-x) * 0.5) !important}div.callout-body-container.callout-body .btn-copy-ex{right:18px !important}.screen-reader-only{position:absolute;clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px}[data-bs-theme="dark"] .btn-default{--bs-btn-color: #373e47;--bs-btn-bg: #c3c5c8;--bs-btn-border-color: #c3c5c8;--bs-btn-hover-color: #373e47;--bs-btn-hover-bg: #ccced0;--bs-btn-hover-border-color: #c9cbce;--bs-btn-focus-shadow-rgb: 174, 177, 181;--bs-btn-active-color: #373e47;--bs-btn-active-bg: #cfd1d3;--bs-btn-active-border-color: #c9cbce;--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: #373e47;--bs-btn-disabled-bg: #c3c5c8;--bs-btn-disabled-border-color: #c3c5c8}[data-bs-theme="dark"] .btn-primary{--bs-btn-bg: var(--bs-primary-color);--bs-btn-border-color: var(--bs-primary-color);--bs-btn-hover-bg: #303439;--bs-btn-hover-border-color: #2d3136;--bs-btn-focus-shadow-rgb: 86, 90, 95;--bs-btn-active-bg: #2d3136;--bs-btn-active-border-color: #2a2e32;--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-bg: var(--bs-primary-color);--bs-btn-disabled-border-color: var(--bs-primary-color)}[data-bs-theme="dark"] .btn-success{--bs-btn-bg: var(--bs-success-color);--bs-btn-border-color: var(--bs-success-color);--bs-btn-hover-bg: #4db269;--bs-btn-hover-border-color: #42ad60;--bs-btn-focus-shadow-rgb: 47, 149, 77;--bs-btn-active-bg: #57b671;--bs-btn-active-border-color: #42ad60;--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-bg: var(--bs-success-color);--bs-btn-disabled-border-color: var(--bs-success-color)}[data-bs-theme="dark"] .btn-info{--bs-btn-bg: var(--bs-info-color);--bs-btn-border-color: var(--bs-info-color);--bs-btn-hover-bg: #a698c8;--bs-btn-hover-border-color: #a192c5;--bs-btn-focus-shadow-rgb: 136, 123, 172;--bs-btn-active-bg: #ab9ecb;--bs-btn-active-border-color: #a192c5;--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-bg: var(--bs-info-color);--bs-btn-disabled-border-color: var(--bs-info-color)}[data-bs-theme="dark"] .btn-warning{--bs-btn-color: #22272e;--bs-btn-bg: var(--bs-warning-color);--bs-btn-border-color: var(--bs-warning-color);--bs-btn-hover-color: #22272e;--bs-btn-hover-bg: #dab44c;--bs-btn-hover-border-color: #d8b041;--bs-btn-focus-shadow-rgb: 188, 151, 48;--bs-btn-active-color: #22272e;--bs-btn-active-bg: #ddb956;--bs-btn-active-border-color: #d8b041;--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: #22272e;--bs-btn-disabled-bg: var(--bs-warning-color);--bs-btn-disabled-border-color: var(--bs-warning-color)}[data-bs-theme="dark"] .btn-danger{--bs-btn-bg: var(--bs-danger-color);--bs-btn-border-color: var(--bs-danger-color);--bs-btn-hover-bg: #de858a;--bs-btn-hover-border-color: #dc7d83;--bs-btn-focus-shadow-rgb: 192, 104, 110;--bs-btn-active-bg: #e08c91;--bs-btn-active-border-color: #dc7d83;--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-bg: var(--bs-danger-color);--bs-btn-disabled-border-color: var(--bs-danger-color)}[data-bs-theme="dark"] .btn-outline-default{--bs-btn-color: #c3c5c8;--bs-btn-border-color: #c3c5c8;--bs-btn-hover-color: #373e47;--bs-btn-hover-bg: #c3c5c8;--bs-btn-hover-border-color: #c3c5c8;--bs-btn-focus-shadow-rgb: 195, 197, 200;--bs-btn-active-color: #373e47;--bs-btn-active-bg: #c3c5c8;--bs-btn-active-border-color: #c3c5c8;--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: #c3c5c8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c3c5c8;--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-outline-primary{--bs-btn-color: var(--bs-link-color);--bs-btn-border-color: var(--bs-link-color);--bs-btn-hover-color: var(--bs-body-bg);--bs-btn-hover-bg: var(--bs-link-color);--bs-btn-hover-border-color: var(--bs-link-color);--bs-btn-focus-shadow-rgb: var(--bs-link-color-rgb);--bs-btn-active-color: var(--bs-body-bg);--bs-btn-active-bg: var(--bs-link-color);--bs-btn-active-border-color: var(--bs-link-color);--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: var(--bs-link-color);--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-outline-success{--bs-btn-color: var(--bs-success-color);--bs-btn-border-color: var(--bs-success-color);--bs-btn-hover-bg: var(--bs-success-color);--bs-btn-hover-border-color: var(--bs-success-color);--bs-btn-focus-shadow-rgb: 45, 164, 78;--bs-btn-active-bg: var(--bs-success-color);--bs-btn-active-border-color: var(--bs-success-color);--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: var(--bs-success-color);--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: var(--bs-success-color);--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-outline-info{--bs-btn-color: var(--bs-info-color);--bs-btn-border-color: var(--bs-info-color);--bs-btn-hover-bg: var(--bs-info-color);--bs-btn-hover-border-color: var(--bs-info-color);--bs-btn-focus-shadow-rgb: 150, 134, 190;--bs-btn-active-bg: var(--bs-info-color);--bs-btn-active-border-color: var(--bs-info-color);--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: var(--bs-info-color);--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: var(--bs-info-color);--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-outline-warning{--bs-btn-color: var(--bs-warning-color);--bs-btn-border-color: var(--bs-warning-color);--bs-btn-hover-color: #373e47;--bs-btn-hover-bg: var(--bs-warning-color);--bs-btn-hover-border-color: var(--bs-warning-color);--bs-btn-focus-shadow-rgb: 212, 167, 44;--bs-btn-active-color: #373e47;--bs-btn-active-bg: var(--bs-warning-color);--bs-btn-active-border-color: var(--bs-warning-color);--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: var(--bs-warning-color);--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: var(--bs-warning-color);--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-outline-danger{--bs-btn-color: var(--bs-danger-color);--bs-btn-border-color: var(--bs-danger-color);--bs-btn-hover-bg: var(--bs-danger-color);--bs-btn-hover-border-color: var(--bs-danger-color);--bs-btn-focus-shadow-rgb: 216, 111, 117;--bs-btn-active-bg: var(--bs-danger-color);--bs-btn-active-border-color: var(--bs-danger-color);--bs-btn-active-shadow: inset 0 3px 5px rgba(55, 62, 71, 0.125);--bs-btn-disabled-color: var(--bs-danger-color);--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: var(--bs-danger-color);--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #878b91;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 45, 131, 226}[data-bs-theme="dark"] .btn-link:focus-visible{color:var(--bs-btn-color)}[data-bs-theme="dark"] .btn-link:hover{color:var(--bs-btn-hover-color)}
+/*! Minified with sass; RGB companions are generated from the brand palette. */[data-bs-theme="dark"]{color-scheme:dark;--bs-body-bg: var(--brand-dk_body);--bs-body-bg-rgb: 36, 41, 47;--bs-body-color: var(--brand-white);--bs-body-color-rgb: 255, 255, 255;--bs-gray-500: var(--brand-dk_gray);--bs-blue: var(--brand-dk_blue);--bs-blue-rgb: 121, 184, 255;--bs-blue-color: var(--brand-dk_blue);--bs-blue-color-rgb: 121, 184, 255;--bs-primary: var(--brand-dk_black);--bs-primary-rgb: 55, 62, 71;--bs-primary-color: var(--brand-dk_black);--bs-primary-color-rgb: 55, 62, 71;--bs-secondary: var(--brand-dk_gray);--bs-secondary-rgb: 168, 179, 193;--bs-secondary-color: var(--brand-dk_gray);--bs-success: var(--brand-dk_green);--bs-success-rgb: 111, 221, 140;--bs-success-color: var(--brand-dk_green);--bs-success-color-rgb: 111, 221, 140;--bs-info: var(--brand-dk_purple);--bs-info-rgb: 184, 167, 230;--bs-info-color: var(--brand-dk_purple);--bs-info-color-rgb: 184, 167, 230;--bs-warning: var(--brand-dk_orange);--bs-warning-rgb: 227, 186, 82;--bs-warning-color: var(--brand-dk_orange);--bs-warning-color-rgb: 227, 186, 82;--bs-danger: var(--brand-dk_red);--bs-danger-rgb: 238, 143, 149;--bs-danger-color: var(--brand-dk_red);--bs-danger-color-rgb: 238, 143, 149;--bs-light: var(--brand-light);--bs-light-rgb: 248, 249, 250;--bs-light-color: var(--brand-light);--bs-light-color-rgb: 248, 249, 250;--bs-dark: var(--brand-dk_dark);--bs-dark-rgb: 52, 58, 64;--bs-dark-color: var(--brand-dk_dark);--bs-dark-color-rgb: 52, 58, 64;--bs-link: var(--brand-dk_blue);--bs-link-rgb: 121, 184, 255;--bs-link-color: var(--brand-dk_blue);--bs-link-color-rgb: 121, 184, 255;--bs-link-hover: color-mix(in srgb, var(--bs-link-color) 70%, white);--bs-link-hover-color: var(--bs-link-hover);--bs-code-color: var(--brand-dk_code)}main img{margin-left:auto;margin-right:auto;border-radius:var(--bs-border-radius)}.caption,.figure,.figcaption,figcaption,caption{color:var(--bs-secondary);margin-left:auto;margin-right:auto;margin-top:1rem;margin-bottom:1rem;font-size:0.875rem;width:100%}.navbar-brand,#navbar,.navbar .dropdown-item{font-family:"Inter Tight", Roboto;font-weight:800}.navbar .text-muted{color:var(--bs-gray) !important}.navbar .text-danger{color:#ff4d4f !important}#navbar .nav-link:hover,#navbar .nav-link:focus{color:var(--brand-dk_gray) !important;background-color:transparent}#navbar .dropdown-menu .dropdown-item.active:hover,#navbar .dropdown-menu .dropdown-item.active:focus{color:var(--brand-dk_gray)}#navbar .nav-item.active .nav-link,#navbar .dropdown-menu .dropdown-item.active{color:var(--bs-gray-200);background:transparent}#navbar .dropdown-menu .dropdown-item .fa{opacity:1;color:inherit}.navbar-toggler{border:none}.navbar-nav .nav-item.dropdown ul li:first-child hr{display:none}.algolia-autocomplete .aa-dropdown-menu{color:var(--bs-body-color);background-color:var(--bs-body-bg)}mark,.mark{background:linear-gradient(-100deg, RGBA(var(--bs-link-color-rgb), 0.2), RGBA(var(--bs-link-color-rgb), 0.7) 95%, RGBA(var(--bs-link-color-rgb), 0.1));color:var(--bs-body-color)}.nav-pills,.nav-tabs{--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color)}.nav-item .nav-link:hover,.nav-pills .nav-link:focus-visible{background-color:rgba(var(--bs-body-color-rgb), 0.08);color:var(--bs-link-hover-color)}.nav-pills .nav-link.active:hover,.nav-pills .nav-link.active:focus-visible{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}footer{--gitdevr-footer-bg: var(--brand-footer_bg);width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;margin-bottom:0;font-family:"Inter Tight", Roboto;font-weight:700;background-color:var(--gitdevr-footer-bg) !important}[data-bs-theme="dark"] footer{--gitdevr-footer-bg: var(--bs-body-bg);background-color:var(--bs-body-bg) !important}footer a{color:var(--brand-footer_link);text-decoration:none}footer a:hover,footer a:focus{color:color-mix(in srgb, var(--brand-footer_link) 80%, var(--gitdevr-footer-bg))}footer .pkgdown-footer-right{margin-right:auto;padding-right:1.25rem}footer .pkgdown-footer-left{margin-left:auto;padding-left:1.25rem}@media screen and (max-width: 576px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{margin-right:0.75rem;margin-left:0.75rem;padding-left:12px;padding-right:12px}}@media (max-width: 768px) and (min-width: 576px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:270px}}@media (max-width: 992px) and (min-width: 768px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:360px}}@media (max-width: 1200px) and (min-width: 992px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:480px}}@media (max-width: 1400px) and (min-width: 1200px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:570px}}@media (min-width: 1400px){footer .pkgdown-footer-right,footer .pkgdown-footer-left{max-width:660px}}@media (prefers-reduced-motion: no-preference){@view-transition{navigation:auto}.callout .callout-btn-toggle .callout-toggle::before{transition:transform 0.2s linear}}img.logo{display:none}.template-home img.logo{display:inline}.author,.date{color:var(--bs-secondary);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);margin-bottom:0.5rem}[data-bs-theme="dark"] img.r-plt,[data-bs-theme="dark"] pre .r-plt.img img,[data-bs-theme="dark"] .cell-output-display img{filter:brightness(80%) !important}[data-bs-theme="dark"] img:not(.logo,.d-inline-block){filter:brightness(80%) !important}blockquote,.blockquote{border-left:0.25rem solid RGBA(var(--bs-link-color-rgb), 0.3);margin-bottom:1rem;font-size:1.25rem}.pkg{font-weight:bold}.tippy-box[data-theme~="light-border"]{background-color:var(--bs-body-bg);color:var(--bs-body-color);font-size:0.9rem;padding:0.75rem;box-shadow:4px 4px 8px RGBA(var(--bs-body-color-rgb), 0.3);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.code-with-filename{margin-bottom:1rem}.code-with-filename .code-with-filename-file pre:not(.sourceCode){margin-bottom:0;padding-top:0.25rem;padding-bottom:0.25rem;border-radius:0;color:var(--bs-body-color);background-color:RGBA(var(--bs-body-color-rgb), 0.1)}.code-with-filename .code-with-filename-file pre{border-top-left-radius:0;border-top-right-radius:0}code a:any-link{text-decoration:underline;background-color:transparent !important}a>code{text-decoration:underline;color:var(--bs-code-color)}code{word-wrap:break-word}main,main .sourceCode,main .cell,main .callout-body-container{min-width:0}main pre{max-width:100%;overflow-x:auto}.template-reference-topic dt{font-weight:800;font-family:"Inter Tight", Roboto}pre{--gitdevr-hl-bg: #f6f8fa;--gitdevr-hl-fg: #24292f;--gitdevr-hl-comment: #6a737d;--gitdevr-hl-keyword: #cf222e;--gitdevr-hl-number: #0550ae;--gitdevr-hl-constant: #0550ae;--gitdevr-hl-builtin: #953800;--gitdevr-hl-type: #cf222e;--gitdevr-hl-string: #0a3069;--gitdevr-hl-function: #8250df;--gitdevr-hl-operator: #0550ae;--gitdevr-hl-variable: #0550ae;--gitdevr-hl-attribute: #116329;--gitdevr-hl-error: #82071e;--gitdevr-hl-error-bg: #ffebe9;border:none;color:var(--gitdevr-hl-fg);background-color:var(--gitdevr-hl-bg)}[data-bs-theme="dark"] pre{--gitdevr-hl-bg: #282c34;--gitdevr-hl-fg: #abb2bf;--gitdevr-hl-comment: #8e939d;--gitdevr-hl-keyword: #c678dd;--gitdevr-hl-number: #d19a66;--gitdevr-hl-constant: #e5c07b;--gitdevr-hl-builtin: #e5c07b;--gitdevr-hl-type: #e5c07b;--gitdevr-hl-string: #98c379;--gitdevr-hl-function: #61afef;--gitdevr-hl-operator: #56b6c2;--gitdevr-hl-variable: #e37079;--gitdevr-hl-attribute: #e37079;--gitdevr-hl-error: #abb2bf;--gitdevr-hl-error-bg: transparent;color:var(--gitdevr-hl-fg);background-color:var(--gitdevr-hl-bg)}pre code,[data-bs-theme="dark"] pre code{color:var(--gitdevr-hl-fg);background-color:transparent}pre code :is(span, a).an,pre code :is(span, a).co,pre code :is(span, a).cv,pre code :is(span, a).do,pre code :is(span, a).in,pre code :is(span, a).re,[data-bs-theme="dark"] pre code :is(span, a).an,[data-bs-theme="dark"] pre code :is(span, a).co,[data-bs-theme="dark"] pre code :is(span, a).cv,[data-bs-theme="dark"] pre code :is(span, a).do,[data-bs-theme="dark"] pre code :is(span, a).in,[data-bs-theme="dark"] pre code :is(span, a).re{color:var(--gitdevr-hl-comment);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).cf,pre code :is(span, a).kw,pre code :is(span, a).pp,[data-bs-theme="dark"] pre code :is(span, a).cf,[data-bs-theme="dark"] pre code :is(span, a).kw,[data-bs-theme="dark"] pre code :is(span, a).pp{color:var(--gitdevr-hl-keyword);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).bn,pre code :is(span, a).dv,pre code :is(span, a).fl,[data-bs-theme="dark"] pre code :is(span, a).bn,[data-bs-theme="dark"] pre code :is(span, a).dv,[data-bs-theme="dark"] pre code :is(span, a).fl{color:var(--gitdevr-hl-number);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).cn,[data-bs-theme="dark"] pre code :is(span, a).cn{color:var(--gitdevr-hl-constant);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).bu,[data-bs-theme="dark"] pre code :is(span, a).bu{color:var(--gitdevr-hl-builtin);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).dt,[data-bs-theme="dark"] pre code :is(span, a).dt{color:var(--gitdevr-hl-type);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).ch,pre code :is(span, a).im,pre code :is(span, a).ot,pre code :is(span, a).sc,pre code :is(span, a).ss,pre code :is(span, a).st,pre code :is(span, a).vs,[data-bs-theme="dark"] pre code :is(span, a).ch,[data-bs-theme="dark"] pre code :is(span, a).im,[data-bs-theme="dark"] pre code :is(span, a).ot,[data-bs-theme="dark"] pre code :is(span, a).sc,[data-bs-theme="dark"] pre code :is(span, a).ss,[data-bs-theme="dark"] pre code :is(span, a).st,[data-bs-theme="dark"] pre code :is(span, a).vs{color:var(--gitdevr-hl-string);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).ex,pre code :is(span, a).fu,[data-bs-theme="dark"] pre code :is(span, a).ex,[data-bs-theme="dark"] pre code :is(span, a).fu{color:var(--gitdevr-hl-function);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).op,[data-bs-theme="dark"] pre code :is(span, a).op{color:var(--gitdevr-hl-operator);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).va,[data-bs-theme="dark"] pre code :is(span, a).va{color:var(--gitdevr-hl-variable);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).at,[data-bs-theme="dark"] pre code :is(span, a).at{color:var(--gitdevr-hl-attribute);font-style:normal;font-weight:normal;text-decoration:none}pre code :is(span, a).al,pre code :is(span, a).er,pre code :is(span, a).wa,[data-bs-theme="dark"] pre code :is(span, a).al,[data-bs-theme="dark"] pre code :is(span, a).er,[data-bs-theme="dark"] pre code :is(span, a).wa{color:var(--gitdevr-hl-error);font-style:normal;font-weight:normal;text-decoration:none;background-color:var(--gitdevr-hl-error-bg)}[data-bs-theme="dark"] pre code :is(span, a).fu{font-weight:bold}pre code a:any-link,[data-bs-theme="dark"] pre code a:any-link{text-decoration:underline;text-underline-offset:0.15em}pre code a:focus-visible{outline:2px solid currentColor;outline-offset:2px}[data-bs-theme="dark"] .reactable.html-widget{filter:none !important}[data-bs-theme="dark"] .Reactable{background-color:var(--bs-body-bg);color:var(--bs-body-color)}[data-bs-theme="dark"] .rt-sticky,[data-bs-theme="dark"] .rt-tbody,[data-bs-theme="dark"] .rt-tr,[data-bs-theme="dark"] .rt-tr-group{background-color:inherit}[data-bs-theme="dark"] .rt-table{border-color:var(--brand-dk_border)}[data-bs-theme="dark"] .rt-th{border-bottom:2px solid var(--brand-dk_border);border-left-color:var(--brand-dk_border)}[data-bs-theme="dark"] .rt-td{border-left-color:var(--brand-dk_border);border-top:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-th-group:after{background-color:var(--brand-dk_border)}[data-bs-theme="dark"] .rt-tr-striped{background-color:rgba(0,0,0,0.03)}[data-bs-theme="dark"] .rt-tr-striped-sticky{background-color:var(--brand-dk_black)}[data-bs-theme="dark"] .rt-tr-highlight:hover,[data-bs-theme="dark"] .rt-tr-highlight-sticky:hover{background-color:var(--bs-gray-800)}[data-bs-theme="dark"] .rt-td-filter{border-bottom:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-filter{background-color:var(--brand-dk_black);border:1px solid var(--brand-dk_border);color:inherit}[data-bs-theme="dark"] .rt-filter:focus{border:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-expander:after{border-top:7px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-pagination{border-top:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-page-jump,[data-bs-theme="dark"] .rt-page-size-select{background-color:var(--bs-body-bg);border:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-page-button:hover{background-color:var(--bs-gray-800)}[data-bs-theme="dark"] .rt-page-button:active{background-color:rgba(0,0,0,0.08)}[data-bs-theme="dark"] .rt-keyboard-active .rt-page-button:focus{background-color:rgba(0,0,0,0.04)}[data-bs-theme="dark"] .rt-page-button:disabled:focus,[data-bs-theme="dark"] .rt-page-button:disabled:hover{background-color:transparent}[data-bs-theme="dark"] .rt-tbody-no-data .rt-td{border-color:transparent}[data-bs-theme="dark"] .rt-search{background-color:var(--brand-dk_black);border:1px solid var(--brand-dk_border);color:var(--bs-body-color)}[data-bs-theme="dark"] .rt-search:active,[data-bs-theme="dark"] .rt-search:focus{border:1px solid var(--brand-dk_border)}[data-bs-theme="dark"] .rt-borderless .rt-td,[data-bs-theme="dark"] .rt-tr-group:first-child>.rt-tr:first-child .rt-td{border-top-color:var(--brand-dk_border)}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:0.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:0.4em 0.7em;border-left:5px solid;border-right:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-top:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-bottom:1px solid RGBA(var(--bs-body-color-rgb), 0.1)}.callout.callout-style-default{border-left:5px solid;border-right:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-top:1px solid RGBA(var(--bs-body-color-rgb), 0.1);border-bottom:1px solid RGBA(var(--bs-body-color-rgb), 0.1)}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:0.9rem;font-weight:400;margin-bottom:-0.4em;margin-top:0.5em}.callout.callout-style-default .callout-body{font-size:0.9rem;font-weight:400;padding-left:0.5em;padding-right:0.5em}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:0.2em;margin-bottom:-0.2em}.callout.callout-empty-content>.callout-header{margin-bottom:0em;border-bottom-right-radius:calc(0.25rem + -1px)}.callout>.callout-header.collapsed{border-bottom-right-radius:calc(0.25rem + -1px)}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:0.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:0.9rem;padding-left:0.5em;padding-right:0.5em;border-top-right-radius:calc(0.25rem + -1px)}.callout.callout-style-default .callout-body>:first-child{padding-top:0.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle="collapse"]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded="false"],.callout.callout-style-default .callout-header[aria-expanded="true"]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:0.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:0.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:0.2rem}.callout.callout-style-simple:not(.callout-titled) .callout-body>:last-child,.callout.callout-style-simple:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:0.5em}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:0.9rem;width:0.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:0.9rem 0.9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-header[aria-expanded="false"] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded="true"] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:0.2em;padding-right:0.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:0.1em;padding-right:0.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:0.3em;padding-right:0.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:var(--bs-secondary)}div.callout.callout-style-default>.callout-header{background-color:var(--bs-secondary)}div.callout-note.callout{border-left-color:var(--bs-link-color)}div.callout-note.callout-style-default>.callout-header{background-color:RGBA(var(--bs-link-color-rgb), 0.1)}div.callout-note:not(.callout-titled) .callout-icon::before,div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:var(--bs-success)}div.callout-tip.callout-style-default>.callout-header{background-color:RGBA(var(--bs-success-rgb), 0.1)}div.callout-tip:not(.callout-titled) .callout-icon::before,div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:var(--bs-warning)}div.callout-warning.callout-style-default>.callout-header{background-color:RGBA(var(--bs-warning-rgb), 0.1)}div.callout-warning:not(.callout-titled) .callout-icon::before,div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:var(--bs-warning)}div.callout-caution.callout-style-default>.callout-header{background-color:RGBA(var(--bs-warning-rgb), 0.1)}div.callout-caution:not(.callout-titled) .callout-icon::before,div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:var(--bs-danger)}div.callout-important.callout-style-default>.callout-header{background-color:RGBA(var(--bs-danger-rgb), 0.1)}div.callout-important:not(.callout-titled) .callout-icon::before,div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-note:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-tip:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-warning:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-caution:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}[data-bs-theme="dark"] div.callout-important:not(.callout-titled) .callout-icon::before,[data-bs-theme="dark"] div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,')}div.callout-body-container.callout-body pre{margin-left:calc(var(--bs-gutter-x) * 0.5) !important;margin-right:calc(var(--bs-gutter-x) * 0.5) !important}div.callout-body-container.callout-body .btn-copy-ex{right:18px !important}.screen-reader-only{position:absolute;clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px}[data-bs-theme="dark"] .btn-default{--gitdevr-btn-bg: var(--brand-dk_gray);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb)}[data-bs-theme="dark"] .btn-primary{--gitdevr-btn-bg: var(--bs-primary-color);--gitdevr-btn-fg: var(--bs-body-color);--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb)}[data-bs-theme="dark"] .btn-success{--gitdevr-btn-bg: var(--bs-success-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-success-rgb)}[data-bs-theme="dark"] .btn-info{--gitdevr-btn-bg: var(--bs-info-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-info-rgb)}[data-bs-theme="dark"] .btn-warning{--gitdevr-btn-bg: var(--bs-warning-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-warning-rgb)}[data-bs-theme="dark"] .btn-danger{--gitdevr-btn-bg: var(--bs-danger-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-danger-rgb)}[data-bs-theme="dark"] .btn-default,[data-bs-theme="dark"] .btn-primary,[data-bs-theme="dark"] .btn-success,[data-bs-theme="dark"] .btn-info,[data-bs-theme="dark"] .btn-warning,[data-bs-theme="dark"] .btn-danger{--bs-btn-color: var(--gitdevr-btn-fg);--bs-btn-bg: var(--gitdevr-btn-bg);--bs-btn-border-color: var(--gitdevr-btn-bg);--bs-btn-hover-color: var(--gitdevr-btn-fg);--bs-btn-hover-bg: color-mix(in srgb, var(--gitdevr-btn-bg) 85%, white);--bs-btn-hover-border-color: var(--bs-btn-hover-bg);--bs-btn-active-color: var(--gitdevr-btn-fg);--bs-btn-active-bg: color-mix(in srgb, var(--gitdevr-btn-bg) 80%, white);--bs-btn-active-border-color: var(--bs-btn-active-bg);--bs-btn-disabled-color: var(--gitdevr-btn-fg);--bs-btn-disabled-bg: var(--gitdevr-btn-bg);--bs-btn-disabled-border-color: var(--gitdevr-btn-bg)}[data-bs-theme="dark"] .btn-outline-default{--gitdevr-btn-bg: var(--brand-dk_gray);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb)}[data-bs-theme="dark"] .btn-outline-primary{--gitdevr-btn-bg: var(--bs-link-color);--gitdevr-btn-fg: var(--bs-body-bg);--bs-btn-focus-shadow-rgb: var(--bs-link-color-rgb)}[data-bs-theme="dark"] .btn-outline-success{--gitdevr-btn-bg: var(--bs-success-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-success-rgb)}[data-bs-theme="dark"] .btn-outline-info{--gitdevr-btn-bg: var(--bs-info-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-info-rgb)}[data-bs-theme="dark"] .btn-outline-warning{--gitdevr-btn-bg: var(--bs-warning-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-warning-rgb)}[data-bs-theme="dark"] .btn-outline-danger{--gitdevr-btn-bg: var(--bs-danger-color);--gitdevr-btn-fg: var(--brand-black);--bs-btn-focus-shadow-rgb: var(--bs-danger-rgb)}[data-bs-theme="dark"] .btn-outline-default,[data-bs-theme="dark"] .btn-outline-primary,[data-bs-theme="dark"] .btn-outline-success,[data-bs-theme="dark"] .btn-outline-info,[data-bs-theme="dark"] .btn-outline-warning,[data-bs-theme="dark"] .btn-outline-danger{--bs-btn-color: var(--gitdevr-btn-bg);--bs-btn-border-color: var(--gitdevr-btn-bg);--bs-btn-bg: transparent;--bs-btn-hover-color: var(--gitdevr-btn-fg);--bs-btn-hover-bg: var(--gitdevr-btn-bg);--bs-btn-hover-border-color: var(--gitdevr-btn-bg);--bs-btn-active-color: var(--gitdevr-btn-fg);--bs-btn-active-bg: var(--gitdevr-btn-bg);--bs-btn-active-border-color: var(--gitdevr-btn-bg);--bs-btn-disabled-color: var(--gitdevr-btn-bg);--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: var(--gitdevr-btn-bg)}[data-bs-theme="dark"] .btn-link{--bs-btn-color: var(--bs-link-color);--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-disabled-color: var(--bs-secondary);--bs-btn-focus-shadow-rgb: var(--bs-link-color-rgb)}
diff --git a/tests/testthat/test-template-brand.R b/tests/testthat/test-template-brand.R
index e000bfd..94b219e 100644
--- a/tests/testthat/test-template-brand.R
+++ b/tests/testthat/test-template-brand.R
@@ -60,11 +60,11 @@ test_that("template dark CSS meets WCAG AA contrast", {
"body text" = c("--bs-body-color", "--bs-body-bg"),
"links" = c("--bs-link-color", "--bs-body-bg"),
"inline code" = c("--bs-code-color", "--bs-body-bg"),
- "syntax comments" = c("--bs-gray-500", "--bs-body-bg"),
- "syntax keywords" = c("--bs-info", "--bs-body-bg"),
- "syntax strings" = c("--bs-success", "--bs-body-bg"),
- "syntax warnings" = c("--bs-warning", "--bs-body-bg"),
- "syntax errors" = c("--bs-danger", "--bs-body-bg")
+ "muted text" = c("--bs-gray-500", "--bs-body-bg"),
+ "info text" = c("--bs-info", "--bs-body-bg"),
+ "success text" = c("--bs-success", "--bs-body-bg"),
+ "warning text" = c("--bs-warning", "--bs-body-bg"),
+ "danger text" = c("--bs-danger", "--bs-body-bg")
)
ratios <- vapply(
diff --git a/tests/testthat/test-template-css.R b/tests/testthat/test-template-css.R
index 2af1eab..355dc27 100644
--- a/tests/testthat/test-template-css.R
+++ b/tests/testthat/test-template-css.R
@@ -66,7 +66,7 @@ test_that("template stylesheets cover light and dark components", {
expect_lt(file.size(paths[[2]]), file.size(paths[[1]]))
})
-test_that("code block palettes match the Chulapa highlighters", {
+test_that("code palettes preserve accessible GitHub and One Dark colors", {
css <- paste(read_pkgdown_css(), collapse = "\n")
highlight <- substring(
css,
@@ -93,7 +93,7 @@ test_that("code block palettes match the Chulapa highlighters", {
c(
"#f6f8fa",
"#24292f",
- "#6e7781",
+ "#6a737d",
"#cf222e",
"#0550ae",
"#0a3069",
@@ -106,7 +106,7 @@ test_that("code block palettes match the Chulapa highlighters", {
c(
"#282c34",
"#abb2bf",
- "#7f848e",
+ "#8e939d",
"#c678dd",
"#d19a66",
"#98c379",
@@ -115,3 +115,49 @@ test_that("code block palettes match the Chulapa highlighters", {
)
)
})
+
+test_that("highlighted text meets AA contrast on its code background", {
+ css <- paste(read_pkgdown_css(), collapse = "\n")
+ highlight <- substring(
+ css,
+ regexpr("/* --- Syntax highlighting:", css, fixed = TRUE)
+ )
+ for (selector in c("pre", '[data-bs-theme="dark"] pre')) {
+ colors <- css_variables(highlight, selector)
+ roles <- setdiff(
+ names(colors),
+ c("--gitdevr-hl-bg", "--gitdevr-hl-error-bg")
+ )
+ ratios <- vapply(
+ roles,
+ \(role) {
+ background <- colors[["--gitdevr-hl-bg"]]
+ if (
+ role == "--gitdevr-hl-error" &&
+ colors[["--gitdevr-hl-error-bg"]] != "transparent"
+ ) {
+ background <- colors[["--gitdevr-hl-error-bg"]]
+ }
+ contrast_ratio(colors[[role]], background)
+ },
+ numeric(1)
+ )
+ expect_gte(min(ratios), 4.5)
+ }
+})
+
+test_that("Bootstrap RGB companions match their brand colors", {
+ css <- paste(read_pkgdown_css(), collapse = "\n")
+ variables <- css_variables(css, '[data-bs-theme="dark"]')
+ palette <- read_pkgdown_brand()$color$palette
+ names(palette) <- gsub("-", "_", names(palette), fixed = TRUE)
+ rgb_names <- grep("-rgb$", names(variables), value = TRUE)
+
+ expect_gt(length(rgb_names), 0)
+ for (name in rgb_names) {
+ color <- variables[[sub("-rgb$", "", name)]]
+ brand_name <- sub("^var\\(--brand-([a-z0-9_]+)\\)$", "\\1", color)
+ channels <- paste(hex_to_rgb(palette[[brand_name]]), collapse = ", ")
+ expect_equal(variables[[name]], channels, info = name)
+ }
+})