// quarto-scss-analysis-annotation { "quarto-version": "1.7.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" } // 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; /*-- 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-border: true !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, 20% ) !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: null !default; // border colors /// if a theme does not provide body-color or body-bg /// defaults to boostrap own default value for theses variables (in _variables.scss) $border-color: mix( if(variable-exists(body-color), $body-color, $gray-900), if(variable-exists(body-bg), $body-bg, $white), 15% ) !default; /// Make sure table border are the same as the border color (in case change in bootstrap 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; // 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 "light-dark"; @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 // 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(--'; } } @import "spacer"; @import "tab-fill"; @import "color-utilities"; .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; } } $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; } $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; } } } } } $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%); } } /* 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(); } } .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); } } } .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); } } } .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); } 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); } } $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; } } } } .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-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; } // quarto-scss-analysis-annotation { "origin": null } :root { --quarto-scss-export-gray-300: #{$gray-300}; --quarto-scss-export-gray-500: #{$gray-500}; --quarto-scss-export-gray-600: #{$gray-600}; --quarto-scss-export-gray-800: #{$gray-800}; --quarto-scss-export-card-cap-bg: #{$card-cap-bg}; --quarto-scss-export-border-color: #{$border-color}; --quarto-scss-export-text-muted: #{$text-muted}; --quarto-scss-export-title-banner-color: #{$title-banner-color}; --quarto-scss-export-title-banner-bg: #{$title-banner-bg}; --quarto-scss-export-btn-code-copy-color: #{$btn-code-copy-color}; --quarto-scss-export-btn-code-copy-color-active: #{$btn-code-copy-color-active}; --quarto-scss-export-blue: #{$blue}; --quarto-scss-export-primary: #{$primary}; --quarto-scss-export-white: #{$white}; --quarto-scss-export-gray-200: #{$gray-200}; --quarto-scss-export-gray-100: #{$gray-100}; --quarto-scss-export-gray-900: #{$gray-900}; --quarto-scss-export-link-color: #{$link-color}; --quarto-scss-export-link-color-bg: #{$link-color-bg}; --quarto-scss-export-code-color: #{$code-color}; --quarto-scss-export-code-bg: #{$code-bg}; --quarto-scss-export-toc-color: #{$toc-color}; --quarto-scss-export-toc-active-border: #{$toc-active-border}; --quarto-scss-export-toc-inactive-border: #{$toc-inactive-border}; --quarto-scss-export-navbar-default: #{$navbar-default}; --quarto-scss-export-navbar-hl-override: #{$navbar-hl-override}; --quarto-scss-export-navbar-bg: #{$navbar-bg}; --quarto-scss-export-btn-bg: #{$btn-bg}; --quarto-scss-export-btn-fg: #{$btn-fg}; --quarto-scss-export-body-contrast-bg: #{$body-contrast-bg}; --quarto-scss-export-body-contrast-color: #{$body-contrast-color}; --quarto-scss-export-navbar-fg: #{$navbar-fg}; --quarto-scss-export-navbar-hl: #{$navbar-hl}; --quarto-scss-export-navbar-brand: #{$navbar-brand}; --quarto-scss-export-navbar-brand-hl: #{$navbar-brand-hl}; --quarto-scss-export-navbar-toggler-border-color: #{$navbar-toggler-border-color}; --quarto-scss-export-navbar-hover-color: #{$navbar-hover-color}; --quarto-scss-export-navbar-disabled-color: #{$navbar-disabled-color}; --quarto-scss-export-sidebar-bg: #{$sidebar-bg}; --quarto-scss-export-sidebar-fg: #{$sidebar-fg}; --quarto-scss-export-title-block-color: #{$title-block-color}; --quarto-scss-export-title-block-contast-color: #{$title-block-contast-color}; --quarto-scss-export-footer-bg: #{$footer-bg}; --quarto-scss-export-footer-fg: #{$footer-fg}; --quarto-scss-export-popover-bg: #{$popover-bg}; --quarto-scss-export-input-bg: #{$input-bg}; --quarto-scss-export-input-border-color: #{$input-border-color}; --quarto-scss-export-code-annotation-higlight-color: #{$code-annotation-higlight-color}; --quarto-scss-export-code-annotation-higlight-bg: #{$code-annotation-higlight-bg}; --quarto-scss-export-table-group-separator-color: #{$table-group-separator-color}; --quarto-scss-export-table-group-separator-color-lighter: #{$table-group-separator-color-lighter}; --quarto-scss-export-link-decoration: #{$link-decoration}; --quarto-scss-export-table-border-color: #{$table-border-color}; --quarto-scss-export-sidebar-glass-bg: #{$sidebar-glass-bg}; --quarto-scss-export-gray-400: #{$gray-400}; --quarto-scss-export-gray-700: #{$gray-700}; --quarto-scss-export-black: #{$black}; --quarto-scss-export-indigo: #{$indigo}; --quarto-scss-export-purple: #{$purple}; --quarto-scss-export-pink: #{$pink}; --quarto-scss-export-red: #{$red}; --quarto-scss-export-orange: #{$orange}; --quarto-scss-export-yellow: #{$yellow}; --quarto-scss-export-green: #{$green}; --quarto-scss-export-teal: #{$teal}; --quarto-scss-export-cyan: #{$cyan}; --quarto-scss-export-color-contrast-dark: #{$color-contrast-dark}; --quarto-scss-export-color-contrast-light: #{$color-contrast-light}; --quarto-scss-export-blue-100: #{$blue-100}; --quarto-scss-export-blue-200: #{$blue-200}; --quarto-scss-export-blue-300: #{$blue-300}; --quarto-scss-export-blue-400: #{$blue-400}; --quarto-scss-export-blue-500: #{$blue-500}; --quarto-scss-export-blue-600: #{$blue-600}; --quarto-scss-export-blue-700: #{$blue-700}; --quarto-scss-export-blue-800: #{$blue-800}; --quarto-scss-export-blue-900: #{$blue-900}; --quarto-scss-export-indigo-100: #{$indigo-100}; --quarto-scss-export-indigo-200: #{$indigo-200}; --quarto-scss-export-indigo-300: #{$indigo-300}; --quarto-scss-export-indigo-400: #{$indigo-400}; --quarto-scss-export-indigo-500: #{$indigo-500}; --quarto-scss-export-indigo-600: #{$indigo-600}; --quarto-scss-export-indigo-700: #{$indigo-700}; --quarto-scss-export-indigo-800: #{$indigo-800}; --quarto-scss-export-indigo-900: #{$indigo-900}; --quarto-scss-export-purple-100: #{$purple-100}; --quarto-scss-export-purple-200: #{$purple-200}; --quarto-scss-export-purple-300: #{$purple-300}; --quarto-scss-export-purple-400: #{$purple-400}; --quarto-scss-export-purple-500: #{$purple-500}; --quarto-scss-export-purple-600: #{$purple-600}; --quarto-scss-export-purple-700: #{$purple-700}; --quarto-scss-export-purple-800: #{$purple-800}; --quarto-scss-export-purple-900: #{$purple-900}; --quarto-scss-export-pink-100: #{$pink-100}; --quarto-scss-export-pink-200: #{$pink-200}; --quarto-scss-export-pink-300: #{$pink-300}; --quarto-scss-export-pink-400: #{$pink-400}; --quarto-scss-export-pink-500: #{$pink-500}; --quarto-scss-export-pink-600: #{$pink-600}; --quarto-scss-export-pink-700: #{$pink-700}; --quarto-scss-export-pink-800: #{$pink-800}; --quarto-scss-export-pink-900: #{$pink-900}; --quarto-scss-export-red-100: #{$red-100}; --quarto-scss-export-red-200: #{$red-200}; --quarto-scss-export-red-300: #{$red-300}; --quarto-scss-export-red-400: #{$red-400}; --quarto-scss-export-red-500: #{$red-500}; --quarto-scss-export-red-600: #{$red-600}; --quarto-scss-export-red-700: #{$red-700}; --quarto-scss-export-red-800: #{$red-800}; --quarto-scss-export-red-900: #{$red-900}; --quarto-scss-export-orange-100: #{$orange-100}; --quarto-scss-export-orange-200: #{$orange-200}; --quarto-scss-export-orange-300: #{$orange-300}; --quarto-scss-export-orange-400: #{$orange-400}; --quarto-scss-export-orange-500: #{$orange-500}; --quarto-scss-export-orange-600: #{$orange-600}; --quarto-scss-export-orange-700: #{$orange-700}; --quarto-scss-export-orange-800: #{$orange-800}; --quarto-scss-export-orange-900: #{$orange-900}; --quarto-scss-export-yellow-100: #{$yellow-100}; --quarto-scss-export-yellow-200: #{$yellow-200}; --quarto-scss-export-yellow-300: #{$yellow-300}; --quarto-scss-export-yellow-400: #{$yellow-400}; --quarto-scss-export-yellow-500: #{$yellow-500}; --quarto-scss-export-yellow-600: #{$yellow-600}; --quarto-scss-export-yellow-700: #{$yellow-700}; --quarto-scss-export-yellow-800: #{$yellow-800}; --quarto-scss-export-yellow-900: #{$yellow-900}; --quarto-scss-export-green-100: #{$green-100}; --quarto-scss-export-green-200: #{$green-200}; --quarto-scss-export-green-300: #{$green-300}; --quarto-scss-export-green-400: #{$green-400}; --quarto-scss-export-green-500: #{$green-500}; --quarto-scss-export-green-600: #{$green-600}; --quarto-scss-export-green-700: #{$green-700}; --quarto-scss-export-green-800: #{$green-800}; --quarto-scss-export-green-900: #{$green-900}; --quarto-scss-export-teal-100: #{$teal-100}; --quarto-scss-export-teal-200: #{$teal-200}; --quarto-scss-export-teal-300: #{$teal-300}; --quarto-scss-export-teal-400: #{$teal-400}; --quarto-scss-export-teal-500: #{$teal-500}; --quarto-scss-export-teal-600: #{$teal-600}; --quarto-scss-export-teal-700: #{$teal-700}; --quarto-scss-export-teal-800: #{$teal-800}; --quarto-scss-export-teal-900: #{$teal-900}; --quarto-scss-export-cyan-100: #{$cyan-100}; --quarto-scss-export-cyan-200: #{$cyan-200}; --quarto-scss-export-cyan-300: #{$cyan-300}; --quarto-scss-export-cyan-400: #{$cyan-400}; --quarto-scss-export-cyan-500: #{$cyan-500}; --quarto-scss-export-cyan-600: #{$cyan-600}; --quarto-scss-export-cyan-700: #{$cyan-700}; --quarto-scss-export-cyan-800: #{$cyan-800}; --quarto-scss-export-cyan-900: #{$cyan-900}; --quarto-scss-export-default: #{$default}; --quarto-scss-export-secondary: #{$secondary}; --quarto-scss-export-success: #{$success}; --quarto-scss-export-info: #{$info}; --quarto-scss-export-warning: #{$warning}; --quarto-scss-export-danger: #{$danger}; --quarto-scss-export-light: #{$light}; --quarto-scss-export-dark: #{$dark}; --quarto-scss-export-primary-text-emphasis: #{$primary-text-emphasis}; --quarto-scss-export-secondary-text-emphasis: #{$secondary-text-emphasis}; --quarto-scss-export-success-text-emphasis: #{$success-text-emphasis}; --quarto-scss-export-info-text-emphasis: #{$info-text-emphasis}; --quarto-scss-export-warning-text-emphasis: #{$warning-text-emphasis}; --quarto-scss-export-danger-text-emphasis: #{$danger-text-emphasis}; --quarto-scss-export-light-text-emphasis: #{$light-text-emphasis}; --quarto-scss-export-dark-text-emphasis: #{$dark-text-emphasis}; --quarto-scss-export-primary-bg-subtle: #{$primary-bg-subtle}; --quarto-scss-export-secondary-bg-subtle: #{$secondary-bg-subtle}; --quarto-scss-export-success-bg-subtle: #{$success-bg-subtle}; --quarto-scss-export-info-bg-subtle: #{$info-bg-subtle}; --quarto-scss-export-warning-bg-subtle: #{$warning-bg-subtle}; --quarto-scss-export-danger-bg-subtle: #{$danger-bg-subtle}; --quarto-scss-export-light-bg-subtle: #{$light-bg-subtle}; --quarto-scss-export-dark-bg-subtle: #{$dark-bg-subtle}; --quarto-scss-export-primary-border-subtle: #{$primary-border-subtle}; --quarto-scss-export-secondary-border-subtle: #{$secondary-border-subtle}; --quarto-scss-export-success-border-subtle: #{$success-border-subtle}; --quarto-scss-export-info-border-subtle: #{$info-border-subtle}; --quarto-scss-export-warning-border-subtle: #{$warning-border-subtle}; --quarto-scss-export-danger-border-subtle: #{$danger-border-subtle}; --quarto-scss-export-light-border-subtle: #{$light-border-subtle}; --quarto-scss-export-dark-border-subtle: #{$dark-border-subtle}; --quarto-scss-export-body-text-align: #{$body-text-align}; --quarto-scss-export-body-color: #{$body-color}; --quarto-scss-export-body-bg: #{$body-bg}; --quarto-scss-export-body-secondary-color: #{$body-secondary-color}; --quarto-scss-export-body-secondary-bg: #{$body-secondary-bg}; --quarto-scss-export-body-tertiary-color: #{$body-tertiary-color}; --quarto-scss-export-body-tertiary-bg: #{$body-tertiary-bg}; --quarto-scss-export-body-emphasis-color: #{$body-emphasis-color}; --quarto-scss-export-link-hover-color: #{$link-hover-color}; --quarto-scss-export-link-hover-decoration: #{$link-hover-decoration}; --quarto-scss-export-border-color-translucent: #{$border-color-translucent}; --quarto-scss-export-component-active-bg: #{$component-active-bg}; --quarto-scss-export-component-active-color: #{$component-active-color}; --quarto-scss-export-focus-ring-color: #{$focus-ring-color}; --quarto-scss-export-headings-font-family: #{$headings-font-family}; --quarto-scss-export-headings-font-style: #{$headings-font-style}; --quarto-scss-export-display-font-family: #{$display-font-family}; --quarto-scss-export-display-font-style: #{$display-font-style}; --quarto-scss-export-blockquote-footer-color: #{$blockquote-footer-color}; --quarto-scss-export-blockquote-border-color: #{$blockquote-border-color}; --quarto-scss-export-hr-bg-color: #{$hr-bg-color}; --quarto-scss-export-hr-height: #{$hr-height}; --quarto-scss-export-hr-border-color: #{$hr-border-color}; --quarto-scss-export-legend-font-weight: #{$legend-font-weight}; --quarto-scss-export-mark-bg: #{$mark-bg}; --quarto-scss-export-table-color: #{$table-color}; --quarto-scss-export-table-bg: #{$table-bg}; --quarto-scss-export-table-accent-bg: #{$table-accent-bg}; --quarto-scss-export-table-th-font-weight: #{$table-th-font-weight}; --quarto-scss-export-table-striped-color: #{$table-striped-color}; --quarto-scss-export-table-striped-bg: #{$table-striped-bg}; --quarto-scss-export-table-active-color: #{$table-active-color}; --quarto-scss-export-table-active-bg: #{$table-active-bg}; --quarto-scss-export-table-hover-color: #{$table-hover-color}; --quarto-scss-export-table-hover-bg: #{$table-hover-bg}; --quarto-scss-export-table-caption-color: #{$table-caption-color}; --quarto-scss-export-input-btn-font-family: #{$input-btn-font-family}; --quarto-scss-export-input-btn-focus-color: #{$input-btn-focus-color}; --quarto-scss-export-btn-color: #{$btn-color}; --quarto-scss-export-btn-font-family: #{$btn-font-family}; --quarto-scss-export-btn-white-space: #{$btn-white-space}; --quarto-scss-export-btn-link-color: #{$btn-link-color}; --quarto-scss-export-btn-link-hover-color: #{$btn-link-hover-color}; --quarto-scss-export-btn-link-disabled-color: #{$btn-link-disabled-color}; --quarto-scss-export-form-text-font-style: #{$form-text-font-style}; --quarto-scss-export-form-text-font-weight: #{$form-text-font-weight}; --quarto-scss-export-form-text-color: #{$form-text-color}; --quarto-scss-export-form-label-font-size: #{$form-label-font-size}; --quarto-scss-export-form-label-font-style: #{$form-label-font-style}; --quarto-scss-export-form-label-font-weight: #{$form-label-font-weight}; --quarto-scss-export-form-label-color: #{$form-label-color}; --quarto-scss-export-input-font-family: #{$input-font-family}; --quarto-scss-export-input-disabled-color: #{$input-disabled-color}; --quarto-scss-export-input-disabled-bg: #{$input-disabled-bg}; --quarto-scss-export-input-disabled-border-color: #{$input-disabled-border-color}; --quarto-scss-export-input-color: #{$input-color}; --quarto-scss-export-input-focus-bg: #{$input-focus-bg}; --quarto-scss-export-input-focus-border-color: #{$input-focus-border-color}; --quarto-scss-export-input-focus-color: #{$input-focus-color}; --quarto-scss-export-input-placeholder-color: #{$input-placeholder-color}; --quarto-scss-export-input-plaintext-color: #{$input-plaintext-color}; --quarto-scss-export-form-check-label-color: #{$form-check-label-color}; --quarto-scss-export-form-check-transition: #{$form-check-transition}; --quarto-scss-export-form-check-input-bg: #{$form-check-input-bg}; --quarto-scss-export-form-check-input-focus-border: #{$form-check-input-focus-border}; --quarto-scss-export-form-check-input-checked-color: #{$form-check-input-checked-color}; --quarto-scss-export-form-check-input-checked-bg-color: #{$form-check-input-checked-bg-color}; --quarto-scss-export-form-check-input-checked-border-color: #{$form-check-input-checked-border-color}; --quarto-scss-export-form-check-input-indeterminate-color: #{$form-check-input-indeterminate-color}; --quarto-scss-export-form-check-input-indeterminate-bg-color: #{$form-check-input-indeterminate-bg-color}; --quarto-scss-export-form-check-input-indeterminate-border-color: #{$form-check-input-indeterminate-border-color}; --quarto-scss-export-form-switch-color: #{$form-switch-color}; --quarto-scss-export-form-switch-focus-color: #{$form-switch-focus-color}; --quarto-scss-export-form-switch-checked-color: #{$form-switch-checked-color}; --quarto-scss-export-input-group-addon-color: #{$input-group-addon-color}; --quarto-scss-export-input-group-addon-bg: #{$input-group-addon-bg}; --quarto-scss-export-input-group-addon-border-color: #{$input-group-addon-border-color}; --quarto-scss-export-form-select-font-family: #{$form-select-font-family}; --quarto-scss-export-form-select-color: #{$form-select-color}; --quarto-scss-export-form-select-bg: #{$form-select-bg}; --quarto-scss-export-form-select-disabled-color: #{$form-select-disabled-color}; --quarto-scss-export-form-select-disabled-bg: #{$form-select-disabled-bg}; --quarto-scss-export-form-select-disabled-border-color: #{$form-select-disabled-border-color}; --quarto-scss-export-form-select-indicator-color: #{$form-select-indicator-color}; --quarto-scss-export-form-select-border-color: #{$form-select-border-color}; --quarto-scss-export-form-select-focus-border-color: #{$form-select-focus-border-color}; --quarto-scss-export-form-range-track-bg: #{$form-range-track-bg}; --quarto-scss-export-form-range-thumb-bg: #{$form-range-thumb-bg}; --quarto-scss-export-form-range-thumb-active-bg: #{$form-range-thumb-active-bg}; --quarto-scss-export-form-range-thumb-disabled-bg: #{$form-range-thumb-disabled-bg}; --quarto-scss-export-form-file-button-color: #{$form-file-button-color}; --quarto-scss-export-form-file-button-bg: #{$form-file-button-bg}; --quarto-scss-export-form-file-button-hover-bg: #{$form-file-button-hover-bg}; --quarto-scss-export-form-floating-label-disabled-color: #{$form-floating-label-disabled-color}; --quarto-scss-export-form-feedback-font-style: #{$form-feedback-font-style}; --quarto-scss-export-form-feedback-valid-color: #{$form-feedback-valid-color}; --quarto-scss-export-form-feedback-invalid-color: #{$form-feedback-invalid-color}; --quarto-scss-export-form-feedback-icon-valid-color: #{$form-feedback-icon-valid-color}; --quarto-scss-export-form-feedback-icon-invalid-color: #{$form-feedback-icon-invalid-color}; --quarto-scss-export-form-valid-color: #{$form-valid-color}; --quarto-scss-export-form-valid-border-color: #{$form-valid-border-color}; --quarto-scss-export-form-invalid-color: #{$form-invalid-color}; --quarto-scss-export-form-invalid-border-color: #{$form-invalid-border-color}; --quarto-scss-export-nav-link-font-size: #{$nav-link-font-size}; --quarto-scss-export-nav-link-font-weight: #{$nav-link-font-weight}; --quarto-scss-export-nav-link-color: #{$nav-link-color}; --quarto-scss-export-nav-link-hover-color: #{$nav-link-hover-color}; --quarto-scss-export-nav-link-disabled-color: #{$nav-link-disabled-color}; --quarto-scss-export-nav-tabs-border-color: #{$nav-tabs-border-color}; --quarto-scss-export-nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color}; --quarto-scss-export-nav-tabs-link-active-color: #{$nav-tabs-link-active-color}; --quarto-scss-export-nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg}; --quarto-scss-export-nav-pills-link-active-bg: #{$nav-pills-link-active-bg}; --quarto-scss-export-nav-pills-link-active-color: #{$nav-pills-link-active-color}; --quarto-scss-export-nav-underline-link-active-color: #{$nav-underline-link-active-color}; --quarto-scss-export-navbar-padding-x: #{$navbar-padding-x}; --quarto-scss-export-navbar-light-contrast: #{$navbar-light-contrast}; --quarto-scss-export-navbar-dark-contrast: #{$navbar-dark-contrast}; --quarto-scss-export-navbar-light-icon-color: #{$navbar-light-icon-color}; --quarto-scss-export-navbar-dark-icon-color: #{$navbar-dark-icon-color}; --quarto-scss-export-dropdown-color: #{$dropdown-color}; --quarto-scss-export-dropdown-bg: #{$dropdown-bg}; --quarto-scss-export-dropdown-border-color: #{$dropdown-border-color}; --quarto-scss-export-dropdown-divider-bg: #{$dropdown-divider-bg}; --quarto-scss-export-dropdown-link-color: #{$dropdown-link-color}; --quarto-scss-export-dropdown-link-hover-color: #{$dropdown-link-hover-color}; --quarto-scss-export-dropdown-link-hover-bg: #{$dropdown-link-hover-bg}; --quarto-scss-export-dropdown-link-active-bg: #{$dropdown-link-active-bg}; --quarto-scss-export-dropdown-link-active-color: #{$dropdown-link-active-color}; --quarto-scss-export-dropdown-link-disabled-color: #{$dropdown-link-disabled-color}; --quarto-scss-export-dropdown-header-color: #{$dropdown-header-color}; --quarto-scss-export-dropdown-dark-color: #{$dropdown-dark-color}; --quarto-scss-export-dropdown-dark-bg: #{$dropdown-dark-bg}; --quarto-scss-export-dropdown-dark-border-color: #{$dropdown-dark-border-color}; --quarto-scss-export-dropdown-dark-divider-bg: #{$dropdown-dark-divider-bg}; --quarto-scss-export-dropdown-dark-box-shadow: #{$dropdown-dark-box-shadow}; --quarto-scss-export-dropdown-dark-link-color: #{$dropdown-dark-link-color}; --quarto-scss-export-dropdown-dark-link-hover-color: #{$dropdown-dark-link-hover-color}; --quarto-scss-export-dropdown-dark-link-hover-bg: #{$dropdown-dark-link-hover-bg}; --quarto-scss-export-dropdown-dark-link-active-color: #{$dropdown-dark-link-active-color}; --quarto-scss-export-dropdown-dark-link-active-bg: #{$dropdown-dark-link-active-bg}; --quarto-scss-export-dropdown-dark-link-disabled-color: #{$dropdown-dark-link-disabled-color}; --quarto-scss-export-dropdown-dark-header-color: #{$dropdown-dark-header-color}; --quarto-scss-export-pagination-color: #{$pagination-color}; --quarto-scss-export-pagination-bg: #{$pagination-bg}; --quarto-scss-export-pagination-border-color: #{$pagination-border-color}; --quarto-scss-export-pagination-focus-color: #{$pagination-focus-color}; --quarto-scss-export-pagination-focus-bg: #{$pagination-focus-bg}; --quarto-scss-export-pagination-hover-color: #{$pagination-hover-color}; --quarto-scss-export-pagination-hover-bg: #{$pagination-hover-bg}; --quarto-scss-export-pagination-hover-border-color: #{$pagination-hover-border-color}; --quarto-scss-export-pagination-active-color: #{$pagination-active-color}; --quarto-scss-export-pagination-active-bg: #{$pagination-active-bg}; --quarto-scss-export-pagination-active-border-color: #{$pagination-active-border-color}; --quarto-scss-export-pagination-disabled-color: #{$pagination-disabled-color}; --quarto-scss-export-pagination-disabled-bg: #{$pagination-disabled-bg}; --quarto-scss-export-pagination-disabled-border-color: #{$pagination-disabled-border-color}; --quarto-scss-export-card-title-color: #{$card-title-color}; --quarto-scss-export-card-subtitle-color: #{$card-subtitle-color}; --quarto-scss-export-card-border-color: #{$card-border-color}; --quarto-scss-export-card-box-shadow: #{$card-box-shadow}; --quarto-scss-export-card-cap-color: #{$card-cap-color}; --quarto-scss-export-card-height: #{$card-height}; --quarto-scss-export-card-color: #{$card-color}; --quarto-scss-export-card-bg: #{$card-bg}; --quarto-scss-export-accordion-color: #{$accordion-color}; --quarto-scss-export-accordion-bg: #{$accordion-bg}; --quarto-scss-export-accordion-border-color: #{$accordion-border-color}; --quarto-scss-export-accordion-button-color: #{$accordion-button-color}; --quarto-scss-export-accordion-button-bg: #{$accordion-button-bg}; --quarto-scss-export-accordion-button-active-bg: #{$accordion-button-active-bg}; --quarto-scss-export-accordion-button-active-color: #{$accordion-button-active-color}; --quarto-scss-export-accordion-button-focus-border-color: #{$accordion-button-focus-border-color}; --quarto-scss-export-accordion-icon-color: #{$accordion-icon-color}; --quarto-scss-export-accordion-icon-active-color: #{$accordion-icon-active-color}; --quarto-scss-export-tooltip-color: #{$tooltip-color}; --quarto-scss-export-tooltip-bg: #{$tooltip-bg}; --quarto-scss-export-tooltip-margin: #{$tooltip-margin}; --quarto-scss-export-tooltip-arrow-color: #{$tooltip-arrow-color}; --quarto-scss-export-form-feedback-tooltip-line-height: #{$form-feedback-tooltip-line-height}; --quarto-scss-export-popover-border-color: #{$popover-border-color}; --quarto-scss-export-popover-header-bg: #{$popover-header-bg}; --quarto-scss-export-popover-body-color: #{$popover-body-color}; --quarto-scss-export-popover-arrow-color: #{$popover-arrow-color}; --quarto-scss-export-popover-arrow-outer-color: #{$popover-arrow-outer-color}; --quarto-scss-export-toast-color: #{$toast-color}; --quarto-scss-export-toast-background-color: #{$toast-background-color}; --quarto-scss-export-toast-border-color: #{$toast-border-color}; --quarto-scss-export-toast-header-color: #{$toast-header-color}; --quarto-scss-export-toast-header-background-color: #{$toast-header-background-color}; --quarto-scss-export-toast-header-border-color: #{$toast-header-border-color}; --quarto-scss-export-badge-color: #{$badge-color}; --quarto-scss-export-modal-content-color: #{$modal-content-color}; --quarto-scss-export-modal-content-bg: #{$modal-content-bg}; --quarto-scss-export-modal-content-border-color: #{$modal-content-border-color}; --quarto-scss-export-modal-backdrop-bg: #{$modal-backdrop-bg}; --quarto-scss-export-modal-header-border-color: #{$modal-header-border-color}; --quarto-scss-export-modal-footer-bg: #{$modal-footer-bg}; --quarto-scss-export-modal-footer-border-color: #{$modal-footer-border-color}; --quarto-scss-export-progress-bg: #{$progress-bg}; --quarto-scss-export-progress-bar-color: #{$progress-bar-color}; --quarto-scss-export-progress-bar-bg: #{$progress-bar-bg}; --quarto-scss-export-list-group-color: #{$list-group-color}; --quarto-scss-export-list-group-bg: #{$list-group-bg}; --quarto-scss-export-list-group-border-color: #{$list-group-border-color}; --quarto-scss-export-list-group-hover-bg: #{$list-group-hover-bg}; --quarto-scss-export-list-group-active-bg: #{$list-group-active-bg}; --quarto-scss-export-list-group-active-color: #{$list-group-active-color}; --quarto-scss-export-list-group-active-border-color: #{$list-group-active-border-color}; --quarto-scss-export-list-group-disabled-color: #{$list-group-disabled-color}; --quarto-scss-export-list-group-disabled-bg: #{$list-group-disabled-bg}; --quarto-scss-export-list-group-action-color: #{$list-group-action-color}; --quarto-scss-export-list-group-action-hover-color: #{$list-group-action-hover-color}; --quarto-scss-export-list-group-action-active-color: #{$list-group-action-active-color}; --quarto-scss-export-list-group-action-active-bg: #{$list-group-action-active-bg}; --quarto-scss-export-thumbnail-bg: #{$thumbnail-bg}; --quarto-scss-export-thumbnail-border-color: #{$thumbnail-border-color}; --quarto-scss-export-figure-caption-color: #{$figure-caption-color}; --quarto-scss-export-breadcrumb-font-size: #{$breadcrumb-font-size}; --quarto-scss-export-breadcrumb-bg: #{$breadcrumb-bg}; --quarto-scss-export-breadcrumb-divider-color: #{$breadcrumb-divider-color}; --quarto-scss-export-breadcrumb-active-color: #{$breadcrumb-active-color}; --quarto-scss-export-breadcrumb-border-radius: #{$breadcrumb-border-radius}; --quarto-scss-export-carousel-control-color: #{$carousel-control-color}; --quarto-scss-export-carousel-indicator-active-bg: #{$carousel-indicator-active-bg}; --quarto-scss-export-carousel-caption-color: #{$carousel-caption-color}; --quarto-scss-export-carousel-dark-indicator-active-bg: #{$carousel-dark-indicator-active-bg}; --quarto-scss-export-carousel-dark-caption-color: #{$carousel-dark-caption-color}; --quarto-scss-export-btn-close-color: #{$btn-close-color}; --quarto-scss-export-offcanvas-border-color: #{$offcanvas-border-color}; --quarto-scss-export-offcanvas-bg-color: #{$offcanvas-bg-color}; --quarto-scss-export-offcanvas-color: #{$offcanvas-color}; --quarto-scss-export-offcanvas-backdrop-bg: #{$offcanvas-backdrop-bg}; --quarto-scss-export-code-color-dark: #{$code-color-dark}; --quarto-scss-export-kbd-color: #{$kbd-color}; --quarto-scss-export-kbd-bg: #{$kbd-bg}; --quarto-scss-export-nested-kbd-font-weight: #{$nested-kbd-font-weight}; --quarto-scss-export-pre-bg: #{$pre-bg}; --quarto-scss-export-pre-color: #{$pre-color}; --quarto-scss-export-bslib-page-sidebar-title-bg: #{$bslib-page-sidebar-title-bg}; --quarto-scss-export-bslib-page-sidebar-title-color: #{$bslib-page-sidebar-title-color}; --quarto-scss-export-bslib-sidebar-bg: #{$bslib-sidebar-bg}; --quarto-scss-export-bslib-sidebar-toggle-bg: #{$bslib-sidebar-toggle-bg}; --quarto-scss-export-sidebar-color: #{$sidebar-color}; --quarto-scss-export-sidebar-hover-color: #{$sidebar-hover-color}; --quarto-scss-export-sidebar-disabled-color: #{$sidebar-disabled-color}; --quarto-scss-export-valuebox-bg-primary: #{$valuebox-bg-primary}; --quarto-scss-export-valuebox-bg-secondary: #{$valuebox-bg-secondary}; --quarto-scss-export-valuebox-bg-success: #{$valuebox-bg-success}; --quarto-scss-export-valuebox-bg-info: #{$valuebox-bg-info}; --quarto-scss-export-valuebox-bg-warning: #{$valuebox-bg-warning}; --quarto-scss-export-valuebox-bg-danger: #{$valuebox-bg-danger}; --quarto-scss-export-valuebox-bg-light: #{$valuebox-bg-light}; --quarto-scss-export-valuebox-bg-dark: #{$valuebox-bg-dark}; --quarto-scss-export-mermaid-bg-color: #{$mermaid-bg-color}; --quarto-scss-export-mermaid-edge-color: #{$mermaid-edge-color}; --quarto-scss-export-mermaid-node-fg-color: #{$mermaid-node-fg-color}; --quarto-scss-export-mermaid-fg-color: #{$mermaid-fg-color}; --quarto-scss-export-mermaid-fg-color--lighter: #{$mermaid-fg-color--lighter}; --quarto-scss-export-mermaid-fg-color--lightest: #{$mermaid-fg-color--lightest}; --quarto-scss-export-mermaid-label-bg-color: #{$mermaid-label-bg-color}; --quarto-scss-export-mermaid-label-fg-color: #{$mermaid-label-fg-color}; --quarto-scss-export-mermaid-node-bg-color: #{$mermaid-node-bg-color}; --quarto-scss-export-code-block-border-left-color: #{$code-block-border-left-color}; --quarto-scss-export-callout-color-note: #{$callout-color-note}; --quarto-scss-export-callout-color-tip: #{$callout-color-tip}; --quarto-scss-export-callout-color-important: #{$callout-color-important}; --quarto-scss-export-callout-color-caution: #{$callout-color-caution}; --quarto-scss-export-callout-color-warning: #{$callout-color-warning}; }