From 4e10690d1d2a5928d7e05829eb84113499a4aa6f Mon Sep 17 00:00:00 2001 From: Quarto GHA Workflow Runner Date: Fri, 17 Jan 2025 10:41:48 +0000 Subject: [PATCH 01/19] Built site for gh-pages --- .Rprofile | 1 - .github/workflows/publish.yml | 42 - .github/workflows/rne.yaml | 22 - .gitignore | 6 - .nojekyll | 1 + _quarto.yml | 47 - _quarto_internal_scss_error.scss | 12937 ---------------- a-lambda.github.io.Rproj | 14 - animate_plot.html | 648 + animate_plot.qmd | 25 - .../figure-html/geombar-animate-1.gif | Bin 0 -> 122858 bytes css/fira-code.css | 57 - dark.css | 21 - dice.png | Bin 47647 -> 0 bytes fonts/fira-code-v22-latin-300.eot | Bin 26716 -> 0 bytes fonts/fira-code-v22-latin-300.svg | 324 - fonts/fira-code-v22-latin-300.ttf | Bin 56800 -> 0 bytes fonts/fira-code-v22-latin-300.woff | Bin 29248 -> 0 bytes fonts/fira-code-v22-latin-300.woff2 | Bin 23200 -> 0 bytes fonts/fira-code-v22-latin-500.eot | Bin 26907 -> 0 bytes fonts/fira-code-v22-latin-500.svg | 325 - fonts/fira-code-v22-latin-500.ttf | Bin 56684 -> 0 bytes fonts/fira-code-v22-latin-500.woff | Bin 29372 -> 0 bytes fonts/fira-code-v22-latin-500.woff2 | Bin 23356 -> 0 bytes fonts/fira-code-v22-latin-600.eot | Bin 26884 -> 0 bytes fonts/fira-code-v22-latin-600.svg | 325 - fonts/fira-code-v22-latin-600.ttf | Bin 56764 -> 0 bytes fonts/fira-code-v22-latin-600.woff | Bin 29408 -> 0 bytes fonts/fira-code-v22-latin-600.woff2 | Bin 23344 -> 0 bytes fonts/fira-code-v22-latin-700.eot | Bin 26471 -> 0 bytes fonts/fira-code-v22-latin-700.svg | 325 - fonts/fira-code-v22-latin-700.ttf | Bin 56860 -> 0 bytes fonts/fira-code-v22-latin-700.woff | Bin 29124 -> 0 bytes fonts/fira-code-v22-latin-700.woff2 | Bin 22956 -> 0 bytes fonts/fira-code-v22-latin-regular.eot | Bin 26842 -> 0 bytes fonts/fira-code-v22-latin-regular.svg | 325 - fonts/fira-code-v22-latin-regular.ttf | Bin 56732 -> 0 bytes fonts/fira-code-v22-latin-regular.woff | Bin 29356 -> 0 bytes fonts/fira-code-v22-latin-regular.woff2 | Bin 23352 -> 0 bytes howto.html | 718 + howto.qmd | 76 - images/octocat-1711795343953.png | Bin 424323 -> 0 bytes index.html | 597 + index.qmd | 27 - light.css | 18 - quarto_website.html | 746 + quarto_website.qmd | 101 - renv.lock | 1033 -- renv/.gitignore | 7 - renv/activate.R | 1305 -- renv/settings.json | 19 - robots.txt | 1 + search.json | 65 + ...p-15f0456d0704da0c24295402780bab44.min.css | 12 + site_libs/bootstrap/bootstrap-icons.css | 2078 +++ site_libs/bootstrap/bootstrap-icons.woff | Bin 0 -> 176200 bytes site_libs/bootstrap/bootstrap.min.js | 7 + site_libs/clipboard/clipboard.min.js | 7 + site_libs/quarto-html/anchor.min.js | 9 + site_libs/quarto-html/popper.min.js | 6 + ...hting-07ba0ad10f5680c660e360ac31d2f3b6.css | 205 + site_libs/quarto-html/quarto.js | 911 ++ site_libs/quarto-html/tippy.css | 1 + site_libs/quarto-html/tippy.umd.min.js | 2 + site_libs/quarto-nav/headroom.min.js | 7 + site_libs/quarto-nav/quarto-nav.js | 325 + site_libs/quarto-search/autocomplete.umd.js | 3 + site_libs/quarto-search/fuse.min.js | 9 + site_libs/quarto-search/quarto-search.js | 1290 ++ sitemap.xml | 23 + sql.html | 850 + sql.qmd | 155 - styles.scss | 51 - styles2.scss | 25 - 74 files changed, 8521 insertions(+), 17613 deletions(-) delete mode 100644 .Rprofile delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/rne.yaml delete mode 100644 .gitignore create mode 100644 .nojekyll delete mode 100644 _quarto.yml delete mode 100644 _quarto_internal_scss_error.scss delete mode 100644 a-lambda.github.io.Rproj create mode 100644 animate_plot.html delete mode 100644 animate_plot.qmd create mode 100644 animate_plot_files/figure-html/geombar-animate-1.gif delete mode 100644 css/fira-code.css delete mode 100644 dark.css delete mode 100644 dice.png delete mode 100644 fonts/fira-code-v22-latin-300.eot delete mode 100644 fonts/fira-code-v22-latin-300.svg delete mode 100644 fonts/fira-code-v22-latin-300.ttf delete mode 100644 fonts/fira-code-v22-latin-300.woff delete mode 100644 fonts/fira-code-v22-latin-300.woff2 delete mode 100644 fonts/fira-code-v22-latin-500.eot delete mode 100644 fonts/fira-code-v22-latin-500.svg delete mode 100644 fonts/fira-code-v22-latin-500.ttf delete mode 100644 fonts/fira-code-v22-latin-500.woff delete mode 100644 fonts/fira-code-v22-latin-500.woff2 delete mode 100644 fonts/fira-code-v22-latin-600.eot delete mode 100644 fonts/fira-code-v22-latin-600.svg delete mode 100644 fonts/fira-code-v22-latin-600.ttf delete mode 100644 fonts/fira-code-v22-latin-600.woff delete mode 100644 fonts/fira-code-v22-latin-600.woff2 delete mode 100644 fonts/fira-code-v22-latin-700.eot delete mode 100644 fonts/fira-code-v22-latin-700.svg delete mode 100644 fonts/fira-code-v22-latin-700.ttf delete mode 100644 fonts/fira-code-v22-latin-700.woff delete mode 100644 fonts/fira-code-v22-latin-700.woff2 delete mode 100644 fonts/fira-code-v22-latin-regular.eot delete mode 100644 fonts/fira-code-v22-latin-regular.svg delete mode 100644 fonts/fira-code-v22-latin-regular.ttf delete mode 100644 fonts/fira-code-v22-latin-regular.woff delete mode 100644 fonts/fira-code-v22-latin-regular.woff2 create mode 100644 howto.html delete mode 100644 howto.qmd delete mode 100644 images/octocat-1711795343953.png create mode 100644 index.html delete mode 100644 index.qmd delete mode 100644 light.css create mode 100644 quarto_website.html delete mode 100644 quarto_website.qmd delete mode 100644 renv.lock delete mode 100644 renv/.gitignore delete mode 100644 renv/activate.R delete mode 100644 renv/settings.json create mode 100644 robots.txt create mode 100644 search.json create mode 100644 site_libs/bootstrap/bootstrap-15f0456d0704da0c24295402780bab44.min.css create mode 100644 site_libs/bootstrap/bootstrap-icons.css create mode 100644 site_libs/bootstrap/bootstrap-icons.woff create mode 100644 site_libs/bootstrap/bootstrap.min.js create mode 100644 site_libs/clipboard/clipboard.min.js create mode 100644 site_libs/quarto-html/anchor.min.js create mode 100644 site_libs/quarto-html/popper.min.js create mode 100644 site_libs/quarto-html/quarto-syntax-highlighting-07ba0ad10f5680c660e360ac31d2f3b6.css create mode 100644 site_libs/quarto-html/quarto.js create mode 100644 site_libs/quarto-html/tippy.css create mode 100644 site_libs/quarto-html/tippy.umd.min.js create mode 100644 site_libs/quarto-nav/headroom.min.js create mode 100644 site_libs/quarto-nav/quarto-nav.js create mode 100644 site_libs/quarto-search/autocomplete.umd.js create mode 100644 site_libs/quarto-search/fuse.min.js create mode 100644 site_libs/quarto-search/quarto-search.js create mode 100644 sitemap.xml create mode 100644 sql.html delete mode 100644 sql.qmd delete mode 100644 styles.scss delete mode 100644 styles2.scss diff --git a/.Rprofile b/.Rprofile deleted file mode 100644 index 81b960f..0000000 --- a/.Rprofile +++ /dev/null @@ -1 +0,0 @@ -source("renv/activate.R") diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index 4199e22..0000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,42 +0,0 @@ -on: - workflow_dispatch: - push: - branches: main - # schedule: - # - cron: '00 02 * * *' - -name: Quarto Publish - -jobs: - build-deploy: - runs-on: windows-latest - permissions: - contents: write - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Set up Quarto - uses: quarto-dev/quarto-actions/setup@v2 - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tinytex: true - version: 1.6.33 - - - name: Install R - uses: r-lib/actions/setup-r@v2 - with: - r-version: '4.4.2' - - - name: Install R Dependencies - uses: r-lib/actions/setup-renv@v2 - with: - cache-version: 1 - - - name: Render and Publish - uses: quarto-dev/quarto-actions/publish@v2 - with: - target: gh-pages - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/rne.yaml b/.github/workflows/rne.yaml deleted file mode 100644 index fe4dd65..0000000 --- a/.github/workflows/rne.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: rne -run-name: Setting up the rne database -on: [push] -jobs: - test-output: - runs-on: ubuntu-latest - steps: - - name: Test Output - run: echo "Here is a test" - connect-remote: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Show databases - run: | - PGPASSWORD=$DB_PASSWORD psql -h $DB_HOSTNAME -d $DB_NAME -p $DB_PORT -U $DB_USER -c "select count(*) from public.spatial_ref_sys;" - env: - DB_HOSTNAME: ${{ secrets.DB_HOSTNAME }} - DB_USER: ${{ secrets.DB_USER }} - DB_PASSWORD: ${{ secrets.DB_PASSWORD }} - DB_PORT: ${{ secrets.DB_PORT }} - DB_NAME: ${{ secrets.DB_NAME }} \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 52797a5..0000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.Rproj.user -.Rhistory -.RData -.Ruserdata -/docs/ -/.quarto/ diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..a941291 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ +276df7f2 \ No newline at end of file diff --git a/_quarto.yml b/_quarto.yml deleted file mode 100644 index ba01dd8..0000000 --- a/_quarto.yml +++ /dev/null @@ -1,47 +0,0 @@ -project: - type: website - output-dir: docs - -website: - title: "A lambda story" - open-graph: true - page-footer: "Made with Quarto" - navbar: - title: Alcor - left: - # - href: index.qmd - # text: About - # - about.qmd - - href: quarto_website.qmd - text: Quarto Website - icon: megaphone - - href: sql.qmd - text: SQL - - href: animate_plot.qmd - text: Animate Plot - tools: - - icon: github - href: github.com - -format: - html: - link-external-newwindow: true - theme: [cosmo, styles.scss] - lang: "fr" - # light: - # - minty - # - css/fira-code.css - # - light.css - # dark: - # - slate - # - dark.css - code-link: true - #code-fold: true - fontsize: 1.1rem - monofont: Fira Code # font for chunks - # css: styles.scss - toc: true - page-layout: full - - - diff --git a/_quarto_internal_scss_error.scss b/_quarto_internal_scss_error.scss deleted file mode 100644 index 957e5cf..0000000 --- a/_quarto_internal_scss_error.scss +++ /dev/null @@ -1,12937 +0,0 @@ -// quarto-scss-analysis-annotation { "quarto-version": "1.6.33" } - -// quarto-scss-analysis-annotation { "origin": "'use' section from format" } - - - - - - - - - - - - - - - -// quarto-scss-analysis-annotation { "origin": "'use' section from Quarto" } - - - - - - - -@use "sass:map" as listing-map; - - - - - - -@use "sass:color" as quarto-color; -@use "sass:map" as quarto-map; -@use "sass:math" as quarto-math; - - -// quarto-scss-analysis-annotation { "origin": "'use' section from user-defined SCSS" } - - - - - - - - - - - - - - - -// quarto-scss-analysis-annotation { "origin": "'functions' section from format" } - - - - - - - - - - - - - -// Bootstrap functions -// -// Utility mixins and functions for evaluating source code across our variables, maps, and mixins. - -// Ascending -// Used to evaluate Sass maps like our grid breakpoints. -@mixin _assert-ascending($map, $map-name) { - $prev-key: null; - $prev-num: null; - @each $key, $num in $map { - @if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" { - // Do nothing - } @else if not comparable($prev-num, $num) { - @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !"; - } @else if $prev-num >= $num { - @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !"; - } - $prev-key: $key; - $prev-num: $num; - } -} - -// Starts at zero -// Used to ensure the min-width of the lowest breakpoint starts at 0. -@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") { - @if length($map) > 0 { - $values: map-values($map); - $first-value: nth($values, 1); - @if $first-value != 0 { - @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}."; - } - } -} - -// Colors -@function to-rgb($value) { - @return red($value), green($value), blue($value); -} - -// stylelint-disable scss/dollar-variable-pattern -@function rgba-css-var($identifier, $target) { - @if $identifier == "body" and $target == "bg" { - @return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity)); - } @if $identifier == "body" and $target == "text" { - @return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity)); - } @else { - @return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity)); - } -} - -@function map-loop($map, $func, $args...) { - $_map: (); - - @each $key, $value in $map { - // allow to pass the $key and $value of the map as an function argument - $_args: (); - @each $arg in $args { - $_args: append($_args, if($arg == "$key", $key, if($arg == "$value", $value, $arg))); - } - - $_map: map-merge($_map, ($key: call(get-function($func), $_args...))); - } - - @return $_map; -} -// stylelint-enable scss/dollar-variable-pattern - -@function varify($list) { - $result: null; - @each $entry in $list { - $result: append($result, var(--#{$prefix}#{$entry}), space); - } - @return $result; -} - -// Internal Bootstrap function to turn maps into its negative variant. -// It prefixes the keys with `n` and makes the value negative. -@function negativify-map($map) { - $result: (); - @each $key, $value in $map { - @if $key != 0 { - $result: map-merge($result, ("n" + $key: (-$value))); - } - } - @return $result; -} - -// Get multiple keys from a sass map -@function map-get-multiple($map, $values) { - $result: (); - @each $key, $value in $map { - @if (index($values, $key) != null) { - $result: map-merge($result, ($key: $value)); - } - } - @return $result; -} - -// Merge multiple maps -@function map-merge-multiple($maps...) { - $merged-maps: (); - - @each $map in $maps { - $merged-maps: map-merge($merged-maps, $map); - } - @return $merged-maps; -} - -// Replace `$search` with `$replace` in `$string` -// Used on our SVG icon backgrounds for custom forms. -// -// @author Kitty Giraudel -// @param {String} $string - Initial string -// @param {String} $search - Substring to replace -// @param {String} $replace ('') - New value -// @return {String} - Updated string -@function str-replace($string, $search, $replace: "") { - $index: str-index($string, $search); - - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } - - @return $string; -} - -// See https://codepen.io/kevinweber/pen/dXWoRw -// -// Requires the use of quotes around data URIs. - -@function escape-svg($string) { - @if str-index($string, "data:image/svg+xml") { - @each $char, $encoded in $escaped-characters { - // Do not escape the url brackets - @if str-index($string, "url(") == 1 { - $string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}"); - } @else { - $string: str-replace($string, $char, $encoded); - } - } - } - - @return $string; -} - -// Color contrast -// See https://github.com/twbs/bootstrap/pull/30168 - -// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255) -// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern -$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1; - -@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) { - $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black; - $max-ratio: 0; - $max-ratio-color: null; - - @each $color in $foregrounds { - $contrast-ratio: contrast-ratio($background, $color); - @if $contrast-ratio > $min-contrast-ratio { - @return $color; - } @else if $contrast-ratio > $max-ratio { - $max-ratio: $contrast-ratio; - $max-ratio-color: $color; - } - } - - @warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}..."; - - @return $max-ratio-color; -} - -@function contrast-ratio($background, $foreground: $color-contrast-light) { - $l1: luminance($background); - $l2: luminance(opaque($background, $foreground)); - - @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05)); -} - -// Return WCAG2.1 relative luminance -// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance -// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio -@function luminance($color) { - $rgb: ( - "r": red($color), - "g": green($color), - "b": blue($color) - ); - - @each $name, $value in $rgb { - $value: if(divide($value, 255) < .04045, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1)); - $rgb: map-merge($rgb, ($name: $value)); - } - - @return (map-get($rgb, "r") * .2126) + (map-get($rgb, "g") * .7152) + (map-get($rgb, "b") * .0722); -} - -// Return opaque color -// opaque(#fff, rgba(0, 0, 0, .5)) => #808080 -@function opaque($background, $foreground) { - @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%); -} - -// scss-docs-start color-functions -// Tint a color: mix a color with white -@function tint-color($color, $weight) { - @return mix(white, $color, $weight); -} - -// Shade a color: mix a color with black -@function shade-color($color, $weight) { - @return mix(black, $color, $weight); -} - -// Shade the color if the weight is positive, else tint it -@function shift-color($color, $weight) { - @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight)); -} -// scss-docs-end color-functions - -// Return valid calc -@function add($value1, $value2, $return-calc: true) { - @if $value1 == null { - @return $value2; - } - - @if $value2 == null { - @return $value1; - } - - @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) { - @return $value1 + $value2; - } - - @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2); -} - -@function subtract($value1, $value2, $return-calc: true) { - @if $value1 == null and $value2 == null { - @return null; - } - - @if $value1 == null { - @return -$value2; - } - - @if $value2 == null { - @return $value1; - } - - @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) { - @return $value1 - $value2; - } - - @if type-of($value2) != number { - $value2: unquote("(") + $value2 + unquote(")"); - } - - @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2); -} - -@function divide($dividend, $divisor, $precision: 10) { - $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1); - $dividend: abs($dividend); - $divisor: abs($divisor); - @if $dividend == 0 { - @return 0; - } - @if $divisor == 0 { - @error "Cannot divide by 0"; - } - $remainder: $dividend; - $result: 0; - $factor: 10; - @while ($remainder > 0 and $precision >= 0) { - $quotient: 0; - @while ($remainder >= $divisor) { - $remainder: $remainder - $divisor; - $quotient: $quotient + 1; - } - $result: $result * 10 + $quotient; - $factor: $factor * .1; - $remainder: $remainder * 10; - $precision: $precision - 1; - @if ($precision < 0 and $remainder >= $divisor * 5) { - $result: $result + 1; - } - } - $result: $result * $factor * $sign; - $dividend-unit: unit($dividend); - $divisor-unit: unit($divisor); - $unit-map: ( - "px": 1px, - "rem": 1rem, - "em": 1em, - "%": 1% - ); - @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) { - $result: $result * map-get($unit-map, $dividend-unit); - } - @return $result; -} - -///////////////////////////////////////////////////////////////// -// Color contrasting (backported to BS4 from BS5) -// See https://github.com/twbs/bootstrap/pull/30168 -///////////////////////////////////////////////////////////////// - -// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255) -// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern -$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1; - -@function color-contrast($background, $foregrounds: null) { - - // These variables should be defined in _variables.scss, but we also - // define them here so that 3rd party libs can use if they want - // without polluting the global namespace - $black: #000 !default; - $white: #fff !default; - $color-contrast-dark: $black !default; - $color-contrast-light: $white !default; - $min-contrast-ratio: 3 !default; - - @if $foregrounds == null { - $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black; - } @else { - $foregrounds: $foregrounds, $color-contrast-light, $color-contrast-dark, $white, $black; - } - - $max-ratio: 0; - $max-ratio-color: null; - - @each $color in $foregrounds { - $contrast-ratio: contrast-ratio($background, $color); - @if $contrast-ratio > $min-contrast-ratio { - @return $color; - } @else if $contrast-ratio > $max-ratio { - $max-ratio: $contrast-ratio; - $max-ratio-color: $color; - } - } - - $color-contrast-warnings: false !default; - @if $color-contrast-warnings { - @warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}..."; - } - - @return $max-ratio-color; -} - -@function contrast-ratio($background, $foreground: $color-contrast-light) { - $l1: luminance($background); - $l2: luminance(opaque($background, $foreground)); - - @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05)); -} - -// Return WCAG2.0 relative luminance -// See https://www.w3.org/WAI/GL/wiki/Relative_luminance -// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests -@function luminance($color) { - $rgb: ( - "r": red($color), - "g": green($color), - "b": blue($color) - ); - - @each $name, $value in $rgb { - $value: if(divide($value, 255) < .04045, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1)); - $rgb: map-merge($rgb, ($name: $value)); - } - - @return (map-get($rgb, "r") * .2126) + (map-get($rgb, "g") * .7152) + (map-get($rgb, "b") * .0722); -} - -// Return opaque color -// opaque(#fff, rgba(0, 0, 0, .5)) => #808080 -@function opaque($background, $foreground) { - @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%); -} - -// Added in BS5 as an alternative to the \ operator, which -// throws warnings in Dart Sass -// https://github.com/twbs/bootstrap/pull/34245 -@function divide($dividend, $divisor, $precision: 10) { - $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1); - $dividend: abs($dividend); - $divisor: abs($divisor); - @if $dividend == 0 { - @return 0; - } - @if $divisor == 0 { - @error "Cannot divide by 0"; - } - $remainder: $dividend; - $result: 0; - $factor: 10; - @while ($remainder > 0 and $precision >= 0) { - $quotient: 0; - @while ($remainder >= $divisor) { - $remainder: $remainder - $divisor; - $quotient: $quotient + 1; - } - $result: $result * 10 + $quotient; - $factor: $factor * .1; - $remainder: $remainder * 10; - $precision: $precision - 1; - @if ($precision < 0 and $remainder >= $divisor * 5) { - $result: $result + 1; - } - } - $result: $result * $factor * $sign; - $dividend-unit: unit($dividend); - $divisor-unit: unit($divisor); - $unit-map: ( - "px": 1px, - "rem": 1rem, - "em": 1em, - "%": 1% - ); - @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) { - $result: $result * map-get($unit-map, $dividend-unit); - } - @return $result; -} - - -// quarto-scss-analysis-annotation { "origin": "'functions' section from Quarto" } - -// Our website navbar implementation will shift the body down -// to accomodate the navbar, but the height is variable. As a result -// we compute the height using JS, so it is perfect. This can lead to -// a content jump when the js executes, so place a padding there at render -// time to minimize this. -@function navbar-default-offset($theme) { - $offsets: ( - darkly: 82px, - flatly: 82px, - litera: 67px, - lumen: 68px, - lux: 105px, - materia: 96px, - pulse: 89px, - quartz: 82px, - sandstone: 63px, - simplex: 80px, - sketchy: 68px, - slate: 66px, - zephyr: 76px, - ); - - $val: null; - @if ($theme != null) { - $val: quarto-map.get($offsets, $theme); - } - - @if ($val != null) { - @return $val; - } @else { - @return 64px; - } -} - - - - - - -@function listing-override-value($theme, $varname, $default) { - // These will be defined in bootstrap, but creating values here - // That will make this function accessible to callers prior to bootstrap variables - // being set - $black: rgb(0, 0, 0) !default; - $white: rgb(255, 255, 255) !default; - $gray-300: #dee2e6 !default; - $gray-500: #adb5bd !default; - $gray-600: #6c757d !default; - $blue: #0d6efd !default; - - $theme-overrides: ( - cyborg: ( - category-border: solid $gray-500 1px, - category-color: $gray-500, - form-background-color: $body-bg, - form-color: $body-color, - input-group-border: solid $text-muted 1px, - input-group-border-radius: $border-radius, - ), - darkly: ( - form-background-color: $body-bg, - form-color: $body-color, - category-border: solid $gray-600 1px, - category-color: $gray-600, - ), - materia: ( - input-text-margin: 0 0.5em 0 0, - ), - quartz: ( - category-color: $gray-300, - input-text-placeholder-color: $gray-500, - ), - slate: ( - category-border: solid $gray-600 1px, - category-color: $gray-600, - form-background-color: $body-bg, - form-color: $body-color, - input-text-background-color: $body-bg, - input-text-color: $body-color, - input-group-border: solid $gray-600 1px, - ), - solar: ( - input-group-border: solid $gray-600 1px, - category-color: $body-color, - category-border: solid $body-color 1px, - ), - superhero: ( - input-text-background-color: $body-bg, - input-text-color: $body-color, - input-group-border: solid $gray-600 1px, - category-color: $gray-600, - category-border: solid $gray-600 1px, - ), - vapor: ( - category-border: solid $text-muted 1px, - input-group-border: solid $text-muted 1px, - ), - ); - - $val: null; - @if ($theme != null) { - $theme-vals: listing-map.get($theme-overrides, $theme); - @if ($theme-vals != null) { - $val: listing-map.get($theme-vals, $varname); - } - } - - @if ($val != null) { - @return $val; - } @else { - @return $default; - } -} - -/*-- scss:variables --*/ - -// Since we use these colors, we need to ensure that they -// are defined (for example, if no theme is specified) -$gray-300: #dee2e6 !default; -$gray-500: #adb5bd !default; -$gray-600: #6c757d !default; -$gray-600: #6c757d !default; -$gray-800: #343a40 !default; - -$card-cap-bg: rgba($gray-800, 0.25) !default; - -$border-color: $gray-300 !default; -$border-radius: 0.25rem !default; -$border-radius-sm: 0.2em !default; - -$text-muted: $gray-600 !default; - -$theme-name: null !default; - - - - - - -@function colorToRGB($color) { - @return "rgb(" + red($color) + ", " + green($color) + ", " + blue($color) + - ")"; -} - -@function colorToRGBA($color) { - @return "rgba(" + red($color) + ", " + green($color) + ", " + blue($color) + - ", " + alpha($color) + ")"; -} - -@function str-replace($string, $search, $replace: "") { - $index: str-index($string, $search); - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + - str-replace( - str-slice($string, $index + str-length($search)), - $search, - $replace - ); - } - @return $string; -} - -// Dims a color (either making it more white or more black) -@function theme-dim($baseColor, $amount) { - @if (tone($baseColor) == "dark") { - @return lighten($baseColor, $amount); - } @else { - @return darken($baseColor, $amount); - } -} - -// Provides a contrast color for a given color -// The color is the starting color that will used to form a contrasting color -// The bgColor is the color that will be used to test contrast (e.g. the color -// will be shifted until its contrast against the bgColor is acceptable) -@function theme-contrast($color, $bgColor, $level: "AAA") { - // These will be defined in bootstrap, but creating values here - // That will make this function accessible to callers prior to bootstrap variables - // being set - $black: rgb(0, 0, 0) !default; - $white: rgb(255, 255, 255) !default; - - @if tone($bgColor) == "light" { - @return accessibleContrast($color, $black, $bgColor, $level); - } @else { - @return accessibleContrast($color, $white, $bgColor, $level); - } -} - -@function accessibleContrast($startColor, $mixColor, $bgColor, $level: "AAA") { - // A: 3:1 - // AA: 4.5:1 - // AAA: 7:1 - $goalContrastRatio: 3; - @if $level == "AA" { - $goalContrastRatio: 4.5; - } @else { - $goalContrastRatio: 7; - } - - $percentMix: 100; - $contrastRatio: 0; - $contrastColor: null; - @while ($contrastRatio < $goalContrastRatio and $percentMix > 0) { - $contrastColor: mix( - $startColor, - $mixColor, - percentage(quarto-math.div($percentMix, 100)) - ); - $contrastRatio: quarto-contrast($contrastColor, $bgColor); - $percentMix: $percentMix - 1; - } - - @return $contrastColor; -} - -// Fades a color towards the background color -@function theme-fade($baseColor, $backgroundColor, $amount) { - @if (tone($backgroundColor) == "dark") { - @return darken($baseColor, $amount); - } @else { - @return lighten($baseColor, $amount); - } -} - -@function theme-highlight($baseColor, $backgroundColor, $amount) { - @if (tone($backgroundColor) == "dark") { - @return lighten($baseColor, $amount); - } @else { - @return darken($baseColor, $amount); - } -} - -@function theme-override-value($theme, $varname, $default) { - // These will be defined in bootstrap, but creating values here - // That will make this function accessible to callers prior to bootstrap variables - // being set - $black: rgb(0, 0, 0) !default; - $white: rgb(255, 255, 255) !default; - $gray-500: #adb5bd !default; - $gray-300: #dee2e6 !default; - $blue: #0d6efd !default; - - $simplex-border-mix: mix($white, $black, 93.5%) !default; - - $theme-overrides: ( - cerulean: ( - navbar-fg: $white, - valuebox-bg-primary: #2fa4e7, - valuebox-bg-info: #3d9dd1, - valuebox-bg-success: #67a34d, - valuebox-bg-warning: #aa9208, - valuebox-bg-danger: #c48282, - ), - cosmo: ( - navbar-bg: - if( - $default == #2780e3, - if(variable-exists(light), $light, $gray-500), - $default - ), - link-color: #2761e3, - valuebox-bg-primary: #5397e9, - valuebox-bg-info: #9954bbb3, - valuebox-bg-success: #3aa716, - valuebox-bg-warning: #fa6400, - valuebox-bg-danger: #ff0039b3, - ), - cyborg: ( - navbar-bg: - if( - $default == #2a9fd6, - if(variable-exists(secondary), $secondary, $black), - $default - ), - navbar-hl: $white, - ), - darkly: ( - navbar-fg: $gray-300, - navbar-hl: $white, - input-border-color: $gray-500, - ), - flatly: ( - navbar-hl: $white, - valuebox-bg-primary: rgba(39, 128, 227, 0.7), - valuebox-bg-info: rgba(153, 84, 187, 0.7), - valuebox-bg-success: rgba(63, 182, 24, 0.7), - valuebox-bg-warning: rgba(255, 117, 24, 0.7), - valuebox-bg-danger: rgba(255, 0, 57, 0.7), - ), - journal: ( - navbar-fg: rgba($white, 0.7), - navbar-hl: $white, - valuebox-bg-primary: #f0938f, - valuebox-bg-info: #3d9dd1, - valuebox-bg-success: #65a244, - valuebox-bg-warning: #ad9310, - valuebox-bg-danger: #c77f7f, - ), - litera: ( - navbar-bg: if($default == #4582ec, $white, $default), - ), - lumen: ( - navbar-fg: rgba($white, 0.7), - navbar-hl: $white, - valuebox-bg-primary: #67abcc, - valuebox-bg-info: #3d9dd1, - valuebox-bg-success: #5ea343, - valuebox-bg-warning: #a79011, - valuebox-bg-danger: #ca8181, - ), - lux: (), - materia: ( - navbar-fg: rgba($white, 0.7), - navbar-hl: $white, - ), - minty: ( - navbar-fg: $white, - ), - morph: ( - navbar-bg: - if( - $default == #378dfc, - if(variable-exists(body-bg), $body-bg, $black), - $default - ), - navbar-fg: rgba($black, 0.5), - ), - paper: ( - valuebox-bg-primary: #4396ea, - valuebox-bg-info: #c277cf, - valuebox-bg-success: #59a343, - valuebox-bg-warning: #d68100, - valuebox-bg-danger: #f46762, - ), - pulse: ( - navbar-fg: rgba($white, 0.7), - navbar-hl: $white, - ), - quartz: ( - navbar-fg: rgba($white, 0.8), - navbar-hl: $white, - ), - sandstone: ( - navbar-bg: - if( - $default == #325d88, - if(variable-exists(dark), $dark, $black), - $default - ), - navbar-fg: rgba($white, 0.7), - navbar-hl: $white, - valuebox-bg-primary: #7b98ad, - valuebox-bg-info: #3d9dd1, - valuebox-bg-success: #60a545, - valuebox-bg-warning: #af8e08, - valuebox-bg-danger: #ca8181, - ), - simplex: ( - navbar-bg: if($default == #d9230f, $white, $default), - navbar-fg: rgba($black, 0.6), - navbar-hl: $black, - nav-tabs-link-active-border-color: $simplex-border-mix $simplex-border-mix - transparent, - valuebox-bg-primary: #db766b, - valuebox-bg-info: #359ed0, - valuebox-bg-success: #59a343, - valuebox-bg-warning: #a59212, - valuebox-bg-danger: #c48282, - ), - sketchy: ( - navbar-fg: $white, - ), - slate: (), - solar: ( - navbar-bg: - if( - $default == #b58900, - if(variable-exists(dark), $dark, $black), - $default - ), - navbar-hl: $white, - ), - spacelab: ( - navbar-bg: - if( - $default == #446e9b, - if(variable-exists(light), $light, #bbb), - $default - ), - navbar-hl: if(variable-exists(link-color), $link-color, $blue), - valuebox-bg-primary: #7e97ae, - valuebox-bg-info: #3d9dd1, - valuebox-bg-success: #62a540, - valuebox-bg-warning: #a59212, - valuebox-bg-danger: #c97e7e, - ), - superhero: ( - navbar-bg: - if( - $default == #df6919, - if(variable-exists(dark), $dark, $black), - $default - ), - navbar-hl: $white, - ), - united: ( - navbar-fg: rgba($white, 0.8), - navbar-hl: $white, - valuebox-bg-primary: #5c9bbc, - valuebox-bg-info: #3d9dd1, - valuebox-bg-success: #60a545, - valuebox-bg-warning: #9a9623, - valuebox-bg-danger: #c48282, - ), - vapor: ( - navbar-fg: rgba($white, 0.8), - navbar-hl: $white, - ), - yeti: (), - zephyr: (), - ); - - $val: null; - @if ($theme != null) { - $theme-vals: quarto-map.get($theme-overrides, $theme); - @if ($theme-vals != null) { - $val: quarto-map.get($theme-vals, $varname); - } - } - - @if ($val != null) { - @return $val; - } @else { - @return $default; - } -} - -@function theme-navbar-bg($theme, $primary) { - $white: rgb(255, 255, 255) !default; - - // These will be defined in bootstrap, but creating values here - // That will make this function accessible to callers prior to bootstrap variables - // being set - $theme-bgs: ( - litera: $white, - cyborg: if(variable-exists(body-bg), $body-bg, #000), - ); - - $bg: quarto-map.get($theme-bgs, $theme); - @if ($bg != null) { - @return $bg; - } @else { - @return if(variable-exists(primary), $primary, #fff); - } -} - -@function theme-navbar-fg($theme, $primary) { - $white: rgb(255, 255, 255) !default; - - // These will be defined in bootstrap, but creating values here - // That will make this function accessible to callers prior to bootstrap variables - // being set - $theme-fgs: ( - cerulean: $white, - ); - - $bg: quarto-map.get($theme-bgs, $theme); - @if ($bg != null) { - @return $bg; - } @else { - @return if(variable-exists(primary), $primary, #fff); - } -} - -@function repeat-chars($chars, $n) { - $final: ""; - @for $i from 1 through $n { - $final: $final + $chars; - } - @return $final; -} - -@function _linear-channel-value($channel-value) { - $normalized-channel-value: quarto-math.div($channel-value, 255); - @if $normalized-channel-value < 0.03928 { - @return quarto-math.div($normalized-channel-value, 12.92); - } - - @return quarto-math.pow( - quarto-math.div(($normalized-channel-value + 0.055), 1.055), - 2.4 - ); -} - -// Calculate the luminance for a color. -// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests -@function luminance($color) { - $red: _linear-channel-value(quarto-color.red($color)); - $green: _linear-channel-value(quarto-color.green($color)); - $blue: _linear-channel-value(quarto-color.blue($color)); - - @return 0.2126 * $red + 0.7152 * $green + 0.0722 * $blue; -} - -// Calculate the contrast ratio between two colors. -// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests -@function quarto-contrast($back, $front) { - $backLum: luminance($back) + 0.05; - $foreLum: luminance($front) + 0.05; - - @return quarto-math.div( - quarto-math.max($backLum, $foreLum), - quarto-math.min($backLum, $foreLum) - ); -} - -// Determine whether the color is 'light' or 'dark'. -@function tone($color) { - @if $color == "dark" or $color == "light" { - @return $color; - } - - $minimumContrast: 3.1; - - $lightContrast: quarto-contrast($color, white); - $darkContrast: quarto-contrast($color, rgba(black, 0.87)); - - @if ($lightContrast < $minimumContrast) and ($darkContrast > $lightContrast) { - @return "light"; - } @else { - @return "dark"; - } -} - -// Determine whether to use dark or light text on top of given color to meet accessibility standards for contrast. -// Returns 'dark' if the given color is light and 'light' if the given color is dark. -@function contrast-tone($color) { - @return if(tone($color) == "dark", "light", "dark"); -} - - -// quarto-scss-analysis-annotation { "origin": "'functions' section from user-defined SCSS" } - - - - - - - - - - - - - - - -// quarto-scss-analysis-annotation { "origin": "Defaults from user-defined SCSS" } - - -// Sass Variables -// https://quarto.org/docs/output-formats/html-themes.html#sass-variables - -$theme-ligthblue: #f8f8ff; -$theme-blue: #223068; -$theme-black: black; -$theme-navbar: #517699; - -/* Colors */ -$body-bg: $theme-ligthblue; -$body-color: $theme-blue; -$link-color: $theme-black; -$navbar-bg: $theme-navbar; - -/* Fonts */ -$font-family-sans-serif: "Source Sans Pro", Roboto, Arial, sans-serif; -$font-size-root: 17px; - - -// Heading font size customization -$h1-font-size: 2rem !default; -$h2-font-size: 1.65rem !default; -$h3-font-size: 1.45rem !default; -$h4-font-size: 1.25rem !default; -$h5-font-size: 1.1rem !default; - -$kbd-padding-y: 0.4rem !default; -$kbd-padding-x: 0.4rem !default; - -// Speed up the default transition for the navbar -$transition-collapse: height 0.2s ease !default; - -// Adjust the base font size up a little -$font-size-root: 17px !default; - -// Disable smooth scrolling -$enable-smooth-scroll: false !default; - -// quarto-scss-analysis-annotation { "origin": "cosmo (builtin theme)" } - -$theme: "cosmo" !default; - -// -// Color system -// - -$white: #fff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #868e96 !default; -$gray-700: #495057 !default; -$gray-800: #373a3c !default; -$gray-900: #212529 !default; -$black: #000 !default; - -$blue: #2780e3 !default; -$indigo: #6610f2 !default; -$purple: #613d7c !default; -$pink: #e83e8c !default; -$red: #ff0039 !default; -$orange: #f0ad4e !default; -$yellow: #ff7518 !default; -$green: #3fb618 !default; -$teal: #20c997 !default; -$cyan: #9954bb !default; - -$primary: $blue !default; -$secondary: $gray-800 !default; -$success: $green !default; -$info: $cyan !default; -$warning: $yellow !default; -$danger: $red !default; -$light: $gray-100 !default; -$dark: $gray-800 !default; - -$min-contrast-ratio: 2.6 !default; - -// Options - -$enable-rounded: false !default; - -// Body - -$body-color: $gray-800 !default; - -// Fonts - -// stylelint-disable-next-line value-keyword-case -$font-family-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default; -$headings-font-weight: 400 !default; - -// Navbar - -$navbar-dark-hover-color: rgba($white, 1) !default; -$navbar-light-hover-color: rgba($black, .9) !default; - -// Alerts - -$alert-border-width: 0 !default; - -// Progress bars - -$progress-height: .5rem !default; - - - -/*-- scss: functions --*/ - -@function bannerColor() { - @if $title-banner-color { - @return $title-banner-color; - } @else { - @if variable-exists(navbar-fg) { - @return $navbar-fg; - } @else { - @return $body-bg; - } - } -} - -@function bannerDim() { - @return theme-fade(bannerColor(), bannerBg(), 20%); -} - -@function bannerBg() { - @if $title-banner-bg { - @return $title-banner-bg; - } @else { - // figure out default background, navbar of body color - @if variable-exists(navbar-bg) { - @return $navbar-bg; - } @else { - @return $body-color; - } - } -} - -/*-- scss:variables --*/ -$title-banner-color: null !default; -$title-banner-bg: null !default; -$title-banner-image: null !default; - - -$btn-code-copy-color: #5E5E5E !default; -$btn-code-copy-color-active: #4758AB !default; - - - - - - - - - - - - - -// quarto-scss-analysis-annotation { "origin": "Defaults from Quarto's SCSS" } - -$code-copy-selector: "pre.sourceCode:hover > " !default; -$code-white-space: pre !default; -$tbl-cap-location: top !default; -$sidebar-bg: if(variable-exists(body-bg), $body-bg, #fff) !default; -// Default the theme name -$theme-name: if(variable-exists(theme), $theme, ""); - -// Colors that must be defined -$blue: #0d6efd !default; -$primary: $blue !default; -$white: #ffffff !default; -$gray-200: #e9ecef !default; -$gray-100: #f8f9fa !default; -$gray-900: #212529 !default; -// Pending SCSS change until Charles clears it with us -// $link-color: theme-override-value($theme-name, "link-color", $primary) !default; -// -$link-color: $primary !default; -$link-color: if( - $link-color == $blue, - theme-override-value($theme-name, "link-color", $link-color), - $link-color -); -$link-color-bg: transparent !default; - -/* Code Block Formatting */ -// Code Block Border Treatment -$code-block-border-left: false !default; -$code-block-border-left-style: solid !default; -$code-block-border-left-size: 3px !default; -$code-block-padding-left: 0.6em !default; - -// Code Block Background Treatment -// $code-block-bg, $code-block-bg-padding, $code-block-bg-alpha -$code-block-bg: true !default; -$code-block-bg-padding: 0.4em !default; -$code-block-bg-alpha: -0.35 !default; - -// Controls when the code block will switch to a dark -// version of a theme -$code-block-theme-dark-threshhold: 40% !default; - -/* Inline Code Formatting */ -// $code-bg, $code-color, $code-padding -$code-color: #7d12ba !default; - -// Set a default body emphasis color -$code-bg: $gray-100 !default; - -// toc variables -$toc-color: $link-color !default; -$toc-font-size: 0.875rem !default; -$toc-active-border: $toc-color !default; -$toc-inactive-border: $gray-200 !default; - -$toc-tools-font-size: 0.8rem !default; - -/* Callout customization */ -// Formatting -$callout-border-width: 5px !default; -$callout-border-scale: 0% !default; -$callout-icon-scale: 10% !default; -$callout-margin-top: 1.25rem !default; -$callout-margin-bottom: 1.25rem !default; - -// Navbar -$navbar-default: if( - variable-exists(theme), - if(variable-exists(primary), $primary, #517699), - #517699 -); - -// If the user provides a navbar-bg, we ned to ignore the -// theme overide and just recalculate a good value -$navbar-hl-override: if( - variable-exists(navbar-bg) and variable-exists(link-color), - theme-contrast($link-color, $navbar-bg), - false -); -$navbar-bg: theme-override-value( - $theme-name, - "navbar-bg", - $navbar-default -) !default; - -$btn-bg: if(variable-exists(secondary), $secondary, #6c757d) !default; -$btn-fg: theme-contrast($btn-bg, $btn-bg) !default; - -$body-contrast-bg: if(variable-exists(body-bg), $body-bg, $white); -$body-contrast-color: if(variable-exists(body-color), $body-color, $gray-900); -$navbar-fg: if( - $navbar-bg == transparent, - theme-override-value( - $theme-name, - "navbar-fg", - theme-contrast($body-contrast-color, $body-contrast-bg) - ), - theme-override-value( - $theme-name, - "navbar-fg", - theme-contrast($navbar-bg, $navbar-bg) - ) -) !default; - -$navbar-hl: if( - $navbar-hl-override != false, - $navbar-hl-override, - theme-override-value( - $theme-name, - "navbar-hl", - if( - variable-exists(link-color), - theme-contrast($link-color, $navbar-bg), - $navbar-fg - ) - ) -) !default; -$navbar-brand: theme-override-value( - $theme-name, - "navbar-brand", - $navbar-fg -) !default; -$navbar-brand-hl: theme-override-value( - $theme-name, - "navbar-brand-hl", - $navbar-hl -) !default; - -$navbar-toggler-icon-bg: url("data:image/svg+xml,") !default; -$navbar-toggler-border-color: rgba($navbar-fg, 0) !default; -$navbar-hover-color: rgba($navbar-hl, 0.8) !default; -$navbar-disabled-color: rgba($navbar-fg, 0.75) !default; -$navbar-toggler-padding-x: 0 !default; -$navbar-toggler-padding-y: 0.25 !default; - -// We omit the !default here b/c the dark and light variants -// are not meaningful in our usage of bootstrap. Instead, we will explicitly -// manage these using the above documented variables -$navbar-dark-bg: $navbar-bg; -$navbar-dark-color: $navbar-fg; -$navbar-dark-hover-color: $navbar-hover-color; -$navbar-dark-active-color: $navbar-hl; -$navbar-dark-disabled-color: $navbar-disabled-color; -$navbar-dark-toggler-icon-bg: $navbar-toggler-icon-bg; -$navbar-dark-toggler-border-color: $navbar-toggler-border-color; - -$navbar-light-bg: $navbar-bg; -$navbar-light-color: $navbar-fg; -$navbar-light-hover-color: $navbar-hover-color; -$navbar-light-active-color: $navbar-hl; -$navbar-light-disabled-color: $navbar-disabled-color; -$navbar-light-toggler-icon-bg: $navbar-toggler-icon-bg; -$navbar-light-toggler-border-color: $navbar-toggler-border-color; - -$navbar-light-brand-color: $navbar-brand; -$navbar-light-brand-hover-color: $navbar-brand-hl; -$navbar-dark-brand-color: $navbar-brand; -$navbar-dark-brand-hover-color: $navbar-brand-hl; - -// Sidebar coloring -$sidebar-bg: if(variable-exists(light), $light, #fff) !default; -$sidebar-fg: null !default; -@if $sidebar-bg == transparent { - $sidebar-fg: theme-contrast($body-contrast-color, $body-contrast-bg) !default; -} @else { - $sidebar-fg: theme-contrast($sidebar-bg, $sidebar-bg) !default; -} -$sidebar-hl: null; -$sidebar-font-size: 0.925rem !default; -$sidebar-font-size-section: 0.875rem !default; -$sidebar-font-size-collapse: 1rem !default; -$sidebar-font-size-section-collapse: 1.1rem !default; -$sidebar-border: false !default; - -// Title block variables -$title-block-color: $body-contrast-color !default; -$title-block-contast-color: $body-contrast-bg !default; -$title-block-padding-top: 2.5em !default; - -// Footer coloring -$footer-bg: if(variable-exists(body-bg), $body-bg, #fff) !default; -$footer-fg: theme-contrast($footer-bg, $footer-bg, "AA") !default; -$footer-font-size: 0.825em !default; -$footer-left-font-size: $footer-font-size !default; -$footer-center-font-size: $footer-font-size !default; -$footer-right-font-size: $footer-font-size !default; - -// Disable default grid system and switch to CSS grid -$enable-grid-classes: false; -$enable-cssgrid: true; - -$zindex-pagelayout: 998; - -$popover-bg: if(variable-exists(body-bg), $body-bg, null) !default; -$input-bg: if(variable-exists(body-bg), $body-bg, null) !default; - -// Note that 'default' is intentionally omitted from this -// because we're using the default value if one is defined at this -// point (the if variable exists check in the default). -// This is a change to override the input border color for -// darkly, which sets the border color to the body color for -// whatever reason. -$input-border-color: theme-override-value( - $theme-name, - "input-border-color", - if(variable-exists(input-border-color), $input-border-color, null) -); - -// Same as above (default is respected if there is not override -// so the `!default` keyword is omitted). Some themes don't provide -// active tab border colors and they customize the main border -// color which results in the tabs looking slightly weird since the -// colors may not match (for example, simplex). -$nav-tabs-link-active-border-color: theme-override-value( - $theme-name, - "nav-tabs-link-active-border-color", - if( - variable-exists(nav-tabs-link-active-border-color), - $nav-tabs-link-active-border-color, - null - ) -); - -/* GRID VARIABLES */ -// The left hand sidebar -$grid-sidebar-width: 250px !default; -// The main body -$grid-body-width: 800px !default; -// The right hand margin bar -$grid-margin-width: 250px !default; -// The gutter that appears between the above columns -$grid-column-gutter-width: 1.5em !default; - -/* CODE ANNOTATION COLORS */ -$code-annotation-higlight-color: #aaaaaa44 !default; -$code-annotation-higlight-bg: #aaaaaa22 !default; - -$breadcrumb-divider: quote(">") !default; - -// table variable overrides -$table-group-separator-color: mix( - if(variable-exists(body-color), $body-color, $gray-900), - $body-contrast-bg, - 50% -) !default; -$table-group-separator-color-lighter: mix( - if(variable-exists(body-color), $body-color, $gray-900), - $body-contrast-bg, - 70% -) !default; - -$bootstrap-version: 5; - -$h1h2h3-font-weight: 600 !default; - -// variables required by _brand.yml - -// these variables need to have been defined here already -// and are repeated in the framework's own _variables.scss -// This will require us to monitor framework changes -// to avoid drift -$font-weight-base: 400 !default; -$small-font-size: 0.875em !default; -$code-font-size: $small-font-size !default; -$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, - "Liberation Mono", "Courier New", monospace !default; - -$font-family-monospace-block: $font-family-monospace !default; -$font-family-monospace-inline: $font-family-monospace !default; -$font-weight-monospace: $font-weight-base !default; -$font-weight-monospace-block: $font-weight-monospace !default; -$font-weight-monospace-inline: $font-weight-monospace !default; -$code-block-font-size: $code-font-size !default; -$code-inline-font-size: $code-font-size !default; -$link-weight: $font-weight-base !default; -$link-decoration: inherit !default; - -// border colors -$border-color: mix( - if(variable-exists(body-color), $body-color, #fff), - $body-contrast-bg, - 30% -) !default; -$table-border-color: $border-color !default; - -// code block colors -$btn-code-copy-color: if( - variable-exists(text-muted), - $text-muted, - if(variable-exists(body-color), $body-color, $gray-900) -) !default; - -$btn-code-copy-color-active: if( - variable-exists(link-color), - $link-color, - #0d6efd -) !default; - - - - - - - - -$dashboard-card-toolbar-top-margin: 6px !default; - - -$quarto-navbar-search-input-width: 180px !default; -$quarto-sidebar-search-input-width: 100% !default; -$quarto-search-results-width: 400px !default; - -$quarto-search-collapse-icon-size: 26px !default; - - -$content-padding-top: 14px !default; -$sidebar-glass-bg: #66666666 !default; -$sidebar-anim-duration: 0.15s !default; - -$navbar-toggle-position: left !default; - -$navbar-toggler-order: if($navbar-toggle-position == "left", 1, 4) !default; -$navbar-title-order: if($navbar-toggle-position == "left", 2, 1) !default; -$navbar-search-order: if($navbar-toggle-position == "left", 4, 3) !default; -$navbar-tools-order: if($navbar-toggle-position == "left", 3, 2) !default; -$navbar-menu-order: if($navbar-toggle-position == "left", 20, 20) !default; - - -// quarto-scss-analysis-annotation { "origin": "Defaults from the format SCSS" } - -// Variables -// -// Variables should follow the `$component-state-property-size` formula for -// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs. - -// Color system - -// scss-docs-start gray-color-variables -$white: #fff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #6c757d !default; -$gray-700: #495057 !default; -$gray-800: #343a40 !default; -$gray-900: #212529 !default; -$black: #000 !default; -// scss-docs-end gray-color-variables - -// fusv-disable -// scss-docs-start gray-colors-map -$grays: ( - "100": $gray-100, - "200": $gray-200, - "300": $gray-300, - "400": $gray-400, - "500": $gray-500, - "600": $gray-600, - "700": $gray-700, - "800": $gray-800, - "900": $gray-900 -) !default; -// scss-docs-end gray-colors-map -// fusv-enable - -// scss-docs-start color-variables -$blue: #0d6efd !default; -$indigo: #6610f2 !default; -$purple: #6f42c1 !default; -$pink: #d63384 !default; -$red: #dc3545 !default; -$orange: #fd7e14 !default; -$yellow: #ffc107 !default; -$green: #198754 !default; -$teal: #20c997 !default; -$cyan: #0dcaf0 !default; -// scss-docs-end color-variables - -// scss-docs-start colors-map -$colors: ( - "blue": $blue, - "indigo": $indigo, - "purple": $purple, - "pink": $pink, - "red": $red, - "orange": $orange, - "yellow": $yellow, - "green": $green, - "teal": $teal, - "cyan": $cyan, - "black": $black, - "white": $white, - "gray": $gray-600, - "gray-dark": $gray-800 -) !default; -// scss-docs-end colors-map - -// The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7. -// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast -$min-contrast-ratio: 4.5 !default; - -// Customize the light and dark text colors for use in our color contrast function. -$color-contrast-dark: $black !default; -$color-contrast-light: $white !default; - -// fusv-disable -$blue-100: tint-color($blue, 80%) !default; -$blue-200: tint-color($blue, 60%) !default; -$blue-300: tint-color($blue, 40%) !default; -$blue-400: tint-color($blue, 20%) !default; -$blue-500: $blue !default; -$blue-600: shade-color($blue, 20%) !default; -$blue-700: shade-color($blue, 40%) !default; -$blue-800: shade-color($blue, 60%) !default; -$blue-900: shade-color($blue, 80%) !default; - -$indigo-100: tint-color($indigo, 80%) !default; -$indigo-200: tint-color($indigo, 60%) !default; -$indigo-300: tint-color($indigo, 40%) !default; -$indigo-400: tint-color($indigo, 20%) !default; -$indigo-500: $indigo !default; -$indigo-600: shade-color($indigo, 20%) !default; -$indigo-700: shade-color($indigo, 40%) !default; -$indigo-800: shade-color($indigo, 60%) !default; -$indigo-900: shade-color($indigo, 80%) !default; - -$purple-100: tint-color($purple, 80%) !default; -$purple-200: tint-color($purple, 60%) !default; -$purple-300: tint-color($purple, 40%) !default; -$purple-400: tint-color($purple, 20%) !default; -$purple-500: $purple !default; -$purple-600: shade-color($purple, 20%) !default; -$purple-700: shade-color($purple, 40%) !default; -$purple-800: shade-color($purple, 60%) !default; -$purple-900: shade-color($purple, 80%) !default; - -$pink-100: tint-color($pink, 80%) !default; -$pink-200: tint-color($pink, 60%) !default; -$pink-300: tint-color($pink, 40%) !default; -$pink-400: tint-color($pink, 20%) !default; -$pink-500: $pink !default; -$pink-600: shade-color($pink, 20%) !default; -$pink-700: shade-color($pink, 40%) !default; -$pink-800: shade-color($pink, 60%) !default; -$pink-900: shade-color($pink, 80%) !default; - -$red-100: tint-color($red, 80%) !default; -$red-200: tint-color($red, 60%) !default; -$red-300: tint-color($red, 40%) !default; -$red-400: tint-color($red, 20%) !default; -$red-500: $red !default; -$red-600: shade-color($red, 20%) !default; -$red-700: shade-color($red, 40%) !default; -$red-800: shade-color($red, 60%) !default; -$red-900: shade-color($red, 80%) !default; - -$orange-100: tint-color($orange, 80%) !default; -$orange-200: tint-color($orange, 60%) !default; -$orange-300: tint-color($orange, 40%) !default; -$orange-400: tint-color($orange, 20%) !default; -$orange-500: $orange !default; -$orange-600: shade-color($orange, 20%) !default; -$orange-700: shade-color($orange, 40%) !default; -$orange-800: shade-color($orange, 60%) !default; -$orange-900: shade-color($orange, 80%) !default; - -$yellow-100: tint-color($yellow, 80%) !default; -$yellow-200: tint-color($yellow, 60%) !default; -$yellow-300: tint-color($yellow, 40%) !default; -$yellow-400: tint-color($yellow, 20%) !default; -$yellow-500: $yellow !default; -$yellow-600: shade-color($yellow, 20%) !default; -$yellow-700: shade-color($yellow, 40%) !default; -$yellow-800: shade-color($yellow, 60%) !default; -$yellow-900: shade-color($yellow, 80%) !default; - -$green-100: tint-color($green, 80%) !default; -$green-200: tint-color($green, 60%) !default; -$green-300: tint-color($green, 40%) !default; -$green-400: tint-color($green, 20%) !default; -$green-500: $green !default; -$green-600: shade-color($green, 20%) !default; -$green-700: shade-color($green, 40%) !default; -$green-800: shade-color($green, 60%) !default; -$green-900: shade-color($green, 80%) !default; - -$teal-100: tint-color($teal, 80%) !default; -$teal-200: tint-color($teal, 60%) !default; -$teal-300: tint-color($teal, 40%) !default; -$teal-400: tint-color($teal, 20%) !default; -$teal-500: $teal !default; -$teal-600: shade-color($teal, 20%) !default; -$teal-700: shade-color($teal, 40%) !default; -$teal-800: shade-color($teal, 60%) !default; -$teal-900: shade-color($teal, 80%) !default; - -$cyan-100: tint-color($cyan, 80%) !default; -$cyan-200: tint-color($cyan, 60%) !default; -$cyan-300: tint-color($cyan, 40%) !default; -$cyan-400: tint-color($cyan, 20%) !default; -$cyan-500: $cyan !default; -$cyan-600: shade-color($cyan, 20%) !default; -$cyan-700: shade-color($cyan, 40%) !default; -$cyan-800: shade-color($cyan, 60%) !default; -$cyan-900: shade-color($cyan, 80%) !default; - -$blues: ( - "blue-100": $blue-100, - "blue-200": $blue-200, - "blue-300": $blue-300, - "blue-400": $blue-400, - "blue-500": $blue-500, - "blue-600": $blue-600, - "blue-700": $blue-700, - "blue-800": $blue-800, - "blue-900": $blue-900 -) !default; - -$indigos: ( - "indigo-100": $indigo-100, - "indigo-200": $indigo-200, - "indigo-300": $indigo-300, - "indigo-400": $indigo-400, - "indigo-500": $indigo-500, - "indigo-600": $indigo-600, - "indigo-700": $indigo-700, - "indigo-800": $indigo-800, - "indigo-900": $indigo-900 -) !default; - -$purples: ( - "purple-100": $purple-100, - "purple-200": $purple-200, - "purple-300": $purple-300, - "purple-400": $purple-400, - "purple-500": $purple-500, - "purple-600": $purple-600, - "purple-700": $purple-700, - "purple-800": $purple-800, - "purple-900": $purple-900 -) !default; - -$pinks: ( - "pink-100": $pink-100, - "pink-200": $pink-200, - "pink-300": $pink-300, - "pink-400": $pink-400, - "pink-500": $pink-500, - "pink-600": $pink-600, - "pink-700": $pink-700, - "pink-800": $pink-800, - "pink-900": $pink-900 -) !default; - -$reds: ( - "red-100": $red-100, - "red-200": $red-200, - "red-300": $red-300, - "red-400": $red-400, - "red-500": $red-500, - "red-600": $red-600, - "red-700": $red-700, - "red-800": $red-800, - "red-900": $red-900 -) !default; - -$oranges: ( - "orange-100": $orange-100, - "orange-200": $orange-200, - "orange-300": $orange-300, - "orange-400": $orange-400, - "orange-500": $orange-500, - "orange-600": $orange-600, - "orange-700": $orange-700, - "orange-800": $orange-800, - "orange-900": $orange-900 -) !default; - -$yellows: ( - "yellow-100": $yellow-100, - "yellow-200": $yellow-200, - "yellow-300": $yellow-300, - "yellow-400": $yellow-400, - "yellow-500": $yellow-500, - "yellow-600": $yellow-600, - "yellow-700": $yellow-700, - "yellow-800": $yellow-800, - "yellow-900": $yellow-900 -) !default; - -$greens: ( - "green-100": $green-100, - "green-200": $green-200, - "green-300": $green-300, - "green-400": $green-400, - "green-500": $green-500, - "green-600": $green-600, - "green-700": $green-700, - "green-800": $green-800, - "green-900": $green-900 -) !default; - -$teals: ( - "teal-100": $teal-100, - "teal-200": $teal-200, - "teal-300": $teal-300, - "teal-400": $teal-400, - "teal-500": $teal-500, - "teal-600": $teal-600, - "teal-700": $teal-700, - "teal-800": $teal-800, - "teal-900": $teal-900 -) !default; - -$cyans: ( - "cyan-100": $cyan-100, - "cyan-200": $cyan-200, - "cyan-300": $cyan-300, - "cyan-400": $cyan-400, - "cyan-500": $cyan-500, - "cyan-600": $cyan-600, - "cyan-700": $cyan-700, - "cyan-800": $cyan-800, - "cyan-900": $cyan-900 -) !default; -// fusv-enable - -// Semantically, $secondary is closest to BS3's 'default' theme color; -// so use that if specified. Otherwise, use a light instead of dark gray -// default color for $default since that's closer to bootstrap 3's default -$default: if(variable-exists("secondary"), $secondary, $gray-300) !default; - -// scss-docs-start theme-color-variables -$primary: $blue !default; -$secondary: $gray-600 !default; -$success: $green !default; -$info: $cyan !default; -$warning: $yellow !default; -$danger: $red !default; -$light: $gray-100 !default; -$dark: $gray-900 !default; -// scss-docs-end theme-color-variables - -// scss-docs-start theme-colors-map -$theme-colors: ( - // default needs to be 1st so that .btn-default comes before .btn-primary - // & therefore has lower priority. - "default": $default, - "primary": $primary, - "secondary": $secondary, - "success": $success, - "info": $info, - "warning": $warning, - "danger": $danger, - "light": $light, - "dark": $dark -) !default; -// scss-docs-end theme-colors-map - -// scss-docs-start theme-text-variables -$primary-text-emphasis: shade-color($primary, 60%) !default; -$secondary-text-emphasis: shade-color($secondary, 60%) !default; -$success-text-emphasis: shade-color($success, 60%) !default; -$info-text-emphasis: shade-color($info, 60%) !default; -$warning-text-emphasis: shade-color($warning, 60%) !default; -$danger-text-emphasis: shade-color($danger, 60%) !default; -$light-text-emphasis: $gray-700 !default; -$dark-text-emphasis: $gray-700 !default; -// scss-docs-end theme-text-variables - -// scss-docs-start theme-bg-subtle-variables -$primary-bg-subtle: tint-color($primary, 80%) !default; -$secondary-bg-subtle: tint-color($secondary, 80%) !default; -$success-bg-subtle: tint-color($success, 80%) !default; -$info-bg-subtle: tint-color($info, 80%) !default; -$warning-bg-subtle: tint-color($warning, 80%) !default; -$danger-bg-subtle: tint-color($danger, 80%) !default; -$light-bg-subtle: mix($gray-100, $white) !default; -$dark-bg-subtle: $gray-400 !default; -// scss-docs-end theme-bg-subtle-variables - -// scss-docs-start theme-border-subtle-variables -$primary-border-subtle: tint-color($primary, 60%) !default; -$secondary-border-subtle: tint-color($secondary, 60%) !default; -$success-border-subtle: tint-color($success, 60%) !default; -$info-border-subtle: tint-color($info, 60%) !default; -$warning-border-subtle: tint-color($warning, 60%) !default; -$danger-border-subtle: tint-color($danger, 60%) !default; -$light-border-subtle: $gray-200 !default; -$dark-border-subtle: $gray-500 !default; -// scss-docs-end theme-border-subtle-variables - -// Characters which are escaped by the escape-svg function -$escaped-characters: ( - ("<", "%3c"), - (">", "%3e"), - ("#", "%23"), - ("(", "%28"), - (")", "%29"), -) !default; - -// Options -// -// Quickly modify global styling by enabling or disabling optional features. - -$enable-caret: true !default; -$enable-rounded: true !default; -$enable-shadows: false !default; -$enable-gradients: false !default; -$enable-transitions: true !default; -$enable-reduced-motion: true !default; -$enable-smooth-scroll: true !default; -$enable-grid-classes: true !default; -$enable-container-classes: true !default; -$enable-cssgrid: false !default; -$enable-button-pointers: true !default; -$enable-rfs: true !default; -$enable-validation-icons: true !default; -$enable-negative-margins: false !default; -$enable-deprecation-messages: true !default; -$enable-important-utilities: true !default; - -$enable-dark-mode: true !default; -$color-mode-type: data !default; // `data` or `media-query` - -// Prefix for :root CSS variables - -$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix` -$prefix: $variable-prefix !default; - -// Gradient -// -// The gradient which is added to components if `$enable-gradients` is `true` -// This gradient is also added to elements with `.bg-gradient` -// scss-docs-start variable-gradient -$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default; -// scss-docs-end variable-gradient - -// Spacing -// -// Control the default styling of most Bootstrap elements by modifying these -// variables. Mostly focused on spacing. -// You can add more entries to the $spacers map, should you need more variation. - -// scss-docs-start spacer-variables-maps -$spacer: 1rem !default; -$spacers: ( - 0: 0, - 1: $spacer * .25, - 2: $spacer * .5, - 3: $spacer, - 4: $spacer * 1.5, - 5: $spacer * 3, -) !default; -// scss-docs-end spacer-variables-maps - -// Position -// -// Define the edge positioning anchors of the position utilities. - -// scss-docs-start position-map -$position-values: ( - 0: 0, - 50: 50%, - 100: 100% -) !default; -// scss-docs-end position-map - -// Body -// -// Settings for the `` element. - -$body-text-align: null !default; -$body-color: $gray-900 !default; -$body-bg: $white !default; - -$body-secondary-color: rgba($body-color, .75) !default; -$body-secondary-bg: $gray-200 !default; - -$body-tertiary-color: rgba($body-color, .5) !default; -$body-tertiary-bg: $gray-100 !default; - -$body-emphasis-color: $black !default; - -// Links -// -// Style anchor elements. - -$link-color: $primary !default; -$link-decoration: underline !default; -$link-shade-percentage: 20% !default; -$link-hover-color: shift-color($link-color, $link-shade-percentage) !default; -$link-hover-decoration: null !default; - -$stretched-link-pseudo-element: after !default; -$stretched-link-z-index: 1 !default; - -// Icon links -// scss-docs-start icon-link-variables -$icon-link-gap: .375rem !default; -$icon-link-underline-offset: .25em !default; -$icon-link-icon-size: 1em !default; -$icon-link-icon-transition: .2s ease-in-out transform !default; -$icon-link-icon-transform: translate3d(.25em, 0, 0) !default; -// scss-docs-end icon-link-variables - -// Paragraphs -// -// Style p element. - -$paragraph-margin-bottom: 1rem !default; - - -// Grid breakpoints -// -// Define the minimum dimensions at which your layout will change, -// adapting to different screen sizes, for use in media queries. - -// scss-docs-start grid-breakpoints -$grid-breakpoints: ( - xs: 0, - sm: 576px, - md: 768px, - lg: 992px, - xl: 1200px, - xxl: 1400px -) !default; -// scss-docs-end grid-breakpoints - -@include _assert-ascending($grid-breakpoints, "$grid-breakpoints"); -@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints"); - - -// Grid containers -// -// Define the maximum width of `.container` for different screen sizes. - -// scss-docs-start container-max-widths -$container-max-widths: ( - sm: 540px, - md: 720px, - lg: 960px, - xl: 1140px, - xxl: 1320px -) !default; -// scss-docs-end container-max-widths - -@include _assert-ascending($container-max-widths, "$container-max-widths"); - - -// Grid columns -// -// Set the number of columns and specify the width of the gutters. - -$grid-columns: 12 !default; -$grid-gutter-width: 1.5rem !default; -$grid-row-columns: 6 !default; - -// Container padding - -$container-padding-x: $grid-gutter-width !default; - - -// Components -// -// Define common padding and border radius sizes and more. - -// scss-docs-start border-variables -$border-width: 1px !default; -$border-widths: ( - 1: 1px, - 2: 2px, - 3: 3px, - 4: 4px, - 5: 5px -) !default; -$border-style: solid !default; -$border-color: $gray-300 !default; -$border-color-translucent: rgba($black, .175) !default; -// scss-docs-end border-variables - -// scss-docs-start border-radius-variables -$border-radius: .375rem !default; -$border-radius-sm: .25rem !default; -$border-radius-lg: .5rem !default; -$border-radius-xl: 1rem !default; -$border-radius-xxl: 2rem !default; -$border-radius-pill: 50rem !default; -// scss-docs-end border-radius-variables -// fusv-disable -$border-radius-2xl: $border-radius-xxl !default; // Deprecated in v5.3.0 -// fusv-enable - -// scss-docs-start box-shadow-variables -$box-shadow: 0 .5rem 1rem rgba($black, .15) !default; -$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default; -$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default; -$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default; -// scss-docs-end box-shadow-variables - -$component-active-bg: $primary !default; -$component-active-color: color-contrast($component-active-bg) !default; - -// scss-docs-start focus-ring-variables -$focus-ring-width: .25rem !default; -$focus-ring-opacity: .25 !default; -$focus-ring-color: rgba($primary, $focus-ring-opacity) !default; -$focus-ring-blur: 0 !default; -$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default; -// scss-docs-end focus-ring-variables - -// scss-docs-start caret-variables -$caret-width: .3em !default; -$caret-vertical-align: $caret-width * .85 !default; -$caret-spacing: $caret-width * .85 !default; -// scss-docs-end caret-variables - -$transition-base: all .2s ease-in-out !default; -$transition-fade: opacity .15s linear !default; -// scss-docs-start collapse-transition -$transition-collapse: height .35s ease !default; -$transition-collapse-width: width .35s ease !default; -// scss-docs-end collapse-transition - -// stylelint-disable function-disallowed-list -// scss-docs-start aspect-ratios -$aspect-ratios: ( - "1x1": 100%, - "4x3": calc(3 / 4 * 100%), - "16x9": calc(9 / 16 * 100%), - "21x9": calc(9 / 21 * 100%) -) !default; -// scss-docs-end aspect-ratios -// stylelint-enable function-disallowed-list - -// Typography -// -// Font, line-height, and color for body text, headings, and more. - -// scss-docs-start font-variables -// stylelint-disable value-keyword-case -$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; -$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; -// stylelint-enable value-keyword-case -$font-family-base: $font-family-sans-serif !default; -$font-family-code: $font-family-monospace !default; - -// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins -// $font-size-base affects the font size of the body text -$font-size-root: null !default; -$font-size-base: 1rem !default; // Assumes the browser default, typically `16px` -$font-size-sm: $font-size-base * .875 !default; -$font-size-lg: $font-size-base * 1.25 !default; - -$font-weight-lighter: lighter !default; -$font-weight-light: 300 !default; -$font-weight-normal: 400 !default; -$font-weight-medium: 500 !default; -$font-weight-semibold: 600 !default; -$font-weight-bold: 700 !default; -$font-weight-bolder: bolder !default; - -$font-weight-base: $font-weight-normal !default; - -$line-height-base: 1.5 !default; -$line-height-sm: 1.25 !default; -$line-height-lg: 2 !default; - -$h1-font-size: $font-size-base * 2.5 !default; -$h2-font-size: $font-size-base * 2 !default; -$h3-font-size: $font-size-base * 1.75 !default; -$h4-font-size: $font-size-base * 1.5 !default; -$h5-font-size: $font-size-base * 1.25 !default; -$h6-font-size: $font-size-base !default; -// scss-docs-end font-variables - -// scss-docs-start font-sizes -$font-sizes: ( - 1: $h1-font-size, - 2: $h2-font-size, - 3: $h3-font-size, - 4: $h4-font-size, - 5: $h5-font-size, - 6: $h6-font-size -) !default; -// scss-docs-end font-sizes - -// scss-docs-start headings-variables -$headings-margin-bottom: $spacer * .5 !default; -$headings-font-family: null !default; -$headings-font-style: null !default; -$headings-font-weight: 500 !default; -$headings-line-height: 1.2 !default; -$headings-color: inherit !default; -// scss-docs-end headings-variables - -// scss-docs-start display-headings -$display-font-sizes: ( - 1: 5rem, - 2: 4.5rem, - 3: 4rem, - 4: 3.5rem, - 5: 3rem, - 6: 2.5rem -) !default; - -$display-font-family: null !default; -$display-font-style: null !default; -$display-font-weight: 300 !default; -$display-line-height: $headings-line-height !default; -// scss-docs-end display-headings - -// scss-docs-start type-variables -$lead-font-size: $font-size-base * 1.25 !default; -$lead-font-weight: 300 !default; - -$small-font-size: .875em !default; - -$sub-sup-font-size: .75em !default; - -// fusv-disable -$text-muted: $body-secondary-color !default; // Deprecated in 5.3.0 -// fusv-enable - -$initialism-font-size: $small-font-size !default; - -$blockquote-margin-y: $spacer !default; -$blockquote-font-size: $font-size-base * 1.25 !default; -$blockquote-footer-color: $gray-600 !default; -$blockquote-footer-font-size: $small-font-size !default; -$blockquote-border-width: $spacer / 4 !default; -$blockquote-border-color: $gray-200 !default; - -$hr-margin-y: $spacer !default; -$hr-color: inherit !default; - -// fusv-disable -$hr-bg-color: null !default; // Deprecated in v5.2.0 -$hr-height: null !default; // Deprecated in v5.2.0 -// fusv-enable - -$hr-border-color: null !default; // Allows for inherited colors -$hr-border-width: $border-width !default; -$hr-opacity: .25 !default; - -// scss-docs-start vr-variables -$vr-border-width: $border-width !default; -// scss-docs-end vr-variables - -$legend-margin-bottom: .5rem !default; -$legend-font-size: 1.5rem !default; -$legend-font-weight: null !default; - -$dt-font-weight: $font-weight-bold !default; - -$list-inline-padding: .5rem !default; - -$mark-padding: .1875em !default; -$mark-bg: $yellow-100 !default; -// scss-docs-end type-variables - - -// Tables -// -// Customizes the `.table` component with basic values, each used across all table variations. - -// scss-docs-start table-variables -$table-cell-padding-y: .5rem !default; -$table-cell-padding-x: .5rem !default; -$table-cell-padding-y-sm: .25rem !default; -$table-cell-padding-x-sm: .25rem !default; - -$table-cell-vertical-align: top !default; - -$table-color: $body-color !default; -$table-bg: $body-bg !default; -$table-accent-bg: transparent !default; - -$table-th-font-weight: null !default; - -$table-striped-color: $table-color !default; -$table-striped-bg-factor: .05 !default; -$table-striped-bg: rgba($black, $table-striped-bg-factor) !default; - -$table-active-color: $table-color !default; -$table-active-bg-factor: .1 !default; -$table-active-bg: rgba($black, $table-active-bg-factor) !default; - -$table-hover-color: $table-color !default; -$table-hover-bg-factor: .075 !default; -$table-hover-bg: rgba($black, $table-hover-bg-factor) !default; - -$table-border-factor: .1 !default; -$table-border-width: $border-width !default; -$table-border-color: $border-color !default; - -$table-striped-order: odd !default; -$table-striped-columns-order: even !default; - -$table-group-separator-color: currentcolor !default; - -$table-caption-color: $body-secondary-color !default; - -$table-bg-scale: -80% !default; -// scss-docs-end table-variables - -// scss-docs-start table-loop -$table-variants: ( - "primary": shift-color($primary, $table-bg-scale), - "secondary": shift-color($secondary, $table-bg-scale), - "success": shift-color($success, $table-bg-scale), - "info": shift-color($info, $table-bg-scale), - "warning": shift-color($warning, $table-bg-scale), - "danger": shift-color($danger, $table-bg-scale), - "light": $light, - "dark": $dark, -) !default; -// scss-docs-end table-loop - - -// Buttons + Forms -// -// Shared variables that are reassigned to `$input-` and `$btn-` specific variables. - -// scss-docs-start input-btn-variables -$input-btn-padding-y: .375rem !default; -$input-btn-padding-x: .75rem !default; -$input-btn-font-family: null !default; -$input-btn-font-size: $font-size-base !default; -$input-btn-line-height: $line-height-base !default; - -$input-btn-focus-width: $focus-ring-width !default; -$input-btn-focus-color-opacity: $focus-ring-opacity !default; -$input-btn-focus-color: $focus-ring-color !default; -$input-btn-focus-blur: $focus-ring-blur !default; -$input-btn-focus-box-shadow: $focus-ring-box-shadow !default; - -$input-btn-padding-y-sm: .25rem !default; -$input-btn-padding-x-sm: .5rem !default; -$input-btn-font-size-sm: $font-size-sm !default; - -$input-btn-padding-y-lg: .5rem !default; -$input-btn-padding-x-lg: 1rem !default; -$input-btn-font-size-lg: $font-size-lg !default; - -$input-btn-border-width: $border-width !default; -// scss-docs-end input-btn-variables - - -// Buttons -// -// For each of Bootstrap's buttons, define text, background, and border color. - -// scss-docs-start btn-variables -$btn-color: $body-color !default; -$btn-padding-y: $input-btn-padding-y !default; -$btn-padding-x: $input-btn-padding-x !default; -$btn-font-family: $input-btn-font-family !default; -$btn-font-size: $input-btn-font-size !default; -$btn-line-height: $input-btn-line-height !default; -$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping - -$btn-padding-y-sm: $input-btn-padding-y-sm !default; -$btn-padding-x-sm: $input-btn-padding-x-sm !default; -$btn-font-size-sm: $input-btn-font-size-sm !default; - -$btn-padding-y-lg: $input-btn-padding-y-lg !default; -$btn-padding-x-lg: $input-btn-padding-x-lg !default; -$btn-font-size-lg: $input-btn-font-size-lg !default; - -$btn-border-width: $input-btn-border-width !default; - -$btn-font-weight: $font-weight-normal !default; -$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default; -$btn-focus-width: $input-btn-focus-width !default; -$btn-focus-box-shadow: $input-btn-focus-box-shadow !default; -$btn-disabled-opacity: .65 !default; -$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default; - -$btn-link-color: $link-color !default; -$btn-link-hover-color: $link-hover-color !default; -$btn-link-disabled-color: $gray-600 !default; - -// Allows for customizing button radius independently from global border radius -$btn-border-radius: $border-radius !default; -$btn-border-radius-sm: $border-radius-sm !default; -$btn-border-radius-lg: $border-radius-lg !default; - -$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; - -$btn-hover-bg-shade-amount: 15% !default; -$btn-hover-bg-tint-amount: 15% !default; -$btn-hover-border-shade-amount: 20% !default; -$btn-hover-border-tint-amount: 10% !default; -$btn-active-bg-shade-amount: 20% !default; -$btn-active-bg-tint-amount: 20% !default; -$btn-active-border-shade-amount: 25% !default; -$btn-active-border-tint-amount: 10% !default; -// scss-docs-end btn-variables - - -// Forms - -// scss-docs-start form-text-variables -$form-text-margin-top: .25rem !default; -$form-text-font-size: $small-font-size !default; -$form-text-font-style: null !default; -$form-text-font-weight: null !default; -$form-text-color: $body-secondary-color !default; -// scss-docs-end form-text-variables - -// scss-docs-start form-label-variables -$form-label-margin-bottom: .5rem !default; -$form-label-font-size: null !default; -$form-label-font-style: null !default; -$form-label-font-weight: null !default; -$form-label-color: null !default; -// scss-docs-end form-label-variables - -// scss-docs-start form-input-variables -$input-padding-y: $input-btn-padding-y !default; -$input-padding-x: $input-btn-padding-x !default; -$input-font-family: $input-btn-font-family !default; -$input-font-size: $input-btn-font-size !default; -$input-font-weight: $font-weight-base !default; -$input-line-height: $input-btn-line-height !default; - -$input-padding-y-sm: $input-btn-padding-y-sm !default; -$input-padding-x-sm: $input-btn-padding-x-sm !default; -$input-font-size-sm: $input-btn-font-size-sm !default; - -$input-padding-y-lg: $input-btn-padding-y-lg !default; -$input-padding-x-lg: $input-btn-padding-x-lg !default; -$input-font-size-lg: $input-btn-font-size-lg !default; - -$input-bg: $body-bg !default; -$input-disabled-color: null !default; -$input-disabled-bg: $body-secondary-bg !default; -$input-disabled-border-color: null !default; - -$input-color: $body-color !default; -$input-border-color: $border-color !default; -$input-border-width: $input-btn-border-width !default; -$input-box-shadow: $box-shadow-inset !default; - -$input-border-radius: $border-radius !default; -$input-border-radius-sm: $border-radius-sm !default; -$input-border-radius-lg: $border-radius-lg !default; - -$input-focus-bg: $input-bg !default; -$input-focus-border-color: tint-color($component-active-bg, 50%) !default; -$input-focus-color: $input-color !default; -$input-focus-width: $input-btn-focus-width !default; -$input-focus-box-shadow: $input-btn-focus-box-shadow !default; - -$input-placeholder-color: $body-secondary-color !default; -$input-plaintext-color: $body-color !default; - -$input-height-border: calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list - -$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default; -$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default; -$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default; - -$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default; -$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default; -$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default; - -$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; - -$form-color-width: 3rem !default; -// scss-docs-end form-input-variables - -// scss-docs-start form-check-variables -$form-check-input-width: 1em !default; -$form-check-min-height: $font-size-base * $line-height-base !default; -$form-check-padding-start: 0 !default; -$form-check-margin-bottom: .125rem !default; -$form-check-label-color: null !default; -$form-check-label-cursor: pointer !default; -$form-check-transition: null !default; - -$form-check-input-active-filter: brightness(90%) !default; - -$form-check-input-bg: $input-bg !default; -$form-check-input-border: $border-width solid $border-color !default; -$form-check-input-border-radius: .25em !default; -$form-check-radio-border-radius: 50% !default; -$form-check-input-focus-border: $input-focus-border-color !default; -$form-check-input-focus-box-shadow: $focus-ring-box-shadow !default; - -$form-check-input-checked-color: $component-active-color !default; -$form-check-input-checked-bg-color: $component-active-bg !default; -$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default; -$form-check-input-checked-bg-image: url("data:image/svg+xml,") !default; -$form-check-radio-checked-bg-image: url("data:image/svg+xml,") !default; - -$form-check-input-indeterminate-color: $component-active-color !default; -$form-check-input-indeterminate-bg-color: $component-active-bg !default; -$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default; -$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,") !default; - -$form-check-input-disabled-opacity: .5 !default; -$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default; -$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default; - -$form-check-inline-margin-end: 1rem !default; -// scss-docs-end form-check-variables - -// scss-docs-start form-switch-variables -$form-switch-color: rgba($black, .25) !default; -$form-switch-width: 2em !default; -$form-switch-padding-start: $form-switch-width + .5em !default; -$form-switch-bg-image: url("data:image/svg+xml,") !default; -$form-switch-border-radius: $form-switch-width !default; -$form-switch-transition: background-position .15s ease-in-out !default; - -$form-switch-focus-color: $input-focus-border-color !default; -$form-switch-focus-bg-image: url("data:image/svg+xml,") !default; - -$form-switch-checked-color: $component-active-color !default; -$form-switch-checked-bg-image: url("data:image/svg+xml,") !default; -$form-switch-checked-bg-position: right center !default; -// scss-docs-end form-switch-variables - -// scss-docs-start input-group-variables -$input-group-addon-padding-y: $input-padding-y !default; -$input-group-addon-padding-x: $input-padding-x !default; -$input-group-addon-font-weight: $input-font-weight !default; -$input-group-addon-color: $input-color !default; -$input-group-addon-bg: $body-tertiary-bg !default; -$input-group-addon-border-color: $input-border-color !default; -// scss-docs-end input-group-variables - -// scss-docs-start form-select-variables -$form-select-padding-y: $input-padding-y !default; -$form-select-padding-x: $input-padding-x !default; -$form-select-font-family: $input-font-family !default; -$form-select-font-size: $input-font-size !default; -$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image -$form-select-font-weight: $input-font-weight !default; -$form-select-line-height: $input-line-height !default; -$form-select-color: $input-color !default; -$form-select-bg: $input-bg !default; -$form-select-disabled-color: null !default; -$form-select-disabled-bg: $input-disabled-bg !default; -$form-select-disabled-border-color: $input-disabled-border-color !default; -$form-select-bg-position: right $form-select-padding-x center !default; -$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions -$form-select-indicator-color: $gray-800 !default; -$form-select-indicator: url("data:image/svg+xml,") !default; - -$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default; -$form-select-feedback-icon-position: center right $form-select-indicator-padding !default; -$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default; - -$form-select-border-width: $input-border-width !default; -$form-select-border-color: $input-border-color !default; -$form-select-border-radius: $input-border-radius !default; -$form-select-box-shadow: $box-shadow-inset !default; - -$form-select-focus-border-color: $input-focus-border-color !default; -$form-select-focus-width: $input-focus-width !default; -$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default; - -$form-select-padding-y-sm: $input-padding-y-sm !default; -$form-select-padding-x-sm: $input-padding-x-sm !default; -$form-select-font-size-sm: $input-font-size-sm !default; -$form-select-border-radius-sm: $input-border-radius-sm !default; - -$form-select-padding-y-lg: $input-padding-y-lg !default; -$form-select-padding-x-lg: $input-padding-x-lg !default; -$form-select-font-size-lg: $input-font-size-lg !default; -$form-select-border-radius-lg: $input-border-radius-lg !default; - -$form-select-transition: $input-transition !default; -// scss-docs-end form-select-variables - -// scss-docs-start form-range-variables -$form-range-track-width: 100% !default; -$form-range-track-height: .5rem !default; -$form-range-track-cursor: pointer !default; -$form-range-track-bg: $body-tertiary-bg !default; -$form-range-track-border-radius: 1rem !default; -$form-range-track-box-shadow: $box-shadow-inset !default; - -$form-range-thumb-width: 1rem !default; -$form-range-thumb-height: $form-range-thumb-width !default; -$form-range-thumb-bg: $component-active-bg !default; -$form-range-thumb-border: 0 !default; -$form-range-thumb-border-radius: 1rem !default; -$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default; -$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default; -$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge -$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default; -$form-range-thumb-disabled-bg: $body-secondary-color !default; -$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; -// scss-docs-end form-range-variables - -// scss-docs-start form-file-variables -$form-file-button-color: $input-color !default; -$form-file-button-bg: $body-tertiary-bg !default; -$form-file-button-hover-bg: $body-secondary-bg !default; -// scss-docs-end form-file-variables - -// scss-docs-start form-floating-variables -$form-floating-height: add(3.5rem, $input-height-border) !default; -$form-floating-line-height: 1.25 !default; -$form-floating-padding-x: $input-padding-x !default; -$form-floating-padding-y: 1rem !default; -$form-floating-input-padding-t: 1.625rem !default; -$form-floating-input-padding-b: .625rem !default; -$form-floating-label-height: 1.5em !default; -$form-floating-label-opacity: .65 !default; -$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default; -$form-floating-label-disabled-color: $gray-600 !default; -$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default; -// scss-docs-end form-floating-variables - -// Form validation - -// scss-docs-start form-feedback-variables -$form-feedback-margin-top: $form-text-margin-top !default; -$form-feedback-font-size: $form-text-font-size !default; -$form-feedback-font-style: $form-text-font-style !default; -$form-feedback-valid-color: $success !default; -$form-feedback-invalid-color: $danger !default; - -$form-feedback-icon-valid-color: $form-feedback-valid-color !default; -$form-feedback-icon-valid: url("data:image/svg+xml,") !default; -$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default; -$form-feedback-icon-invalid: url("data:image/svg+xml,") !default; -// scss-docs-end form-feedback-variables - -// scss-docs-start form-validation-colors -$form-valid-color: $form-feedback-valid-color !default; -$form-valid-border-color: $form-feedback-valid-color !default; -$form-invalid-color: $form-feedback-invalid-color !default; -$form-invalid-border-color: $form-feedback-invalid-color !default; -// scss-docs-end form-validation-colors - -// scss-docs-start form-validation-states -$form-validation-states: ( - "valid": ( - "color": $form-valid-color, - "icon": $form-feedback-icon-valid, - "tooltip-color": #fff, - "tooltip-bg-color": $success, - "focus-box-shadow": 0 0 $input-btn-focus-blur $input-focus-width rgba($success, $input-btn-focus-color-opacity), - "border-color": $form-valid-border-color, - ), - "invalid": ( - "color": $form-invalid-color, - "icon": $form-feedback-icon-invalid, - "tooltip-color": #fff, - "tooltip-bg-color": $danger, - "focus-box-shadow": 0 0 $input-btn-focus-blur $input-focus-width rgba($danger, $input-btn-focus-color-opacity), - "border-color": $form-invalid-border-color, - ) -) !default; -// scss-docs-end form-validation-states - -// Z-index master list -// -// Warning: Avoid customizing these values. They're used for a bird's eye view -// of components dependent on the z-axis and are designed to all work together. - -// scss-docs-start zindex-stack -$zindex-dropdown: 1000 !default; -$zindex-sticky: 1020 !default; -$zindex-fixed: 1030 !default; -$zindex-offcanvas-backdrop: 1040 !default; -$zindex-offcanvas: 1045 !default; -$zindex-modal-backdrop: 1050 !default; -$zindex-modal: 1055 !default; -$zindex-popover: 1070 !default; -$zindex-tooltip: 1080 !default; -$zindex-toast: 1090 !default; -// scss-docs-end zindex-stack - -// scss-docs-start zindex-levels-map -$zindex-levels: ( - n1: -1, - 0: 0, - 1: 1, - 2: 2, - 3: 3 -) !default; -// scss-docs-end zindex-levels-map - - -// Navs - -// scss-docs-start nav-variables -$nav-link-padding-y: ($font-size-base * 0.5) !default; -$nav-link-padding-x: $font-size-base !default; -$nav-link-font-size: null !default; -$nav-link-font-weight: null !default; -$nav-link-color: $link-color !default; -$nav-link-hover-color: $link-hover-color !default; -$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default; -$nav-link-disabled-color: $body-secondary-color !default; -$nav-link-focus-box-shadow: $focus-ring-box-shadow !default; - -$nav-tabs-border-color: $border-color !default; -$nav-tabs-border-width: $border-width !default; -$nav-tabs-border-radius: $border-radius !default; -$nav-tabs-link-hover-border-color: $body-secondary-bg $body-secondary-bg $nav-tabs-border-color !default; -$nav-tabs-link-active-color: $body-emphasis-color !default; -$nav-tabs-link-active-bg: $body-bg !default; -$nav-tabs-link-active-border-color: $border-color $border-color $nav-tabs-link-active-bg !default; - -$nav-pills-border-radius: $border-radius !default; -$nav-pills-link-active-bg: $component-active-bg !default; -$nav-pills-link-active-color: color-contrast($nav-pills-link-active-bg, $component-active-color) !default; - -$nav-underline-gap: 1rem !default; -$nav-underline-border-width: .125rem !default; -$nav-underline-link-active-color: $body-emphasis-color !default; -// scss-docs-end nav-variables - - -// Navbar - -// scss-docs-start navbar-variables -$navbar-padding-y: $spacer * .5 !default; -$navbar-padding-x: null !default; - -$navbar-nav-link-padding-x: .5rem !default; - -$navbar-brand-font-size: $font-size-lg !default; -// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link -$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default; -$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default; -$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default; -$navbar-brand-margin-end: 1rem !default; - -$navbar-toggler-padding-y: .25rem !default; -$navbar-toggler-padding-x: .75rem !default; -$navbar-toggler-font-size: $font-size-lg !default; -$navbar-toggler-border-radius: $btn-border-radius !default; -$navbar-toggler-focus-width: $btn-focus-width !default; -$navbar-toggler-transition: box-shadow .15s ease-in-out !default; - -$navbar-bg: null !default; // Background color for any navbarPage() -$navbar-light-bg: if($navbar-bg, $navbar-bg, var(--bs-light)) !default; // Background color for navbarPage(inverse = FALSE) -$navbar-dark-bg: if($navbar-bg, $navbar-bg, var(--bs-dark)) !default; // Background color for navbarPage(inverse = TRUE) - -$navbar-light-contrast: if( - type-of($navbar-light-bg) == color, - color-contrast($navbar-light-bg), - $body-emphasis-color -) !default; // Deepest contrasting color for navbarPage(inverse = FALSE). -$navbar-dark-contrast: if( - type-of($navbar-dark-bg) == color, - color-contrast($navbar-dark-bg), - $body-emphasis-color -) !default; // Deepest contrasting color for navbarPage(inverse = TRUE). - -$navbar-light-color: rgba($navbar-light-contrast, .65) !default; -$navbar-light-hover-color: rgba($navbar-light-contrast, .8) !default; -$navbar-light-active-color: rgba($navbar-light-contrast, 1) !default; -$navbar-light-disabled-color: rgba($navbar-light-contrast, .3) !default; -$navbar-light-icon-color: rgba(if(type-of($navbar-light-contrast)==color, $navbar-light-contrast, $body-color), .75) !default; -$navbar-light-toggler-icon-bg: url("data:image/svg+xml,") !default; -$navbar-light-toggler-border-color: rgba($navbar-light-contrast, .15) !default; -$navbar-light-brand-color: $navbar-light-active-color !default; -$navbar-light-brand-hover-color: $navbar-light-active-color !default; -// scss-docs-end navbar-variables - -// scss-docs-start navbar-dark-variables -$navbar-dark-color: rgba($navbar-dark-contrast, .55) !default; -$navbar-dark-hover-color: rgba($navbar-dark-contrast, .75) !default; -$navbar-dark-active-color: rgba($navbar-dark-contrast, 1) !default; -$navbar-dark-disabled-color: rgba($navbar-dark-contrast, .25) !default; -$navbar-dark-icon-color: rgba(if(type-of($navbar-dark-contrast)==color, $navbar-dark-contrast, $white), .75) !default; -$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,") !default; -$navbar-dark-toggler-border-color: rgba($navbar-dark-contrast, .1) !default; -$navbar-dark-brand-color: $navbar-dark-active-color !default; -$navbar-dark-brand-hover-color: $navbar-dark-active-color !default; -// scss-docs-end navbar-dark-variables - - -// Dropdowns -// -// Dropdown menu container and contents. - -// scss-docs-start dropdown-variables -$dropdown-min-width: 10rem !default; -$dropdown-padding-x: 0 !default; -$dropdown-padding-y: .5rem !default; -$dropdown-spacer: .125rem !default; -$dropdown-font-size: $font-size-base !default; -$dropdown-color: $body-color !default; -$dropdown-bg: $body-bg !default; -$dropdown-border-color: $border-color-translucent !default; -$dropdown-border-radius: $border-radius !default; -$dropdown-border-width: $border-width !default; -$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list -$dropdown-divider-bg: $dropdown-border-color !default; -$dropdown-divider-margin-y: $spacer * .5 !default; -$dropdown-box-shadow: $box-shadow !default; - -$dropdown-link-color: $body-color !default; -$dropdown-link-hover-color: $dropdown-link-color !default; -$dropdown-link-hover-bg: $body-tertiary-bg !default; - -$dropdown-link-active-bg: $component-active-bg !default; -$dropdown-link-active-color: color-contrast($dropdown-link-active-bg, $component-active-color) !default; - -$dropdown-link-disabled-color: $body-tertiary-color !default; - -$dropdown-item-padding-y: $spacer * .25 !default; -$dropdown-item-padding-x: $spacer !default; - -$dropdown-header-color: $gray-600 !default; -$dropdown-header-padding-x: $dropdown-item-padding-x !default; -$dropdown-header-padding-y: $dropdown-padding-y !default; -// fusv-disable -$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0 -// fusv-enable -// scss-docs-end dropdown-variables - -// scss-docs-start dropdown-dark-variables -$dropdown-dark-color: $gray-300 !default; -$dropdown-dark-bg: $gray-800 !default; -$dropdown-dark-border-color: $dropdown-border-color !default; -$dropdown-dark-divider-bg: $dropdown-divider-bg !default; -$dropdown-dark-box-shadow: null !default; -$dropdown-dark-link-color: $dropdown-dark-color !default; -$dropdown-dark-link-hover-color: $white !default; -$dropdown-dark-link-hover-bg: rgba($white, .15) !default; -$dropdown-dark-link-active-color: $dropdown-link-active-color !default; -$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default; -$dropdown-dark-link-disabled-color: $gray-500 !default; -$dropdown-dark-header-color: $gray-500 !default; -// scss-docs-end dropdown-dark-variables - - -// Pagination - -// scss-docs-start pagination-variables -$pagination-padding-y: .375rem !default; -$pagination-padding-x: .75rem !default; -$pagination-padding-y-sm: .25rem !default; -$pagination-padding-x-sm: .5rem !default; -$pagination-padding-y-lg: .75rem !default; -$pagination-padding-x-lg: 1.5rem !default; - -$pagination-font-size: $font-size-base !default; - -$pagination-color: $link-color !default; -$pagination-bg: $body-bg !default; -$pagination-border-radius: $border-radius !default; -$pagination-border-width: $border-width !default; -$pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list -$pagination-border-color: $border-color !default; - -$pagination-focus-color: $link-hover-color !default; -$pagination-focus-bg: $body-secondary-bg !default; -$pagination-focus-box-shadow: $focus-ring-box-shadow !default; -$pagination-focus-outline: 0 !default; - -$pagination-hover-color: $link-hover-color !default; -$pagination-hover-bg: $body-tertiary-bg !default; -$pagination-hover-border-color: $border-color !default; // Todo in v6: remove this? - -$pagination-active-color: $component-active-color !default; -$pagination-active-bg: $component-active-bg !default; -$pagination-active-border-color: $component-active-bg !default; - -$pagination-disabled-color: $body-secondary-color !default; -$pagination-disabled-bg: $body-secondary-bg !default; -$pagination-disabled-border-color: $border-color !default; - -$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; - -$pagination-border-radius-sm: $border-radius-sm !default; -$pagination-border-radius-lg: $border-radius-lg !default; -// scss-docs-end pagination-variables - - -// Placeholders - -// scss-docs-start placeholders -$placeholder-opacity-max: .5 !default; -$placeholder-opacity-min: .2 !default; -// scss-docs-end placeholders - -// Cards - -// scss-docs-start card-variables -$card-spacer-y: $spacer !default; -$card-spacer-x: $spacer !default; -$card-title-spacer-y: $spacer * .5 !default; -$card-title-color: null !default; -$card-subtitle-color: null !default; -$card-border-width: $border-width !default; -$card-border-color: $border-color-translucent !default; -$card-border-radius: $border-radius !default; -$card-box-shadow: null !default; -$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default; -$card-cap-padding-y: $card-spacer-y * .5 !default; -$card-cap-padding-x: $card-spacer-x !default; -$card-cap-bg: rgba($body-color, .03) !default; -$card-cap-color: null !default; -$card-height: null !default; -$card-color: null !default; -$card-bg: $body-bg !default; -$card-img-overlay-padding: $spacer !default; -$card-group-margin: $grid-gutter-width * .5 !default; -// scss-docs-end card-variables - -// Accordion - -// scss-docs-start accordion-variables -$accordion-padding-y: 1rem !default; -$accordion-padding-x: 1.25rem !default; -$accordion-color: $body-color !default; -$accordion-bg: $body-bg !default; -$accordion-border-width: $border-width !default; -$accordion-border-color: $border-color !default; -$accordion-border-radius: $border-radius !default; -$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default; - -$accordion-body-padding-y: $accordion-padding-y !default; -$accordion-body-padding-x: $accordion-padding-x !default; - -$accordion-button-padding-y: $accordion-padding-y !default; -$accordion-button-padding-x: $accordion-padding-x !default; -$accordion-button-color: $body-color !default; -$accordion-button-bg: $accordion-bg !default; -$accordion-transition: $btn-transition, border-radius .15s ease !default; -$accordion-button-active-bg: $primary-bg-subtle !default; -$accordion-button-active-color: $primary-text-emphasis !default; - -$accordion-button-focus-border-color: $input-focus-border-color !default; -$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default; - -$accordion-icon-width: 1.25rem !default; -$accordion-icon-color: $body-color !default; -$accordion-icon-active-color: $primary-text-emphasis !default; -$accordion-icon-transition: transform .2s ease-in-out !default; -$accordion-icon-transform: rotate(-180deg) !default; - -$accordion-button-icon: url("data:image/svg+xml,") !default; -$accordion-button-active-icon: url("data:image/svg+xml,") !default; -// scss-docs-end accordion-variables - -// Tooltips - -// scss-docs-start tooltip-variables -$tooltip-font-size: $font-size-sm !default; -$tooltip-max-width: 200px !default; -$tooltip-color: $body-bg !default; -$tooltip-bg: $body-emphasis-color !default; -$tooltip-border-radius: $border-radius !default; -$tooltip-opacity: .9 !default; -$tooltip-padding-y: $spacer * .25 !default; -$tooltip-padding-x: $spacer * .5 !default; -$tooltip-margin: null !default; // TODO: remove this in v6 - -$tooltip-arrow-width: .8rem !default; -$tooltip-arrow-height: .4rem !default; -// fusv-disable -$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables -// fusv-enable -// scss-docs-end tooltip-variables - -// Form tooltips must come after regular tooltips -// scss-docs-start tooltip-feedback-variables -$form-feedback-tooltip-padding-y: $tooltip-padding-y !default; -$form-feedback-tooltip-padding-x: $tooltip-padding-x !default; -$form-feedback-tooltip-font-size: $tooltip-font-size !default; -$form-feedback-tooltip-line-height: null !default; -$form-feedback-tooltip-opacity: $tooltip-opacity !default; -$form-feedback-tooltip-border-radius: $tooltip-border-radius !default; -// scss-docs-end tooltip-feedback-variables - - -// Popovers - -// scss-docs-start popover-variables -$popover-font-size: $font-size-sm !default; -$popover-bg: $body-bg !default; -$popover-max-width: 276px !default; -$popover-border-width: $border-width !default; -$popover-border-color: $border-color-translucent !default; -$popover-border-radius: $border-radius-lg !default; -$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list -$popover-box-shadow: $box-shadow !default; - -$popover-header-font-size: $font-size-base !default; -$popover-header-bg: $body-secondary-bg !default; -$popover-header-color: $headings-color !default; -$popover-header-padding-y: .5rem !default; -$popover-header-padding-x: $spacer !default; - -$popover-body-color: $body-color !default; -$popover-body-padding-y: $spacer !default; -$popover-body-padding-x: $spacer !default; - -$popover-arrow-width: 1rem !default; -$popover-arrow-height: .5rem !default; -// scss-docs-end popover-variables - -// fusv-disable -// Deprecated in Bootstrap 5.2.0 for CSS variables -$popover-arrow-color: $popover-bg !default; -$popover-arrow-outer-color: $border-color-translucent !default; -// fusv-enable - - -// Toasts - -// scss-docs-start toast-variables -$toast-max-width: 350px !default; -$toast-padding-x: .75rem !default; -$toast-padding-y: .5rem !default; -$toast-font-size: .875rem !default; -$toast-color: null !default; -$toast-background-color: rgba($body-bg, .85) !default; -$toast-border-width: $border-width !default; -$toast-border-color: $border-color-translucent !default; -$toast-border-radius: $border-radius !default; -$toast-box-shadow: $box-shadow !default; -$toast-spacing: $container-padding-x !default; - -$toast-header-color: $body-secondary-color !default; -$toast-header-background-color: rgba($body-bg, .85) !default; -$toast-header-border-color: $toast-border-color !default; -// scss-docs-end toast-variables - - -// Badges - -// scss-docs-start badge-variables -$badge-font-size: .75em !default; -$badge-font-weight: $font-weight-bold !default; -$badge-color: $white !default; -$badge-padding-y: .35em !default; -$badge-padding-x: .65em !default; -$badge-border-radius: $border-radius !default; -// scss-docs-end badge-variables - - -// Modals - -// scss-docs-start modal-variables -$modal-inner-padding: $spacer !default; - -$modal-footer-margin-between: .5rem !default; - -$modal-dialog-margin: .5rem !default; -$modal-dialog-margin-y-sm-up: 1.75rem !default; - -$modal-title-line-height: $line-height-base !default; - -$modal-content-color: null !default; -$modal-content-bg: $body-bg !default; -$modal-content-border-color: $border-color-translucent !default; -$modal-content-border-width: $border-width !default; -$modal-content-border-radius: $border-radius-lg !default; -$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default; -$modal-content-box-shadow-xs: $box-shadow-sm !default; -$modal-content-box-shadow-sm-up: $box-shadow !default; - -$modal-backdrop-bg: $black !default; -$modal-backdrop-opacity: .5 !default; - -$modal-header-border-color: $border-color !default; -$modal-header-border-width: $modal-content-border-width !default; -$modal-header-padding-y: $modal-inner-padding !default; -$modal-header-padding-x: $modal-inner-padding !default; -$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility - -$modal-footer-bg: null !default; -$modal-footer-border-color: $modal-header-border-color !default; -$modal-footer-border-width: $modal-header-border-width !default; - -$modal-sm: 300px !default; -$modal-md: 500px !default; -$modal-lg: 800px !default; -$modal-xl: 1140px !default; - -$modal-fade-transform: translate(0, -50px) !default; -$modal-show-transform: none !default; -$modal-transition: transform .3s ease-out !default; -$modal-scale-transform: scale(1.02) !default; -// scss-docs-end modal-variables - - -// Alerts -// -// Define alert colors, border radius, and padding. - -// scss-docs-start alert-variables -$alert-padding-y: $spacer !default; -$alert-padding-x: $spacer !default; -$alert-margin-bottom: 1rem !default; -$alert-border-radius: $border-radius !default; -$alert-link-font-weight: $font-weight-bold !default; -$alert-border-width: $border-width !default; -$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side -// scss-docs-end alert-variables - -// fusv-disable -$alert-bg-scale: -80% !default; // Deprecated in v5.2.0, to be removed in v6 -$alert-border-scale: -70% !default; // Deprecated in v5.2.0, to be removed in v6 -$alert-color-scale: 40% !default; // Deprecated in v5.2.0, to be removed in v6 -// fusv-enable - -// Progress bars - -// scss-docs-start progress-variables -$progress-height: 1rem !default; -$progress-font-size: $font-size-base * .75 !default; -$progress-bg: $body-secondary-bg !default; -$progress-border-radius: $border-radius !default; -$progress-box-shadow: $box-shadow-inset !default; -$progress-bar-color: $white !default; -$progress-bar-bg: $primary !default; -$progress-bar-animation-timing: 1s linear infinite !default; -$progress-bar-transition: width .6s ease !default; -// scss-docs-end progress-variables - - -// List group - -// scss-docs-start list-group-variables -$list-group-color: $body-color !default; -$list-group-bg: $body-bg !default; -$list-group-border-color: $border-color !default; -$list-group-border-width: $border-width !default; -$list-group-border-radius: $border-radius !default; - -$list-group-item-padding-y: $spacer * .5 !default; -$list-group-item-padding-x: $spacer !default; -// fusv-disable -$list-group-item-bg-scale: -80% !default; // Deprecated in v5.3.0 -$list-group-item-color-scale: 40% !default; // Deprecated in v5.3.0 -// fusv-enable - -$list-group-hover-bg: $body-tertiary-bg !default; -$list-group-active-bg: $component-active-bg !default; -$list-group-active-color: color-contrast($list-group-active-bg, $component-active-color) !default; -$list-group-active-border-color: $list-group-active-bg !default; - -$list-group-disabled-color: $body-secondary-color !default; -$list-group-disabled-bg: $list-group-bg !default; - -$list-group-action-color: $body-secondary-color !default; -$list-group-action-hover-color: $body-emphasis-color !default; - -$list-group-action-active-color: $body-color !default; -$list-group-action-active-bg: $body-secondary-bg !default; -// scss-docs-end list-group-variables - - -// Image thumbnails - -// scss-docs-start thumbnail-variables -$thumbnail-padding: .25rem !default; -$thumbnail-bg: $body-bg !default; -$thumbnail-border-width: $border-width !default; -$thumbnail-border-color: $border-color !default; -$thumbnail-border-radius: $border-radius !default; -$thumbnail-box-shadow: $box-shadow-sm !default; -// scss-docs-end thumbnail-variables - - -// Figures - -// scss-docs-start figure-variables -$figure-caption-font-size: $small-font-size !default; -$figure-caption-color: $body-secondary-color !default; -// scss-docs-end figure-variables - - -// Breadcrumbs - -// scss-docs-start breadcrumb-variables -$breadcrumb-font-size: null !default; -$breadcrumb-padding-y: 0 !default; -$breadcrumb-padding-x: 0 !default; -$breadcrumb-item-padding-x: .5rem !default; -$breadcrumb-margin-bottom: 1rem !default; -$breadcrumb-bg: null !default; -$breadcrumb-divider-color: $body-secondary-color !default; -$breadcrumb-active-color: $body-secondary-color !default; -$breadcrumb-divider: quote("/") !default; -$breadcrumb-divider-flipped: $breadcrumb-divider !default; -$breadcrumb-border-radius: null !default; -// scss-docs-end breadcrumb-variables - -// Carousel - -// scss-docs-start carousel-variables -$carousel-control-color: $white !default; -$carousel-control-width: 15% !default; -$carousel-control-opacity: .5 !default; -$carousel-control-hover-opacity: .9 !default; -$carousel-control-transition: opacity .15s ease !default; - -$carousel-indicator-width: 30px !default; -$carousel-indicator-height: 3px !default; -$carousel-indicator-hit-area-height: 10px !default; -$carousel-indicator-spacer: 3px !default; -$carousel-indicator-opacity: .5 !default; -$carousel-indicator-active-bg: $white !default; -$carousel-indicator-active-opacity: 1 !default; -$carousel-indicator-transition: opacity .6s ease !default; - -$carousel-caption-width: 70% !default; -$carousel-caption-color: $white !default; -$carousel-caption-padding-y: 1.25rem !default; -$carousel-caption-spacer: 1.25rem !default; - -$carousel-control-icon-width: 2rem !default; - -$carousel-control-prev-icon-bg: url("data:image/svg+xml,") !default; -$carousel-control-next-icon-bg: url("data:image/svg+xml,") !default; - -$carousel-transition-duration: .6s !default; -$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`) -// scss-docs-end carousel-variables - -// scss-docs-start carousel-dark-variables -$carousel-dark-indicator-active-bg: $black !default; -$carousel-dark-caption-color: $black !default; -$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; -// scss-docs-end carousel-dark-variables - - -// Spinners - -// scss-docs-start spinner-variables -$spinner-width: 2rem !default; -$spinner-height: $spinner-width !default; -$spinner-vertical-align: -.125em !default; -$spinner-border-width: .25em !default; -$spinner-animation-speed: .75s !default; - -$spinner-width-sm: 1rem !default; -$spinner-height-sm: $spinner-width-sm !default; -$spinner-border-width-sm: .2em !default; -// scss-docs-end spinner-variables - - -// Close - -// scss-docs-start close-variables -$btn-close-width: 1em !default; -$btn-close-height: $btn-close-width !default; -$btn-close-padding-x: .25em !default; -$btn-close-padding-y: $btn-close-padding-x !default; -$btn-close-color: $black !default; -$btn-close-bg: url("data:image/svg+xml,") !default; -$btn-close-focus-shadow: $focus-ring-box-shadow !default; -$btn-close-opacity: .5 !default; -$btn-close-hover-opacity: .75 !default; -$btn-close-focus-opacity: 1 !default; -$btn-close-disabled-opacity: .25 !default; -$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default; -// scss-docs-end close-variables - - -// Offcanvas - -// scss-docs-start offcanvas-variables -$offcanvas-padding-y: $modal-inner-padding !default; -$offcanvas-padding-x: $modal-inner-padding !default; -$offcanvas-horizontal-width: 400px !default; -$offcanvas-vertical-height: 30vh !default; -$offcanvas-transition-duration: .3s !default; -$offcanvas-border-color: $modal-content-border-color !default; -$offcanvas-border-width: $modal-content-border-width !default; -$offcanvas-title-line-height: $modal-title-line-height !default; -$offcanvas-bg-color: $body-bg !default; -$offcanvas-color: $body-color !default; -$offcanvas-box-shadow: $modal-content-box-shadow-xs !default; -$offcanvas-backdrop-bg: $modal-backdrop-bg !default; -$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default; -// scss-docs-end offcanvas-variables - -// Code - -$code-font-size: $small-font-size !default; -// Amount intentionally matches mixture amount of shiny::inputPanel() -// https://github.com/rstudio/shiny/blob/4eeb4a1/inst/www/shared/shiny_scss/bootstrap.scss#L25 -$code-bg: $body-emphasis-color !default; -$code-color: black !default; -$code-color-dark: white !default; - -$kbd-padding-y: .1875rem !default; -$kbd-padding-x: .375rem !default; -$kbd-font-size: $code-font-size !default; -$kbd-color: $body-bg !default; -$kbd-bg: $body-color !default; -$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6 - -$pre-bg: $code-bg !default; -$pre-color: $body-emphasis-color !default; -$pre-line-height: $line-height-base !default; -$font-size-root: 1.2rem; -$font-family-base: arial; -$font-family-code: "Fira Code"; - - - - - - - - - - - - - -// quarto-scss-analysis-annotation { "origin": "'mixins' section from format" } - - - - - - - - - - - - - -// Toggles -// -// Used in conjunction with global variables to enable certain theme features. - -// Vendor -@import "vendor/rfs"; - -// Deprecate -@import "mixins/deprecate"; - -// Helpers -@import "mixins/breakpoints"; -@import "mixins/color-mode"; -@import "mixins/color-scheme"; -@import "mixins/image"; -@import "mixins/resize"; -@import "mixins/visually-hidden"; -@import "mixins/reset-text"; -@import "mixins/text-truncate"; - -// Utilities -@import "mixins/utilities"; - -// Components -@import "mixins/backdrop"; -@import "mixins/buttons"; -@import "mixins/caret"; -@import "mixins/pagination"; -@import "mixins/lists"; -@import "mixins/forms"; -@import "mixins/table-variants"; - -// Skins -@import "mixins/border-radius"; -@import "mixins/box-shadow"; -@import "mixins/gradients"; -@import "mixins/transition"; - -// Layout -@import "mixins/clearfix"; -@import "mixins/container"; -@import "mixins/grid"; - -@mixin bslib-breakpoints-css-vars( - $breakpoint-var, - $breakpoints, - $allow-cascade: false -) { - @each $breakpoint in $breakpoints { - @if not $allow-cascade { - --#{$breakpoint-var}--#{$breakpoint}: unset; - } - - @include media-breakpoint-up(#{$breakpoint}) { - &.#{$breakpoint-var}--#{$breakpoint} { - --#{$breakpoint-var}: var(--#{$breakpoint-var}--#{$breakpoint}); - } - } - } -} - - -// Intentionally replicates Bootstrap's %heading placeholder -// https://github.com/twbs/bootstrap/blob/2c7f88/scss/_reboot.scss#L83-L96 -@mixin bootstrap-heading-font-and-spacing($font-size) { - @include font-size($font-size); - margin-top: 0; // 1 - margin-bottom: $headings-margin-bottom; - font-family: $headings-font-family; - font-style: $headings-font-style; - font-weight: $headings-font-weight; - line-height: $headings-line-height; - -} - -@mixin bootstrap-heading($font-size) { - @include bootstrap-heading-font-and-spacing($font-size); - color: var(--#{$prefix}heading-color); -} - - -// quarto-scss-analysis-annotation { "origin": "'mixins' section from Quarto" } - - - - - -@mixin shiny-date-range { - .input-daterange { - width: inherit; - input[type="text"] { - height: 2.4em; - width: 10em; - } - - .input-group-addon { - height: auto; - padding: 0; - margin-left: -5px !important; - margin-right: -5px; - - .input-group-text { - padding-top: 0; - padding-bottom: 0; - height: 100%; - } - } - } -} - -@mixin shiny-text-input { - input[type="text"] { - line-height: 1; - width: inherit; - } -} - -@mixin shiny-input-checkboxgroup { - .shiny-input-checkboxgroup { - > label { - margin-top: $dashboard-card-toolbar-top-margin; - } - > .shiny-options-group { - margin-top: 0; - align-items: baseline; - } - } -} - -@mixin shiny-input-radiogroup { - .shiny-input-radiogroup { - > label { - margin-top: $dashboard-card-toolbar-top-margin; - } - } - - .shiny-input-radiogroup > .shiny-options-group { - align-items: baseline; - margin-top: 0; - > .radio { - margin-right: 0.3em; - } - } -} - -@mixin shiny-input-checkbox { - div.checkbox { - margin-bottom: 0px; - } - - > .checkbox:first-child { - margin-top: $dashboard-card-toolbar-top-margin; - } -} - -@mixin shiny-input-slider { - span.irs.irs--shiny { - width: 10em; - .irs-line { - top: 9px; - } - .irs-min, - .irs-max, - .irs-from, - .irs-to, - .irs-single { - top: 20px; - } - .irs-bar { - top: 8px; - } - .irs-handle { - top: 0px; - } - } -} - -@mixin shiny-input-select { - .form-select { - padding-top: 0.2em; - padding-bottom: 0.2em; - } - .shiny-input-select { - min-width: 6em; - } -} - -@mixin shiny-input-container { - .shiny-input-container { - padding-bottom: 0; - margin-bottom: 0; - > * { - flex-shrink: 0; - flex-grow: 0; - } - } - - .form-group.shiny-input-container:not([role="group"]) > label { - margin-bottom: 0; - } - - .shiny-input-container.no-baseline { - align-items: start; - padding-top: $dashboard-card-toolbar-top-margin; - } - - .shiny-input-container { - display: flex; - align-items: baseline; - - label { - padding-right: 0.4em; - } - - .bslib-input-switch { - margin-top: $dashboard-card-toolbar-top-margin; - } - } -} - -@mixin shiny-toolbar-customizations { - @include toolbar-layout(); - @include shiny-input-container(); - @include shiny-text-input(); - @include shiny-date-range(); - @include shiny-input-slider(); - @include shiny-input-checkboxgroup(); - @include shiny-input-radiogroup(); - @include shiny-input-select(); - @include shiny-input-checkbox(); -} - -@mixin toolbar-layout { - .cell-output-display { - display: flex; - } - - .shiny-input-container { - padding-bottom: 0.5em; - margin-bottom: 0.5em; - width: inherit; - - > .checkbox:first-child { - margin-top: $dashboard-card-toolbar-top-margin; - } - } - - > *:last-child { - margin-right: 0; - } - - > * > * { - margin-right: 1em; - align-items: baseline; - > a { - text-decoration: none; - margin-top: auto; - margin-bottom: auto; - } - } -} - -@mixin itables { - .itables { - @include media-breakpoint-down(md) { - div.dataTables_wrapper div.dataTables_length, - div.dataTables_wrapper div.dataTables_info, - div.dataTables_wrapper div.dataTables_paginate { - text-align: initial; - } - - div.dataTables_wrapper div.dataTables_filter { - text-align: right; - } - - div.dataTables_wrapper div.dataTables_paginate ul.pagination { - justify-content: initial; - } - } - - .dataTables_wrapper { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - padding-top: 0; - table { - flex-shrink: 0; - } - - // The buttons control (download/copy) - .dt-buttons { - margin-bottom: 0.5em; - margin-left: auto; - - width: fit-content; - - float: right; - &.btn-group { - background: $body-bg; - border: none; - } - - .btn-secondary { - background-color: $body-bg; - background-image: none; - border: solid $border-color $border-width; - padding: 0.2em 0.7em; - } - - .btn span { - font-size: 0.8em; - color: $body-color; - } - } - - // The number of items (info) text - .dataTables_info { - margin-left: 0.5em; - margin-bottom: 0.5em; - - @include media-breakpoint-up(md) { - font-size: 0.875em; - } - @include media-breakpoint-down(md) { - font-size: 0.8em; - } - - padding-top: 0; - } - - // The table filter / search - .dataTables_filter { - margin-bottom: 0.5em; - font-size: 0.875em; - input[type="search"] { - padding: 1px 5px 1px 5px; - font-size: 0.875em; - } - } - - // The pagination size selector - .dataTables_length { - flex-basis: 1 1 50%; - margin-bottom: 0.5em; - font-size: 0.875em; - select { - padding: 0.4em 3em 0.4em 0.5em; - font-size: 0.875em; - margin-left: 0.2em; - margin-right: 0.2em; - } - } - - // The pagination control - .dataTables_paginate { - @include media-breakpoint-up(md) { - margin-left: auto; - } - flex-shrink: 0; - - ul.pagination .paginate_button .page-link { - font-size: 0.8em; - } - } - } - } -} - -@mixin observable-toolbar-inputs { - form { - width: fit-content; - - label { - padding-top: 0.2em; - padding-bottom: 0.2em; - width: fit-content; - } - - input[type="date"] { - width: fit-content; - } - - input[type="color"] { - width: 3em; - } - - button { - padding: 0.4em; - } - - select { - width: fit-content; - } - } -} - -@mixin observable-sidebar-inputs { - form { - flex-direction: column; - align-items: start; - margin-bottom: 1em; - - div[class*="oi-"][class$="-input"] { - flex-direction: column; - } - - &[class*="oi-"][class$="-toggle"] { - flex-direction: row-reverse; - align-items: center; - justify-content: start; - } - - input[type="range"] { - margin-top: 0.5em; - margin-right: 0.8em; - margin-left: 1em; - } - } - label { - width: fit-content; - } -} - - -@mixin listing-category { - display: flex; - flex-wrap: wrap; - padding-bottom: 5px; - - .listing-category { - color: listing-override-value($theme-name, "category-color", $text-muted); - - $val: listing-override-value($theme-name, "category-border", null); - @if $val != null { - border: $val; - } @else { - border: solid 1px $border-color; - } - - border-radius: $border-radius; - text-transform: uppercase; - font-size: 0.65em; - padding-left: 0.5em; - padding-right: 0.5em; - padding-top: 0.15em; - padding-bottom: 0.15em; - cursor: pointer; - margin-right: 4px; - margin-bottom: 4px; - } -} - -// Provide theme level customization of the listing inputs -@mixin input-group { -} - -@mixin input-form-control { - $val: listing-override-value($theme-name, "form-background-color", null); - @if $val != null { - background-color: $val; - } - $val: listing-override-value($theme-name, "form-color", null); - @if $val != null { - color: $val; - } -} - -@mixin input-group-text { - $val: listing-override-value($theme-name, "input-group-border-radius", null); - @if $val != null { - border-radius: $val; - } - - $val: listing-override-value($theme-name, "input-group-border", null); - @if $val != null { - border: $val; - } - - $val: listing-override-value($theme-name, "input-text-margin", null); - @if $val != null { - margin: $val; - } - $val: listing-override-value( - $theme-name, - "input-text-background-color", - null - ); - @if $val != null { - background-color: $val; - } - $val: listing-override-value($theme-name, "input-text-color", null); - @if $val != null { - color: $val; - } -} - -@mixin input-placeholder { - $val: listing-override-value( - $theme-name, - "input-text-placeholder-color", - null - ); - @if $val != null { - ::placeholder { - color: $val; - } - } -} - - -@mixin responsive-buttons { - display: flex; - @include media-breakpoint-up(lg) { - flex-direction: row; - column-gap: 0.8em; - row-gap: 15px; - flex-wrap: wrap; - } - @include media-breakpoint-down(lg) { - flex-direction: column; - row-gap: 1em; - width: 100%; - padding-bottom: 1.5em; - } -} - -@mixin responsive-button { - @include media-breakpoint-up(lg) { - font-size: 0.8em; - padding: 0.25em 0.5em; - border-radius: 4px; - } - - @include media-breakpoint-down(lg) { - font-size: 1.1em; - padding: 0.5em 0.5em; - text-align: center; - border-radius: 6px; - } - - color: lighten($body-color, 20%); - text-decoration: none; - &:hover { - color: $link-color; - } - - border: solid 1px; - - i.bi { - margin-right: 0.15em; - } -} - -@mixin image-shapes { - img.round { - border-radius: 50%; - } - - img.rounded { - border-radius: 10px; - } -} - - - - -@mixin body-secondary { - @if variable-exists(body-secondary) { - color: $body-secondary; - } @else { - color: theme-dim($body-color, 25%); - } -} - -@mixin page-columns { - display: grid; - gap: 0; -} - -@mixin column-spanning-element { - table { - background: $body-bg; - } -} - -// GRID CASCADE -$grid-body-column-max: $grid-body-width !default; -$grid-body-column-min: quarto-math.min(500px, $grid-body-column-max) !default; - -// Margin variables -$grid-page-gutter: $grid-column-gutter-width !default; -$grid-page-gutter-start: $grid-page-gutter !default; -$grid-page-gutter-end: $grid-page-gutter !default; - -$grid-body-gutter: $grid-column-gutter-width !default; -$grid-body-gutter-start: $grid-body-gutter !default; -$grid-body-gutter-end: $grid-body-gutter !default; - -/* FLOATING GRID */ -$grid-page-gutter-float: 5fr !default; -$grid-float-sidebar-width: $grid-sidebar-width !default; -$grid-float-margin-width: $grid-margin-width !default; - -/* Float Wide Default Grid */ - -// Margins -$grid-float-wide-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-wide-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-wide-body-gutter-start: $grid-body-gutter-start !default; -$grid-float-wide-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-wide-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-wide-margin-gutter: $grid-page-gutter-float !default; - -// Sidebars -$grid-float-wide-sidebar-width: $grid-float-sidebar-width !default; -$grid-float-wide-sidebar-seg1: minmax( - #{0.1 * $grid-float-wide-sidebar-width}, - #{0.2 * $grid-float-wide-sidebar-width} -) !default; -$grid-float-wide-sidebar-seg2: minmax( - #{0.2 * $grid-float-wide-sidebar-width}, - #{0.6 * $grid-float-wide-sidebar-width} -) !default; -$grid-float-wide-sidebar-seg3: minmax( - #{0.1 * $grid-float-wide-sidebar-width}, - #{0.2 * $grid-float-wide-sidebar-width} -) !default; - -// Margins -$grid-float-wide-margin-width: $grid-float-margin-width !default; -$grid-float-wide-margin-seg3: minmax( - #{0.1 * $grid-float-wide-margin-width}, - #{0.2 * $grid-float-wide-margin-width} -) !default; -$grid-float-wide-margin-seg2: minmax( - #{0.2 * $grid-float-wide-margin-width}, - #{0.6 * $grid-float-wide-margin-width} -) !default; -$grid-float-wide-margin-seg1: minmax( - #{0.1 * $grid-float-wide-margin-width}, - #{0.2 * $grid-float-wide-margin-width} -) !default; - -// Body -$grid-float-wide-body-column-min: $grid-body-column-min !default; -$grid-float-wide-body-column-max: $grid-body-column-max !default; -$grid-float-wide-body: minmax( - $grid-float-wide-body-column-min, - calc( - #{$grid-float-wide-body-column-max} - #{$grid-float-wide-page-gutter-start + - $grid-float-wide-page-gutter-end} - ) -) !default; - -/* Float Wide Slim Content Grid */ - -// Margins -$grid-float-wide-slim-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-wide-slim-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-wide-slim-body-gutter-start: $grid-body-gutter-start !default; -$grid-float-wide-slim-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-wide-slim-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-wide-slim-margin-gutter: $grid-page-gutter-float !default; - -// Sidebars -$grid-float-wide-slim-sidebar-width: $grid-float-sidebar-width !default; -$grid-float-wide-slim-sidebar-seg1: 0.2 * $grid-float-wide-slim-sidebar-width !default; -$grid-float-wide-slim-sidebar-seg2: minmax( - #{0.2 * $grid-float-wide-slim-sidebar-width}, - #{0.6 * $grid-float-wide-slim-sidebar-width} -) !default; -$grid-float-wide-slim-sidebar-seg3: 0.2 * $grid-float-wide-slim-sidebar-width !default; - -// Margins -$grid-float-wide-slim-margin-width: $grid-float-margin-width !default; -$grid-float-wide-slim-margin-seg3: 0.2 * $grid-float-wide-slim-margin-width !default; -$grid-float-wide-slim-margin-seg2: minmax( - #{0.2 * $grid-float-wide-slim-margin-width}, - #{0.6 * $grid-float-wide-slim-margin-width} -) !default; -$grid-float-wide-slim-margin-seg1: 0.2 * $grid-float-wide-slim-margin-width !default; - -// Body -$grid-float-wide-slim-body-column-min: $grid-body-column-min - 50px !default; -$grid-float-wide-slim-body-column-max: $grid-body-column-max - 50px !default; -$grid-float-wide-slim-body: minmax( - $grid-float-wide-slim-body-column-min, - calc( - #{$grid-float-wide-slim-body-column-max} - #{$grid-float-wide-slim-page-gutter-start + - $grid-float-wide-slim-page-gutter-end} - ) -) !default; - -/* Float Wide Full Grid */ -// Margins -$grid-float-wide-full-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-wide-full-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-wide-full-body-gutter-start: $grid-body-gutter-start !default; -$grid-float-wide-full-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-wide-full-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-wide-full-margin-gutter: $grid-page-gutter-float !default; - -// Sidebars -$grid-float-wide-full-sidebar-width: $grid-float-sidebar-width !default; -$grid-float-wide-full-sidebar-seg1: 0.2 * $grid-float-wide-full-sidebar-width !default; -$grid-float-wide-full-sidebar-seg2: minmax( - #{0.2 * $grid-float-wide-full-sidebar-width}, - #{0.6 * $grid-float-wide-full-sidebar-width} -) !default; -$grid-float-wide-full-sidebar-seg3: 0.2 * $grid-float-wide-full-sidebar-width !default; - -// Margins -$grid-float-wide-full-margin-width: $grid-float-margin-width !default; -$grid-float-wide-full-margin-seg3: 0.2 * $grid-float-wide-full-margin-width !default; -$grid-float-wide-full-margin-seg2: minmax( - #{0.2 * $grid-float-wide-full-margin-width}, - #{0.6 * $grid-float-wide-full-margin-width} -) !default; -$grid-float-wide-full-margin-seg1: 0.2 * $grid-float-wide-full-margin-width !default; - -// Body -$grid-float-wide-full-body-column-min: $grid-body-column-min !default; -$grid-float-wide-full-body-column-max: $grid-body-column-max !default; -$grid-float-wide-full-body: minmax( - $grid-float-wide-full-body-column-min, - calc( - #{$grid-float-wide-full-body-column-max} - #{$grid-float-wide-full-page-gutter-start + - $grid-float-wide-full-page-gutter-end} - ) -) !default; - -/* Float Wide Listing Grid */ -// Margins -$grid-float-wide-listing-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-wide-listing-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-wide-listing-body-gutter-start: $grid-body-gutter-start !default; -$grid-float-wide-listing-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-wide-listing-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-wide-listing-margin-gutter: $grid-page-gutter-float !default; - -// Sidebars -$grid-float-wide-listing-sidebar-width: $grid-float-sidebar-width !default; -$grid-float-wide-listing-sidebar-seg1: minmax( - #{0.1 * $grid-float-wide-listing-sidebar-width}, - #{0.2 * $grid-float-wide-listing-sidebar-width} -) !default; -$grid-float-wide-listing-sidebar-seg2: minmax( - #{0.2 * $grid-float-wide-listing-sidebar-width}, - #{0.6 * $grid-float-wide-listing-sidebar-width} -) !default; -$grid-float-wide-listing-sidebar-seg3: minmax( - #{0.1 * $grid-float-wide-listing-sidebar-width}, - #{0.2 * $grid-float-wide-listing-sidebar-width} -) !default; - -// Margins -$grid-float-wide-listing-margin-width: $grid-float-margin-width !default; -$grid-float-wide-listing-margin-seg3: minmax( - #{0.1 * $grid-float-wide-listing-margin-width}, - #{0.2 * $grid-float-wide-listing-margin-width} -) !default; -$grid-float-wide-listing-margin-seg2: minmax( - #{0.2 * $grid-float-wide-listing-margin-width}, - #{0.6 * $grid-float-wide-listing-margin-width} -) !default; -$grid-float-wide-listing-margin-seg1: minmax( - #{0.1 * $grid-float-wide-listing-margin-width}, - #{0.2 * $grid-float-wide-listing-margin-width} -) !default; - -// Body -$grid-float-wide-listing-body-column-min: $grid-body-column-min !default; -$grid-float-wide-listing-body-column-max: $grid-body-column-max !default; -$grid-float-wide-listing-body: minmax( - $grid-float-wide-listing-body-column-min, - calc( - #{$grid-float-wide-listing-body-column-max} - #{$grid-float-wide-listing-page-gutter-start + - $grid-float-wide-listing-page-gutter-end} - ) -) !default; - -/* Float Mid Default Grid */ -// Margins -$grid-float-mid-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-mid-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-mid-body-gutter-start: $grid-body-gutter-start !default; -$grid-float-mid-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-mid-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-mid-margin-gutter: $grid-page-gutter-float !default; - -// No sidebar, only margins -$grid-float-mid-margin-width: $grid-float-margin-width !default; -$grid-float-mid-margin-seg3: 0.2 * $grid-float-mid-margin-width !default; -$grid-float-mid-margin-seg2: minmax( - #{0.3 * $grid-float-mid-margin-width}, - #{0.6 * $grid-float-mid-margin-width} -) !default; -$grid-float-mid-margin-seg1: 0.1 * $grid-float-mid-margin-width !default; - -// Body -$grid-float-mid-body-column-min: $grid-body-column-min !default; -$grid-float-mid-body-column-max: $grid-body-column-max - 50px !default; -$grid-float-mid-body: minmax( - $grid-float-mid-body-column-min, - calc( - #{$grid-float-mid-body-column-max} - #{$grid-float-mid-page-gutter-start + $grid-float-mid-page-gutter-end} - ) -) !default; - -/* Float Mid Slim Content Grid */ -// Margins -$grid-float-mid-slim-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-mid-slim-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-mid-slim-body-gutter-start: 2 * - quarto-math.div($grid-body-gutter-start, 3) !default; -$grid-float-mid-slim-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-mid-slim-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-mid-slim-margin-gutter: 0.8 * $grid-page-gutter-float !default; - -// No sidebar, only margins -$grid-float-mid-slim-margin-width: $grid-float-margin-width !default; -$grid-float-mid-slim-margin-seg3: 0.14 * $grid-float-mid-slim-margin-width !default; -$grid-float-mid-slim-margin-seg2: minmax( - #{0.3 * $grid-float-mid-slim-margin-width}, - #{0.58 * $grid-float-mid-slim-margin-width} -) !default; -$grid-float-mid-slim-margin-seg1: 0.14 * $grid-float-mid-slim-margin-width !default; - -// Body -$grid-float-mid-slim-body-column-min: $grid-body-column-min !default; -$grid-float-mid-slim-body-column-max: $grid-body-column-max - 50px !default; -$grid-float-mid-slim-body: minmax( - $grid-float-mid-slim-body-column-min, - calc( - #{$grid-float-mid-slim-body-column-max} - #{$grid-float-mid-slim-page-gutter-start + - $grid-float-mid-slim-page-gutter-end} - ) -) !default; - -/* Float Mid Full Content Grid */ -// Margins -$grid-float-mid-full-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-mid-full-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-mid-full-body-gutter-start: 2 * - quarto-math.div($grid-body-gutter-start, 3) !default; -$grid-float-mid-full-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-mid-full-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-mid-full-margin-gutter: 0.8 * $grid-page-gutter-float !default; - -// No sidebar or margins - -// Body -$grid-float-mid-full-body-column-min: $grid-body-column-min !default; -$grid-float-mid-full-body-column-max: $grid-body-column-max !default; -$grid-float-mid-full-body: minmax( - $grid-float-mid-full-body-column-min, - calc( - #{$grid-float-mid-full-body-column-max} - #{$grid-float-mid-full-page-gutter-start + - $grid-float-mid-full-page-gutter-end} - ) -) !default; - -/* Float Mid Listing Content Grid */ -// Margins -$grid-float-mid-listing-page-gutter-start: $grid-page-gutter-start !default; -$grid-float-mid-listing-page-gutter-end: $grid-page-gutter-end !default; -$grid-float-mid-listing-body-gutter-start: 2 * - quarto-math.div($grid-body-gutter-start, 3) !default; -$grid-float-mid-listing-body-gutter-end: $grid-body-gutter-end !default; -$grid-float-mid-listing-sidebar-gutter: $grid-page-gutter-float !default; -$grid-float-mid-listing-margin-gutter: 0.8 * $grid-page-gutter-float !default; - -// No sidebar, only margins -$grid-float-mid-listing-margin-width: $grid-float-margin-width !default; -$grid-float-mid-listing-margin-seg3: 0.2 * $grid-float-mid-listing-margin-width !default; -$grid-float-mid-listing-margin-seg2: minmax( - #{0.3 * $grid-float-mid-listing-margin-width}, - #{0.6 * $grid-float-mid-listing-margin-width} -) !default; -$grid-float-mid-listing-margin-seg1: 0.1 * $grid-float-mid-listing-margin-width !default; - -// Body -$grid-float-mid-listing-body-column-min: $grid-body-column-min !default; -$grid-float-mid-listing-body-column-max: $grid-body-column-max - 50px !default; -$grid-float-mid-listing-body: minmax( - $grid-float-mid-listing-body-column-min, - calc( - #{$grid-float-mid-listing-body-column-max} - #{$grid-float-mid-listing-page-gutter-start + - $grid-float-mid-listing-page-gutter-end} - ) -) !default; - -/* DOCKED GRID */ -$grid-docked-sidebar-width: $grid-sidebar-width !default; -$grid-docked-margin-width: $grid-margin-width !default; -$grid-docked-body-width: $grid-body-column-max + 200px !default; - -/* Docked Wide Default Grid */ - -// Margins -$grid-docked-wide-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-wide-page-gutter-end: $grid-page-gutter-end !default; -$grid-docked-wide-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-wide-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-wide-margin-gutter: 5fr !default; - -// Sidebars -$grid-docked-wide-sidebar-width: $grid-docked-sidebar-width !default; -$grid-docked-wide-sidebar-seg1: minmax( - #{0.2 * $grid-docked-wide-sidebar-width}, - #{0.4 * $grid-docked-wide-sidebar-width} -) !default; -$grid-docked-wide-sidebar-seg2: 0.2 * $grid-docked-wide-sidebar-width !default; -$grid-docked-wide-sidebar-seg3: 0.2 * $grid-docked-wide-sidebar-width !default; - -// Margins -$grid-docked-wide-margin-width: $grid-docked-margin-width !default; -$grid-docked-wide-margin-seg3: 0.2 * $grid-docked-wide-margin-width !default; -$grid-docked-wide-margin-seg2: minmax( - #{0.2 * $grid-docked-wide-margin-width}, - #{0.4 * $grid-docked-wide-margin-width} -) !default; -$grid-docked-wide-margin-seg1: 0.2 * $grid-docked-wide-margin-width !default; - -// Body -$grid-docked-wide-body-column-min: $grid-body-column-min !default; -$grid-docked-wide-body-column-max: $grid-docked-body-width !default; -$grid-docked-wide-body: minmax( - $grid-docked-wide-body-column-min, - calc( - #{$grid-docked-wide-body-column-max} - #{$grid-docked-wide-page-gutter-start + - $grid-docked-wide-page-gutter-end} - ) -) !default; - -/* Docked Slim Content Grid */ - -// Margins -$grid-docked-wide-slim-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-wide-slim-page-gutter-end: $grid-page-gutter-end !default; -$grid-docked-wide-slim-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-wide-slim-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-wide-slim-margin-gutter: 5fr !default; - -// Sidebars -$grid-docked-wide-slim-sidebar-width: $grid-docked-sidebar-width !default; -$grid-docked-wide-slim-sidebar-seg1: minmax( - #{0.2 * $grid-docked-wide-slim-sidebar-width}, - #{0.4 * $grid-docked-wide-slim-sidebar-width} -) !default; -$grid-docked-wide-slim-sidebar-seg2: 0.2 * $grid-docked-wide-slim-sidebar-width !default; -$grid-docked-wide-slim-sidebar-seg3: 0.2 * $grid-docked-wide-slim-sidebar-width !default; - -// Margins -$grid-docked-wide-slim-margin-width: $grid-docked-margin-width !default; -$grid-docked-wide-slim-margin-seg3: 0.2 * $grid-docked-wide-slim-margin-width !default; -$grid-docked-wide-slim-margin-seg2: minmax( - #{0 * $grid-docked-wide-slim-margin-width}, - #{0.8 * $grid-docked-wide-slim-margin-width} -) !default; -$grid-docked-wide-slim-margin-seg1: 0.2 * $grid-docked-wide-slim-margin-width !default; - -// Body -$grid-docked-wide-slim-body-column-min: $grid-body-column-min - 50px !default; -$grid-docked-wide-slim-body-column-max: $grid-body-column-max - 50px !default; -$grid-docked-wide-slim-body: minmax( - $grid-docked-wide-slim-body-column-min, - calc( - #{$grid-docked-wide-slim-body-column-max} - #{$grid-docked-wide-slim-page-gutter-start + - $grid-docked-wide-slim-page-gutter-end} - ) -) !default; - -/* Docked Full Content Grid */ - -// Margins -$grid-docked-wide-full-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-wide-full-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-wide-full-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-wide-full-margin-gutter: 5fr !default; -$grid-docked-wide-full-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-docked-wide-full-sidebar-width: $grid-docked-sidebar-width !default; -$grid-docked-wide-full-sidebar-seg1: minmax( - #{0.2 * $grid-docked-wide-full-sidebar-width}, - #{0.4 * $grid-docked-wide-full-sidebar-width} -) !default; -$grid-docked-wide-full-sidebar-seg2: 0.2 * $grid-docked-wide-full-sidebar-width !default; -$grid-docked-wide-full-sidebar-seg3: 0.2 * $grid-docked-wide-full-sidebar-width !default; - -// No Margins - -// Body -$grid-docked-wide-full-body-column-min: $grid-body-column-min !default; -$grid-docked-wide-full-body-column-max: $grid-docked-body-width !default; -$grid-docked-wide-full-body: minmax( - $grid-docked-wide-full-body-column-min, - calc( - #{$grid-docked-wide-full-body-column-max} - #{$grid-docked-wide-full-page-gutter-start + - $grid-docked-wide-full-page-gutter-end} - ) -) !default; - -/* Docked Listing Grid */ - -// Margins -$grid-docked-wide-listing-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-wide-listing-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-wide-listing-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-wide-listing-margin-gutter: 5fr !default; -$grid-docked-wide-listing-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-docked-wide-listing-sidebar-width: $grid-docked-sidebar-width !default; -$grid-docked-wide-listing-sidebar-seg1: minmax( - #{0.2 * $grid-docked-wide-listing-sidebar-width}, - #{0.4 * $grid-docked-wide-listing-sidebar-width} -) !default; -$grid-docked-wide-listing-sidebar-seg2: 0.2 * - $grid-docked-wide-listing-sidebar-width !default; -$grid-docked-wide-listing-sidebar-seg3: 0.2 * - $grid-docked-wide-listing-sidebar-width !default; - -// Margins -$grid-docked-wide-listing-margin-width: $grid-docked-margin-width !default; -$grid-docked-wide-listing-margin-seg3: 0.2 * - $grid-docked-wide-listing-margin-width !default; -$grid-docked-wide-listing-margin-seg2: minmax( - #{0 * $grid-docked-wide-listing-margin-width}, - #{0.8 * $grid-docked-wide-listing-margin-width} -) !default; -$grid-docked-wide-listing-margin-seg1: 0.2 * - $grid-docked-wide-listing-margin-width !default; - -// Body -$grid-docked-wide-listing-body-column-min: $grid-body-column-min !default; -$grid-docked-wide-listing-body-column-max: $grid-docked-body-width !default; -$grid-docked-wide-listing-body: minmax( - $grid-docked-wide-listing-body-column-min, - calc( - #{$grid-docked-wide-listing-body-column-max} - #{$grid-docked-wide-listing-page-gutter-start + - $grid-docked-wide-listing-page-gutter-end} - ) -) !default; - -/* Docked Mid Default Grid */ -// Margins -$grid-docked-mid-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-mid-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-mid-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-mid-margin-gutter: 5fr !default; -$grid-docked-mid-page-gutter-end: $grid-page-gutter-end !default; - -// No sidebar, only margins -$grid-docked-mid-margin-width: $grid-docked-margin-width !default; -$grid-docked-mid-margin-seg3: 0.2 * $grid-docked-mid-margin-width !default; -$grid-docked-mid-margin-seg2: minmax( - #{0.1 * $grid-docked-mid-margin-width}, - #{0.2 * $grid-docked-mid-margin-width} -) !default; -$grid-docked-mid-margin-seg1: 0.2 * $grid-docked-mid-margin-width !default; - -// Body -$grid-docked-mid-body-column-min: $grid-body-column-min !default; -$grid-docked-mid-body-column-max: $grid-body-column-max - 50px !default; -$grid-docked-mid-body: minmax( - $grid-docked-mid-body-column-min, - calc( - #{$grid-docked-mid-body-column-max} - #{$grid-docked-mid-page-gutter-start + - $grid-docked-mid-page-gutter-end} - ) -) !default; - -/* Docked Mid Slim Content Grid */ -// Margins -$grid-docked-mid-slim-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-mid-slim-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-mid-slim-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-mid-slim-margin-gutter: 5fr !default; -$grid-docked-mid-slim-page-gutter-end: $grid-page-gutter-end !default; - -// No sidebar, only margins -$grid-docked-mid-slim-margin-width: $grid-docked-margin-width !default; -$grid-docked-mid-slim-margin-seg3: 0.2 * $grid-docked-mid-slim-margin-width !default; -$grid-docked-mid-slim-margin-seg2: minmax( - #{0.1 * $grid-docked-mid-slim-margin-width}, - #{0.2 * $grid-docked-mid-slim-margin-width} -) !default; -$grid-docked-mid-slim-margin-seg1: 0.2 * $grid-docked-mid-slim-margin-width !default; - -// Body -$grid-docked-mid-slim-body-column-min: $grid-body-column-min !default; -$grid-docked-mid-slim-body-column-max: $grid-body-column-max - 50px !default; -$grid-docked-mid-slim-body: minmax( - $grid-docked-mid-slim-body-column-min, - calc( - #{$grid-docked-mid-slim-body-column-max} - #{$grid-docked-mid-slim-page-gutter-start + - $grid-docked-mid-slim-page-gutter-end} - ) -) !default; - -/* Docked Mid Full Content Grid */ -// Margins -$grid-docked-mid-full-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-mid-full-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-mid-full-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-mid-full-margin-gutter: 5fr !default; -$grid-docked-mid-full-page-gutter-end: $grid-page-gutter-end !default; - -// No sidebar or margins - -// Body -$grid-docked-mid-full-body-column-min: $grid-body-column-min !default; -$grid-docked-mid-full-body-column-max: $grid-docked-body-width !default; -$grid-docked-mid-full-body: minmax( - $grid-docked-mid-full-body-column-min, - calc( - #{$grid-docked-mid-full-body-column-max} - #{$grid-docked-mid-full-page-gutter-start + - $grid-docked-mid-full-page-gutter-end} - ) -) !default; - -/* Float Mid Listing Content Grid */ -// Margins -$grid-docked-mid-listing-page-gutter-start: $grid-page-gutter-start !default; -$grid-docked-mid-listing-body-gutter-start: $grid-body-gutter-start !default; -$grid-docked-mid-listing-body-gutter-end: $grid-body-gutter-end !default; -$grid-docked-mid-listing-margin-gutter: $grid-page-gutter-float !default; -$grid-docked-mid-listing-page-gutter-end: $grid-page-gutter-end !default; - -// No sidebar, only margins -$grid-docked-mid-listing-margin-width: $grid-docked-margin-width !default; -$grid-docked-mid-listing-margin-seg3: 0.2 * - $grid-docked-mid-listing-margin-width !default; -$grid-docked-mid-listing-margin-seg2: minmax( - #{0.3 * $grid-docked-mid-listing-margin-width}, - #{0.6 * $grid-docked-mid-listing-margin-width} -) !default; -$grid-docked-mid-listing-margin-seg1: 0.1 * - $grid-docked-mid-listing-margin-width !default; - -// Body -$grid-docked-mid-listing-body-column-min: $grid-body-column-min !default; -$grid-docked-mid-listing-body-column-max: $grid-body-column-max - 50px !default; -$grid-docked-mid-listing-body: minmax( - $grid-docked-mid-listing-body-column-min, - calc( - #{$grid-docked-mid-listing-body-column-max} - #{$grid-docked-mid-listing-page-gutter-start + - $grid-docked-mid-listing-page-gutter-end} - ) -) !default; - -/* DEFAULT (HTML PAGE, NOT IN WEBSITE) GRID */ -$grid-default-sidebar-width: $grid-sidebar-width !default; -$grid-default-margin-width: $grid-margin-width !default; -$grid-default-body-width: $grid-body-column-max + 50px !default; - -/* Default Wide Grid */ -// Margins -$grid-default-wide-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-wide-sidebar-gutter: 5fr !default; -$grid-default-wide-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-wide-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-wide-margin-gutter: 5fr !default; -$grid-default-wide-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-default-wide-sidebar-width: $grid-default-sidebar-width !default; -$grid-default-wide-sidebar-seg1: 0.14 * $grid-default-wide-sidebar-width !default; -$grid-default-wide-sidebar-seg2: 0.14 * $grid-default-wide-sidebar-width !default; - -// Margins -$grid-default-wide-margin-width: $grid-default-margin-width !default; -$grid-default-wide-margin-seg3: 0.14 * $grid-default-wide-margin-width !default; -$grid-default-wide-margin-seg2: minmax( - #{0.3 * $grid-default-wide-margin-width}, - #{0.58 * $grid-default-wide-margin-width} -) !default; -$grid-default-wide-margin-seg1: 0.14 * $grid-default-wide-margin-width !default; - -// Body -$grid-default-wide-body-column-min: $grid-body-column-min !default; -$grid-default-wide-body-column-max: $grid-default-body-width !default; -$grid-default-wide-body: minmax( - $grid-default-wide-body-column-min, - calc( - #{$grid-default-wide-body-column-max} - #{$grid-default-wide-page-gutter-start + - $grid-default-wide-page-gutter-end} - ) -) !default; - -/* Default Mid Grid */ -// Margins -$grid-default-mid-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-mid-sidebar-gutter: 5fr !default; -$grid-default-mid-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-mid-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-mid-margin-gutter: 5fr !default; -$grid-default-mid-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-default-mid-sidebar-width: $grid-default-sidebar-width !default; -$grid-default-mid-sidebar-seg1: 0.14 * $grid-default-mid-sidebar-width !default; -$grid-default-mid-sidebar-seg2: 0.14 * $grid-default-mid-sidebar-width !default; - -// Margins -$grid-default-mid-margin-width: $grid-default-margin-width !default; -$grid-default-mid-margin-seg3: 0.14 * $grid-default-mid-margin-width !default; -$grid-default-mid-margin-seg2: minmax( - #{0.3 * $grid-default-mid-margin-width}, - #{0.58 * $grid-default-mid-margin-width} -) !default; -$grid-default-mid-margin-seg1: 0.14 * $grid-default-mid-margin-width !default; - -// Body -$grid-default-mid-body-column-min: $grid-body-column-min !default; -$grid-default-mid-body-column-max: $grid-default-body-width - 50px !default; -$grid-default-mid-body: minmax( - $grid-default-mid-body-column-min, - calc( - #{$grid-default-mid-body-column-max} - #{$grid-default-mid-page-gutter-start + - $grid-default-mid-page-gutter-end} - ) -) !default; - -/* Full Content Wide Grid */ -// Margins -$grid-default-full-wide-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-full-wide-sidebar-gutter: 5fr !default; -$grid-default-full-wide-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-full-wide-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-full-wide-margin-gutter: 5fr !default; -$grid-default-full-wide-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-default-full-wide-sidebar-width: $grid-default-sidebar-width !default; -$grid-default-full-wide-sidebar-seg1: 0.14 * - $grid-default-full-wide-sidebar-width !default; -$grid-default-full-wide-sidebar-seg2: 0.14 * - $grid-default-full-wide-sidebar-width !default; - -// Margins -$grid-default-full-wide-margin-width: $grid-default-margin-width !default; -$grid-default-full-wide-margin-seg2: 0.14 * $grid-default-full-wide-margin-width !default; -$grid-default-full-wide-margin-seg1: 0.14 * $grid-default-full-wide-margin-width !default; - -// Body -$grid-default-full-wide-body-column-min: $grid-body-column-min !default; -$grid-default-full-wide-body-column-max: $grid-default-body-width !default; -$grid-default-full-wide-body: minmax( - $grid-default-full-wide-body-column-min, - calc( - #{$grid-default-full-wide-body-column-max} - #{$grid-default-full-wide-page-gutter-start + - $grid-default-full-wide-page-gutter-end} - ) -) !default; - -/* Full Content Mid Grid */ -// Margins -$grid-default-full-mid-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-full-mid-sidebar-gutter: 5fr !default; -$grid-default-full-mid-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-full-mid-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-full-mid-margin-gutter: 5fr !default; -$grid-default-full-mid-page-gutter-end: $grid-page-gutter-end !default; - -// No margins or sidebars - -// Body -$grid-default-full-mid-body-column-min: $grid-body-column-min !default; -$grid-default-full-mid-body-column-max: $grid-default-body-width - 50px !default; -$grid-default-full-mid-body: minmax( - $grid-default-full-mid-body-column-min, - calc( - #{$grid-default-full-mid-body-column-max} - #{$grid-default-full-mid-page-gutter-start + - $grid-default-full-mid-page-gutter-end} - ) -) !default; - -/* Listing Wide Grid */ -// Margins -$grid-default-listing-wide-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-listing-wide-sidebar-gutter: 5fr !default; -$grid-default-listing-wide-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-listing-wide-body-gutter-end: 2 * $grid-body-gutter-end !default; -$grid-default-listing-wide-margin-gutter: 1fr !default; -$grid-default-listing-wide-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-default-listing-wide-sidebar-width: $grid-default-sidebar-width !default; -$grid-default-listing-wide-sidebar-seg1: minmax( - #{0.2 * $grid-default-listing-wide-sidebar-width}, - #{0.4 * $grid-default-listing-wide-sidebar-width} -) !default; -$grid-default-listing-wide-sidebar-seg2: 0.2 * - $grid-default-listing-wide-sidebar-width !default; -$grid-default-listing-wide-sidebar-seg3: 0.2 * - $grid-default-listing-wide-sidebar-width !default; - -// Margins -$grid-default-listing-wide-margin-width: $grid-default-margin-width !default; -$grid-default-listing-wide-sidebar-seg3: 0.2 * - $grid-default-listing-wide-margin-width !default; -$grid-default-listing-wide-margin-seg2: minmax( - #{0 * $grid-default-listing-wide-margin-width}, - #{1 * $grid-default-listing-wide-margin-width} -) !default; -$grid-default-listing-wide-margin-seg1: 0.2 * - $grid-default-listing-wide-margin-width !default; - -// Body -$grid-default-listing-wide-body-column-min: $grid-body-column-min !default; -$grid-default-listing-wide-body-column-max: $grid-default-body-width !default; -$grid-default-listing-wide-body: minmax( - $grid-default-listing-wide-body-column-min, - calc( - #{$grid-default-listing-wide-body-column-max} - #{$grid-default-listing-wide-page-gutter-start + - $grid-default-listing-wide-page-gutter-end} - ) -) !default; - -/* Listing Mid Grid */ -// Margins -$grid-default-listing-mid-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-listing-mid-sidebar-gutter: 5fr !default; -$grid-default-listing-mid-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-listing-mid-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-listing-mid-margin-gutter: 5fr !default; -$grid-default-listing-mid-page-gutter-end: $grid-page-gutter-end !default; - -// No margins or sidebars - -// Body -$grid-default-listing-mid-body-column-min: $grid-body-column-min !default; -$grid-default-listing-mid-body-column-max: $grid-default-body-width + 400px !default; -$grid-default-listing-mid-body: minmax( - $grid-default-listing-mid-body-column-min, - calc( - #{$grid-default-listing-mid-body-column-max} - #{$grid-default-listing-mid-page-gutter-start + - $grid-default-listing-mid-page-gutter-end} - ) -) !default; - -/* Slim Wide Grid */ -// Margins -$grid-default-slim-wide-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-slim-wide-sidebar-gutter: 5fr !default; -$grid-default-slim-wide-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-slim-wide-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-slim-wide-margin-gutter: 5fr !default; -$grid-default-slim-wide-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-default-slim-wide-sidebar-width: $grid-default-sidebar-width !default; -$grid-default-slim-wide-sidebar-seg1: 0.14 * - $grid-default-slim-wide-sidebar-width !default; -$grid-default-slim-wide-sidebar-seg2: 0.14 * - $grid-default-slim-wide-sidebar-width !default; - -// Margins -$grid-default-slim-wide-margin-width: $grid-default-margin-width !default; -$grid-default-slim-wide-sidebar-seg3: 0.2 * $grid-default-slim-wide-margin-width !default; -$grid-default-slim-wide-margin-seg2: minmax( - #{0 * $grid-default-slim-wide-margin-width}, - #{0.8 * $grid-default-slim-wide-margin-width} -) !default; -$grid-default-slim-wide-margin-seg1: 0.2 * $grid-default-slim-wide-margin-width !default; - -// Body -$grid-default-slim-wide-body-column-min: $grid-body-column-min !default; -$grid-default-slim-wide-body-column-max: $grid-default-body-width !default; -$grid-default-slim-wide-body: minmax( - $grid-default-slim-wide-body-column-min, - calc( - #{$grid-default-slim-wide-body-column-max} - #{$grid-default-slim-wide-page-gutter-start + - $grid-default-slim-wide-page-gutter-end} - ) -) !default; - -/* Slim Mid Grid */ -// Margins -$grid-default-slim-mid-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-slim-mid-sidebar-gutter: 5fr !default; -$grid-default-slim-mid-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-slim-mid-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-slim-mid-margin-gutter: 5fr !default; -$grid-default-slim-mid-page-gutter-end: $grid-page-gutter-end !default; - -// Margins -$grid-default-slim-mid-margin-width: $grid-default-margin-width !default; -$grid-default-slim-mid-margin-seg3: 0.14 * $grid-default-slim-mid-margin-width !default; -$grid-default-slim-mid-margin-seg2: minmax( - #{0.3 * $grid-default-slim-mid-margin-width}, - #{0.58 * $grid-default-slim-mid-margin-width} -) !default; -$grid-default-slim-mid-margin-seg1: 0.14 * $grid-default-slim-mid-margin-width !default; - -// Body -$grid-default-slim-mid-body-column-min: $grid-body-column-min !default; -$grid-default-slim-mid-body-column-max: $grid-default-body-width - 50px !default; -$grid-default-slim-mid-body: minmax( - $grid-default-slim-mid-body-column-min, - calc( - #{$grid-default-slim-mid-body-column-max} - #{$grid-default-slim-mid-page-gutter-start + - $grid-default-slim-mid-page-gutter-end} - ) -) !default; - -/* TOC Wide Grid */ -// Margins -$grid-default-toc-wide-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-toc-wide-sidebar-gutter: 5fr !default; -$grid-default-toc-wide-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-toc-wide-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-toc-wide-margin-gutter: 5fr !default; -$grid-default-toc-wide-page-gutter-end: $grid-page-gutter-end !default; - -// Sidebars -$grid-default-toc-wide-sidebar-width: $grid-default-sidebar-width !default; -$grid-default-toc-wide-sidebar-seg1: 0.14 * $grid-default-toc-wide-sidebar-width !default; -$grid-default-toc-wide-sidebar-seg2: minmax( - #{0 * $grid-default-toc-wide-sidebar-width}, - #{0.7 * $grid-default-toc-wide-sidebar-width} -) !default; -$grid-default-toc-wide-sidebar-seg3: 0.14 * $grid-default-toc-wide-sidebar-width !default; - -// Margins -$grid-default-toc-wide-margin-width: $grid-default-margin-width !default; -$grid-default-toc-wide-margin-seg3: 0.2 * $grid-default-toc-wide-margin-width !default; -$grid-default-toc-wide-margin-seg2: minmax( - #{0 * $grid-default-toc-wide-margin-width}, - #{0.8 * $grid-default-toc-wide-margin-width} -) !default; -$grid-default-toc-wide-margin-seg1: 0.2 * $grid-default-toc-wide-margin-width !default; - -// Body -$grid-default-toc-wide-body-column-min: $grid-body-column-min - 50px !default; -$grid-default-toc-wide-body-column-max: $grid-default-body-width - 50px !default; -$grid-default-toc-wide-body: minmax( - $grid-default-toc-wide-body-column-min, - calc( - #{$grid-default-toc-wide-body-column-max} - #{$grid-default-toc-wide-page-gutter-start + - $grid-default-toc-wide-page-gutter-end} - ) -) !default; - -/* TOC Mid Grid */ -// Margins -$grid-default-toc-mid-page-gutter-start: $grid-page-gutter-start !default; -$grid-default-toc-mid-sidebar-gutter: 5fr !default; -$grid-default-toc-mid-body-gutter-start: $grid-body-gutter-start !default; -$grid-default-toc-mid-body-gutter-end: $grid-body-gutter-end !default; -$grid-default-toc-mid-margin-gutter: 5fr !default; -$grid-default-toc-mid-page-gutter-end: $grid-page-gutter-end !default; - -// Margins -$grid-default-toc-mid-sidebar-width: $grid-default-sidebar-width !default; -$grid-default-toc-mid-sidebar-seg1: 0.14 * $grid-default-toc-mid-sidebar-width !default; -$grid-default-toc-mid-sidebar-seg2: minmax( - #{0 * $grid-default-toc-mid-sidebar-width}, - #{0.58 * $grid-default-toc-mid-sidebar-width} -) !default; -$grid-default-toc-mid-sidebar-seg3: 0.14 * $grid-default-toc-mid-sidebar-width !default; - -// Body -$grid-default-toc-mid-body-column-min: $grid-body-column-min - 50px !default; -$grid-default-toc-mid-body-column-max: $grid-default-body-width - 50px !default; -$grid-default-toc-mid-body: minmax( - $grid-default-toc-mid-body-column-min, - calc( - #{$grid-default-toc-mid-body-column-max} - #{$grid-default-toc-mid-page-gutter-start + - $grid-default-toc-mid-page-gutter-end} - ) -) !default; - -// Floating Grid Definitions -@mixin page-columns-float-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-wide-page-gutter-start - [screen-start-inset] $grid-float-wide-sidebar-gutter - [page-start] $grid-float-wide-sidebar-seg1 - [page-start-inset] $grid-float-wide-sidebar-seg2 - [body-start-outset] $grid-float-wide-sidebar-seg3 - [body-start] $grid-float-wide-body-gutter-start - [body-content-start] $grid-float-wide-body - [body-content-end] $grid-float-wide-body-gutter-end - [body-end] $grid-float-wide-margin-seg3 - [body-end-outset] $grid-float-wide-margin-seg2 - [page-end-inset] $grid-float-wide-margin-seg1 - [page-end] $grid-float-wide-margin-gutter - [screen-end-inset] $grid-float-wide-page-gutter-end - [screen-end]; -} - -@mixin page-columns-float-slimcontent-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-wide-slim-page-gutter-start - [screen-start-inset] $grid-float-wide-slim-sidebar-gutter - [page-start] $grid-float-wide-slim-sidebar-seg1 - [page-start-inset] $grid-float-wide-slim-sidebar-seg2 - [body-start-outset] $grid-float-wide-slim-sidebar-seg3 - [body-start] $grid-float-wide-slim-body-gutter-start - [body-content-start] $grid-float-wide-slim-body - [body-content-end] $grid-float-wide-slim-body-gutter-end - [body-end] $grid-float-wide-slim-margin-seg3 - [body-end-outset] $grid-float-wide-slim-margin-seg2 - [page-end-inset] $grid-float-wide-slim-margin-seg1 - [page-end] $grid-float-wide-slim-margin-gutter - [screen-end-inset] $grid-float-wide-slim-page-gutter-end - [screen-end]; -} - -@mixin page-columns-float-fullcontent-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-wide-full-page-gutter-start - [screen-start-inset] $grid-float-wide-full-sidebar-gutter - [page-start] $grid-float-wide-full-sidebar-seg1 - [page-start-inset] $grid-float-wide-full-sidebar-seg2 - [body-start-outset] $grid-float-wide-full-sidebar-seg3 - [body-start] $grid-float-wide-full-body-gutter-start - [body-content-start] $grid-float-wide-full-body - [body-content-end] $grid-float-wide-full-body-gutter-end - [body-end body-end-outset page-end-inset page-end] $grid-float-wide-full-margin-gutter - [screen-end-inset] $grid-float-wide-full-page-gutter-end - [screen-end]; -} - -@mixin page-columns-float-listing-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-wide-listing-page-gutter-start - [screen-start-inset] $grid-float-wide-listing-sidebar-gutter - [page-start] $grid-float-wide-listing-sidebar-seg1 - [page-start-inset] $grid-float-wide-listing-sidebar-seg2 - [body-start-outset] $grid-float-wide-listing-sidebar-seg3 - [body-start] $grid-float-wide-listing-body-gutter-start - [body-content-start] $grid-float-wide-listing-body - [body-content-end] $grid-float-wide-listing-body-gutter-end - [body-end] $grid-float-wide-listing-margin-seg3 - [body-end-outset] $grid-float-wide-listing-margin-seg2 - [page-end-inset] $grid-float-wide-listing-margin-seg1 - [page-end] $grid-float-wide-listing-margin-gutter - [screen-end-inset] $grid-float-wide-listing-page-gutter-end - [screen-end]; -} - -// medium 976 down -@mixin page-columns-float-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-mid-page-gutter-start - [screen-start-inset] $grid-float-mid-sidebar-gutter - [page-start page-start-inset body-start-outset body-start] $grid-float-mid-body-gutter-start - [body-content-start] $grid-float-mid-body - [body-content-end] $grid-float-mid-body-gutter-end - [body-end] $grid-float-mid-margin-seg3 - [body-end-outset] $grid-float-mid-margin-seg2 - [page-end-inset] $grid-float-mid-margin-seg1 - [page-end] $grid-float-mid-margin-gutter - [screen-end-inset] $grid-float-mid-page-gutter-end - [screen-end]; -} - -@mixin page-columns-float-slimcontent-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-mid-slim-page-gutter-start - [screen-start-inset] $grid-float-mid-slim-sidebar-gutter - [page-start page-start-inset body-start-outset body-start] $grid-float-mid-slim-body-gutter-start - [body-content-start] $grid-float-mid-slim-body - [body-content-end] $grid-float-mid-slim-body-gutter-end - [body-end] $grid-float-mid-slim-margin-seg3 - [body-end-outset] $grid-float-mid-slim-margin-seg2 - [page-end-inset] $grid-float-mid-slim-margin-seg1 - [page-end] $grid-float-mid-slim-margin-gutter - [screen-end-inset] $grid-float-mid-slim-page-gutter-end - [screen-end]; -} - -@mixin page-columns-float-fullcontent-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-mid-full-page-gutter-start - [screen-start-inset] $grid-float-mid-full-sidebar-gutter - [page-start page-start-inset body-start-outset body-start] $grid-float-mid-full-body-gutter-start - [body-content-start] $grid-float-mid-full-body - [body-content-end]$grid-float-mid-full-body-gutter-end - [body-end body-end-outset page-end-inset page-end] $grid-float-mid-full-margin-gutter - [screen-end-inset] $grid-float-mid-full-page-gutter-end - [screen-end]; -} - -@mixin page-columns-float-listing-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-float-mid-listing-page-gutter-start - [screen-start-inset] $grid-float-mid-listing-sidebar-gutter - [page-start page-start-inset body-start-outset body-start] $grid-float-mid-listing-body-gutter-start - [body-content-start] $grid-float-mid-listing-body - [body-content-end] $grid-float-mid-listing-body-gutter-end - [body-end] $grid-float-mid-listing-margin-seg3 - [body-end-outset] $grid-float-mid-listing-margin-seg2 - [page-end-inset] $grid-float-mid-listing-margin-seg1 - [page-end] $grid-float-mid-listing-margin-gutter - [screen-end-inset] $grid-float-mid-listing-page-gutter-end - [screen-end]; -} - -// Docked Grid Definitions -@mixin page-columns-docked-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-wide-page-gutter-start - [screen-start-inset page-start] $grid-docked-wide-sidebar-seg1 - [page-start-inset] $grid-docked-wide-sidebar-seg2 - [body-start-outset] $grid-docked-wide-sidebar-seg3 - [body-start] $grid-docked-wide-body-gutter-start - [body-content-start] $grid-docked-wide-body - [body-content-end] $grid-docked-wide-body-gutter-end - [body-end] $grid-docked-wide-margin-seg3 - [body-end-outset] $grid-docked-wide-margin-seg2 - [page-end-inset] $grid-docked-wide-margin-seg1 - [page-end] $grid-docked-wide-margin-gutter - [screen-end-inset] $grid-docked-wide-page-gutter-end - [screen-end]; -} - -@mixin page-columns-docked-slimcontent-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-wide-slim-page-gutter-start - [screen-start-inset page-start] $grid-docked-wide-slim-sidebar-seg1 - [page-start-inset] $grid-docked-wide-slim-sidebar-seg2 - [body-start-outset] $grid-docked-wide-slim-sidebar-seg3 - [body-start] $grid-docked-wide-slim-body-gutter-start - [body-content-start] $grid-docked-wide-slim-body - [body-content-end] $grid-docked-wide-slim-body-gutter-end - [body-end] $grid-docked-wide-slim-margin-seg3 - [body-end-outset] $grid-docked-wide-slim-margin-seg2 - [page-end-inset] $grid-docked-wide-slim-margin-seg1 - [page-end] $grid-docked-wide-slim-margin-gutter - [screen-end-inset] $grid-docked-wide-slim-page-gutter-end - [screen-end]; -} - -@mixin page-columns-docked-fullcontent-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-wide-full-page-gutter-start - [screen-start-inset page-start] $grid-docked-wide-full-sidebar-seg1 - [page-start-inset] $grid-docked-wide-full-sidebar-seg2 - [body-start-outset] $grid-docked-wide-full-sidebar-seg3 - [body-start] $grid-docked-wide-full-body-gutter-start - [body-content-start] $grid-docked-wide-full-body - [body-content-end] $grid-docked-wide-full-body-gutter-end - [body-end body-end-outset page-end-inset page-end] $grid-docked-wide-full-margin-gutter - [screen-end-inset] $grid-docked-wide-full-page-gutter-end - [screen-end]; -} - -@mixin page-columns-docked-listing-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-wide-listing-page-gutter-start - [screen-start-inset page-start] $grid-docked-wide-listing-sidebar-seg1 - [page-start-inset] $grid-docked-wide-listing-sidebar-seg2 - [body-start-outset] $grid-docked-wide-listing-sidebar-seg3 - [body-start] $grid-docked-wide-listing-body-gutter-start - [body-content-start] $grid-docked-wide-listing-body - [body-content-end] $grid-docked-wide-listing-body-gutter-end - [body-end] $grid-docked-wide-listing-margin-seg3 - [body-end-outset] $grid-docked-wide-listing-margin-seg2 - [page-end-inset] $grid-docked-wide-listing-margin-seg1 - [page-end] $grid-docked-wide-listing-margin-gutter - [screen-end-inset] $grid-docked-wide-listing-page-gutter-end - [screen-end]; -} - -@mixin page-columns-docked-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-mid-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] $grid-docked-mid-body - [body-content-end] $grid-docked-mid-body-gutter-end - [body-end] $grid-docked-mid-margin-seg3 - [body-end-outset] $grid-docked-mid-margin-seg2 - [page-end-inset] $grid-docked-mid-margin-seg1 - [page-end] $grid-docked-mid-margin-gutter - [screen-end-inset] $grid-docked-mid-page-gutter-end - [screen-end]; -} - -@mixin page-columns-docked-slimcontent-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-mid-slim-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] $grid-docked-mid-slim-body - [body-content-end] $grid-docked-mid-slim-body-gutter-end - [body-end] $grid-docked-mid-slim-margin-seg3 - [body-end-outset] $grid-docked-mid-slim-margin-seg2 - [page-end-inset] $grid-docked-mid-slim-margin-seg1 - [page-end] $grid-docked-mid-slim-margin-gutter - [screen-end-inset] $grid-docked-mid-slim-page-gutter-end - [screen-end]; -} - -@mixin page-columns-docked-fullcontent-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-mid-full-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] $grid-docked-mid-full-body - [body-content-end] $grid-docked-mid-full-body-gutter-end - [body-end body-end-outset page-end-inset page-end] $grid-docked-mid-full-margin-gutter - [screen-end-inset] $grid-docked-mid-full-page-gutter-end - [screen-end]; -} - -@mixin page-columns-docked-listing-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-docked-mid-listing-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] $grid-docked-mid-listing-body - [body-content-end] $grid-docked-mid-listing-body-gutter-start - [body-end] $grid-docked-mid-slim-margin-seg3 - [body-end-outset] $grid-docked-mid-slim-margin-seg2 - [page-end-inset] $grid-docked-mid-slim-margin-seg1 - [page-end] $grid-docked-mid-listing-margin-gutter - [screen-end-inset] $grid-docked-mid-listing-page-gutter-end - [screen-end]; -} - -// Plain Grid Definitions -@mixin page-columns-default-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-wide-page-gutter-start - [screen-start-inset] $grid-default-wide-sidebar-gutter - [page-start page-start-inset] $grid-default-wide-sidebar-seg1 - [body-start-outset] $grid-default-wide-sidebar-seg2 - [body-start] $grid-default-wide-body-gutter-start - [body-content-start] $grid-default-wide-body - [body-content-end] $grid-default-wide-body-gutter-end - [body-end] $grid-default-wide-margin-seg3 - [body-end-outset] $grid-default-wide-margin-seg2 - [page-end-inset] $grid-default-wide-margin-seg1 - [page-end] $grid-default-wide-margin-gutter - [screen-end-inset] $grid-default-wide-page-gutter-end - [screen-end]; -} - -@mixin page-columns-default-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-mid-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset] $grid-default-mid-sidebar-gutter - [body-start] $grid-default-mid-body-gutter-start - [body-content-start] $grid-default-mid-body - [body-content-end] $grid-default-mid-body-gutter-end - [body-end] $grid-default-mid-margin-seg3 - [body-end-outset] $grid-default-mid-margin-seg2 - [page-end-inset] $grid-default-mid-margin-seg1 - [page-end] $grid-default-mid-margin-gutter - [screen-end-inset] $grid-default-mid-page-gutter-end - [screen-end]; -} - -// Full content grid definitions -@mixin page-columns-fullcontent-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-full-wide-page-gutter-start - [screen-start-inset] $grid-default-full-wide-sidebar-gutter - [page-start page-start-inset] $grid-default-full-wide-sidebar-seg1 - [body-start-outset] $grid-default-full-wide-sidebar-seg2 - [body-start] $grid-default-full-wide-body-gutter-start - [body-content-start] $grid-default-full-wide-body - [body-content-end] $grid-default-full-wide-body-gutter-end - [body-end] $grid-default-full-wide-margin-seg2 - [body-end-outset] $grid-default-full-wide-margin-seg1 - [page-end-inset page-end] $grid-default-full-wide-margin-gutter - [screen-end-inset] $grid-default-full-wide-page-gutter-end; -} - -@mixin page-columns-fullcontent-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-full-mid-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset] $grid-default-full-mid-sidebar-gutter - [body-start] $grid-default-full-mid-body-gutter-start - [body-content-start] $grid-default-full-mid-body - [body-content-end] $grid-default-full-mid-body-gutter-end - [body-end body-end-outset page-end-inset page-end] $grid-default-full-mid-margin-gutter - [screen-end-inset] $grid-default-full-mid-page-gutter-end - [screen-end]; -} - -// Listing content grid definitions -@mixin page-columns-listing-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-listing-wide-page-gutter-start - [screen-start-inset page-start] $grid-default-listing-wide-sidebar-seg1 - [page-start-inset] $grid-default-listing-wide-sidebar-seg2 - [body-start-outset] $grid-default-listing-wide-sidebar-seg3 - [body-start] $grid-default-listing-wide-body-gutter-start - [body-content-start] $grid-default-listing-wide-body - [body-content-end] $grid-default-listing-wide-body-gutter-end - [body-end] $grid-default-listing-wide-sidebar-seg3 - [body-end-outset] $grid-default-listing-wide-margin-seg2 - [page-end-inset] $grid-default-listing-wide-sidebar-seg1 - [page-end] $grid-default-listing-wide-margin-gutter - [screen-end-inset] $grid-default-listing-wide-page-gutter-end - [screen-end]; -} - -@mixin page-columns-listing-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-listing-mid-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset] $grid-default-listing-mid-sidebar-gutter - [body-start] $grid-default-listing-mid-body-gutter-start - [body-content-start] $grid-default-listing-mid-body - [body-content-end body-end body-end-outset page-end-inset page-end] $grid-default-listing-mid-margin-gutter - [screen-end-inset] $grid-default-listing-mid-page-gutter-end - [screen-end]; -} - -// Slim content grid definitions -@mixin page-columns-slimcontent-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-slim-wide-page-gutter-start - [screen-start-inset] $grid-default-slim-wide-sidebar-gutter - [page-start page-start-inset] $grid-default-slim-wide-sidebar-seg1 - [body-start-outset] $grid-default-slim-wide-sidebar-seg2 - [body-start] $grid-default-slim-wide-body-gutter-start - [body-content-start] $grid-default-slim-wide-body - [body-content-end] $grid-default-slim-wide-body-gutter-end - [body-end] $grid-default-slim-wide-sidebar-seg3 - [body-end-outset] $grid-default-slim-wide-margin-seg2 - [page-end-inset] $grid-default-slim-wide-sidebar-seg1 - [page-end] $grid-default-slim-wide-margin-gutter - [screen-end-inset] $grid-default-slim-wide-page-gutter-end - [screen-end]; -} - -@mixin page-columns-slimcontent-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-slim-mid-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset] $grid-default-slim-mid-sidebar-gutter - [body-start] $grid-default-slim-mid-body-gutter-start - [body-content-start] $grid-default-slim-mid-body - [body-content-end] $grid-default-slim-mid-body-gutter-end - [body-end] $grid-default-slim-mid-margin-seg3 - [body-end-outset] $grid-default-slim-mid-margin-seg2 - [page-end-inset] $grid-default-slim-mid-margin-seg1 - [page-end] $grid-default-slim-mid-margin-gutter - [screen-end-inset] $grid-default-slim-mid-page-gutter-end - [screen-end]; -} - -// TOC left grid -@mixin page-columns-tocleft-wide { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-toc-wide-page-gutter-start - [screen-start-inset] $grid-default-toc-wide-sidebar-gutter - [page-start] $grid-default-toc-wide-sidebar-seg1 - [page-start-inset] $grid-default-toc-wide-sidebar-seg2 - [body-start-outset] $grid-default-toc-wide-sidebar-seg3 - [body-start] $grid-default-toc-wide-body-gutter-start - [body-content-start] $grid-default-toc-wide-body - [body-content-end] $grid-default-toc-wide-body-gutter-end - [body-end] $grid-default-toc-wide-margin-seg3 - [body-end-outset] $grid-default-toc-wide-margin-seg2 - [page-end-inset] $grid-default-toc-wide-margin-seg1 - [page-end] $grid-default-toc-wide-margin-gutter - [screen-end-inset] $grid-default-toc-wide-page-gutter-end - [screen-end]; -} - -@mixin page-columns-tocleft-mid { - @include page-columns(); - grid-template-columns: - [screen-start] $grid-default-toc-mid-page-gutter-start - [screen-start-inset] $grid-default-toc-mid-sidebar-gutter - [page-start] $grid-default-toc-mid-sidebar-seg1 - [page-start-inset] $grid-default-toc-mid-sidebar-seg2 - [body-start-outset] $grid-default-toc-mid-sidebar-seg3 - [body-start] $grid-default-toc-mid-body-gutter-start - [body-content-start] $grid-default-toc-mid-body - [body-content-end] $grid-default-toc-mid-body-gutter-end - [body-end body-end-outset page-end-inset page-end] $grid-default-toc-mid-margin-gutter - [screen-end-inset] $grid-default-toc-mid-page-gutter-end - [screen-end]; -} - -// Small size responsive grid -// All grids share this fully collapsed mode which hides -// the sidebar and margin -@mixin grid-template-columns-narrow { - grid-template-columns: - [screen-start] $grid-page-gutter-start - [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax( - 0px, - 1fr - ) - [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] $grid-page-gutter-end - [screen-end]; -} - - -// quarto-scss-analysis-annotation { "origin": "'mixins' section from user-defined SCSS" } - - - - - - - - - - - - - - - -// quarto-scss-analysis-annotation { "origin": "'rules' section from format" } - - - - - - - - - - - - - -@import "mixins/banner"; -@include bsBanner(""); - - -// scss-docs-start import-stack -// Configuration -@import "variables-dark"; -@import "maps"; -@import "utilities"; - -// Layout & components -@import "root"; -@import "reboot"; -@import "type"; -@import "images"; -@import "containers"; -@import "grid"; -@import "tables"; -@import "forms"; -@import "buttons"; -@import "transitions"; -@import "dropdown"; -@import "button-group"; -@import "nav"; -@import "navbar"; -@import "card"; -@import "accordion"; -@import "breadcrumb"; -@import "pagination"; -@import "badge"; -@import "alert"; -@import "progress"; -@import "list-group"; -@import "close"; -@import "toasts"; -@import "modal"; -@import "tooltip"; -@import "popover"; -@import "carousel"; -@import "spinners"; -@import "offcanvas"; -@import "placeholders"; - -// Helpers -@import "helpers"; - -// Utilities -@import "utilities/api"; -// scss-docs-end import-stack - -@import "spacer"; -@import "tab-fill"; -@import "color-utilities"; - -$bslib-enable-color-utilities: $bootstrap-version >= 5 !default; - -@if ($bslib-enable-color-utilities) { - $bslib-gradient-colors: () !default; - - $bslib-gradient-colors-defaults: (); - $bslib-color-names: ("blue", "indigo", "purple", "pink", "red", "orange", "yellow", "green", "teal", "cyan"); - - @each $name in $bslib-color-names { - @if (map-has-key($colors, $name)) { - $bslib-gradient-colors-defaults: map-merge( - $bslib-gradient-colors-defaults, - ($name: map-get($colors, $name)) - ); - } - } - - $bslib-gradient-colors: map-merge( - $bslib-gradient-colors-defaults, - $bslib-gradient-colors - ); - - // Named color background and foreground utility classes --------------------- - @each $name, $color in $bslib-gradient-colors { - .bg-#{$name} { - --bslib-color-bg: #{$color}; - --bslib-color-fg: #{color-contrast($color)}; - background-color: var(--bslib-color-bg); - color: var(--bslib-color-fg); - } - - .text-#{$name} { - --bslib-color-fg: #{$color}; - color: var(--bslib-color-fg); - } - } - - // Fill in the `--color-*` variables - @each $name, $color in $theme-colors { - .text-#{$name} { - --bslib-color-fg: #{$color}; - } - .bg-#{$name} { - --bslib-color-bg: #{$color}; - --bslib-color-fg: #{color-contrast($color)}; - } - } - - // Gradient backgrounds ------------------------------------------------------ - // - // Creates gradient background for every named color pair. Users can add - // additional colors into the mix by setting $bslib-gradient-colors to a map of - // color names to colors. Creates class names like: .bg-gradient-{from}-{to}. - @each $name1, $color1 in $bslib-gradient-colors { - @each $name2, $color2 in $bslib-gradient-colors { - @if $name1 != $name2 { - .bg-gradient-#{$name1}-#{$name2} { - $color-mid: mix($color1, $color2, 60%); - $color-fg: color-contrast($color-mid); - - --bslib-color-fg: #{$color-fg}; - --bslib-color-bg: #{$color-mid}; - - background: linear-gradient( - var(--bg-gradient-deg, 140deg), - $color1 var(--bg-gradient-start, 36%), - $color2 var(--bg-gradient-end, 180%) - ) $color-mid; - color: $color-fg; - } - } - } - } -} - -// color-contrast() was introduced in Bootstrap 5. -// We include our own version for a few reasons: -// 1. Easily turn off warnings options(bslib.color_contrast_warnings=F) -// 2. Allow Bootstrap 3 & 4 to use color-contrast() in variable definitions -// 3. Allow Bootstrap 3 & 4 to use bs_get_contrast() - -// Also note that color-contrast() lives in sass-utils since projects like Quarto -// and flexdashboard currently assume it exists there.... -@import "../sass-utils/color-contrast.scss"; - - -@function is-css-variable($x) { - @if (type-of($x) != string) { - @return false; - } @else { - @return str-slice($x, 1, 6) == 'var(--'; - } -} - -$spacer: 1rem !default; - -:root { - // Controls default spacing in layout containers (e.g, layout_columns()) - --bslib-spacer: #{$spacer}; - --bslib-mb-spacer: var(--bslib-spacer, 1rem); -} - -// Some things like card(), p(), inputs, etc. want some margin-bottom by default -// so you can plop them anywhere and you get spacing between rows. However, now -// that we have layout utilities like page_fillable(), layout_columns(), -// layout_sidebar(), etc. where we can control the gap between rows/columns, we -// need a way to reset those margin-bottom to 0 in those special contexts -// -// We do this by adding this class to components (e.g., card())... -.bslib-mb-spacing { - margin-bottom: var(--bslib-mb-spacer); -} - -// ...And this class for layout containers (e.g, layout_columns()) -.bslib-gap-spacing { - gap: var(--bslib-mb-spacer); - > .bslib-mb-spacing, > .form-group, > p, > pre { - margin-bottom: 0; - } -} - -// We generally don't want mb spacing for _activated_ fill items -.html-fill-container > .html-fill-item.bslib-mb-spacing { - margin-bottom: 0; -} -.tab-content { - // Workaround for pkgdown's CSS to make tab-pane all a consistent height - // https://github.com/r-lib/pkgdown/blob/956f07/inst/BS5/assets/pkgdown.scss#L342-L355 - >.tab-pane.html-fill-container { - display: none; - } - - // Take precedence over Bootstrap's `display:block` rule - >.active.html-fill-container { - display: flex; - } - - // Another workaround for pkgdown adding extra padding we didn't ask for - // https://github.com/r-lib/pkgdown/blob/956f07/inst/BS5/assets/pkgdown.scss#L335-L337 - &.html-fill-container { - padding: 0; - } -} - -.accordion { - .accordion-header { - @include bootstrap-heading($h2-font-size); - margin-bottom: 0; - } - .accordion-icon:not(:empty) { - margin-right: 0.75rem; - display: flex; /* Without flex, the height/alignment is messed up */ - } - .accordion-button:not(.collapsed) { - box-shadow: none; - // This none overrides the box-shadow applied to - // .accordion-button:focus (and, as a result, non-collapsed buttons - // won't show a visual indication of focus, #488). - // So, repeat the .accordion-button:focus below to give it a - // higher priority. - &:focus { - box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow); - } - } -} - -.bslib-card { - // TODO: allow a way to opt out - overflow: auto; - - // Avoid "double padding" when two card_body()s are immediate siblings - .card-body + .card-body { - padding-top: 0; - } - - .card-body { - overflow: auto; - p { - margin-top: 0; - - &:last-child { - margin-bottom: 0; - } - } - } - - .card-body { - max-height: var(--bslib-card-body-max-height, none); - } - - &[data-full-screen="true"] > .card-body { - max-height: var(--bslib-card-body-max-height-full-screen, none); - } - - .card-header { - .form-group { - margin-bottom: 0; - } - .selectize-control { - margin-bottom: 0; - // TODO: we should probably add this to selectize's SCSS since this actually makes selectInput() - // usable with width="fit-content" - .item { - margin-right: 1.15rem; - } - } - } - - .card-footer { - margin-top: auto; - } - - // For navs_tab_card(title = ...) - .bslib-navs-card-title { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - .nav { - margin-left: auto; - } - } - - .bslib-sidebar-layout:not([data-bslib-sidebar-border="true"]) { - border: none; - } - .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius="true"]) { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - -} - - -/************************************************* -* Full screen card logic -*************************************************/ - -[data-full-screen="true"] { - position: fixed; - inset: 3.5rem 1rem 1rem; - height: auto !important; - max-height: none !important; - width: auto !important; - z-index: $zindex-popover; -} - -.bslib-full-screen-enter { - display: none; - position: absolute; - bottom: var(--bslib-full-screen-enter-bottom, 0.2rem); - right: var(--bslib-full-screen-enter-right, 0); - top: var(--bslib-full-screen-enter-top); - left: var(--bslib-full-screen-enter-left); - color: var(--bslib-color-fg, var(--bs-card-color)); - background-color: var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg))); - border: var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color)); - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); - margin: 0.2rem 0.4rem; - padding: 0.55rem !important; - font-size: .8rem; - cursor: pointer; - opacity: 0.7; - &:hover { opacity: 1; } - z-index: $zindex-popover; -} - -.card[data-full-screen="false"]:hover > * > .bslib-full-screen-enter { - display: block; -} - -// Hide all enter-full-screen buttons when *any* card is full-screenified -.bslib-has-full-screen .card:hover > * > .bslib-full-screen-enter { - display: none; -} - -// Only allow full_screen on desktop screens -@include media-breakpoint-down(sm) { - .bslib-full-screen-enter { display: none !important; } -} - -.bslib-full-screen-exit { - position: relative; - top: 1.35rem; - font-size: 0.9rem; - cursor: pointer; - text-decoration: none; - display: flex; - float: right; - margin-right: 2.15rem; - align-items: center; - color: rgba(var(--bs-body-bg-rgb), 0.8); - &:hover { - color: rgba(var(--bs-body-bg-rgb), 1); - } - svg { - margin-left: 0.5rem; - font-size: 1.5rem; - } -} - -#bslib-full-screen-overlay { - position: fixed; - inset: 0; - background-color: rgba(var(--bs-body-color-rgb), 0.6); - backdrop-filter: blur(2px); - -webkit-backdrop-filter: blur(2px); - z-index: $zindex-popover - 1; - animation: bslib-full-screen-overlay-enter 400ms cubic-bezier(.6,.02,.65,1) forwards; -} - -@keyframes bslib-full-screen-overlay-enter { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -.bslib-grid { - display: grid !important; - gap: var(--bslib-spacer, 1rem); - height: var(--bslib-grid-height); - &.grid { - // Don't let intrinsic width of a column affect the width of grid cols - grid-template-columns: repeat(var(--bs-columns, 12), minmax(0, 1fr)); - // For some reason, Bootstrap sets `grid-template-rows: 1fr` by default, which - // is problematic for a multi-row filling layout. This fixes it... - // > page_fillable(layout_columns(c(12, 12), plotly::plot_ly(), plotly::plot_ly())) - grid-template-rows: unset; - grid-auto-rows: var(--bslib-grid--row-heights); - @include bslib-breakpoints-css-vars('bslib-grid--row-heights', map-keys($grid-breakpoints)); - } - - & > * > .shiny-input-container { - width: 100%; - } -} - -.bslib-grid-item { - grid-column: auto/span 1; -} - -@include media-breakpoint-down(md) { - // collapse all columns to a single column below medium (by default only) - .bslib-grid-item { - grid-column: 1 / -1; - } -} - -@include media-breakpoint-down(sm) { - // with each "row" taking its natural height - .bslib-grid { - grid-template-columns: 1fr !important; - height: var(--bslib-grid-height-mobile); - &.grid { - height: unset !important; - grid-auto-rows: var(--bslib-grid--row-heights--xs, auto); - } - } -} - -/* CSS behind nav_spacer() */ -@mixin nav-spacer() { - .nav:not(.nav-hidden) { - /* Make sure nav container is flexbox (they aren't in BS3) */ - display: flex !important; - display: -webkit-flex !important; - // Logic for horizontal nav (e.g., navset_tab(), etc) - &:not(.nav-stacked):not(.flex-column) { - float: none !important; - > .bslib-nav-spacer { - margin-left: auto !important; - } - /* .form-inline doesn't vertically align in BS3? */ - > .form-inline { - margin-top: auto; - margin-bottom: auto; - } - } - // Logic for vertical nav (e.g., navset_pill_list()) - &.nav-stacked { - flex-direction: column; - -webkit-flex-direction: column; - height: 100%; - > .bslib-nav-spacer { - margin-top: auto !important; - } - } - } -} - -/* BS4+ uses this mixin for configurable breakpoints */ -@if mixin-exists("media-breakpoint-up") { - @include media-breakpoint-up(sm) { - @include nav-spacer(); - } -} @else { - /* BS3 default navbar breakpoint */ - @media (min-width: 768px) { - @include nav-spacer(); - } -} - -html { - height: 100%; -} - -.bslib-page-fill { - width: 100%; - height: 100%; - margin: 0; - padding: var(--bslib-spacer, 1rem); - gap: var(--bslib-spacer, 1rem); -} - -@include media-breakpoint-down(sm) { - .bslib-page-fill { - height: var(--bslib-page-fill-mobile-height, auto); - } -} - -.navbar+.container-fluid { - - // When the tab/page is fillable, undo the padding on the container-fluid - // (in this case, the user has control over padding/gap) - &:has(> .tab-content > .tab-pane.active.html-fill-container) { - padding-left: 0; - padding-right: 0; - } - - // When the tab/page is fillable, add sensible default padding - >.tab-content>.tab-pane.active.html-fill-container { - padding: var(--bslib-spacer, 1rem); - gap: var(--bslib-spacer, 1rem); - - // ...but if it holds a single sidebar layout, remove the padding - &:has(> .bslib-sidebar-layout:only-child) { - padding: 0; - } - - // And smart border defaults for nav_panel("Foo", layout_sidebar()) - >.bslib-sidebar-layout:only-child { - &:not([data-bslib-sidebar-border="true"]) { - border-left: none; - border-right: none; - border-bottom: none; - } - - &:not([data-bslib-sidebar-border-radius="true"]) { - border-radius: 0; - } - } - } -} - -// Make sure a border appears between the navbar and the sidebar layout -// (especially important when page_navbar(inverse = FALSE, sidebar = sidebar()) -.navbar+div>.bslib-sidebar-layout { - border-top: var(--bslib-sidebar-border); -} -$bslib-page-sidebar-title-bg: if($navbar-bg, $navbar-bg, $dark) !default; -$bslib-page-sidebar-title-color: color-contrast($bslib-page-sidebar-title-bg) !default; -$bslib-sidebar-padding: $spacer * 1.5 !default; - -:root { - --bslib-page-sidebar-title-bg: #{$bslib-page-sidebar-title-bg}; - --bslib-page-sidebar-title-color: #{$bslib-page-sidebar-title-color}; -} - -.bslib-page-title { - background-color: var(--bslib-page-sidebar-title-bg); - color: var(--bslib-page-sidebar-title-color); - font-size: $h4-font-size; - font-weight: 300; - padding: var(--bslib-spacer, 1rem); - padding-left: $bslib-sidebar-padding; - margin-bottom: 0; - border-bottom: $border-width solid $border-color; -} - -$bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0,0,0), 0.05) !default; -$bslib-sidebar-fg: var(--bs-emphasis-color, black) !default; -$bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0,0,0), 0.1) !default; -$bslib-sidebar-border: var(--bs-card-border-width, #{$card-border-width}) solid var(--bs-card-border-color, #{$card-border-color}) !default; -$bslib-sidebar-column-sidebar: Min(calc(100% - var(--bslib-sidebar-icon-size)), var(--bslib-sidebar-width, 250px)); - - -.bslib-sidebar-layout { - --bslib-sidebar-transition-duration: 500ms; - --bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07); - --bslib-sidebar-border: #{$bslib-sidebar-border}; - --bslib-sidebar-border-radius: var(--bs-border-radius); - --bslib-sidebar-vert-border: #{$bslib-sidebar-border}; - --bslib-sidebar-bg: #{$bslib-sidebar-bg}; - --bslib-sidebar-fg: #{$bslib-sidebar-fg}; - --bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color)); - --bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg)); - --bslib-sidebar-toggle-bg: #{$bslib-sidebar-toggle-bg}; - --bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5); - --bslib-sidebar-icon-size: var(--bslib-spacer, 1rem); - --bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2); - --bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5); - // We intentionally don't give a value here, but it could be set by someone else - // --bslib-collapse-toggle-border: ; - --bslib-collapse-toggle-border-radius: var(--bs-border-radius, #{$border-radius}); - --bslib-collapse-toggle-transform: 0deg; - --bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1); - --bslib-collapse-toggle-right-transform: 180deg; - --bslib-sidebar-column-main: minmax(0, 1fr); - - display: grid !important; - grid-template-columns: $bslib-sidebar-column-sidebar var(--bslib-sidebar-column-main); - position: relative; - - @include transition(grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration)); - - border: var(--bslib-sidebar-border); - border-radius: var(--bslib-sidebar-border-radius); - - &[data-bslib-sidebar-border="false"] { - border: none; - } - &[data-bslib-sidebar-border-radius="false"] { - border-radius: initial; - } - - > .main, > .sidebar { - grid-row: 1 / 2; - border-radius: inherit; - overflow: auto; - } - - > .main { - grid-column: 2 / 3; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - padding: var(--bslib-sidebar-padding); - transition: padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration); - color: var(--bslib-sidebar-main-fg); - background-color: var(--bslib-sidebar-main-bg); - } - - > .sidebar { - grid-column: 1 / 2; - width: 100%; - height: 100%; - border-right: var(--bslib-sidebar-vert-border); - border-top-right-radius: 0; - border-bottom-right-radius: 0; - color: var(--bslib-sidebar-fg); - background-color: var(--bslib-sidebar-bg); - backdrop-filter: blur(5px); - - > .sidebar-content { - display: flex; - flex-direction: column; - gap: var(--bslib-spacer, 1rem); - padding: var(--bslib-sidebar-padding); - // Add space for the toggle button (removed if sidebar is always open) - padding-top: var(--bslib-sidebar-padding-icon); - - > :last-child:not(.sidebar-title) { - // Remove margin-bottom from the last item because sidebar has padding. - // We make an exception for .sidebar-title because it might be common to - // have a title and bare text nodes (that don't count as children). - margin-bottom: 0; - } - - > .accordion { - margin-left: calc(-1 * var(--bslib-sidebar-padding)); - margin-right: calc(-1 * var(--bslib-sidebar-padding)); - &:last-child { - margin-bottom: calc(-1 * var(--bslib-sidebar-padding)); - } - &:not(:last-child) { - margin-bottom: $spacer; - } - .accordion-body { - display: flex; - flex-direction: column; - } - } - - // Accordions in sidebars are made flush with `.accordion-flush`, which - // removes the top and bottom border of the first or last accordion item. - // But in our usage, the accordions might not be the first or last item in - // the sidebar. In that case, it's better to keep the top/bottom borders. - > .accordion:not(:first-child) .accordion-item:first-child { - border-top: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color); - } - > .accordion:not(:last-child) .accordion-item:last-child { - border-bottom: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color); - } - - &.has-accordion > .sidebar-title { - border-bottom: none; - padding-bottom: 0; - } - } - - .shiny-input-container { - width: 100%; - } - } - - &[data-bslib-sidebar-open="always"] { - > .sidebar > .sidebar-content { - // Always-open sidebars don't have a toggle & can use normal top padding - padding-top: var(--bslib-sidebar-padding); - } - } - - > .collapse-toggle { - grid-row: 1 / 2; - grid-column: 1 / 2; - display: inline-flex; - align-items: center; - position: absolute; - right: calc(var(--bslib-sidebar-icon-size)); - top: calc(var(--bslib-sidebar-icon-size, 1rem) / 2); - border: none; - border-radius: var(--bslib-collapse-toggle-border-radius); - height: var(--bslib-sidebar-icon-button-size, 2rem); - width: var(--bslib-sidebar-icon-button-size, 2rem); - display: flex; - align-items: center; - justify-content: center; - padding: 0; - color: var(--bslib-sidebar-fg); - background-color: unset; // don't take `button` background color - transition: - color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration), - top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration), - right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration), - left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration); - - &:hover { - background-color: var(--bslib-sidebar-toggle-bg); - } - - > .collapse-icon { - opacity: 0.8; - width: var(--bslib-sidebar-icon-size); - height: var(--bslib-sidebar-icon-size); - transform: rotateY(var(--bslib-collapse-toggle-transform)); - // N.B. since mobile view won't trigger a transition of grid-template-columns, - // we transition this toggle to ensure _some_ transition event always happens. - transition: transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration); - } - - &:hover > .collapse-icon { - opacity: 1; - } - } - - .sidebar-title { - font-size: $font-size-base * 1.25; - line-height: $line-height-sm; - margin-top: 0; - margin-bottom: $spacer; - padding-bottom: $spacer; - border-bottom: var(--bslib-sidebar-border); - } - - &.sidebar-right { - grid-template-columns: var(--bslib-sidebar-column-main) $bslib-sidebar-column-sidebar; - - > .main { - grid-column: 1 / 2; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-top-left-radius: inherit; - border-bottom-left-radius: inherit; - } - - > .sidebar { - grid-column: 2 / 3; - border-right: none; - border-left: var(--bslib-sidebar-vert-border); - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - > .collapse-toggle { - grid-column: 2 / 3; - left: var(--bslib-sidebar-icon-size); - right: unset; - border: var(--bslib-collapse-toggle-border); - > .collapse-icon { - transform: rotateY(var(--bslib-collapse-toggle-right-transform)); - } - } - } - - &.sidebar-collapsed { - --bslib-collapse-toggle-transform: 180deg; - --bslib-collapse-toggle-right-transform: 0deg; - --bslib-sidebar-vert-border: none; - - grid-template-columns: 0 minmax(0, 1fr); - - &.sidebar-right { - grid-template-columns: minmax(0, 1fr) 0; - } - - // Hide the sidebar contents after it's done transitioning so that - // those contents don't impact the overall layout (i.e., height) - &:not(.transitioning) { - // Putting `display:none` on .sidebar would change the number of columns - // in the grid, and I don't think we can transition between those states - > .sidebar > * { - display: none; - } - } - - > .main { - border-radius: inherit; - } - - &:not(.sidebar-right) > .main { - padding-left: var(--bslib-sidebar-padding-icon); - } - &.sidebar-right > .main { - padding-right: var(--bslib-sidebar-padding-icon); - } - - > .collapse-toggle { - color: var(--bslib-sidebar-main-fg); - // The CSS variable (set via JS) is here to help avoid overlapping toggles - top: calc( - var(--bslib-sidebar-overlap-counter, 0) * - calc(var(--bslib-sidebar-icon-size) + - var(--bslib-sidebar-padding) - ) + var(--bslib-sidebar-icon-size, 1rem) / 2); - right: calc(-2.5 * var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px)); - } - - &.sidebar-right > .collapse-toggle { - left: calc(-2.5 * var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px)); - right: unset; - } - } -} - -@include media-breakpoint-up(sm) { - // hide sidebar content while we transition the parent .sidebar on desktop - // (on mobile the reveal happens immediately) - .bslib-sidebar-layout.transitioning > .sidebar > .sidebar-content { - display: none; - } -} - -@include media-breakpoint-down(sm) { - .bslib-sidebar-layout { - // Tell sidebar init js we're on mobile for `sidebar(open = "desktop")` - &[data-bslib-sidebar-open="desktop"] { - --bslib-sidebar-js-init-collapsed: true; - } - - &, &.sidebar-right { - // Remove sidebar borders in mobile view (except always-open, added below) - > .sidebar { border: none; } - - // Main area takes up entire layout area to avoid layout shift when - // sidebar is expanded as an overlay. - > .main { - grid-column: 1 / 3; - } - } - - // Always open sidebars become "flow" layouts in mobile view - &[data-bslib-sidebar-open="always"] { - display: block !important; - > .sidebar { - max-height: var(--bslib-sidebar-max-height-mobile); - overflow-y: auto; - border-top: var(--bslib-sidebar-vert-border); - } - } - - &:not([data-bslib-sidebar-open="always"]) { - // Sidebar layer has to be lifted up to cover other (nested) sidebars - &:not(.sidebar-collapsed) { - > .sidebar { z-index: 1; } - > .collapse-toggle { z-index: 1; } - } - - // Either sidebar or main area take up entire layout depending on state - $full-closed: 100% 0; - $closed-full: 0 100%; - grid-template-columns: $full-closed; - &.sidebar-right { - grid-template-columns: $closed-full; - } - - &.sidebar-collapsed { - grid-template-columns: $closed-full; - &.sidebar-right { - grid-template-columns: $full-closed; - } - } - - - // Keep padding on main contents when sidebar is expanded (avoid shifts) - &:not(.sidebar-right) > .main { - padding-left: var(--bslib-sidebar-padding-icon); - } - &.sidebar-right > .main { - padding-right: var(--bslib-sidebar-padding-icon); - } - - // Make main contents transparent while sidebar is expanded - > .main { - opacity: 0; - transition: opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration); - } - &.sidebar-collapsed > .main { - opacity: 1; - } - } - } -} - -$bslib-value-box-enable-border: "auto" !default; // "auto" | "never" | "always" -$bslib-value-box-enable-shadow: $enable-shadows !default; -$bslib-value-box-horizontal-break-point: 300px; - -:root { - --bslib-value-box-shadow: #{if($bslib-value-box-enable-shadow, #{$box-shadow}, none)}; - // value box border width is set to "-auto-yes" when the card has .border-auto - // or "-auto-no" by default. These cards all use "-baseline", where the border - // can be disabled entirely by setting $bslib-value-box-enable-border: "never" - // or --bslib-value-box-border-width-baseline: 0. In "auto" mode, the border - // is disabled without the border-auto class, or disabled if shadow is enabled. - --bslib-value-box-border-width-auto-yes: #{if($bslib-value-box-enable-shadow, 0, var(--bslib-value-box-border-width-baseline))}; - --bslib-value-box-border-width-auto-no: #{if($bslib-value-box-enable-border == "auto", 0, var(--bslib-value-box-border-width-baseline))}; - --bslib-value-box-border-width-baseline: #{if($bslib-value-box-enable-border == "never", 0, $card-border-width)}; -} - -// CSS variables that start with --- (3 dashes instead of 2) are private vars -// that are set by user arguments in the R calls. The CSS properties below only -// apply to the default value box style; the standard way to theme individual -// value boxes is with CSS classes on the value box container. -// :root { -// --bslib-value-box-color:; -// --bslib-value-box-bg:; -// --bslib-value-box-border-color:; -// } - -.bslib-value-box { - &.card { - // .card also sets box-shadow by default, likely to an empty css variable - box-shadow: var(--bslib-value-box-shadow); - } - - border-width: var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline)); - &.border-auto { - border-width: var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline)); - } - - &.default { - --bslib-value-box-bg-default: var(--bs-card-bg, #{$body-bg}); - --bslib-value-box-border-color-default: var(--bs-card-border-color, #{$card-border-color}); - color: var(--bslib-value-box-color); - background-color: var(--bslib-value-box-bg, var(--bslib-value-box-bg-default)); - border-color: var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default)); - } - - container-name: bslib-value-box; - container-type: inline-size; - - .value-box-grid { - display: grid; - grid-template-areas: "left right"; - align-items: center; - overflow: hidden; - } - - .value-box-showcase { - height: 100%; - max-height: var(---bslib-value-box-showcase-max-h, 100%); - &, > .html-fill-item { - width: 100%; - } - } - - &[data-full-screen="true"] { - .value-box-showcase { - max-height: var(---bslib-value-box-showcase-max-h-fs, 100%); - } - } - - // When value boxes get too small, we lay them out vertically using a container query. - // But we don't need this for mobile, where we have one box per row. This media query - // is the inverse of `@include media-breakpoint-down(sm)` but that mixin doesn't work - // inside nested queries. - @media screen and (min-width: breakpoint-max(sm, $grid-breakpoints)) { - @container bslib-value-box (max-width: #{$bslib-value-box-horizontal-break-point}) { - &:not(.showcase-bottom) .value-box-grid { - // override specificity of showcase layouts for small value boxes - grid-template-columns: 1fr !important; - grid-template-rows: auto auto; - grid-template-areas: - "top" - "bottom"; - - .value-box-showcase { - grid-area: top !important; - } - - .value-box-area { - grid-area: bottom !important; - justify-content: end; - } - } - } - } - - // Should also be fillable/fill (i.e., d-flex; flex: 1) - .value-box-area { - justify-content: center; - padding: 1.5rem 1rem; - font-size: .9rem; - font-weight: 500; - * { - margin-bottom: 0; - margin-top: 0; - } - } - - .value-box-title { - @include bootstrap-heading-font-and-spacing($h6-font-size); - // add a non-breaking space to ensure it's not 0 height - &:empty::after { - content: '\00a0 '; - } - } - - .value-box-value { - @include bootstrap-heading-font-and-spacing($h2-font-size); - // add a non-breaking space to ensure it's not 0 height - &:empty::after { - content: '\00a0 '; - } - } - - // Should also be fillable/fill (i.e., d-flex; flex: 1) - .value-box-showcase { - align-items: center; - justify-content: center; - margin-top: auto; - margin-bottom: auto; - padding: 1rem; - - .bi, .fa, .fab, .fas, .far { - opacity: .85; - min-width: 50px; - max-width: 125%; - } - // We set font size because {bsicons}/{fontawesome} both - // set height/width to 1em by default (as an inline style) - .bi, .fa, .fab, .fas, .far { font-size: 4rem; } - } - - - &.showcase-top-right { - .value-box-grid { - grid-template-columns: 1fr var(---bslib-value-box-showcase-w, 50%); - - .value-box-showcase { - grid-area: right; - margin-left: auto; - align-self: start; - align-items: end; - padding-left: 0; - padding-bottom: 0; - } - - .value-box-area { - grid-area: left; - align-self: end; - } - } - - &[data-full-screen="true"] { - .value-box-grid { - grid-template-columns: auto var(---bslib-value-box-showcase-w-fs, 1fr); - > div { - align-self: center; - } - } - } - - &:not([data-full-screen="true"]) { - .value-box-showcase { - margin-top: 0; - } - - @container bslib-value-box (max-width: #{$bslib-value-box-horizontal-break-point}) { - .value-box-grid { - .value-box-showcase { // reset padding on showcase_container - padding-left: 1rem; - } - } - } - } - } - - &.showcase-left-center { - .value-box-grid { - grid-template-columns: var(---bslib-value-box-showcase-w, 30%) auto; - } - - &[data-full-screen="true"] { - .value-box-grid { - grid-template-columns: var(---bslib-value-box-showcase-w-fs, 1fr) auto; - } - } - - &:not([data-fill-screen="true"]) { - .value-box-grid { - .value-box-showcase { - grid-area: left; - } - - .value-box-area { - grid-area: right; - } - } - } - } - - &.showcase-bottom { - .value-box-grid { - grid-template-columns: 1fr; - grid-template-rows: 1fr var(---bslib-value-box-showcase-h, auto); - grid-template-areas: - "top" - "bottom"; - overflow: hidden; - - .value-box-showcase { - grid-area: bottom; - padding: 0; - margin: 0; - } - - .value-box-area { - grid-area: top; - } - } - - &[data-full-screen="true"] { - .value-box-grid { - grid-template-rows: 1fr var(---bslib-value-box-showcase-h-fs, 2fr); - - .value-box-showcase { - padding: 1rem; - } - } - } - } -} - -@include color-mode(dark) { - .bslib-value-box { - // Bootstrap doesn't have a dark shadow, but the default isn't quite right - --bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%); - } -} - -.html-fill-container { - display: flex; - flex-direction: column; - /* Prevent the container from expanding vertically or horizontally beyond its - parent's constraints. */ - min-height: 0; - min-width: 0; -} -.html-fill-container > .html-fill-item { - /* Fill items can grow and shrink freely within - available vertical space in fillable container */ - flex: 1 1 auto; - min-height: 0; - min-width: 0; -} -.html-fill-container > :not(.html-fill-item) { - /* Prevent shrinking or growing of non-fill items */ - flex: 0 0 auto; -} - - -// quarto-scss-analysis-annotation { "origin": "'rules' section from Quarto" } - - -.quarto-container { - min-height: calc(100vh - 132px); -} - -body.hypothesis-enabled { - #quarto-header { - margin-right: 16px; - } -} - -footer.footer .nav-footer, -#quarto-header > nav { - padding-left: 1em; - padding-right: 1em; -} - -footer.footer div.nav-footer p:first-child { - margin-top: 0; -} - -footer.footer div.nav-footer p:last-child { - margin-bottom: 0; -} - -// content padding -#quarto-content > * { - padding-top: $content-padding-top; -} - -#quarto-content > #quarto-sidebar-glass { - padding-top: 0px; -} - -@include media-breakpoint-down(lg) { - #quarto-content > * { - padding-top: 0; - } - - #quarto-content .subtitle { - padding-top: $content-padding-top; - } - - #quarto-content section:first-of-type h2:first-of-type { - margin-top: 1rem; - } -} - -// headroom -.headroom-target, -header.headroom { - will-change: transform; - transition: position 200ms linear; - transition: all 200ms linear; -} - -header.headroom--pinned { - transform: translateY(0%); -} - -header.headroom--unpinned { - transform: translateY(-100%); -} - -.navbar-container { - width: 100%; -} - -.navbar-brand { - overflow: hidden; - text-overflow: ellipsis; -} - -.navbar-brand-container { - max-width: calc(100% - 115px); - min-width: 0; - display: flex; - align-items: center; - - @include media-breakpoint-up(lg) { - margin-right: 1em; - } -} - -.navbar-brand.navbar-brand-logo { - margin-right: 4px; - display: inline-flex; -} - -.navbar-toggler { - flex-basis: content; - flex-shrink: 0; -} - -.navbar { - .navbar-brand-container { - order: $navbar-title-order; - } - - .navbar-toggler { - order: $navbar-toggler-order; - } - - .navbar-container > .navbar-nav { - order: $navbar-menu-order; - } - - .navbar-container > .navbar-brand-container { - margin-left: 0 !important; - margin-right: 0 !important; - } - - .navbar-collapse { - order: $navbar-menu-order; - } - - #quarto-search { - order: $navbar-search-order; - margin-left: auto; - } -} - -@include media-breakpoint-down(med) { - .navbar { - @if $navbar-toggle-position == "left" { - .navbar-toggler { - margin-right: 0.5em; - } - } @else { - #quarto-search { - margin-right: 0.5em; - } - - .quarto-navbar-tools .dropdown-menu { - left: 0; - } - } - } - - .navbar-collapse .quarto-navbar-tools { - margin-left: 0.5em; - } -} - -.navbar-logo { - max-height: 24px; - width: auto; - padding-right: 4px; -} - -nav .nav-item:not(.compact) { - padding-top: 1px; -} - -nav .nav-link i, -nav .dropdown-item i { - padding-right: 1px; -} - -.navbar-expand-lg .navbar-nav .nav-link { - padding-left: 0.6rem; - padding-right: 0.6rem; -} - -nav .nav-item.compact .nav-link { - padding-left: 0.5rem; - padding-right: 0.5rem; - font-size: 1.1rem; -} - -.navbar { - .quarto-navbar-tools { - order: $navbar-tools-order; - div.dropdown { - display: inline-block; - } - .quarto-navigation-tool { - color: $navbar-fg; - } - .quarto-navigation-tool:hover { - color: $navbar-hl; - } - } -} - -.navbar-nav .dropdown-menu { - min-width: 220px; - font-size: 0.9rem; -} - -.navbar { - .navbar-nav { - .nav-link.dropdown-toggle::after { - opacity: 0.75; - vertical-align: 0.175em; - } - } - - ul.dropdown-menu { - padding-top: 0; - padding-bottom: 0; - } - .dropdown-header { - text-transform: uppercase; - font-size: 0.8rem; - padding: 0 0.5rem; - } - - .dropdown-item { - padding: 0.4rem 0.5rem; - & > i.bi { - margin-left: 0.1rem; - margin-right: 0.25em; - } - } -} - -.sidebar #quarto-search { - margin-top: -1px; - svg.aa-SubmitIcon { - width: 16px; - height: 16px; - } -} - -.sidebar-navigation a { - color: inherit; -} - -.sidebar-title { - margin-top: 0.25rem; - padding-bottom: 0.5rem; - font-size: 1.3rem; - line-height: 1.6rem; - visibility: visible; -} - -.sidebar-title > a { - font-size: inherit; - text-decoration: none; -} - -.sidebar-title .sidebar-tools-main { - margin-top: -6px; -} - -@include media-breakpoint-down(lg) { - #quarto-sidebar { - div.sidebar-header { - padding-top: 0.2em; - } - } -} - -.sidebar-header-stacked .sidebar-title { - margin-top: 0.6rem; -} - -.sidebar-logo { - max-width: 90%; - padding-bottom: 0.5rem; -} - -.sidebar-logo-link { - text-decoration: none; -} - -.sidebar-navigation li a { - text-decoration: none; -} - -// Sidebar tools -.sidebar-navigation .quarto-navigation-tool { - opacity: 0.7; - font-size: 0.875rem; -} - -#quarto-sidebar > nav > .sidebar-tools-main { - margin-left: 14px; -} - -.sidebar-tools-main { - display: inline-flex; - margin-left: 0px; - order: 2; -} - -.sidebar-tools-main:not(.tools-wide) { - vertical-align: middle; -} - -.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after { - display: none; -} - -// Sidebar navigation items -$sidebar-items-gap-spacing: 0.2em; -$sidebar-section-indent: 0.5em; -$sidebar-section-bottom-margin: 0.2em; - -.sidebar.sidebar-navigation > * { - padding-top: 1em; -} - -.sidebar-item { - margin-bottom: $sidebar-items-gap-spacing; - line-height: 1rem; - margin-top: 0.4rem; -} - -.sidebar-section { - padding-left: $sidebar-section-indent; - padding-bottom: $sidebar-section-bottom-margin; -} - -.sidebar-item .sidebar-item-container { - // Positions the link and dongle - display: flex; - justify-content: space-between; - cursor: pointer; -} - -.sidebar-item-toggle:hover { - cursor: pointer; -} - -.sidebar-item .sidebar-item-toggle .bi { - // The dongle for opening and closing sections - font-size: 0.7rem; - text-align: center; -} - -.sidebar-item .sidebar-item-toggle .bi-chevron-right::before { - transition: transform 200ms ease; -} - -.sidebar-item - .sidebar-item-toggle[aria-expanded="false"] - .bi-chevron-right::before { - transform: none; -} - -.sidebar-item - .sidebar-item-toggle[aria-expanded="true"] - .bi-chevron-right::before { - transform: rotate(90deg); -} - -.sidebar-item-text { - width: 100%; -} - -.sidebar-navigation .sidebar-divider { - margin-left: 0; - margin-right: 0; - margin-top: 0.5rem; - margin-bottom: 0.5rem; -} - -// Toggle the top secondary navigation bar -@include media-breakpoint-down(lg) { - .quarto-secondary-nav { - display: block; - - button.quarto-search-button { - padding-right: 0em; - padding-left: 2em; - } - - button.quarto-btn-toggle { - margin-left: -0.75rem; - margin-right: 0.15rem; - } - - nav.quarto-title-breadcrumbs { - display: none; - } - - nav.quarto-page-breadcrumbs { - display: flex; - align-items: center; - padding-right: 1em; - margin-left: -0.25em; - - a { - text-decoration: none; - } - - ol.breadcrumb { - margin-bottom: 0; - } - } - } -} - -@include media-breakpoint-up(lg) { - .quarto-secondary-nav { - display: none; - } -} - -.quarto-title-breadcrumbs .breadcrumb { - margin-bottom: 0.5em; - font-size: 0.9rem; - - li:last-of-type { - a { - color: $text-muted; - } - } -} - -$sidebar-hl: if( - $sidebar-hl, - sidebar-hl, - theme-contrast($nav-link-color, $sidebar-bg) -); -$sidebar-color: rgba($sidebar-fg, 1) !default; -$sidebar-hover-color: rgba($sidebar-hl, 0.8) !default; -$sidebar-active-color: $sidebar-hl !default; -$sidebar-disabled-color: rgba($sidebar-fg, 0.75) !default; - -.quarto-secondary-nav .quarto-btn-toggle { - color: $sidebar-color; -} - -.quarto-secondary-nav[aria-expanded="false"] - .quarto-btn-toggle - .bi-chevron-right::before { - transform: none; -} - -.quarto-secondary-nav[aria-expanded="true"] - .quarto-btn-toggle - .bi-chevron-right::before { - transform: rotate(90deg); -} - -.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before { - transition: transform 200ms ease; -} - -.quarto-secondary-nav { - cursor: pointer; -} - -.no-decor { - text-decoration: none; -} - -.quarto-secondary-nav-title { - margin-top: 0.3em; - color: $sidebar-color; - padding-top: 4px; -} - -.quarto-secondary-nav nav.quarto-page-breadcrumbs { - color: $sidebar-color; - a { - color: $sidebar-color; - } - a:hover { - color: $sidebar-hover-color; - } - .breadcrumb-item::before { - color: theme-dim($sidebar-color, 20%); - } -} - -.breadcrumb-item { - line-height: 1.2rem; -} - -div.sidebar-item-container { - color: $sidebar-color; - &:hover, - &:focus { - color: $sidebar-hover-color; - } - - &.disabled { - color: $sidebar-disabled-color; - } - - .active, - .show > .nav-link, - .sidebar-link > code { - color: $sidebar-active-color; - } -} - -div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents, -nav.sidebar.sidebar-navigation:not(.rollup) { - @if $sidebar-bg { - background-color: $sidebar-bg; - } @else { - background-color: $body-bg; - } -} - -@if $sidebar-border { - .sidebar.sidebar-navigation:not(.rollup) { - border-right: 1px solid $table-border-color !important; - } -} - -@include media-breakpoint-down(lg) { - .sidebar-navigation .sidebar-item a, - .nav-page .nav-page-text, - .sidebar-navigation { - font-size: $sidebar-font-size-collapse; - } - - .sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item { - font-size: $sidebar-font-size-section-collapse; - } - - .sidebar-logo { - display: none; - } - - .sidebar.sidebar-navigation { - position: static; - border-bottom: 1px solid $table-border-color; - } - - .sidebar.sidebar-navigation.collapsing { - position: fixed; - z-index: 1000; - } - - .sidebar.sidebar-navigation.show { - position: fixed; - z-index: 1000; - } - - .sidebar.sidebar-navigation { - min-height: 100%; - } - - nav.quarto-secondary-nav { - @if $sidebar-bg { - background-color: $sidebar-bg; - } @else { - background-color: $body-bg; - } - border-bottom: 1px solid $table-border-color; - } - - .quarto-banner nav.quarto-secondary-nav { - @if variable-exists(navbar-bg) { - background-color: $navbar-bg; - } - - @if (variable-exists(navbar-fg)) { - color: $navbar-fg; - } - border-top: 1px solid $table-border-color; - } - - .sidebar .sidebar-footer { - visibility: visible; - padding-top: 1rem; - position: inherit; - } - - .sidebar-tools-collapse { - display: block; - } -} - -#quarto-sidebar { - transition: width $sidebar-anim-duration ease-in; - > * { - padding-right: 1em; - } -} - -@include media-breakpoint-down(lg) { - #quarto-sidebar .sidebar-menu-container { - white-space: nowrap; - min-width: 225px; - } - - #quarto-sidebar.show { - transition: width $sidebar-anim-duration ease-out; - } -} - -@include media-breakpoint-up(lg) { - #quarto-sidebar { - display: flex; - flex-direction: column; - } - .nav-page .nav-page-text, - .sidebar-navigation .sidebar-section .sidebar-item { - font-size: $sidebar-font-size-section; - } - - .sidebar-navigation .sidebar-item { - font-size: $sidebar-font-size; - } - - .sidebar.sidebar-navigation { - display: block; - position: sticky; - } - - .sidebar-search { - width: 100%; - } - - .sidebar .sidebar-footer { - visibility: visible; - } -} - -@include media-breakpoint-up(lg) { - #quarto-sidebar-glass { - display: none; - } -} - -@include media-breakpoint-down(lg) { - #quarto-sidebar-glass { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: #ffffff00; - transition: background-color $sidebar-anim-duration ease-in; - z-index: -1; - } - - #quarto-sidebar-glass.collapsing { - z-index: $zindex-dropdown; - } - - #quarto-sidebar-glass.show { - transition: background-color $sidebar-anim-duration ease-out; - background-color: $sidebar-glass-bg; - z-index: $zindex-dropdown; - } -} - -.sidebar .sidebar-footer { - padding: 0.5rem 1rem; - align-self: flex-end; - color: $text-muted; - width: 100%; -} - -.quarto-page-breadcrumbs .breadcrumb-item + .breadcrumb-item, -.quarto-page-breadcrumbs .breadcrumb-item { - padding-right: 0.33em; - padding-left: 0; -} - -.quarto-page-breadcrumbs .breadcrumb-item::before { - padding-right: 0.33em; -} - -.quarto-sidebar-footer { - font-size: 0.875em; -} - -.sidebar-section .bi-chevron-right { - vertical-align: middle; -} - -.sidebar-section .bi-chevron-right::before { - font-size: 0.9em; -} - -.notransition { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - transition: none !important; -} - -// This is used to suppress the focus borders on Chrome when the user is simply -// clicking with the mouse vs using the keyboard to move focus. -.btn:focus:not(:focus-visible) { - box-shadow: none; -} - -.page-navigation { - display: flex; - justify-content: space-between; -} - -.nav-page { - padding-bottom: 0.75em; -} - -.nav-page .bi { - font-size: 1.8rem; - vertical-align: middle; -} - -.nav-page .nav-page-text { - padding-left: 0.25em; - padding-right: 0.25em; -} - -.nav-page a { - color: $text-muted; - text-decoration: none; - display: flex; - align-items: center; -} - -.nav-page a:hover { - color: $link-hover-color; -} - -.nav-footer .toc-actions { - a, - a:hover { - text-decoration: none; - } - - ul { - display: flex; - list-style: none; - - :first-child { - margin-left: auto; - } - :last-child { - margin-right: auto; - } - - li { - padding-right: 1.5em; - - i.bi { - padding-right: 0.4em; - } - } - - li:last-of-type { - padding-right: 0; - } - } - - padding-bottom: 0.5em; - padding-top: 0.5em; -} - -// border weight -// border style -.nav-footer { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; - align-items: baseline; - text-align: center; - padding-top: 0.5rem; - padding-bottom: 0.5rem; - @if variable-exists(footer-bg) { - background-color: $footer-bg; - } -} - -// Immediate set the top offset if a fixed top header is present -// This prevents a 'flash / jerk' when the page loads -body.nav-fixed { - padding-top: navbar-default-offset($theme-name); -} - -body .nav-footer { - @if variable-exists(footer-border) and $footer-border { - @if variable-exists(footer-border-color) { - border-top: 1px solid $footer-border-color; - } @else { - border-top: 1px solid $table-border-color; - } - } -} - -.nav-footer-contents { - color: $text-muted; - margin-top: 0.25rem; -} - -.nav-footer { - min-height: 3.5em; - color: $footer-fg; - a { - @if variable-exists(footer-fg) { - color: $footer-fg; - } - } -} - -@if variable-exists(footer-left-font-size) { - .nav-footer .nav-footer-left { - font-size: $footer-left-font-size; - } -} - -@if variable-exists(footer-center-font-size) { - .nav-footer .nav-footer-center { - font-size: $footer-center-font-size; - } -} - -@if variable-exists(footer-right-font-size) { - .nav-footer .nav-footer-right { - font-size: $footer-right-font-size; - } -} - -.nav-footer-left .footer-items, -.nav-footer-center .footer-items, -.nav-footer-right .footer-items { - display: inline-flex; - padding-top: 0.3em; - padding-bottom: 0.3em; - margin-bottom: 0em; -} - -.nav-footer-left .footer-items .nav-link, -.nav-footer-center .footer-items .nav-link, -.nav-footer-right .footer-items .nav-link { - padding-left: 0.6em; - padding-right: 0.6em; -} -.nav-footer-left { - @include media-breakpoint-up(md) { - flex: 1 1 0px; - text-align: left; - } - @include media-breakpoint-down(sm) { - margin-bottom: 1em; - flex: 100%; - } -} -.nav-footer-right { - @include media-breakpoint-up(md) { - flex: 1 1 0px; - text-align: right; - } - @include media-breakpoint-down(sm) { - margin-bottom: 1em; - flex: 100%; - } -} - -.nav-footer-center { - @include media-breakpoint-up(md) { - flex: 1 1 0px; - } - text-align: center; - min-height: 3em; - .footer-items { - justify-content: center; - } - @include media-breakpoint-down(md) { - margin-bottom: 1em; - flex: 100%; - } -} - -@include media-breakpoint-down(md) { - .nav-footer-center { - margin-top: 3em; - order: 10; - } -} - -.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn { - background-color: $navbar-fg; - border-radius: 3px; -} - -@include media-breakpoint-down(lg) { - .quarto-reader-toggle { - display: none; - } -} - -.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn { - background-color: $sidebar-fg; - border-radius: 3px; -} - -.quarto-reader-toggle .quarto-reader-toggle-btn { - display: inline-flex; - padding-left: 0.2em; - padding-right: 0.2em; - margin-left: -0.2em; - margin-right: -0.2em; - text-align: center; -} - -.navbar .quarto-reader-toggle:not(.reader) .bi::before { - background-image: url('data:image/svg+xml,'); -} - -.navbar .quarto-reader-toggle.reader .bi::before { - background-image: url('data:image/svg+xml,'); -} - -.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before { - background-image: url('data:image/svg+xml,'); -} - -.sidebar-navigation .quarto-reader-toggle.reader .bi::before { - background-image: url('data:image/svg+xml,'); -} - -#quarto-back-to-top { - display: none; - position: fixed; - bottom: 50px; - background-color: $body-bg; - border-radius: $border-radius; - box-shadow: 0 0.2rem 0.5rem $text-muted, 0 0 0.05rem $text-muted; - color: $text-muted; - text-decoration: none; - font-size: 0.9em; - text-align: center; - left: 50%; - padding: 0.4rem 0.8rem; - transform: translate(-50%, 0); -} - -/* announcement bar */ -#quarto-announcement { - padding: 0.5em; - display: flex; - justify-content: space-between; - margin-bottom: 0; - font-size: 0.9em; - - .quarto-announcement-content { - margin-right: auto; - p { - margin-bottom: 0; - } - } - .quarto-announcement-icon { - margin-right: 0.5em; - font-size: 1.2em; - margin-top: -0.15em; - } - .quarto-announcement-action { - cursor: pointer; - } -} - - -.aa-DetachedSearchButtonQuery { - display: none; -} - -.aa-DetachedOverlay, -#quarto-search-results { - ul.aa-List { - list-style: none; - padding-left: 0; - } - - .aa-Panel { - background-color: $body-bg; - position: absolute; - z-index: 2000; - } -} -#quarto-search-results { - .aa-Panel { - max-width: $quarto-search-results-width; - } -} - -#quarto-search input { - font-size: 0.925rem; -} - -.navbar #quarto-search { - @include media-breakpoint-up(lg) { - margin-left: 0.25rem; - order: 999; - } -} - -.navbar.navbar-expand-sm #quarto-search, -.navbar.navbar-expand-md #quarto-search { - order: 999; -} - -.navbar .quarto-navbar-tools { - @include media-breakpoint-up(lg) { - order: 900; - } - &.tools-end { - @include media-breakpoint-up(lg) { - margin-left: auto !important; - } - } -} - -#quarto-sidebar { - .sidebar-search { - @include media-breakpoint-down(lg) { - display: none; - } - .aa-Autocomplete { - width: $quarto-sidebar-search-input-width; - } - } -} - -.navbar { - .aa-Autocomplete { - .aa-Form { - width: $quarto-navbar-search-input-width; - } - } -} - -.navbar #quarto-search.type-overlay { - .aa-Autocomplete { - width: 40px; - .aa-Form { - background-color: inherit; - border: none; - &:focus-within { - box-shadow: none; - outline: none; - } - .aa-InputWrapper { - display: none; - &:focus-within { - display: inherit; - } - } - - .aa-Label, - .aa-LoadingIndicator { - svg { - width: $quarto-search-collapse-icon-size; - height: $quarto-search-collapse-icon-size; - - color: $navbar-fg; - opacity: 1; - } - } - } - - svg.aa-SubmitIcon { - width: $quarto-search-collapse-icon-size; - height: $quarto-search-collapse-icon-size; - - color: $navbar-fg; - opacity: 1; - } - } -} - -.aa-Autocomplete, -.aa-DetachedFormContainer { - // Search box - .aa-Form { - align-items: center; - background-color: $input-bg; - border: $input-border-width solid $input-border-color; - border-radius: $input-border-radius; - color: $input-color; - display: flex; - line-height: 1em; - margin: 0; - position: relative; - width: 100%; - &:focus-within { - box-shadow: rgba($primary, 0.6) 0 0 0 1px; - outline: currentColor none medium; - } - .aa-InputWrapperPrefix { - align-items: center; - display: flex; - flex-shrink: 0; - order: 1; - // Container for search and loading icons - .aa-Label, - .aa-LoadingIndicator { - cursor: initial; - flex-shrink: 0; - padding: 0; - text-align: left; - svg { - color: $input-color; - opacity: 0.5; - } - } - .aa-SubmitButton { - appearance: none; - background: none; - border: 0; - margin: 0; - } - .aa-LoadingIndicator { - align-items: center; - display: flex; - justify-content: center; - &[hidden] { - display: none; - } - } - } - .aa-InputWrapper { - order: 3; - position: relative; - width: 100%; - - // Search box input (with placeholder and query) - .aa-Input { - appearance: none; - background: none; - border: 0; - color: $input-color; - font: inherit; - height: calc(1.5em + (0.1rem + 2px)); - padding: 0; - width: 100%; - &::placeholder { - color: $input-color; - opacity: 0.8; - } - // Focus is set and styled on the parent, it isn't necessary here - &:focus { - border-color: none; - box-shadow: none; - outline: none; - } - // Remove native appearence - &::-webkit-search-decoration, - &::-webkit-search-cancel-button, - &::-webkit-search-results-button, - &::-webkit-search-results-decoration { - display: none; - } - } - } - .aa-InputWrapperSuffix { - align-items: center; - display: flex; - order: 4; - // Accelerator to clear the query - .aa-ClearButton { - align-items: center; - background: none; - border: 0; - color: $input-color; - opacity: 0.8; - cursor: pointer; - display: flex; - margin: 0; - width: calc(1.5em + (0.1rem + 2px)); - &:hover, - &:focus { - color: $input-color; - opacity: 0.8; - } - &[hidden] { - display: none; - } - svg { - width: $input-height; - } - } - - .aa-CopyButton { - border: none; - align-items: center; - background: none; - color: $input-color; - opacity: 0.4; - font-size: 0.7rem; - cursor: pointer; - display: none; - margin: 0; - width: calc(1em + (0.1rem + 2px)); - &:hover, - &:focus { - color: $input-color; - opacity: 0.8; - } - &[hidden] { - display: none; - } - } - } - } -} - -.aa-PanelLayout:empty { - display: none; -} - -.quarto-search-no-results.no-query { - display: none; -} - -.aa-Source:has(.no-query) { - display: none; -} - -#quarto-search-results .aa-Panel { - border: solid $input-border-color $input-border-width; -} - -#quarto-search-results .aa-SourceNoResults { - width: $quarto-search-results-width - 2 * $input-border-width; -} - -.aa-DetachedOverlay, -#quarto-search-results { - .aa-Panel { - max-height: 65vh; - overflow-y: auto; - font-size: 0.925rem; - } - - .aa-SourceNoResults { - height: 60px; - display: flex; - justify-content: center; - align-items: center; - } - - .search-error { - padding-top: 10px; - padding-left: 20px; - padding-right: 20px; - cursor: default; - .search-error-title { - font-size: 1.1rem; - margin-bottom: 0.5rem; - .search-error-icon { - margin-right: 8px; - } - } - .search-error-text { - font-weight: 300; - } - } - - .search-result-text { - font-weight: 300; - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-line-clamp: 2; /* number of lines to show */ - -webkit-box-orient: vertical; - line-height: 1.2rem; /* fallback */ - max-height: 2.4rem; /* fallback */ - } - - .aa-SourceHeader { - .search-result-header { - font-size: 0.875rem; - background-color: theme-dim($body-bg, 5%); - padding-left: 14px; - padding-bottom: 4px; - padding-top: 4px; - } - - .search-result-header-no-results { - display: none; - } - } - - .aa-SourceFooter { - .algolia-search-logo { - width: 110px; - opacity: 0.85; - margin: 8px; - float: right; - } - } - - .search-result-section { - font-size: 0.925em; - } - - a.search-result-link { - color: inherit; - text-decoration: none; - } - - li.aa-Item[aria-selected="true"] { - .search-item { - background-color: $component-active-bg; - - &.search-result-more, - .search-result-section, - .search-result-text, - .search-result-title-container, - .search-result-text-container { - color: $component-active-color; - background-color: $component-active-bg; - } - - mark.search-match { - color: $component-active-color; - background-color: theme-fade($component-active-bg, $body-bg, 8%); - } - } - } - - li.aa-Item[aria-selected="false"] { - .search-item { - background-color: $popover-bg; - - &.search-result-more, - .search-result-section, - .search-result-text, - .search-result-title-container, - .search-result-text-container { - color: $popover-body-color; - } - - mark.search-match { - color: inherit; - background-color: theme-fade($component-active-bg, $body-bg, 42%); - } - } - } - - .aa-Item { - .search-result-doc:not(.document-selectable) { - .search-result-title-container { - background-color: $popover-bg; - color: $body-color; - } - .search-result-text-container { - padding-top: 0px; - } - } - } - li.aa-Item { - .search-result-doc.document-selectable { - .search-result-text-container { - margin-top: -4px; - } - } - } - - .aa-Item { - cursor: pointer; - - .search-item { - border-left: none; - border-right: none; - border-top: none; - background-color: $popover-bg; - border-color: $input-border-color; - color: $popover-body-color; - } - - .search-item { - p { - margin-top: 0; - margin-bottom: 0; - } - - i.bi { - padding-left: 8px; - padding-right: 8px; - font-size: 1.3em; - } - - .search-result-title { - margin-top: 0.3em; - margin-bottom: 0em; - } - - .search-result-crumbs { - white-space: nowrap; - text-overflow: ellipsis; - font-size: 0.8em; - font-weight: 300; - margin-right: 1em; - } - - .search-result-crumbs:not(.search-result-crumbs-wrap) { - max-width: 30%; - margin-left: auto; - margin-top: 0.5em; - margin-bottom: 0.1rem; - } - - .search-result-crumbs.search-result-crumbs-wrap { - flex-basis: 100%; - margin-top: 0em; - margin-bottom: 0.2em; - margin-left: 37px; - } - } - - .search-result-title-container { - font-size: 1em; - display: flex; - flex-wrap: wrap; - padding: 6px 4px 6px 4px; - } - - .search-result-text-container { - padding-bottom: 8px; - padding-right: 8px; - margin-left: 42px; - } - - .search-result-doc-section, - .search-result-more { - padding-top: 8px; - padding-bottom: 8px; - padding-left: 44px; - } - - .search-result-more { - font-size: 0.8em; - font-weight: 400; - } - - .search-result-doc { - border-top: $input-border-width solid $input-border-color; - } - } -} - -// Detached Mode -.aa-DetachedSearchButton { - background: none; - border: none; - - .aa-DetachedSearchButtonPlaceholder { - display: none; - } -} -.navbar { - .aa-DetachedSearchButton { - .aa-DetachedSearchButtonIcon { - color: $navbar-fg; - } - } -} -.sidebar-tools-collapse, -.sidebar-tools-main { - #quarto-search { - display: inline; - .aa-Autocomplete { - display: inline; - } - .aa-DetachedSearchButton { - padding-left: 4px; - padding-right: 4px; - .aa-DetachedSearchButtonIcon { - color: $sidebar-fg; - .aa-SubmitIcon { - margin-top: -3px; - } - } - } - } -} -.aa-DetachedContainer { - background: rgba($body-bg, 0.65); - width: 90%; - bottom: 0; - box-shadow: rgba($input-border-color, 0.6) 0 0 0 1px; - outline: currentColor none medium; - display: flex; - flex-direction: column; - left: 0; - margin: 0; - overflow: hidden; - padding: 0; - position: fixed; - right: 0; - top: 0; - z-index: 1101; - &::after { - height: 32px; - } - .aa-SourceHeader { - margin: var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px; - } - .aa-Panel { - background-color: rgba($body-bg, 1); - border-radius: 0; - box-shadow: none; - flex-grow: 1; - margin: 0; - padding: 0; - position: relative; - } - .aa-PanelLayout { - bottom: 0; - box-shadow: none; - left: 0; - margin: 0; - max-height: none; - overflow-y: auto; - position: absolute; - right: 0; - top: 0; - width: 100%; - } - @at-root .aa-DetachedFormContainer { - background-color: rgba($body-bg, 1); - border-bottom: $input-border-width solid $input-border-color; - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0; - padding: 0.5em; - @at-root .aa-DetachedCancelButton { - background: none; - font-size: 0.8em; - border: 0; - border-radius: 3px; - color: $body-color; - cursor: pointer; - margin: 0 0 0 0.5em; - padding: 0 0.5em; - &:hover, - &:focus { - box-shadow: rgba($primary, 0.6) 0 0 0 1px; - outline: currentColor none medium; - } - } - } - @at-root .aa-DetachedContainer--modal { - bottom: inherit; - height: auto; - margin: 0 auto; - position: absolute; - @include media-breakpoint-down(sm) { - width: 100%; - top: 0px; - border-radius: 0px; - border: none; - } - - @include media-breakpoint-up(med) { - top: 100px; - border-radius: 6px; - max-width: 850px; - } - - .aa-PanelLayout { - max-height: var(--aa-detached-modal-max-height); - padding-bottom: var(--aa-spacing-half); - position: static; - } - } -} - -.aa-Detached { - height: 100vh; - overflow: hidden; -} - -.aa-DetachedOverlay { - background-color: rgba($body-color, 0.4); - position: fixed; - left: 0; - right: 0; - top: 0; - margin: 0; - padding: 0; - height: 100vh; - z-index: 1100; -} - - - -// Value Boxes -$valuebox-bg-primary: theme-override-value( - $theme-name, - "valuebox-bg-primary", - $primary -) !default; -$valuebox-bg-secondary: theme-override-value( - $theme-name, - "valuebox-bg-secondary", - $secondary -) !default; -$valuebox-bg-success: theme-override-value( - $theme-name, - "valuebox-bg-success", - $success -) !default; -$valuebox-bg-info: theme-override-value( - $theme-name, - "valuebox-bg-info", - $info -) !default; -$valuebox-bg-warning: theme-override-value( - $theme-name, - "valuebox-bg-warning", - $warning -) !default; -$valuebox-bg-danger: theme-override-value( - $theme-name, - "valuebox-bg-danger", - $danger -) !default; -$valuebox-bg-light: theme-override-value( - $theme-name, - "valuebox-bg-light", - $light -) !default; -$valuebox-bg-dark: theme-override-value( - $theme-name, - "valuebox-bg-dark", - $dark -) !default; - -$valuebox-colors: ( - "primary": $valuebox-bg-primary, - "secondary": $valuebox-bg-secondary, - "success": $valuebox-bg-success, - "info": $valuebox-bg-info, - "warning": $valuebox-bg-warning, - "danger": $valuebox-bg-danger, - "light": $valuebox-bg-light, - "dark": $valuebox-bg-dark, -); - -// Dashboards -.quarto-dashboard { - &.nav-fixed.dashboard-sidebar #quarto-content.quarto-dashboard-content { - padding: 0em; - } - - #quarto-content.quarto-dashboard-content { - padding: 1em; - > * { - padding-top: 0; - } - } - - @include media-breakpoint-up(sm) { - height: 100%; - } - - @each $valuebox-color, $valuebox-color-value in $valuebox-colors { - .card.valuebox.bslib-card.bg-#{$valuebox-color} { - background-color: $valuebox-color-value !important; - } - } - - &.dashboard-fill { - display: flex; - flex-direction: column; - } - - #quarto-appendix { - display: none; - } - - // Navbar / Navigation - #quarto-header #quarto-dashboard-header { - border-top: solid 1px theme-dim($navbar-bg, 10%); - border-bottom: solid 1px theme-dim($navbar-bg, 10%); - - > nav { - padding-left: 1em; - padding-right: 1em; - .navbar-brand-container { - padding-left: 0; - } - } - .navbar-toggler { - margin-right: 0; - } - - .navbar-toggler-icon { - height: 1em; - width: 1em; - background-image: url('data:image/svg+xml,'); - } - - .navbar-brand-container { - padding-right: 1em; - } - - .navbar-title { - font-size: 1.1em; - } - - .navbar-nav { - font-size: 0.9em; - } - } - - #quarto-dashboard-header { - .navbar { - padding: 0; - - .navbar-container { - padding-left: 1em; - } - - &.slim { - .navbar-brand-container, - .navbar-nav { - .nav-link { - padding: 0.7em; - } - } - } - - .quarto-color-scheme-toggle { - order: 9; - } - - .navbar-toggler { - margin-left: 0.5em; - order: 10; - } - - .navbar-nav { - .nav-link { - padding: 0.5em; - height: 100%; - display: flex; - align-items: center; - } - & .active { - background-color: theme-dim($navbar-bg, 8%); - } - } - - .navbar-brand-container { - padding: 0.5em 0.5em 0.5em 0; - display: flex; - flex-direction: row; - margin-right: 2em; - align-items: center; - @include media-breakpoint-down(md) { - margin-right: auto; - } - } - - .navbar-collapse { - @include media-breakpoint-up(md) { - order: 8; - } - @include media-breakpoint-down(md) { - order: 1000; - padding-bottom: 0.5em; - } - align-self: stretch; - .navbar-nav { - align-self: stretch; - } - } - - .navbar-title { - font-size: 1.25em; - line-height: 1.1em; - display: flex; - flex-direction: row; - flex-wrap: wrap; - align-items: baseline; - .navbar-title-text { - margin-right: 0.4em; - } - a { - text-decoration: none; - color: inherit; - } - } - - .navbar-subtitle, - .navbar-author { - font-size: 0.9rem; - margin-right: 0.5em; - } - - .navbar-author { - margin-left: auto; - } - - .navbar-logo { - max-height: 48px; - min-height: 30px; - object-fit: cover; - margin-right: 1em; - } - - .quarto-dashboard-links { - order: 9; - padding-right: 1em; - } - .quarto-dashboard-link-text { - margin-left: 0.25em; - } - - .quarto-dashboard-link { - padding-right: 0em; - padding-left: 0.7em; - text-decoration: none; - color: $navbar-fg; - } - } - } - - .page-layout-custom .tab-content { - padding: 0; - border: none; - } -} - -.quarto-dashboard-img-contain { - height: 100%; - width: 100%; - object-fit: contain; -} - -.quarto-dashboard { - // Mobile sizes convert into 'scrolling' layouts - @include media-breakpoint-down(sm) { - .bslib-grid { - grid-template-rows: minmax(1em, max-content) !important; - } - .sidebar-content { - height: inherit; - } - .page-layout-custom { - min-height: 100vh; - } - } - - &.dashboard-toolbar > .page-layout-custom, - &.dashboard-sidebar > .page-layout-custom { - padding: 0; - } - - .quarto-dashboard-content.quarto-dashboard-pages { - padding: 0; - } - - .callout { - margin-bottom: 0; - margin-top: 0; - } - - .html-fill-container figure { - overflow: hidden; - } - - bslib-tooltip { - .rounded-pill { - .svg { - fill: $body-color; - } - border: solid $text-muted 1px; - } - } - - .tabset .dashboard-card-no-title .nav-tabs { - margin-left: 0; - margin-right: auto; - } - - .tabset .tab-content { - border: none; - } - - .tabset .card-header { - .nav-link[role="tab"] { - margin-top: -6px; - padding-top: 6px; - padding-bottom: 6px; - } - } - - .card.valuebox, - .card.bslib-value-box { - min-height: 3rem; - .card-body { - padding: 0; - } - } - - .bslib-value-box { - .value-box-value { - font-size: clamp(0.1em, 15cqw, 5em); - } - - .value-box-showcase .bi { - font-size: clamp(0.1em, max(18cqw, 5.2cqh), 5em); - - text-align: center; - height: 1em; - } - - .value-box-showcase .bi::before { - vertical-align: 1em; - } - - .value-box-area { - margin-top: auto; - margin-bottom: auto; - } - } - - .card figure.quarto-float { - display: flex; - flex-direction: column; - align-items: center; - } - - .dashboard-scrolling { - padding: 1em; - } - - .full-height { - height: 100%; - } - - .showcase-bottom { - .value-box-grid { - display: grid; - grid-template-columns: 1fr; - grid-template-rows: 1fr auto; - grid-template-areas: "top" "bottom"; - - .value-box-showcase { - grid-area: bottom; - padding: 0; - margin: 0; - i.bi { - font-size: 4rem; - } - } - .value-box-area { - grid-area: top; - } - } - } - - .tab-content { - margin-bottom: 0; - } - - .bslib-card .bslib-navs-card-title { - justify-content: stretch; - align-items: end; - } - - .card-header { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - - .card-title { - display: flex; - flex-direction: column; - justify-content: center; - margin-bottom: 0; - } - } - - .tabset { - .card-toolbar { - margin-bottom: 1em; - } - } - - /* Sidebar */ - .bslib-grid > .bslib-sidebar-layout { - border: none; - gap: var(--bslib-spacer, 1rem); - > .main { - padding: 0; - } - > .sidebar { - border-radius: $card-border-radius; - border: $card-border-width solid $card-border-color; - } - > .collapse-toggle { - display: none; - } - - @include media-breakpoint-down(md) { - grid-template-columns: 1fr; - grid-template-rows: max-content 1fr; - > .main { - grid-column: 1; - grid-row: 2; - } - .sidebar { - grid-column: 1; - grid-row: 1; - } - } - } - - .sidebar-right { - .sidebar { - padding-left: 2.5em; - } - - .collapse-toggle { - left: 2px; - } - } - - .quarto-dashboard .sidebar-right button.collapse-toggle:not(.transitioning) { - left: unset; - } - - aside.sidebar { - padding-left: 1em; - padding-right: 1em; - background-color: $card-cap-bg; - color: $card-cap-color or $body-color; - } - - .bslib-sidebar-layout { - > div.main { - padding: 0.7em; - } - - button.collapse-toggle { - margin-top: 0.3em; - } - } - - .bslib-sidebar-layout .collapse-toggle { - top: 0; - } - - .bslib-sidebar-layout.sidebar-collapsed:not(.transitioning):not( - .sidebar-right - ) - .collapse-toggle { - left: 2px; - } - - .sidebar > section > .h3:first-of-type { - margin-top: 0em; - } - - .sidebar .h3, - .sidebar .h4, - .sidebar .h5, - .sidebar .h6 { - margin-top: 0.5em; - } - - .sidebar { - @include observable-sidebar-inputs(); - - .card-body { - margin-bottom: 2em; - } - - .shiny-input-container { - margin-bottom: 1em; - } - - .shiny-options-group { - margin-top: 0; - } - .control-label { - margin-bottom: 0.3em; - } - } - .card .card-body .quarto-layout-row { - align-items: stretch; - } - - /* Toolbar */ - .toolbar { - font-size: 0.9em; - display: flex; - flex-direction: row; - border-top: solid 1px theme-dim($secondary-bg-subtle, 10%); - padding: 1em; - flex-wrap: wrap; - background-color: $card-cap-bg; - - @include shiny-toolbar-customizations(); - @include observable-toolbar-inputs(); - - > * { - font-size: 0.9em; - flex-grow: 0; - } - - .shiny-input-container { - label { - margin-bottom: 1px; - } - } - } - - // Positions the toolbar at the bottom of the flexbox - .toolbar-bottom { - margin-top: 1em; - margin-bottom: 0 !important; - order: 2; - } - - // If there is are pages, move the padding down inside the - // the nested tab contents (Global) - .quarto-dashboard-content - > .dashboard-toolbar-container - > .toolbar-content - > .tab-content - > .tab-pane - > *:not(.bslib-sidebar-layout) { - padding: 1em; - } - - // If this is simple dashboard with a top level tool bar - .quarto-dashboard-content - > .dashboard-toolbar-container - > .toolbar-content - > *:not(.tab-content) { - padding: 1em; - } - - // If there are pages, but no global toolbar - .quarto-dashboard-content - > .tab-content - > .dashboard-page - > .dashboard-toolbar-container - > .toolbar-content, - .quarto-dashboard-content - > .tab-content - > .dashboard-page:not(.dashboard-sidebar-container) - > *:not(.dashboard-toolbar-container) { - padding: 1em; - } - - .toolbar-content { - padding: 0; - } - - .quarto-dashboard-content.quarto-dashboard-pages - .tab-pane - > .dashboard-toolbar-container { - .toolbar { - border-radius: 0; - margin-bottom: 0; - } - } - - .dashboard-toolbar-container.toolbar-toplevel { - .toolbar { - border-bottom: $card-border-width solid $card-border-color; - } - .toolbar-bottom { - margin-top: 0; - } - } - - .dashboard-toolbar-container:not(.toolbar-toplevel) { - .toolbar { - margin-bottom: 1em; - border-top: none; - border-radius: $border-radius; - border: $card-border-width solid $card-border-color; - } - } - - .vega-embed.has-actions { - details { - width: 1.7em; - height: 2em; - position: absolute !important; - top: 0; - right: 0; - } - } - - .dashboard-toolbar-container { - padding: 0; - } - - /* Card Toolbar */ - /* Card */ - .card { - .card-header, - .card-footer { - p:last-child { - margin-bottom: 0; - } - } - - .card-body > .h4:first-child { - margin-top: 0; - } - - // This ensures that elements in the card body (notably the expansion toggle) - // appear above the elements inside of it (notably itables, which cause issues) - .card-body { - z-index: 4; - - // Customize appearance of elements within cards - @include itables(); - } - - .card-footer { - font-size: 0.9em; - } - - .card-toolbar { - display: flex; - flex-grow: 1; - flex-direction: row; - width: 100%; - > * { - font-size: 0.8em; - flex-grow: 0; - } - - > .card-title { - font-size: 1em; - flex-grow: 1; - align-self: flex-start; - margin-top: 0.1em; - } - - flex-wrap: wrap; - - @include toolbar-layout(); - - @include observable-toolbar-inputs(); - @include shiny-toolbar-customizations(); - } - } - - /*-- Misc HTML elements --*/ - .card-body > table > thead { - border-top: none; - } - - .card-body > .table > :not(caption) > * > * { - background-color: $card-bg; - color: $card-color; - } -} - -/*-- itables --*/ -.tableFloatingHeaderOriginal { - background-color: $card-bg; - position: sticky !important; - top: 0 !important; -} - -.dashboard-data-table { - margin-top: -1px; -} - -/*-- ojs --*/ - -div.value-box-area span.observablehq--number { - /* the calculation below is pretty horrible, but it's our best effort to match - the font sizes of these two different ways of rendering a number in a value-box: - -```{ojs} -//| content: valuebox -//| title: "Articles per day" -//| icon: pencil -//| color: primary -12 -``` - -```{python} -#| content: valuebox -#| title: "Articles per day" -#| icon: pencil -#| color: primary -dict( - value = 12 -) -``` - - See https://github.com/quarto-dev/quarto-cli/issues/8823 - - */ - font-size: calc(clamp(0.1em, 15cqw, 5em) * 1.25); - line-height: 1.2; - color: inherit; - font-family: var(--bs-body-font-family); -} - - - -.quarto-listing { - padding-bottom: 1em; -} - -// General Pagination / Filter Control Styling -.listing-pagination { - padding-top: 0.5em; -} - -ul.pagination { - float: right; - padding-left: 8px; - padding-top: 0.5em; - li { - padding-right: 0.75em; - } - li.disabled, - li.active { - a { - color: $pagination-active-color; - text-decoration: none; - } - } - li:last-of-type { - padding-right: 0; - } -} - -.listing-actions-group { - display: flex; - .form-select, - .form-control { - @include input-form-control(); - } - .input-group { - @include input-group(); - @include input-placeholder(); - } -} - -// Filtering and Sorting -.quarto-listing-filter { - margin-bottom: 1em; - width: 200px; - margin-left: auto; -} - -.quarto-listing-sort { - margin-bottom: 1em; - margin-right: auto; - .input-group-text { - font-size: 0.8em; - } - width: auto; -} - -.input-group input, -.input-group select { - @include input-group-text(); -} -.input-group-text { - @include input-group-text(); - border-right: none; -} - -.quarto-listing-sort select.form-select { - font-size: 0.8em; -} - -.listing-no-matching { - text-align: center; - padding-top: 2em; - padding-bottom: 3em; - font-size: 1em; -} - -// Category styling -#quarto-margin-sidebar { - .quarto-listing-category { - padding-top: 0; - font-size: 1rem; - } - .quarto-listing-category-title { - cursor: pointer; - font-weight: 600; - font-size: 1rem; - } -} - -.quarto-listing-category { - .category { - cursor: pointer; - } - .category.active { - font-weight: 600; - } -} - -.quarto-listing-category.category-cloud { - display: flex; - flex-wrap: wrap; - align-items: baseline; - .category { - padding-right: 5px; - } - - @for $count from 1 through 10 { - .category-cloud-#{$count} { - font-size: 0.55em + ($count * 0.2em); - } - } -} - -// Grid Listing Styling -@for $colcount from 1 through 12 { - .quarto-listing-cols-#{$colcount} { - grid-template-columns: repeat($colcount, minmax(0, 1fr)); - gap: 1.5em; - } - - @include media-breakpoint-down(md) { - .quarto-listing-cols-#{$colcount} { - grid-template-columns: repeat(min(2, $colcount), minmax(0, 1fr)); - gap: 1.5em; - } - } - - @include media-breakpoint-down(sm) { - .quarto-listing-cols-#{$colcount} { - grid-template-columns: minmax(0, 1fr); - gap: 1.5em; - } - } -} - -.quarto-listing-grid { - gap: 1.5em; -} - -.quarto-grid-item.borderless { - border: none; - .listing-categories { - .listing-category:last-of-type, - .listing-category:first-of-type { - padding-left: 0; - } - .listing-category { - border: 0; - } - } -} - -.quarto-grid-link { - text-decoration: none; - color: inherit; -} - -.quarto-grid-link:hover { - text-decoration: none; - color: inherit; -} - -.quarto-grid-item { - h5.title { - margin-top: 0; - margin-bottom: 0; - } - - .card-footer { - display: flex; - justify-content: space-between; - font-size: 0.8em; - p { - margin-bottom: 0; - } - } - - p.card-img-top { - margin-bottom: 0; - > img { - object-fit: cover; - } - } - - .card-other-values { - margin-top: 0.5em; - font-size: 0.8em; - tr { - margin-bottom: 0.5em; - } - tr > td:first-of-type { - font-weight: 600; - padding-right: 1em; - padding-left: 1em; - vertical-align: top; - } - } - - div.post-contents { - display: flex; - flex-direction: column; - text-decoration: none; - height: 100%; - } - - .listing-item-img-placeholder { - background-color: $card-cap-bg; - flex-shrink: 0; - } - - .card-attribution { - padding-top: 1em; - display: flex; - gap: 1em; - text-transform: uppercase; - color: $text-muted; - font-weight: 500; - flex-grow: 10; - align-items: flex-end; - } - - .description { - padding-bottom: 1em; - } - - .card-attribution .date { - align-self: flex-end; - } - - .card-attribution.justify { - justify-content: space-between; - } - - .card-attribution.start { - justify-content: flex-start; - } - - .card-attribution.end { - justify-content: flex-end; - } - - .card-title { - margin-bottom: 0.1em; - } - .card-subtitle { - padding-top: 0.25em; - } - - .card-text { - font-size: 0.9em; - } - - .listing-reading-time { - padding-bottom: 0.25em; - } - - .card-text-small { - font-size: 0.8em; - } - - .card-subtitle.subtitle { - font-size: 0.9em; - font-weight: 600; - padding-bottom: 0.5em; - } - - .listing-categories { - @include listing-category(); - } -} - -.quarto-grid-item.card-right { - text-align: right; - .listing-categories { - justify-content: flex-end; - } -} - -.quarto-grid-item.card-left { - text-align: left; -} - -.quarto-grid-item.card-center { - text-align: center; - .listing-description { - text-align: justify; - } - .listing-categories { - justify-content: center; - } -} - -// Table Listing Styling -table.quarto-listing-table { - td.image { - padding: 0px; - img { - width: 100%; - max-width: 50px; - object-fit: contain; - } - } - - a { - text-decoration: none; - word-break: keep-all; - } - - th a { - color: inherit; - } - - th a.asc:after { - margin-bottom: -2px; - margin-left: 5px; - display: inline-block; - height: 1rem; - width: 1rem; - background-repeat: no-repeat; - background-size: 1rem 1rem; - background-image: url('data:image/svg+xml,'); - content: ""; - } - - th a.desc:after { - margin-bottom: -2px; - margin-left: 5px; - display: inline-block; - height: 1rem; - width: 1rem; - background-repeat: no-repeat; - background-size: 1rem 1rem; - background-image: url('data:image/svg+xml,'); - content: ""; - } -} - -table.quarto-listing-table.table-hover td { - cursor: pointer; -} - -.quarto-post.image-left { - flex-direction: row; -} - -.quarto-post.image-right { - flex-direction: row-reverse; -} - -@include media-breakpoint-down(md) { - .quarto-post.image-right, - .quarto-post.image-left { - gap: 0em; - flex-direction: column; - } - - .quarto-post .metadata { - padding-bottom: 1em; - order: 2; - } - - .quarto-post .body { - order: 1; - } - - .quarto-post .thumbnail { - order: 3; - } -} - -// Post (default) Styling -.list.quarto-listing-default div:last-of-type { - border-bottom: none; -} - -.quarto-listing-container-default { - @include media-breakpoint-up(lg) { - margin-right: 2em; - } -} - -div.quarto-post { - display: flex; - gap: 2em; - margin-bottom: 1.5em; - @include media-breakpoint-down(md) { - padding-bottom: 1em; - } - border-bottom: 1px solid $border-color; - - .metadata { - flex-basis: 20%; - flex-grow: 0; - margin-top: 0.2em; - flex-shrink: 10; - } - - .thumbnail { - flex-basis: 30%; - flex-grow: 0; - flex-shrink: 0; - img { - margin-top: 0.4em; - width: 100%; - object-fit: cover; - } - } - - .body { - flex-basis: 45%; - flex-grow: 1; - flex-shrink: 0; - - h3.listing-title { - margin-top: 0px; - margin-bottom: 0px; - border-bottom: none; - } - - .listing-subtitle { - font-size: 0.875em; - margin-bottom: 0.5em; - margin-top: 0.2em; - } - - .description { - font-size: 0.9em; - } - - pre code { - white-space: pre-wrap; - } - } - - a { - color: $body-color; - text-decoration: none; - } - - .metadata { - display: flex; - flex-direction: column; - font-size: 0.8em; - font-family: $font-family-base; - flex-basis: 33%; - } - - .listing-categories { - @include listing-category(); - } - - .listing-description { - margin-bottom: 0.5em; - } -} - - - -// Jolla - -div.quarto-about-jolla { - display: flex !important; - flex-direction: column; - align-items: center; - margin-top: 10%; - padding-bottom: 1em; - - .about-image { - object-fit: cover; - margin-left: auto; - margin-right: auto; - margin-bottom: 1.5em; - } - @include image-shapes(); - - .quarto-title h1.title { - text-align: center; - } - - .quarto-title .description { - text-align: center; - } - - h2 { - border-bottom: none; - } - - .about-sep { - width: 60%; - } - - main { - text-align: center; - } - - .about-links { - @include responsive-buttons(); - } - - .about-link { - @include responsive-button(); - } -} - -// Solana -div.quarto-about-solana { - display: flex !important; - flex-direction: column; - padding-top: 3em !important; - padding-bottom: 1em; - - .about-entity { - display: flex !important; - - @include media-breakpoint-up(lg) { - flex-direction: row; - } - @include media-breakpoint-down(lg) { - flex-direction: column-reverse; - align-items: center; - text-align: center; - } - - align-items: start; - justify-content: space-between; - - .entity-contents { - display: flex; - flex-direction: column; - @include media-breakpoint-down(md) { - width: 100%; - } - } - - .about-image { - object-fit: cover; - @include media-breakpoint-down(lg) { - margin-bottom: 1.5em; - } - } - @include image-shapes(); - - .about-links { - @include responsive-buttons(); - justify-content: left; - padding-bottom: 1.2em; - } - - .about-link { - @include responsive-button(); - } - } - - .about-contents { - padding-right: 1.5em; - - flex-basis: 0; - flex-grow: 1; - main.content { - margin-top: 0; - } - h2 { - border-bottom: none; - } - } -} - -// Trestles -div.quarto-about-trestles { - display: flex !important; - flex-direction: row; - padding-top: 3em !important; - padding-bottom: 1em; - - @include media-breakpoint-down(lg) { - flex-direction: column; - padding-top: 0em !important; - } - - .about-entity { - @include media-breakpoint-up(lg) { - //max-width: 42%; - flex: 0 0 42%; - } - display: flex !important; - flex-direction: column; - align-items: center; - text-align: center; - padding-right: 1em; - - .about-image { - object-fit: cover; - margin-bottom: 1.5em; - } - @include image-shapes(); - - .about-links { - @include responsive-buttons(); - justify-content: center; - } - - .about-link { - @include responsive-button(); - } - } - - .about-contents { - flex-basis: 0; - flex-grow: 1; - - h2 { - border-bottom: none; - } - - @include media-breakpoint-up(lg) { - border-left: solid 1px $border-color; - padding-left: 1.5em; - } - - main.content { - margin-top: 0; - } - } -} - -// Marquee -div.quarto-about-marquee { - padding-bottom: 1em; - - .about-contents { - display: flex; - flex-direction: column; - } - - .about-image { - max-height: 550px; - margin-bottom: 1.5em; - object-fit: cover; - } - @include image-shapes(); - - h2 { - border-bottom: none; - } - - .about-links { - @include responsive-buttons(); - justify-content: center; - padding-top: 1.5em; - } - - .about-link { - @include responsive-button(); - @include media-breakpoint-up(lg) { - border: none; - } - } -} - -// Broadside -div.quarto-about-broadside { - display: flex; - flex-direction: column; - padding-bottom: 1em; - - .about-main { - display: flex !important; - padding-top: 0 !important; - @include media-breakpoint-up(lg) { - flex-direction: row; - align-items: flex-start; - } - - @include media-breakpoint-down(lg) { - flex-direction: column; - } - - .about-entity { - @include media-breakpoint-down(lg) { - flex-shrink: 0; - width: 100%; - height: 450px; - margin-bottom: 1.5em; - background-size: cover; - background-repeat: no-repeat; - } - @include media-breakpoint-up(lg) { - flex: 0 10 50%; - margin-right: 1.5em; - width: 100%; - height: 100%; - background-size: 100%; - background-repeat: no-repeat; - } - } - - .about-contents { - padding-top: 14px; - flex: 0 0 50%; - } - } - - h2 { - border-bottom: none; - } - - .about-sep { - margin-top: 1.5em; - width: 60%; - align-self: center; - } - - .about-links { - @include responsive-buttons(); - justify-content: center; - column-gap: 20px; - padding-top: 1.5em; - } - - .about-link { - @include responsive-button(); - @include media-breakpoint-up(lg) { - border: none; - } - } -} - - -// Tippy customizations - -.tippy-box[data-theme~="quarto"] { - background-color: $body-bg; - border: solid $border-width $border-color; - border-radius: $border-radius; - color: $body-color; - font-size: $font-size-sm; -} -.tippy-box[data-theme~="quarto"] > .tippy-backdrop { - background-color: $body-bg; -} -.tippy-box[data-theme~="quarto"] > .tippy-arrow:after, -.tippy-box[data-theme~="quarto"] > .tippy-svg-arrow:after { - content: ""; - position: absolute; - z-index: -1; -} -.tippy-box[data-theme~="quarto"] > .tippy-arrow:after { - border-color: transparent; - border-style: solid; -} - -.tippy-box[data-placement^="top"] > .tippy-arrow:before { - bottom: -6px; -} -.tippy-box[data-placement^="bottom"] > .tippy-arrow:before { - top: -6px; -} -.tippy-box[data-placement^="right"] > .tippy-arrow:before { - left: -6px; -} -.tippy-box[data-placement^="left"] > .tippy-arrow:before { - right: -6px; -} - -.tippy-box[data-theme~="quarto"][data-placement^="top"] > .tippy-arrow:before { - border-top-color: $body-bg; -} -.tippy-box[data-theme~="quarto"][data-placement^="top"] > .tippy-arrow:after { - border-top-color: $border-color; - border-width: 7px 7px 0; - top: 17px; - left: 1px; -} -.tippy-box[data-theme~="quarto"][data-placement^="top"] - > .tippy-svg-arrow - > svg { - top: 16px; -} -.tippy-box[data-theme~="quarto"][data-placement^="top"] - > .tippy-svg-arrow:after { - top: 17px; -} -.tippy-box[data-theme~="quarto"][data-placement^="bottom"] - > .tippy-arrow:before { - border-bottom-color: $body-bg; - bottom: 16px; -} -.tippy-box[data-theme~="quarto"][data-placement^="bottom"] - > .tippy-arrow:after { - border-bottom-color: $border-color; - border-width: 0 7px 7px; - bottom: 17px; - left: 1px; -} -.tippy-box[data-theme~="quarto"][data-placement^="bottom"] - > .tippy-svg-arrow - > svg { - bottom: 15px; -} -.tippy-box[data-theme~="quarto"][data-placement^="bottom"] - > .tippy-svg-arrow:after { - bottom: 17px; -} -.tippy-box[data-theme~="quarto"][data-placement^="left"] > .tippy-arrow:before { - border-left-color: $body-bg; -} -.tippy-box[data-theme~="quarto"][data-placement^="left"] > .tippy-arrow:after { - border-left-color: $border-color; - border-width: 7px 0 7px 7px; - left: 17px; - top: 1px; -} -.tippy-box[data-theme~="quarto"][data-placement^="left"] - > .tippy-svg-arrow - > svg { - left: 11px; -} -.tippy-box[data-theme~="quarto"][data-placement^="left"] - > .tippy-svg-arrow:after { - left: 12px; -} -.tippy-box[data-theme~="quarto"][data-placement^="right"] - > .tippy-arrow:before { - border-right-color: $body-bg; - right: 16px; -} -.tippy-box[data-theme~="quarto"][data-placement^="right"] > .tippy-arrow:after { - border-width: 7px 7px 7px 0; - right: 17px; - top: 1px; - border-right-color: $border-color; -} -.tippy-box[data-theme~="quarto"][data-placement^="right"] - > .tippy-svg-arrow - > svg { - right: 11px; -} -.tippy-box[data-theme~="quarto"][data-placement^="right"] - > .tippy-svg-arrow:after { - right: 12px; -} -.tippy-box[data-theme~="quarto"] > .tippy-svg-arrow { - fill: $body-color; -} -.tippy-box[data-theme~="quarto"] > .tippy-svg-arrow:after { - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=); - background-size: 16px 6px; - width: 16px; - height: 6px; -} - - -// floating - -.top-right { - position: absolute; - top: 1em; - right: 1em; -} - -// hidden - -// https://github.com/quarto-dev/quarto-cli/issues/5403#issuecomment-1533791947 -.visually-hidden { - border: 0; - clip: rect(0 0 0 0); - height: auto; - margin: 0; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; - white-space: nowrap; -} - -.hidden { - display: none !important; -} - -.zindex-bottom { - z-index: -1 !important; -} - -// layout and figures - -figure.figure { - display: block; -} - -.quarto-layout-panel { - margin-bottom: 1em; -} - -.quarto-layout-panel > figure { - width: 100%; -} -.quarto-layout-panel > figure > figcaption, -.quarto-layout-panel > .panel-caption { - margin-top: 10pt; -} - -.quarto-layout-panel > .table-caption { - margin-top: 0px; -} - -.table-caption p { - margin-bottom: 0.5em; -} - -.quarto-layout-row { - display: flex; - flex-direction: row; - align-items: flex-start; -} -.quarto-layout-valign-top { - align-items: flex-start; -} -.quarto-layout-valign-bottom { - align-items: flex-end; -} -.quarto-layout-valign-center { - align-items: center; -} -.quarto-layout-cell { - position: relative; - margin-right: 20px; -} -.quarto-layout-cell:last-child { - margin-right: 0; -} -.quarto-layout-cell figure, -.quarto-layout-cell > p { - margin: 0.2em; -} -.quarto-layout-cell img { - max-width: 100%; -} -.quarto-layout-cell .html-widget { - width: 100% !important; -} -.quarto-layout-cell div figure p { - margin: 0; -} -.quarto-layout-cell figure { - display: block; - margin-inline-start: 0; - margin-inline-end: 0; -} -.quarto-layout-cell table { - display: inline-table; -} -.quarto-layout-cell-subref figcaption, -figure .quarto-layout-row figure figcaption { - text-align: center; - font-style: italic; -} -.quarto-figure { - position: relative; - margin-bottom: 1em; -} - -.quarto-figure > figure { - width: 100%; - margin-bottom: 0; -} -.quarto-figure-left > figure > p, -.quarto-figure-left > figure > div /* for mermaid and dot diagrams */ { - text-align: left; -} -.quarto-figure-center > figure > p, -.quarto-figure-center > figure > div /* for mermaid and dot diagrams */ { - text-align: center; -} -.quarto-figure-right > figure > p, -.quarto-figure-right > figure > div /* for mermaid and dot diagrams */ { - text-align: right; -} - -.quarto-figure > figure > div.cell-annotation, -.quarto-figure > figure > div code { - text-align: left; /* override align center for code blocks */ -} - -figure > p:empty { - display: none; -} -figure > p:first-child { - margin-top: 0; - margin-bottom: 0; -} - -figure > figcaption.quarto-float-caption-bottom { - margin-bottom: 0.5em; -} -figure > figcaption.quarto-float-caption-top { - margin-top: 0.5em; -} - -// anchor - -// anchor js - -div[id^="tbl-"] { - position: relative; -} - -.quarto-figure > .anchorjs-link { - position: absolute; - top: 0.6em; - right: 0.5em; -} - -div[id^="tbl-"] > .anchorjs-link { - position: absolute; - top: 0.7em; - right: 0.3em; -} - -/* workaround for anchorjs not hitting on generic :hover selector */ -.quarto-figure:hover > .anchorjs-link, -div[id^="tbl-"]:hover > .anchorjs-link, -h2:hover > .anchorjs-link, -h3:hover > .anchorjs-link, -h4:hover > .anchorjs-link, -h5:hover > .anchorjs-link, -h6:hover > .anchorjs-link, -.reveal-anchorjs-link > .anchorjs-link { - opacity: 1; -} - -#title-block-header { - margin-block-end: 1rem; - position: relative; - margin-top: -1px; // Chrome draws 1px white line between navbar and title block -} - -#title-block-header .abstract { - margin-block-start: 1rem; -} - -#title-block-header .abstract .abstract-title { - font-weight: 600; -} - -#title-block-header a { - text-decoration: none; -} - -#title-block-header .author, -#title-block-header .date, -#title-block-header .doi { - margin-block-end: 0.2rem; -} - -#title-block-header .quarto-title-block > div { - display: flex; -} - -#title-block-header .quarto-title-block > div > h1 { - flex-grow: 1; -} - -#title-block-header .quarto-title-block > div > button { - flex-shrink: 0; - height: 2.25rem; - margin-top: 0; -} - -#title-block-header .quarto-title-block > div > button { - @if mixin-exists(media-breakpoint-up) { - @include media-breakpoint-up(lg) { - margin-top: 5px; - } - } -} - -// (Remove bottom margin from paragraphs in table headers) -tr.header > th > p:last-of-type { - margin-bottom: 0px; -} - -table, -table.table { - margin-top: 0.5rem; - margin-bottom: 0.5rem; -} - -caption, -.table-caption { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - text-align: center; -} - -figure.quarto-float-tbl figcaption.quarto-float-caption-top { - margin-top: 0.5rem; - margin-bottom: 0.25rem; - text-align: center; -} - -figure.quarto-float-tbl figcaption.quarto-float-caption-bottom { - padding-top: 0.25rem; - margin-bottom: 0.5rem; - text-align: center; -} - -// utterances -.utterances { - max-width: none; - margin-left: -8px; -} - -// iframe -iframe { - margin-bottom: 1em; -} - -// details -details { - margin-bottom: 1em; -} -details[show] { - margin-bottom: 0; -} - -details > summary { - @if variable-exists(text-muted) { - color: $text-muted; - } -} - -details > summary > p:only-child { - display: inline; -} - -// codeCopy -pre.sourceCode, -code.sourceCode { - position: relative; -} - -// Inline code should wrap -// See https://github.com/quarto-dev/quarto-cli/issues/2649 -dd code:not(.sourceCode), -p code:not(.sourceCode) { - white-space: pre-wrap; -} - -// default to scrolling output rather than wrapping, since -// multi-column tabular output (very common for R & Python) is -// unreadable when wrapped. -code { - white-space: pre; -} -@media print { - code { - white-space: pre-wrap; - } -} -pre > code { - display: block; -} - -pre > code.sourceCode { - white-space: $code-white-space; -} - -pre > code.sourceCode > span > a:first-child::before { - text-decoration: none; -} - -pre.code-overflow-wrap > code.sourceCode { - white-space: pre-wrap; -} - -pre.code-overflow-scroll > code.sourceCode { - white-space: pre; -} - -// code linking (pkgdown style) -code a:any-link { - color: inherit; - text-decoration: none; -} -code a:hover { - color: inherit; - text-decoration: underline; -} - -// task lists -ul.task-list { - padding-left: 1em; -} - -// tippy - -[data-tippy-root] { - display: inline-block; -} - -.tippy-content .footnote-back { - display: none; -} - -.footnote-back { - margin-left: 0.2em; -} - -.tippy-content { - overflow-x: auto; -} - -// embedded source code -.quarto-embedded-source-code { - display: none; -} - -// unresolved crossrefs -.quarto-unresolved-ref { - font-weight: 600; -} - -// html cover image injection -.quarto-cover-image { - max-width: 35%; - float: right; - margin-left: 30px; -} - -// provide margin below jupyter widgets -.cell-output-display .widget-subarea { - margin-bottom: 1em; -} - -// fix for selectize inputs getting their contents clipped -// this also works for knitr sql cells (see github issue #3497) -.cell-output-display:not(.no-overflow-x), -.knitsql-table:not(.no-overflow-x) { - overflow-x: auto; -} - -.panel-input { - margin-bottom: 1em; -} - -.panel-input > div, -.panel-input > div > div { - display: inline-block; - vertical-align: top; - padding-right: 12px; -} - -.panel-input > p:last-child { - margin-bottom: 0; -} - -.layout-sidebar { - margin-bottom: 1em; -} - -.layout-sidebar .tab-content { - border: none; -} - -.tab-content > .page-columns.active { - display: grid; -} - -// default styling for .code-preview=".." iframes -div.sourceCode > iframe { - width: 100%; - height: 300px; - - // this negative-margin hack works around the rendering issue with - // iframes and parent elements with rounded corners if the border - // radius for (eg) div.sourceCode is changed, this is likely going - // to need changing as well. - @if variable-exists(code-preview-margin-bottom) { - margin-bottom: $code-preview-margin-bottom; - } @else { - margin-bottom: -0.5em; - } - @if variable-exists(code-preview-border-color) { - border: $code-preview-border-color; - } -} - -// link styling -a { - text-underline-offset: 3px; -} - -/* Callout styling */ - -.callout pre.sourceCode { - padding-left: 0; -} - -// ansi escaping -div.ansi-escaped-output { - font-family: monospace; - display: block; -} - -/*! -* -* ansi colors from IPython notebook's -* -* we also add `bright-[color]-` synonyms for the `-[color]-intense` classes since -* that seems to be what ansi_up emits -* -*/ -/* CSS font colors for translated ANSI escape sequences */ -/* The color values are a mix of - http://www.xcolors.net/dl/baskerville-ivorylight and - http://www.xcolors.net/dl/euphrasia */ -.ansi-black-fg { - color: #3e424d; -} -.ansi-black-bg { - background-color: #3e424d; -} -.ansi-black-intense-black, -.ansi-bright-black-fg { - color: #282c36; -} -.ansi-black-intense-black, -.ansi-bright-black-bg { - background-color: #282c36; -} -.ansi-red-fg { - color: #e75c58; -} -.ansi-red-bg { - background-color: #e75c58; -} -.ansi-red-intense-red, -.ansi-bright-red-fg { - color: #b22b31; -} -.ansi-red-intense-red, -.ansi-bright-red-bg { - background-color: #b22b31; -} -.ansi-green-fg { - color: #00a250; -} -.ansi-green-bg { - background-color: #00a250; -} -.ansi-green-intense-green, -.ansi-bright-green-fg { - color: #007427; -} -.ansi-green-intense-green, -.ansi-bright-green-bg { - background-color: #007427; -} -.ansi-yellow-fg { - color: #ddb62b; -} -.ansi-yellow-bg { - background-color: #ddb62b; -} -.ansi-yellow-intense-yellow, -.ansi-bright-yellow-fg { - color: #b27d12; -} -.ansi-yellow-intense-yellow, -.ansi-bright-yellow-bg { - background-color: #b27d12; -} -.ansi-blue-fg { - color: #208ffb; -} -.ansi-blue-bg { - background-color: #208ffb; -} -.ansi-blue-intense-blue, -.ansi-bright-blue-fg { - color: #0065ca; -} -.ansi-blue-intense-blue, -.ansi-bright-blue-bg { - background-color: #0065ca; -} -.ansi-magenta-fg { - color: #d160c4; -} -.ansi-magenta-bg { - background-color: #d160c4; -} -.ansi-magenta-intense-magenta, -.ansi-bright-magenta-fg { - color: #a03196; -} -.ansi-magenta-intense-magenta, -.ansi-bright-magenta-bg { - background-color: #a03196; -} -.ansi-cyan-fg { - color: #60c6c8; -} -.ansi-cyan-bg { - background-color: #60c6c8; -} -.ansi-cyan-intense-cyan, -.ansi-bright-cyan-fg { - color: #258f8f; -} -.ansi-cyan-intense-cyan, -.ansi-bright-cyan-bg { - background-color: #258f8f; -} -.ansi-white-fg { - color: #c5c1b4; -} -.ansi-white-bg { - background-color: #c5c1b4; -} -.ansi-white-intense-white, -.ansi-bright-white-fg { - color: #a1a6b2; -} -.ansi-white-intense-white, -.ansi-bright-white-bg { - background-color: #a1a6b2; -} -.ansi-default-inverse-fg { - color: #ffffff; -} -.ansi-default-inverse-bg { - background-color: #000000; -} -.ansi-bold { - font-weight: bold; -} -.ansi-underline { - text-decoration: underline; -} - -:root { - --quarto-body-bg: #{$body-bg}; - --quarto-body-color: #{$body-color}; - --quarto-text-muted: #{$text-muted}; - --quarto-border-color: #{$table-border-color}; - --quarto-border-width: #{$border-width}; - @if not variable-exists(enable-rounded) or $enable-rounded == true { - --quarto-border-radius: #{$border-radius}; - } -} - -/* rules to support GT table styling */ -table.gt_table { - color: var(--quarto-body-color); - font-size: 1em; - width: 100%; // to match other table styling - background-color: transparent; - border-top-width: inherit; - border-bottom-width: inherit; - border-color: var(--quarto-border-color); -} - -table.gt_table th.gt_column_spanner_outer { - color: var(--quarto-body-color); - background-color: transparent; - border-top-width: inherit; - border-bottom-width: inherit; - border-color: var(--quarto-border-color); -} - -table.gt_table th.gt_col_heading { - color: var(--quarto-body-color); - font-weight: bold; - background-color: transparent; -} - -table.gt_table thead.gt_col_headings { - border-bottom: 1px solid currentColor; - border-top-width: inherit; - border-top-color: var(--quarto-border-color); -} - -table.gt_table thead.gt_col_headings:not(:first-child) { - border-top-width: 1px; - border-top-color: var(--quarto-border-color); -} - -table.gt_table td.gt_row { - border-bottom-width: 1px; - border-bottom-color: var(--quarto-border-color); - border-top-width: 0px; -} - -table.gt_table tbody.gt_table_body { - border-top-width: 1px; - border-bottom-width: 1px; - border-bottom-color: var(--quarto-border-color); - border-top-color: currentColor; -} - -/* restore previous pandoc columns behavior - (too many reports of slide layout breaking) - see https://github.com/jgm/pandoc/pull/8237 -*/ -div.columns { - display: initial; - gap: initial; -} -div.column { - display: inline-block; - overflow-x: initial; - vertical-align: top; - width: 50%; -} - -// Code Annotation LayoutBoot -.code-annotation-tip-content { - word-wrap: break-word; -} - -.code-annotation-container-hidden { - display: none !important; -} - -dl.code-annotation-container-grid { - display: grid; - grid-template-columns: min-content auto; - dt { - grid-column: 1; - } - dd { - grid-column: 2; - } -} - -pre.sourceCode.code-annotation-code { - padding-right: 0; -} - -code.sourceCode .code-annotation-anchor { - z-index: 100; - position: relative; - float: right; - background-color: transparent; -} - -// Add a bit of margin to the right of a checkbox -// https://github.com/quarto-dev/quarto-cli/issues/6627 -input[type="checkbox"] { - margin-right: 0.5ch; -} - -// Mermaid Theming -// if none come from theme, we need these -$body-color: #222 !default; -$body-bg: #fff !default; -$primary: #468 !default; -$secondary: #999 !default; -$font-family-sans-serif: sans-serif !default; -$font-weight-base: 400 !default; - -/* SCSS variables - - These are documented in quarto-cli/quarto-web:docs/authoring/_mermaid-theming.qmd - - Make sure to update the docs if you change these. -*/ -$mermaid-bg-color: $body-bg !default; -$mermaid-edge-color: $secondary !default; -$mermaid-node-fg-color: $body-color !default; -$mermaid-fg-color: $body-color !default; -$mermaid-fg-color--lighter: lighten($body-color, 10%) !default; -$mermaid-fg-color--lightest: lighten($body-color, 20%) !default; -$mermaid-font-family: $font-family-sans-serif !default; -$mermaid-font-weight: $font-weight-base !default; -$mermaid-label-bg-color: $body-bg !default; -$mermaid-label-fg-color: $primary !default; -$mermaid-node-bg-color: rgba($primary, 0.1) !default; -$mermaid-node-fg-color: $primary !default; - -/* CSS variables */ -:root { - --mermaid-bg-color: #{$mermaid-bg-color}; - --mermaid-edge-color: #{$mermaid-edge-color}; - --mermaid-node-fg-color: #{$mermaid-node-fg-color}; - --mermaid-fg-color: #{$mermaid-fg-color}; - --mermaid-fg-color--lighter: #{$mermaid-fg-color--lighter}; - --mermaid-fg-color--lightest: #{$mermaid-fg-color--lightest}; - --mermaid-font-family: #{$mermaid-font-family}; - --mermaid-label-bg-color: #{$mermaid-label-bg-color}; - --mermaid-label-fg-color: #{$mermaid-label-fg-color}; - --mermaid-node-bg-color: #{$mermaid-node-bg-color}; - --mermaid-node-fg-color: #{$mermaid-node-fg-color}; -} - -@media print { - :root { - font-size: 11pt; - } - #quarto-sidebar, - #TOC, - .nav-page { - display: none; - } - .page-columns .content { - grid-column-start: page-start; - } - .fixed-top { - position: relative; - } - .panel-caption, - .figure-caption, - figcaption { - color: #666; - } -} - -.code-copy-button { - position: absolute; - top: 0; - right: 0; - border: 0; - margin-top: 5px; - margin-right: 5px; - background-color: transparent; - z-index: 3; -} - -.code-copy-button:focus { - outline: none; -} - -.code-copy-button-tooltip { - font-size: 0.75em; -} - -#{$code-copy-selector} .code-copy-button > .bi::before { - display: inline-block; - height: 1rem; - width: 1rem; - content: ""; - vertical-align: -0.125em; - @if variable-exists(btn-code-copy-color) { - background-image: url('data:image/svg+xml,'); - } @else { - background-image: url('data:image/svg+xml,'); - } - background-repeat: no-repeat; - background-size: 1rem 1rem; -} - -#{$code-copy-selector} .code-copy-button-checked > .bi::before { - @if variable-exists(btn-code-copy-color) { - background-image: url('data:image/svg+xml,'); - } @else { - background-image: url('data:image/svg+xml,'); - } -} - -@if variable-exists(btn-code-copy-color-active) { - #{$code-copy-selector} .code-copy-button:hover > .bi::before { - background-image: url('data:image/svg+xml,'); - } - #{$code-copy-selector} .code-copy-button-checked:hover > .bi::before { - background-image: url('data:image/svg+xml,'); - } -} - -main { - ol ol, - ul ul, - ol ul, - ul ol { - margin-bottom: 1em; - } -} - -// the scss mode for vs code doesn't like the fancy :has(> p) selector, but -// it's valid: https://developer.mozilla.org/en-US/docs/Web/CSS/:has -ul > li:not(:has(> p)) > ul, -ol > li:not(:has(> p)) > ul, -ul > li:not(:has(> p)) > ol, -ol > li:not(:has(> p)) > ol { - margin-bottom: 0; -} - -ul > li:not(:has(> p)) > ul > li:has(> p), -ol > li:not(:has(> p)) > ul > li:has(> p), -ul > li:not(:has(> p)) > ol > li:has(> p), -ol > li:not(:has(> p)) > ol > li:has(> p) { - margin-top: 1rem; -} - -// Grid layout -body { - margin: 0; -} - -// If we're applying display: grid, we're losing our display: border-box -// behavior, so we need to reset bottom margin for title block -main.page-columns > header > h1.title { - margin-bottom: 0; -} - -@include media-breakpoint-up(lg) { - body { - .page-columns { - @include page-columns-default-wide(); - } - } - - body.fullcontent:not(.floating):not(.docked) { - .page-columns { - @include page-columns-fullcontent-wide(); - } - } - - body.slimcontent:not(.floating):not(.docked) { - .page-columns { - @include page-columns-slimcontent-wide(); - } - } - - body.listing:not(.floating):not(.docked) { - .page-columns { - @include page-columns-listing-wide(); - } - } - - body:not(.floating):not(.docked) { - .page-columns.toc-left { - @include page-columns-tocleft-wide(); - .page-columns { - @include page-columns-tocleft-wide(); - } - } - } - - body.floating { - .page-columns { - @include page-columns-float-wide(); - } - } - - body.docked { - .page-columns { - @include page-columns-docked-wide(); - } - } - - body.docked.fullcontent { - .page-columns { - @include page-columns-docked-fullcontent-wide(); - } - } - - body.floating.fullcontent { - .page-columns { - @include page-columns-float-fullcontent-wide(); - } - } - - body.docked.slimcontent { - .page-columns { - @include page-columns-docked-slimcontent-wide(); - } - } - - body.docked.listing { - .page-columns { - @include page-columns-docked-listing-wide(); - } - } - - body.floating.slimcontent { - .page-columns { - @include page-columns-float-slimcontent-wide(); - } - } - - body.floating.listing { - .page-columns { - @include page-columns-float-listing-wide(); - } - } -} - -@include media-breakpoint-down(lg) { - body { - .page-columns { - @include page-columns-default-mid(); - } - } - - body.fullcontent:not(.floating):not(.docked) { - .page-columns { - @include page-columns-fullcontent-mid(); - } - } - - body.slimcontent:not(.floating):not(.docked) { - .page-columns { - @include page-columns-slimcontent-mid(); - } - } - - body.listing:not(.floating):not(.docked) { - .page-columns { - @include page-columns-listing-mid(); - } - } - - body:not(.floating):not(.docked) { - .page-columns.toc-left { - @include page-columns-tocleft-mid(); - .page-columns { - @include page-columns-tocleft-mid(); - } - } - } - - body.floating { - .page-columns { - @include page-columns-float-mid(); - } - } - - body.docked { - .page-columns { - @include page-columns-docked-mid(); - } - } - - body.docked.fullcontent { - .page-columns { - @include page-columns-docked-fullcontent-mid(); - } - } - - body.floating.fullcontent { - .page-columns { - @include page-columns-float-fullcontent-mid(); - } - } - - body.docked.slimcontent { - .page-columns { - @include page-columns-docked-slimcontent-mid(); - } - } - - body.docked.listing { - .page-columns { - @include page-columns-docked-listing-mid(); - } - } - - body.floating.slimcontent { - .page-columns { - @include page-columns-float-slimcontent-mid(); - } - } - - body.floating.listing { - .page-columns { - @include page-columns-float-listing-mid(); - } - } -} - -@include media-breakpoint-down(md) { - body, - body.fullcontent:not(.floating):not(.docked), - body.slimcontent:not(.floating):not(.docked), - body.docked, - body.docked.slimcontent, - body.docked.fullcontent, - body.floating, - body.floating.slimcontent, - body.floating.fullcontent { - .page-columns { - @include page-columns(); - @include grid-template-columns-narrow(); - } - } - - body:not(.floating):not(.docked) { - .page-columns.toc-left { - @include page-columns(); - @include grid-template-columns-narrow(); - .page-columns { - @include page-columns(); - @include grid-template-columns-narrow(); - } - } - } - - nav[role="doc-toc"] { - display: none; - } -} - -// Positions a header, body, and footer in rows -body, -.page-row-navigation { - grid-template-rows: [page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]; -} - -// Positions contents followed by a region below the content -// (used for pagination controls) -.page-rows-contents { - grid-template-rows: - [content-top] minmax(max-content, 1fr) [content-bottom] minmax( - 60px, - max-content - ) - [page-bottom]; -} - -.page-full { - grid-column: screen-start / screen-end !important; -} - -.page-columns > * { - grid-column: body-content-start / body-content-end; -} - -.page-columns.column-page > * { - grid-column: page-start / page-end; -} -.page-columns.column-page-left .page-columns.page-full > *, -.page-columns.column-page-left > * { - grid-column: page-start / body-content-end; -} - -.page-columns.column-page-right .page-columns.page-full > *, -.page-columns.column-page-right > * { - grid-column: body-content-start / page-end; -} - -// Automatically creates new rows -.page-rows { - grid-auto-rows: auto; -} - -.header { - grid-column: screen-start / screen-end; - grid-row: page-top / contents-top; -} - -#quarto-content { - padding: 0; - grid-column: screen-start / screen-end; - grid-row: contents-top / contents-bottom; -} - -body.floating { - .sidebar.sidebar-navigation { - grid-column: page-start / body-start; - grid-row: content-top / page-bottom; - } -} - -body.docked { - .sidebar.sidebar-navigation { - grid-column: screen-start / body-start; - grid-row: content-top / page-bottom; - } -} - -.sidebar.toc-left { - grid-column: page-start / body-start; - grid-row: content-top / page-bottom; -} - -.sidebar.margin-sidebar { - grid-column: body-end / page-end; - grid-row: content-top / page-bottom; -} - -.page-columns .content { - grid-column: body-content-start / body-content-end; - grid-row: content-top / content-bottom; - align-content: flex-start; -} - -.page-columns .page-navigation { - grid-column: body-content-start / body-content-end; - grid-row: content-bottom / page-bottom; -} - -.page-columns .footer { - grid-column: screen-start / screen-end; - grid-row: contents-bottom / page-bottom; -} - -.page-columns .column-body { - grid-column: body-content-start / body-content-end; -} - -.page-columns .column-body-fullbleed { - grid-column: body-start / body-end; -} - -.page-columns .column-body-outset { - grid-column: body-start-outset / body-end-outset; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-body-outset-left { - grid-column: body-start-outset / body-content-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-body-outset-right { - grid-column: body-content-start / body-end-outset; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-page { - grid-column: page-start / page-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-page-inset { - grid-column: page-start-inset / page-end-inset; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-page-inset-left { - grid-column: page-start-inset / body-content-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-page-inset-right { - grid-column: body-content-start / page-end-inset; - z-index: $zindex-pagelayout; - opacity: 0.999; - figcaption { - @include column-spanning-element(); - } -} - -.page-columns .column-page-left { - grid-column: page-start / body-content-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-page-right { - grid-column: body-content-start / page-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - figcaption { - @include column-spanning-element(); - } -} - -#quarto-content.page-columns { - #quarto-margin-sidebar, - #quarto-sidebar { - z-index: 1; - } - - @include media-breakpoint-down(lg) { - #quarto-margin-sidebar.collapse, - #quarto-sidebar.collapse, - #quarto-margin-sidebar.collapsing, - #quarto-sidebar.collapsing { - z-index: $zindex-modal; - } - } - - main.column-page, - main.column-page-right, - main.column-page-left { - z-index: 0; - } -} - -.page-columns .column-screen-inset { - grid-column: screen-start-inset / screen-end-inset; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-screen-inset-left { - grid-column: screen-start-inset / body-content-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-screen-inset-right { - grid-column: body-content-start / screen-end-inset; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-screen { - grid-column: screen-start / screen-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-screen-left { - grid-column: screen-start / body-content-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-screen-right { - grid-column: body-content-start / screen-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); -} - -.page-columns .column-screen-inset-shaded { - grid-column: screen-start / screen-end; - padding: 1em; - background: $light; - z-index: $zindex-pagelayout; - opacity: 0.999; - margin-bottom: 1em; -} - -.zindex-content { - z-index: $zindex-pagelayout; - opacity: 0.999; -} - -.zindex-modal { - z-index: $zindex-modal; - opacity: 0.999; -} - -.zindex-over-content { - z-index: #{$zindex-dropdown - 1}; - opacity: 0.999; -} - -img.img-fluid.column-screen, -img.img-fluid.column-screen-inset-shaded, -img.img-fluid.column-screen-inset, -img.img-fluid.column-screen-inset-left, -img.img-fluid.column-screen-inset-right, -img.img-fluid.column-screen-left, -img.img-fluid.column-screen-right { - width: 100%; -} - -@include media-breakpoint-up(lg) { - .margin-caption, - div.aside, - aside:not(.footnotes):not(.sidebar), - .column-margin { - grid-column: body-end / page-end !important; - z-index: $zindex-pagelayout; - } - - .column-sidebar { - grid-column: page-start / body-start !important; - z-index: $zindex-pagelayout; - } - - .column-leftmargin { - grid-column: screen-start-inset / body-start !important; - z-index: $zindex-pagelayout; - } - - .no-row-height { - height: 1em; - overflow: visible; - } -} - -@include media-breakpoint-down(lg) { - .margin-caption, - div.aside, - aside:not(.footnotes):not(.sidebar), - .column-margin { - grid-column: body-end / page-end !important; - z-index: $zindex-pagelayout; - } - - .no-row-height { - height: 1em; - overflow: visible; - } - - .page-columns.page-full { - overflow: visible; - } - - .page-columns.toc-left { - .margin-caption, - div.aside, - aside:not(.footnotes):not(.sidebar), - .column-margin { - grid-column: body-content-start / body-content-end !important; - z-index: $zindex-pagelayout; - opacity: 0.999; - } - .no-row-height { - height: initial; - overflow: initial; - } - } -} - -@include media-breakpoint-down(md) { - .margin-caption, - div.aside, - aside:not(.footnotes):not(.sidebar), - .column-margin { - grid-column: body-content-start / body-content-end !important; - z-index: $zindex-pagelayout; - opacity: 0.999; - } - .no-row-height { - height: initial; - overflow: initial; - } - - #quarto-margin-sidebar { - display: none; - } - - #quarto-sidebar-toc-left { - display: none; - } - - .hidden-sm { - display: none; - } -} - -// Panel Grid (custom grid for our panel system) -.panel-grid { - display: grid; - grid-template-rows: repeat(1, 1fr); - grid-template-columns: repeat(24, 1fr); - gap: 1em; - @include make-cssgrid(24); -} - -// Rest of rules -body { - @if variable-exists(margin-top) { - margin-top: $margin-top; - } - @if variable-exists(margin-bottom) { - margin-bottom: $margin-bottom; - } - @if variable-exists(margin-left) { - margin-left: $margin-left; - } - @if variable-exists(margin-right) { - margin-right: $margin-right; - } -} - -main { - margin-top: 1em; - margin-bottom: 1em; -} - -h1, -h2 { - color: if( - $headings-color != null, - $headings-color, - theme-dim($body-color, 8%) - ); - margin-top: 2rem; - margin-bottom: 1rem; - font-weight: $h1h2h3-font-weight; -} - -h1.title { - margin-top: 0; -} - -main.content > section:first-of-type > h2:first-child { - margin-top: 0; -} - -h2 { - border-bottom: 1px solid $table-border-color; - padding-bottom: 0.5rem; -} - -h3 { - font-weight: $h1h2h3-font-weight; -} - -h3, -h4 { - opacity: 0.9; - margin-top: 1.5rem; -} - -h5, -h6 { - opacity: 0.9; -} - -.header-section-number { - @include body-secondary; -} - -.nav-link.active .header-section-number { - color: inherit; -} - -mark { - padding: 0em; -} - -// The 1.4 figcaption classes are -// -// quarto-float-caption or quarto-subfloat-caption, depending -// on whether it's a main or subfloat caption. -// -// In addition, the name of the float is added as a class -// as well ("figure", "table", etc, including custom -// float types like a hypothetical "diagram") -// -// this way, custom float types can be both supported and -// offered good defaults. -// -// FIXME right now we're classing all of figcaption, -// but we should clean this up. -.panel-caption, -.figure-caption, -.subfigure-caption, -.table-caption, -figcaption, -caption { - font-size: 0.9rem; - @include body-secondary; -} - -// as of 1.4, tables emitted by quarto shouldn't have caption -// elements, but we keep this here in case some strange rawhtml -// table sneaks through. -.quarto-layout-cell[data-ref-parent] caption { - @include body-secondary; -} - -.column-margin figcaption, -.margin-caption, -div.aside, -aside, -.column-margin { - @include body-secondary; - font-size: 0.825rem; -} - -.panel-caption.margin-caption { - text-align: inherit; -} - -.column-margin.column-container p { - margin-bottom: 0; -} - -.column-margin.column-container > *:not(.collapse):first-child { - padding-bottom: 0.5em; - display: block; -} - -.column-margin.column-container > *:not(.collapse):not(:first-child) { - padding-top: 0.5em; - padding-bottom: 0.5em; - display: block; -} - -.column-margin.column-container > *.collapse:not(.show) { - display: none; -} - -@include media-breakpoint-up(md) { - .column-margin.column-container .callout-margin-content:first-child { - margin-top: 4.5em; - } - .column-margin.column-container .callout-margin-content-simple:first-child { - margin-top: 3.5em; - } -} - -.margin-caption > * { - padding-top: 0.5em; - padding-bottom: 0.5em; -} - -// Caption and footnotes - -// sort out font size -$code-block-font-size: $small-font-size !default; - -// sort out border color -$code-block-border-left-color: $table-border-color !default; -@if type_of($code-block-border-left) == color { - $code-block-border-left-color: $code-block-border-left; -} - -// sort out background color -$code-block-bg-color: quarto-color.adjust( - $progress-bg, - $alpha: $code-block-bg-alpha -) !default; -@if type_of($code-block-bg) == color { - $code-block-bg-color: $code-block-bg; -} - -// stack layout panels on mobile devices -@include media-breakpoint-down(md) { - .quarto-layout-row { - flex-direction: column; - } -} - -.nav-tabs .nav-item { - margin-top: 1px; - cursor: pointer; -} - -.tab-content { - margin-top: 0px; - border-left: $nav-tabs-border-color $nav-tabs-border-width solid; - border-right: $nav-tabs-border-color $nav-tabs-border-width solid; - border-bottom: $nav-tabs-border-color $nav-tabs-border-width solid; - margin-left: 0; - padding: 1em; - margin-bottom: 1em; -} - -@include media-breakpoint-down(md) { - .layout-sidebar { - margin-left: 0; - margin-right: 0; - } -} - -.panel-sidebar, -.panel-sidebar .form-control, -.panel-input, -.panel-input .form-control, -.selectize-dropdown { - font-size: 0.9rem; -} - -.panel-sidebar .form-control, -.panel-input .form-control { - padding-top: 0.1rem; -} - -.tab-pane div.sourceCode { - margin-top: 0px; -} - -.tab-pane > p { - padding-top: 0; -} - -.tab-pane > p:nth-child(1) { - padding-top: 0; -} - -.tab-pane > p:last-child { - margin-bottom: 0; -} - -.tab-pane > pre:last-child { - margin-bottom: 0; -} - -.tab-content > .tab-pane:not(.active) { - display: none !important; -} - -div.sourceCode { - // Clear code background if is not specified - @if $code-block-bg { - background-color: $code-block-bg-color; - border: 1px solid $code-block-bg-color; - @if $enable-rounded { - border-radius: $border-radius; - } - } @else { - background-color: $body-bg !important; - border: none; - padding: 0; - } - - @if variable-exists(code-block-color) { - color: $code-block-color; - } -} - -@if variable-exists(code-block-color) { - div.sourceCode pre.sourceCode { - color: $code-block-color; - } -} - -pre.sourceCode { - background-color: transparent; -} - -pre.sourceCode { - // Border - @if $code-block-border-left { - border-left: $code-block-border-left-size; - border-left-style: $code-block-border-left-style; - border-left-color: $code-block-border-left-color; - padding-left: $code-block-padding-left; - border-right: none; - border-top: none; - border-bottom: none; - } @else { - border: none; - } - font-size: $code-block-font-size; - overflow: visible !important; - @if $code-block-bg { - padding: $code-block-bg-padding; - } -} - -pre.sourceCode > code.sourceCode { - @if not $code-block-bg { - padding: 0; - } -} - -div.sourceCode { - overflow-y: hidden; -} - -.callout div.sourceCode { - margin-left: initial; -} - -// improve treatment of blockquotes -.blockquote { - font-size: inherit; - padding-left: 1rem; - padding-right: 1.5rem; - @include body-secondary; -} - -.blockquote { - h1:first-child, - h2:first-child, - h3:first-child, - h4:first-child, - h5:first-child { - margin-top: 0; - } -} - -pre { - background-color: initial; - padding: initial; - border: initial; -} - -// Maps the pandoc 'monobackgroundcolor' to bootstrap -// Note this only targets code outside of sourceCode blocks -@if variable-exists(mono-background-color) { - p code:not(.sourceCode), - li code:not(.sourceCode), - kbd, - pre:not(.sourceCode), - samp { - background-color: $mono-background-color; - padding: 0.2em; - } -} - -p pre code:not(.sourceCode), -li pre code:not(.sourceCode), -pre code:not(.sourceCode) { - background-color: initial; -} - -// Default padding if background is set -p code:not(.sourceCode), -li code:not(.sourceCode), -td code:not(.sourceCode) { - @if variable-exists(mono-background-color) { - background-color: $mono-background-color; - } @else if variable-exists(code-bg) { - background-color: $code-bg; - } - - @if variable-exists(code-padding) { - padding: $code-padding; - } @else if variable-exists(code-bg) { - padding: 0.2em; - } @else if variable-exists(mono-background-color) { - padding: 0.2em; - } -} - -nav p code:not(.sourceCode), -nav li code:not(.sourceCode), -nav td code:not(.sourceCode) { - background-color: transparent; - padding: 0; -} - -td code:not(.sourceCode) { - white-space: pre-wrap; -} - -#quarto-embedded-source-code-modal > .modal-dialog { - max-width: 1000px; - padding-left: 1.75rem; - padding-right: 1.75rem; -} - -#quarto-embedded-source-code-modal - > .modal-dialog - > .modal-content - > .modal-body { - padding: 0; -} - -#quarto-embedded-source-code-modal - > .modal-dialog - > .modal-content - > .modal-body - div.sourceCode { - margin: 0; - padding: 0.2rem 0.2rem; - border-radius: 0px; - border: none; -} - -#quarto-embedded-source-code-modal - > .modal-dialog - > .modal-content - > .modal-header { - padding: 0.7rem; -} - -.code-tools-button { - font-size: 1rem; - padding: 0.15rem 0.15rem; - margin-left: 5px; - color: $text-muted; - background-color: transparent; - transition: initial; - cursor: pointer; -} - -.code-tools-button > .bi::before { - display: inline-block; - height: 1rem; - width: 1rem; - content: ""; - vertical-align: -0.125em; - background-image: url('data:image/svg+xml,'); - background-repeat: no-repeat; - background-size: 1rem 1rem; -} - -.code-tools-button:hover > .bi::before { - background-image: url('data:image/svg+xml,'); -} - -#quarto-embedded-source-code-modal .code-copy-button > .bi::before { - background-image: url('data:image/svg+xml,'); -} - -#quarto-embedded-source-code-modal .code-copy-button-checked > .bi::before { - background-image: url('data:image/svg+xml,'); -} - -/* table of contents */ -.sidebar { - will-change: top; - transition: top 200ms linear; - position: sticky; - overflow-y: auto; - padding-top: 1.2em; - max-height: 100vh; -} - -.sidebar.toc-left, -.sidebar.margin-sidebar { - top: 0px; - padding-top: 1em; -} - -.sidebar.quarto-banner-title-block-sidebar { - & > * { - padding-top: 1.65em; - } -} - -figure .quarto-notebook-link { - margin-top: 0.5em; -} - -.quarto-notebook-link { - font-size: 0.75em; - color: $text-muted; - margin-bottom: 1em; - text-decoration: none; - display: block; -} - -.quarto-notebook-link:hover { - text-decoration: underline; - color: $link-color; -} - -.quarto-notebook-link::before { - display: inline-block; - height: 0.75rem; - width: 0.75rem; - margin-bottom: 0em; - margin-right: 0.25em; - content: ""; - vertical-align: -0.125em; - - @if variable-exists(text-muted) { - background-image: url('data:image/svg+xml,'); - } @else { - background-image: url('data:image/svg+xml,'); - } - background-repeat: no-repeat; - background-size: 0.75rem 0.75rem; -} - -.toc-actions i.bi, -.quarto-code-links i.bi, -.quarto-other-links i.bi, -.quarto-alternate-notebooks i.bi, -.quarto-alternate-formats i.bi { - margin-right: 0.4em; - font-size: $toc-tools-font-size; -} - -.quarto-other-links-text-target { - .quarto-code-links i.bi, - .quarto-other-links i.bi { - margin-right: 0.2em; - } -} - -.quarto-other-formats-text-target .quarto-alternate-formats i.bi { - margin-right: 0.1em; -} - -.toc-actions i.bi.empty, -.quarto-code-links i.bi.empty, -.quarto-other-links i.bi.empty, -.quarto-alternate-notebooks i.bi.empty, -.quarto-alternate-formats i.bi.empty { - padding-left: 1em; -} - -.quarto-notebook { - h2 { - border-bottom: none; - } - .cell-container { - display: flex; - .cell { - flex-grow: 4; - } - .cell-decorator { - padding-top: 1.5em; - padding-right: 1em; - text-align: right; - } - - &.code-fold .cell-decorator { - padding-top: 3em; - } - } - .cell-code code { - white-space: pre-wrap; - } - - .cell .cell-output-stderr pre code, - .cell .cell-output-stdout pre code { - white-space: pre-wrap; - overflow-wrap: anywhere; - } -} - -.toc-actions, -.quarto-alternate-formats, -.quarto-other-links, -.quarto-code-links, -.quarto-alternate-notebooks { - padding-left: 0em; -} -.sidebar .toc-actions a, -.sidebar .quarto-alternate-formats a, -.sidebar .quarto-other-links a, -.sidebar .quarto-code-links a, -.sidebar .quarto-alternate-notebooks a, -.sidebar nav[role="doc-toc"] a { - text-decoration: none; -} - -.sidebar .toc-actions a:hover, -.sidebar .quarto-other-links a:hover, -.sidebar .quarto-code-links a:hover, -.sidebar .quarto-alternate-formats a:hover, -.sidebar .quarto-alternate-notebooks a:hover { - color: $link-color; -} - -.sidebar .toc-actions h2, -.sidebar .quarto-code-links h2, -.sidebar .quarto-other-links h2, -.sidebar .quarto-alternate-notebooks h2, -.sidebar .quarto-alternate-formats h2, -.sidebar nav[role="doc-toc"] > h2 { - font-weight: 500; - margin-bottom: 0.2rem; - margin-top: 0.3rem; - font-family: inherit; - border-bottom: 0; - padding-bottom: 0; - padding-top: 0px; -} - -.sidebar .toc-actions > h2, -.sidebar .quarto-code-links > h2, -.sidebar .quarto-other-links > h2, -.sidebar .quarto-alternate-notebooks > h2, -.sidebar .quarto-alternate-formats > h2 { - font-size: $toc-tools-font-size; -} - -.sidebar nav[role="doc-toc"] > h2 { - font-size: $toc-font-size; -} - -.sidebar nav[role="doc-toc"] > ul a { - border-left: 1px solid $toc-inactive-border; - padding-left: 0.6rem; -} - -.sidebar .toc-actions h2 > ul a, -.sidebar .quarto-code-links h2 > ul a, -.sidebar .quarto-other-links h2 > ul a, -.sidebar .quarto-alternate-notebooks h2 > ul a, -.sidebar .quarto-alternate-formats h2 > ul a { - border-left: none; - padding-left: 0.6rem; -} - -.sidebar .toc-actions ul a:empty, -.sidebar .quarto-code-links ul a:empty, -.sidebar .quarto-other-links ul a:empty, -.sidebar .quarto-alternate-notebooks ul a:empty, -.sidebar .quarto-alternate-formats ul a:empty, -.sidebar nav[role="doc-toc"] > ul a:empty { - display: none; -} - -.sidebar .toc-actions ul, -.sidebar .quarto-code-links ul, -.sidebar .quarto-other-links ul, -.sidebar .quarto-alternate-notebooks ul, -.sidebar .quarto-alternate-formats ul { - padding-left: 0; - list-style: none; -} - -.sidebar nav[role="doc-toc"] ul { - list-style: none; - padding-left: 0; - list-style: none; -} - -.sidebar nav[role="doc-toc"] > ul { - margin-left: 0.45em; -} - -.quarto-margin-sidebar nav[role="doc-toc"] { - padding-left: 0.5em; -} - -.sidebar .toc-actions > ul, -.sidebar .quarto-code-links > ul, -.sidebar .quarto-other-links > ul, -.sidebar .quarto-alternate-notebooks > ul, -.sidebar .quarto-alternate-formats > ul { - font-size: $toc-tools-font-size; -} - -.sidebar nav[role="doc-toc"] > ul { - font-size: $toc-font-size; -} - -.sidebar .toc-actions ul li a, -.sidebar .quarto-code-links ul li a, -.sidebar .quarto-other-links ul li a, -.sidebar .quarto-alternate-notebooks ul li a, -.sidebar .quarto-alternate-formats ul li a, -.sidebar nav[role="doc-toc"] > ul li a { - line-height: 1.1rem; - padding-bottom: 0.2rem; - padding-top: 0.2rem; - color: inherit; -} - -$toc-indent-depth: 5; -$indent: 1.2em; -@for $i from 1 through $toc-indent-depth { - $selector-depth: repeat-chars(" ul > li >", $i); - - .sidebar nav[role="doc-toc"] ul > li > #{$selector-depth} a { - padding-left: #{$indent * $i}; - } -} - -.sidebar nav[role="doc-toc"] ul > li > a.active, -.sidebar nav[role="doc-toc"] ul > li > ul > li > a.active { - border-left: 1px solid $toc-active-border; - color: $toc-color !important; -} - -.sidebar nav[role="doc-toc"] ul > li > a:hover, -.sidebar nav[role="doc-toc"] ul > li > ul > li > a:hover { - color: $toc-color !important; -} - -// tweaking default keyboard settings -kbd, -.kbd { - color: $body-color; - @if (quarto-color.blackness($body-bg) > $code-block-theme-dark-threshhold) { - background-color: shift-color($gray-100, 70%); - } @else { - background-color: $gray-100; - } - border: 1px solid; - border-radius: 5px; - border-color: $table-border-color; -} - -// tweak pandoc default hanging indent -.quarto-appendix-contents div.hanging-indent { - margin-left: 0em; -} - -.quarto-appendix-contents div.hanging-indent div.csl-entry { - margin-left: 1em; - text-indent: -1em; -} - -// footnotes/citations -.citation a, -.footnote-ref { - text-decoration: none; -} -.footnotes ol { - padding-left: 1em; -} -.tippy-content > * { - margin-bottom: 0.7em; -} -.tippy-content > *:last-child { - margin-bottom: 0; -} - -@if $code-block-border-left { - // Align source code and callout text (not border) with main body text when there is room - @include media-breakpoint-up(lg) { - // Cards with header - .callout:not(.no-icon) { - margin-left: add(add(-0.4em, -$callout-border-width), -1px); - } - - .callout { - margin-left: add(-0.4em, -$callout-border-width); - } - - div.sourceCode { - margin-left: add( - add(-$code-block-padding-left, -$code-block-border-left-size), - 2px - ); - } - } -} - -// Callouts - -.callout { - margin-top: $callout-margin-top; - margin-bottom: $callout-margin-bottom; - border-radius: $border-radius; - overflow-wrap: break-word; -} - -.callout .callout-title-container { - overflow-wrap: anywhere; -} - -.callout.callout-style-simple { - padding: 0.4em 0.7em; - border-left: $callout-border-width solid; - border-right: 1px solid $table-border-color; - border-top: 1px solid $table-border-color; - border-bottom: 1px solid $table-border-color; -} - -.callout.callout-style-default { - border-left: $callout-border-width solid; - border-right: 1px solid $table-border-color; - border-top: 1px solid $table-border-color; - border-bottom: 1px solid $table-border-color; -} - -.callout .callout-body-container { - flex-grow: 1; -} - -.callout.callout-style-simple .callout-body { - font-size: 0.9rem; - font-weight: 400; -} - -.callout.callout-style-default .callout-body { - font-size: 0.9rem; - font-weight: 400; -} - -.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-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; -} - -.callout.callout-style-default .callout-body { - padding-left: 0.5em; - padding-right: 0.5em; -} - -.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; -} - -$code-block-border-left-color: $table-border-color !default; - -.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; -} - -// Default values for callout colors -$callout-color-note: $blue !default; -$callout-color-tip: $green !default; -$callout-color-important: $red !default; -$callout-color-caution: $orange !default; -$callout-color-warning: $yellow !default; - -// Generate per callout type css to customize their appearance -// Define the callouts for which we should define styles -$callouts: ( - // NOTE - "note": - ( - "color": $callout-color-note, - "icon": - '', - ), - // TIP - "tip": - ( - "color": $callout-color-tip, - "icon": - '', - ), - // WARNING - "warning": - ( - "color": $callout-color-warning, - "icon": - '', - ), - // CAUTION - "caution": - ( - "color": $callout-color-caution, - "icon": - '', - ), - // IMPORTANT - "important": - ( - "color": $callout-color-important, - "icon": - '', - ) -); - -div.callout.callout { - border-left-color: $text-muted; -} - -div.callout.callout-style-default > .callout-header { - background-color: $text-muted; -} - -@each $name, $info in $callouts { - div.callout-#{$name}.callout { - border-left-color: shift-color( - quarto-map.get($info, "color"), - $callout-border-scale - ); - } - - div.callout-#{$name}.callout-style-default > .callout-header { - @if (quarto-color.blackness($body-bg) > $code-block-theme-dark-threshhold) { - background-color: shift-color(quarto-map.get($info, "color"), 70%); - } @else { - background-color: shift-color(quarto-map.get($info, "color"), -90%); - } - } - - $shifted-color: #{shift-color( - quarto-map.get($info, "color"), - $callout-icon-scale - )}; - $shifted-color-svg: str-replace($shifted-color, "#", "%23"); - - div.callout-#{$name}:not(.callout-titled) .callout-icon::before { - background-image: #{"url('data:image/svg+xml," + - str-replace( - quarto-map.get($info, "icon"), - 'fill="currentColor"', - 'style="fill: #{$shifted-color-svg}"' - ) + - "');"}; - } - - div.callout-#{$name}.callout-titled .callout-icon::before { - background-image: #{"url('data:image/svg+xml," + - str-replace( - quarto-map.get($info, "icon"), - 'fill="currentColor"', - 'style="fill: #{$shifted-color-svg}"' - ) + - "');"}; - } - - div.callout-#{$name} .callout-toggle::before { - background-image: url('data:image/svg+xml,'); - } -} - -.quarto-toggle-container { - display: flex; - align-items: center; -} - -// dark mode -.quarto-reader-toggle .bi::before, -.quarto-color-scheme-toggle .bi::before { - display: inline-block; - height: 1rem; - width: 1rem; - content: ""; - background-repeat: no-repeat; - background-size: 1rem 1rem; -} - -.sidebar-navigation { - padding-left: 20px; -} - -.navbar { - background-color: $navbar-bg; - color: $navbar-fg; -} - -.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before { - background-image: url('data:image/svg+xml,'); -} - -.navbar .quarto-color-scheme-toggle.alternate .bi::before { - background-image: url('data:image/svg+xml,'); -} - -.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before { - background-image: url('data:image/svg+xml,'); -} - -.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before { - background-image: url('data:image/svg+xml,'); -} - -// sidebar handling -.quarto-sidebar-toggle { - border-color: $border-color; - border-bottom-left-radius: $border-radius; - border-bottom-right-radius: $border-radius; - border-style: solid; - border-width: 1px; - overflow: hidden; - border-top-width: 0px; - padding-top: 0px !important; -} - -.quarto-sidebar-toggle-title { - cursor: pointer; - padding-bottom: 2px; - margin-left: 0.25em; - text-align: center; - font-weight: 400; - font-size: 0.775em; -} - -#quarto-content { - .quarto-sidebar-toggle { - background: theme-dim($body-bg, 2%); - } - - .quarto-sidebar-toggle-title { - color: $body-color; - } -} - -.quarto-sidebar-toggle-icon { - color: $border-color; - margin-right: 0.5em; - float: right; - transition: transform 0.2s ease; -} - -.quarto-sidebar-toggle-icon::before { - padding-top: 5px; -} - -.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon { - transform: rotate(-180deg); -} - -.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title { - border-bottom: solid $border-color 1px; -} - -.quarto-sidebar-toggle-contents { - background-color: $body-bg; - padding-right: 10px; - padding-left: 10px; - margin-top: 0px !important; - transition: max-height 0.5s ease; -} - -.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents { - padding-top: 1em; - padding-bottom: 10px; -} - -.sidebar-menu-container { - @include media-breakpoint-down(md) { - padding-bottom: 5em; - } -} - -.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents { - padding-top: 0px !important; - padding-bottom: 0px; -} - -nav[role="doc-toc"] { - z-index: $zindex-sticky; -} - -#quarto-sidebar > *, -nav[role="doc-toc"] > * { - transition: opacity 0.1s ease, border 0.1s ease; -} - -#quarto-sidebar.slow > *, -nav[role="doc-toc"].slow > * { - transition: opacity 0.4s ease, border 0.4s ease; -} - -.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before { - background-image: url('data:image/svg+xml,'); -} - -.quarto-color-scheme-toggle.alternate.top-right .bi::before { - background-image: url('data:image/svg+xml,'); -} - -// Quarto Appendix Treatment -#quarto-appendix.default { - border-top: 1px solid $border-color; -} - -#quarto-appendix.default { - background-color: $body-bg; - padding-top: 1.5em; - margin-top: 2em; - z-index: $zindex-pagelayout; - - .quarto-appendix-heading { - margin-top: 0; - line-height: 1.4em; - font-weight: 600; - opacity: 0.9; - border-bottom: none; - margin-bottom: 0; - } - - // Remove botoom margin from specific elements - .footnotes ol, - .footnotes ol li > p:last-of-type, - .quarto-appendix-contents > p:last-of-type { - margin-bottom: 0; - } - - .footnotes ol { - margin-left: 0.5em; - } - - .quarto-appendix-secondary-label { - margin-bottom: 0.4em; - } - - .quarto-appendix-bibtex { - font-size: 0.7em; - padding: 1em; - border: solid 1px $border-color; - margin-bottom: 1em; - code.sourceCode { - white-space: pre-wrap; - } - } - - .quarto-appendix-citeas { - font-size: 0.9em; - padding: 1em; - border: solid 1px $border-color; - margin-bottom: 1em; - } - - .quarto-appendix-heading { - font-size: 1em !important; - } - - *[role="doc-endnotes"] > ol, - .quarto-appendix-contents > *:not(h2) { - font-size: 0.9em; - } - - section { - padding-bottom: 1.5em; - *[role="doc-endnotes"], - > *:not(a) { - opacity: 0.9; - word-wrap: break-word; - } - } -} - -.btn.btn-quarto, -div.cell-output-display .btn-quarto { - @include button-variant( - $btn-bg, - $btn-bg, - $btn-fg, - //if($btn-bg == $color-contrast-light, shade-color($btn-bg, $btn-hover-bg-shade-amount), tint-color($btn-bg, $btn-hover-bg-tint-amount)), - //if($btn-bg == $color-contrast-light, shade-color($btn-bg, $btn-hover-border-shade-amount), tint-color($btn-bg, $btn-hover-border-tint-amount)), - $hover-color: $btn-fg - ); -} - -// Quarto title block treatment -nav.quarto-secondary-nav.color-navbar { - @if variable-exists(navbar-bg) { - background-color: $navbar-bg; - } - - @if (variable-exists(navbar-fg)) { - color: $navbar-fg; - } -} -nav.quarto-secondary-nav.color-navbar h1, -nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle { - @if (variable-exists(navbar-fg)) { - color: $navbar-fg; - } -} - -body.nav-sidebar { - @include media-breakpoint-down(lg) { - .quarto-title-banner { - margin-bottom: 0; - padding-bottom: 1em; - } - #title-block-header { - margin-block-end: 0; - } - } -} - -p.subtitle { - margin-top: 0.25em; - margin-bottom: 0.5em; -} - -// downlit links -code a:any-link { - color: inherit; - text-decoration-color: $gray-600; -} - -// This is a sentinel value that renderers can use to determine -// whether the theme is dark or light -@if (quarto-color.blackness($body-bg) > $code-block-theme-dark-threshhold) { - /*! dark */ -} @else { - /*! light */ -} - -// observable UI element tweaks to support light-mode vs dark-mode -div.observablehq table thead tr th { - background-color: var(--bs-body-bg); -} - -input, -button, -select, -optgroup, -textarea { - background-color: var(--bs-body-bg); -} - -// Code Annotation - -.code-annotated .code-copy-button { - margin-right: 1.25em; - margin-top: 0; - padding-bottom: 0; - padding-top: 3px; -} - -.code-annotation-gutter-bg { - background-color: $body-bg; -} - -.code-annotation-gutter { - background-color: $code-block-bg-color; -} - -.code-annotation-gutter, -.code-annotation-gutter-bg { - height: 100%; - width: calc(20px + 0.5em); - position: absolute; - top: 0; - right: 0; -} - -dl.code-annotation-container-grid { - dt { - margin-right: 1em; - margin-top: 0.25rem; - } -} - -dl.code-annotation-container-grid { - dt { - font-family: $font-family-code; - color: theme-dim($body-color, 10%); - border: solid theme-dim($body-color, 10%) 1px; - border-radius: 50%; - height: 22px; - width: 22px; - line-height: 22px; - font-size: 11px; - - text-align: center; - vertical-align: middle; - - text-decoration: none; - } - - dt[data-target-cell] { - cursor: pointer; - } - - dt[data-target-cell].code-annotation-active { - color: $body-bg; - border: solid #aaaaaa 1px; - background-color: #aaaaaa; - } -} - -pre.code-annotation-code { - padding-top: 0; - padding-bottom: 0; - code { - z-index: 3; - } -} - -#code-annotation-line-highlight-gutter { - width: 100%; - border-top: solid $code-annotation-higlight-color 1px; - border-bottom: solid $code-annotation-higlight-color 1px; - z-index: 2; - background-color: $code-annotation-higlight-bg; -} - -#code-annotation-line-highlight { - margin-left: -4em; - width: calc(100% + 4em); - border-top: solid $code-annotation-higlight-color 1px; - border-bottom: solid $code-annotation-higlight-color 1px; - z-index: 2; - background-color: $code-annotation-higlight-bg; -} - -code.sourceCode .code-annotation-anchor.code-annotation-active { - background-color: var(--quarto-hl-normal-color, #aaaaaa); - border: solid var(--quarto-hl-normal-color, #aaaaaa) 1px; - color: rgb( - red($code-block-bg-color), - green($code-block-bg-color), - blue($code-block-bg-color) - ); - font-weight: bolder; -} - -code.sourceCode .code-annotation-anchor { - font-family: $font-family-code; - color: var(--quarto-hl-co-color); - border: solid var(--quarto-hl-co-color) 1px; - border-radius: 50%; - height: 18px; - width: 18px; - font-size: 9px; - margin-top: 2px; -} - -code.sourceCode button.code-annotation-anchor { - padding: 2px; - user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; -} - -code.sourceCode a.code-annotation-anchor { - line-height: 18px; - text-align: center; - vertical-align: middle; - cursor: default; - text-decoration: none; -} - -// change .column-screen-* to behave like .column-page (which hugs the body margins) -// cf https://github.com/quarto-dev/quarto-cli/issues/1824#issuecomment-1216018434 -@media print { - .page-columns .column-screen-inset { - grid-column: page-start-inset / page-end-inset; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); - } - - .page-columns .column-screen-inset-left { - grid-column: page-start-inset / body-content-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); - } - - .page-columns .column-screen-inset-right { - grid-column: body-content-start / page-end-inset; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); - } - - .page-columns .column-screen { - grid-column: page-start / page-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); - } - - .page-columns .column-screen-left { - grid-column: page-start / body-content-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); - } - - .page-columns .column-screen-right { - grid-column: body-content-start / page-end; - z-index: $zindex-pagelayout; - opacity: 0.999; - @include column-spanning-element(); - } - - .page-columns .column-screen-inset-shaded { - grid-column: page-start-inset / page-end-inset; - padding: 1em; - background: $light; - z-index: $zindex-pagelayout; - opacity: 0.999; - margin-bottom: 1em; - } -} - -.quarto-video { - margin-bottom: 1em; -} - -.table { - // Tables get a light top and bottom border (whether or not they have a head - // and independent of caption position) - border-top: $table-border-width solid $table-group-separator-color-lighter; - border-bottom: $table-border-width solid $table-group-separator-color-lighter; - - // The heading gets a heavier line to differentiate it - > thead { - border-top-width: 0; - border-bottom: 1px solid $table-group-separator-color; - } - - // Allow breaking inside tables - a { - word-break: break-word; - } - - // This disables new styling taken from boostrap that overrides - // table level styling - // See https://github.com/quarto-dev/quarto-cli/issues/7566 - > :not(caption) > * > * { - background-color: unset; - color: unset; - } -} - -// Special Cross Talk Handling -#quarto-document-content { - .crosstalk-input .checkbox input[type="checkbox"], - .crosstalk-input .checkbox-inline input[type="checkbox"] { - position: unset; - margin-top: unset; - margin-left: unset; - } - - .row { - margin-left: unset; - margin-right: unset; - } -} - -.quarto-xref { - white-space: nowrap; -} - -#quarto-draft-alert { - margin-top: 0px; - margin-bottom: 0px; - padding: 0.3em; - text-align: center; - font-size: 0.9em; - - i { - margin-right: 0.3em; - } -} - -#quarto-back-to-top { - z-index: 1000; -} - -// override _reboot.scss - -// code blocks -pre { - font-family: $font-family-monospace-block; - // I'm really not confident that this is correct - @include font-size($code-block-font-size); - font-weight: $font-weight-monospace-block; - - // adding these inherit overrides here - // is what `_reboot.scss` does. - // we mirror it here for consistency - // - // Account for some code outputs that place code tags in pre tags - code { - font-family: inherit; - @include font-size(inherit); - font-weight: inherit; - } -} - -// code inlines -code { - font-family: $font-family-monospace-inline; - @include font-size($code-inline-font-size); - font-weight: $font-weight-monospace-inline; -} - -// link styling -a { - background-color: $link-color-bg; - font-weight: $link-weight; - text-decoration: $link-decoration; -} - - - $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; - /*! quarto-variables-start */ - :root { - --quarto-font-monospace: #{inspect($font-family-monospace)}; - } - /*! quarto-variables-end */ - -a.external:after { - content: ""; - @if variable-exists(link-color) { - background-image: url('data:image/svg+xml,'); - } @else { - background-image: url('data:image/svg+xml,'); - } - background-size: contain; - background-repeat: no-repeat; - background-position: center center; - margin-left: 0.2em; - padding-right: 0.75em; -} - -div.sourceCode code a.external:after { - content: none; -} - -a.external:after:hover { - cursor: pointer; -} - -.quarto-ext-icon { - display: inline-block; - font-size: 0.75em; - padding-left: 0.3em; -} - -.code-with-filename .code-with-filename-file { - margin-bottom: 0; - padding-bottom: 2px; - padding-top: 2px; - padding-left: 0.7em; - border: var(--quarto-border-width) solid var(--quarto-border-color); - border-radius: var(--quarto-border-radius); - border-bottom: 0; - border-bottom-left-radius: 0%; - border-bottom-right-radius: 0%; -} - -.code-with-filename div.sourceCode, -.reveal .code-with-filename div.sourceCode { - margin-top: 0; - border-top-left-radius: 0%; - border-top-right-radius: 0%; -} - -.code-with-filename .code-with-filename-file pre { - margin-bottom: 0; -} - -.code-with-filename .code-with-filename-file { - background-color: rgba(219, 219, 219, 0.8); -} - -.quarto-dark .code-with-filename .code-with-filename-file { - background-color: #555; -} - -.code-with-filename .code-with-filename-file strong { - font-weight: 400; -} - - -// quarto-scss-analysis-annotation { "origin": "'rules' section from user-defined SCSS" } - - - - - - - - - - - - - - -/* Title Banner */ -.quarto-title-banner { - margin-bottom: 1em; - - color: bannerColor(); - background: bannerBg(); - @if $title-banner-image { - background-image: $title-banner-image; - background-size: cover; - } - a { - color: bannerColor(); - } - - h1, - h2 { - color: bannerColor(); - } - - .code-tools-button { - color: bannerDim(); - } - .code-tools-button:hover { - color: bannerColor(); - } - - .code-tools-button > .bi::before { - background-image: url('data:image/svg+xml,'); - } - - .code-tools-button:hover > .bi::before { - background-image: url('data:image/svg+xml,'); - } - - .quarto-title .title { - font-weight: 600; - } - - .quarto-categories { - margin-top: 0.75em; - } - - @include media-breakpoint-up(lg) { - padding-top: 2.5em; - padding-bottom: 2.5em; - } - - @include media-breakpoint-down(lg) { - padding-top: 1em; - padding-bottom: 1em; - } -} -@include media-breakpoint-down(md) { - body.hypothesis-enabled { - #title-block-header > * { - padding-right: 20px; - } - } -} - -main.quarto-banner-title-block > section:first-child > h2, -main.quarto-banner-title-block > section:first-child > h3, -main.quarto-banner-title-block > section:first-child > h4 { - margin-top: 0; -} - -.quarto-title { - .quarto-categories { - display: flex; - flex-wrap: wrap; - row-gap: 0.5em; - column-gap: 0.4em; - padding-bottom: 0.5em; - margin-top: 0.75em; - - .quarto-category { - padding: 0.25em 0.75em; - font-size: 0.65em; - text-transform: uppercase; - border: solid 1px; - border-radius: $border-radius; - opacity: 0.6; - - a { - color: inherit; - } - } - } -} - -/* Manuscript customization */ -.quarto-title-meta-container { - display: grid; - grid-template-columns: 1fr auto; -} - -.quarto-title-meta-column-end { - display: flex; - flex-direction: column; - padding-left: 1em; -} - -.quarto-title-meta-column-end a .bi { - margin-right: 0.3em; -} - -/* Title Default */ -#title-block-header.quarto-title-block.default { - .quarto-title-meta { - display: grid; - // See https://github.com/quarto-dev/quarto-cli/issues/9539 - grid-template-columns: repeat(2, 1fr); - grid-column-gap: 1em; - } - - .quarto-title { - .title { - margin-bottom: 0; - } - } - - .quarto-title-author-orcid { - img { - margin-top: -0.2em; - height: 0.8em; - width: 0.8em; - } - } - - .quarto-title-author-email { - opacity: 0.7; - } - - .quarto-description { - p:last-of-type { - margin-bottom: 0; - } - } - - .quarto-title-meta-contents p, - .quarto-title-authors p, - .quarto-title-affiliations p { - margin-bottom: 0.1em; - } - - .quarto-title-meta-heading { - text-transform: uppercase; - margin-top: 1em; - font-size: 0.8em; - opacity: 0.8; - font-weight: 400; - } - - .quarto-title-meta-contents { - font-size: 0.9em; - p.affiliation:last-of-type { - margin-bottom: 0.1em; - } - } - - p.affiliation { - margin-bottom: 0.1em; - } - - .keywords, - .description, - .abstract { - margin-top: 0; - - & > p { - font-size: 0.9em; - } - & > p:last-of-type { - margin-bottom: 0; - } - - .block-title { - margin-top: 1em; - text-transform: uppercase; - font-size: 0.8em; - opacity: 0.8; - font-weight: 400; - } - } - - .quarto-title-meta-author { - display: grid; - grid-template-columns: minmax(max-content, 1fr) 1fr; - grid-column-gap: 1em; - } -} - -.quarto-title-tools-only { - display: flex; - justify-content: right; -} - - - -// Variables - -$web-font-path: "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;700&display=swap" !default; -@if $web-font-path { - @import url($web-font-path); -} - -// Typography - -body { - -webkit-font-smoothing: antialiased; -} - -// Indicators - -.badge { - &.bg-light { - color: $dark; - } -} - -// Progress bars - -.progress { - @include box-shadow(none); - - .progress-bar { - font-size: 8px; - line-height: 8px; - } -} - - -// quarto-scss-analysis-annotation { "origin": null } - - -h1, h2, h3, h4, h5, h6 { - color: $theme-blue; -} - -.navbar { - red; -} - -// quarto-scss-analysis-annotation { "origin": null } \ No newline at end of file diff --git a/a-lambda.github.io.Rproj b/a-lambda.github.io.Rproj deleted file mode 100644 index bc734ab..0000000 --- a/a-lambda.github.io.Rproj +++ /dev/null @@ -1,14 +0,0 @@ -Version: 1.0 -ProjectId: 9926c2cf-7c6e-4153-807a-b1ab60b39ce7 - -RestoreWorkspace: Default -SaveWorkspace: Default -AlwaysSaveHistory: Default - -EnableCodeIndexing: Yes -UseSpacesForTab: Yes -NumSpacesForTab: 2 -Encoding: UTF-8 - -RnwWeave: Sweave -LaTeX: pdfLaTeX diff --git a/animate_plot.html b/animate_plot.html new file mode 100644 index 0000000..4670e7a --- /dev/null +++ b/animate_plot.html @@ -0,0 +1,648 @@ + + + + + + + + + +Animate plots – A lambda story + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ +
+ + + + + \ No newline at end of file diff --git a/animate_plot.qmd b/animate_plot.qmd deleted file mode 100644 index b323332..0000000 --- a/animate_plot.qmd +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Animate plots" ---- - -```{r} -#| label: load-ggplot -#| echo: false -library(ggplot2) -library(gganimate) -library(gifski) -# faire une animation avec les données gapminder puis autre chose -``` - -### 1. Exemple d'animation - -```{r} -#| label: geombar-animate -ggplot(mpg) + - geom_bar(aes(x = factor(cyl))) + - labs(title = 'Number of cars in {closest_state} by number of cylinders') + - transition_states(states = year) + - enter_grow() + - exit_fade() -``` - diff --git a/animate_plot_files/figure-html/geombar-animate-1.gif b/animate_plot_files/figure-html/geombar-animate-1.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bbea472981a54dc66561a1f724e581a88ca25ae GIT binary patch literal 122858 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 diff --git a/fonts/fira-code-v22-latin-300.eot b/fonts/fira-code-v22-latin-300.eot deleted file mode 100644 index 9e7499106973a0057118666cd4f8512c9603759a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26716 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 G00012H6~vG diff --git a/fonts/fira-code-v22-latin-300.svg b/fonts/fira-code-v22-latin-300.svg deleted file mode 100644 index 89bdf02..0000000 --- a/fonts/fira-code-v22-latin-300.svg +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/fonts/fira-code-v22-latin-300.ttf b/fonts/fira-code-v22-latin-300.ttf deleted file mode 100644 index f5be0bcd8e3a7b39ff554fb9c5d9979b037dbdfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56800 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 u34 diff --git a/fonts/fira-code-v22-latin-300.woff2 b/fonts/fira-code-v22-latin-300.woff2 deleted file mode 100644 index ab6a0e59f5fd6e7f7cc595aaac2b62eb66fdf5b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23200 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͡ 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 diff --git a/fonts/fira-code-v22-latin-500.eot b/fonts/fira-code-v22-latin-500.eot deleted file mode 100644 index 6e4e34c6324421e2350af99870a8ef77ce161375..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26907 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 + + +