Closed juliantao closed 1 month ago
I tried to add the scss-error.scss
file, but it is not allowed. I am attaching it here:
// quarto-scss-analysis-annotation { "origin": null }
// quarto-scss-analysis-annotation { "origin": null }
@use "sass:color" as quarto-color;
@use "sass:map" as quarto-map;
@use "sass:math" as quarto-math;
@use "sass:color" as sass-color;
// quarto-scss-analysis-annotation { "origin": null }
// quarto-scss-analysis-annotation { "origin": null }
// quarto-scss-analysis-annotation { "origin": null }
@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;
}
@function colorToRGB($color) {
@return "rgb(" + red($color) + ", " + green($color) + ", " + blue($color) +
")";
}
@function tint-color($color, $weight) {
@return mix(white, $color, $weight);
}
@function shade-color($color, $weight) {
@return mix(black, $color, $weight);
}
@function shift-color($color, $weight) {
@return if(
$weight > 0,
shade-color($color, $weight),
tint-color($color, -$weight)
);
}
// quarto-scss-analysis-annotation { "origin": null }
// quarto-scss-analysis-annotation { "origin": null }
$yellow: #ffc627 !default;
$gold: #ffc627 !default;
$red: #8c1d40 !default;
$maroon: #8c1d40 !default;
$orange: #ff7f32 !default;
$blue: #00a3e0 !default;
$green: #78be20 !default;
$grey: #747474 !default;
// fonts
// $font-family-sans-serif: "Arial" !default;
// main colors
$link-color: $maroon !default;
// font sizes and margins
$presentation-font-size-root: 46px !default;
$presentation-h1-font-size: 2.3em !default;
$presentation-h2-font-size: 1.5em !default;
$presentation-h3-font-size: 1.2em !default;
$presentation-h4-font-size: 1.1em !default;
$presentation-heading-color: $maroon !default;
// inline code
$code-color: $blue !default;
// quarto-scss-analysis-annotation { "origin": null }
@import url(./fonts/source-sans-pro/source-sans-pro.css);
// fonts
$font-family-sans-serif: "Source Sans Pro", Helvetica, sans-serif !default;
$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace !default;
$presentation-font-size-root: 40px !default;
$presentation-font-smaller: 0.7 !default;
$presentation-line-height: 1.3 !default;
// main colors
$body-bg: #fff !default;
$body-color: #222 !default;
$text-muted: lighten($body-color, 30%) !default;
// grey colors (like in bootstrap)
$gray-200: #e9ecef !default;
$gray-100: #f8f9fa !default;
$gray-900: #212529 !default;
// link colors
$primary: #2a76dd !default;
$link-color: $primary !default;
$link-color-hover: lighten($link-color, 10%) !default;
// selection colors
$selection-bg: lighten($link-color, 25%) !default;
$selection-color: $body-bg !default;
// border colors
$border-color: lighten($body-color, 30%) !default;
$border-width: 1px !default;
$border-radius: 4px !default;
// headings
$presentation-heading-font: $font-family-sans-serif !default;
$presentation-heading-color: $body-color !default;
$presentation-heading-line-height: 1.2 !default;
$presentation-heading-letter-spacing: normal !default;
$presentation-heading-text-transform: none !default;
$presentation-heading-text-shadow: none !default;
$presentation-h1-text-shadow: none !default;
$presentation-heading-font-weight: 600 !default;
$presentation-h1-font-size: 2.5em !default;
$presentation-h2-font-size: 1.6em !default;
$presentation-h3-font-size: 1.3em !default;
$presentation-h4-font-size: 1em !default;
// margins
$presentation-block-margin: 12px !default;
// text alignment
$presentation-slide-text-align: left !default;
$presentation-title-slide-text-align: center !default;
$reveal-slide-text-align: $presentation-slide-text-align !default;
$reveal-title-slide-text-align: $presentation-title-slide-text-align !default;
// Lists
$presentation-list-bullet-color: $body-color !default;
// code blocks
$code-block-bg: $body-bg !default;
$code-block-border-color: lighten($body-color, 60%) !default;
$code-block-font-size: 0.55em !default;
$code-block-height: 500px !default;
$code-block-theme-dark-threshhold: 40% !default;
$code-block-line-height: $presentation-line-height !default;
// inline code
$code-color: var(--quarto-hl-fu-color) !default;
$code-bg: transparent !default;
// tabset
$tabset-border-color: $code-block-border-color !default;
// table
$table-border-color: $code-block-border-color !default;
// input panel
$input-panel-border-color: $code-block-border-color !default;
$input-panel-border-width: $border-width !default;
$input-panel-border-radius: $border-radius !default;
$input-panel-bg: rgba(248, 249, 250, 1) !default;
// alternate colors for when the background changes
$light-bg-text-color: #222 !default;
$dark-bg-text-color: #fff !default;
$light-bg-link-color: #2a76dd !default;
$dark-bg-link-color: #42affa !default;
$light-bg-code-color: #4758ab !default;
$dark-bg-code-color: #ffa07a !default;
// --- derive reveal versions of presentation variables for finer-grained override ---
$revealjs-font-size-root: $presentation-font-size-root !default;
$revealjs-h1-font-size: $presentation-h1-font-size !default;
$revealjs-h2-font-size: $presentation-h2-font-size !default;
$revealjs-h3-font-size: $presentation-h3-font-size !default;
$revealjs-h4-font-size: $presentation-h4-font-size !default;
$revealjs-heading-font: $presentation-heading-font !default;
$revealjs-heading-color: $presentation-heading-color !default;
$revealjs-heading-line-height: $presentation-heading-line-height !default;
$revealjs-heading-letter-spacing: $presentation-heading-letter-spacing !default;
$revealjs-heading-text-transform: $presentation-heading-text-transform !default;
$revealjs-heading-text-shadow: $presentation-heading-text-shadow !default;
$revealjs-h1-text-shadow: $presentation-h1-text-shadow !default;
$revealjs-heading-font-weight: $presentation-heading-font-weight !default;
$revealjs-block-margin: $presentation-block-margin !default;
$revealjs-line-height: $presentation-line-height !default;
$revealjs-list-bullet-color: $presentation-list-bullet-color !default;
// ---- map to reveal scss variables ---
// ---- This is based from the revealjs setting.scss
// -- START setting.scss --
// Background of the presentation
$backgroundColor: $body-bg !default;
// Primary/body text
$mainFont: $font-family-sans-serif !default;
$mainFontSize: $revealjs-font-size-root !default;
$mainColor: $body-color !default;
// Vertical spacing between blocks of text
$blockMargin: $revealjs-block-margin !default;
// Headings
$headingMargin: 0 0 $blockMargin 0 !default;
$headingFont: $revealjs-heading-font !default;
$headingColor: $revealjs-heading-color !default;
$headingLineHeight: $revealjs-heading-line-height !default;
$headingLetterSpacing: $revealjs-heading-letter-spacing !default;
$headingTextTransform: $revealjs-heading-text-transform !default;
$headingTextShadow: $revealjs-heading-text-shadow !default;
$heading1TextShadow: $revealjs-h1-text-shadow !default;
$headingFontWeight: $revealjs-heading-font-weight !default;
$heading1Size: $revealjs-h1-font-size !default;
$heading2Size: $revealjs-h2-font-size !default;
$heading3Size: $revealjs-h3-font-size !default;
$heading4Size: $revealjs-h4-font-size !default;
$codeFont: $font-family-monospace !default;
// Links and actions
$linkColor: $link-color !default;
$linkColorHover: $link-color-hover !default;
// Text selection
$selectionBackgroundColor: $selection-bg !default;
$selectionColor: $selection-color !default;
// Colors used for UI elements that are overlaid on top of
// the presentation
$overlayElementBgColor: 240, 240, 240 !default;
$overlayElementFgColor: 0, 0, 0 !default;
// -- END setting.scss --
// KBD variables
$kbd-padding-y: 0.4rem !default;
$kbd-padding-x: 0.4rem !default;
$kbd-font-size: $presentation-font-size-root !default;
$kbd-color: $body-color !default;
$kbd-bg: $gray-100 !default; // like in bootstrap style
$code-copy-selector: "pre.sourceCode:hover > " !default;
$code-white-space: pre !default;
$tbl-cap-location: top !default;
// main colors
$body-bg: #fff !default;
$body-color: #222 !default;
$text-muted: lighten($body-color, 30%) !default;
// border colors
$border-color: lighten($body-color, 30%) !default;
$table-border-color: $border-color !default;
$border-width: 1px !default;
$border-radius: 4px !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;
// quarto-scss-analysis-annotation { "origin": null }
// quarto-scss-analysis-annotation { "origin": null }
@mixin vertical-gradient( $top, $bottom ) {
background: $top;
background: -moz-linear-gradient( top, $top 0%, $bottom 100% );
background: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) );
background: -webkit-linear-gradient( top, $top 0%, $bottom 100% );
background: -o-linear-gradient( top, $top 0%, $bottom 100% );
background: -ms-linear-gradient( top, $top 0%, $bottom 100% );
background: linear-gradient( top, $top 0%, $bottom 100% );
}
@mixin horizontal-gradient( $top, $bottom ) {
background: $top;
background: -moz-linear-gradient( left, $top 0%, $bottom 100% );
background: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) );
background: -webkit-linear-gradient( left, $top 0%, $bottom 100% );
background: -o-linear-gradient( left, $top 0%, $bottom 100% );
background: -ms-linear-gradient( left, $top 0%, $bottom 100% );
background: linear-gradient( left, $top 0%, $bottom 100% );
}
@mixin radial-gradient( $outer, $inner, $type: circle ) {
background: $outer;
background: -moz-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
background: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) );
background: -webkit-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
background: -o-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
background: -ms-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
background: radial-gradient( center, $type cover, $inner 0%, $outer 100% );
}
@mixin light-bg-text-color( $color ) {
section.has-light-background {
&, h1, h2, h3, h4, h5, h6 {
color: $color;
}
}
}
@mixin dark-bg-text-color( $color ) {
section.has-dark-background {
&, h1, h2, h3, h4, h5, h6 {
color: $color;
}
}
}
// quarto-scss-analysis-annotation { "origin": null }
@mixin shift_to_dark($property, $color) {
@if (
sass-color.blackness($backgroundColor) > $code-block-theme-dark-threshhold
) {
#{$property}: shift-color($color, 70%);
} @else {
#{$property}: $color;
}
}
// -- START setting.scss --
// Generates the presentation background, can be overridden
// to return a background image or gradient
@mixin bodyBackground() {
background: $backgroundColor;
}
// -- END setting.scss --
// quarto-scss-analysis-annotation { "origin": null }
// Generates the presentation background, can be overridden
// to return a background image or gradient
@mixin bodyBackground() {
background: $backgroundColor;
}
// quarto-scss-analysis-annotation { "origin": null }
// Base theme template for reveal.js
/*********************************************
* GLOBAL STYLES
*********************************************/
@import "./exposer";
.reveal-viewport {
@include bodyBackground();
background-color: var(--r-background-color);
}
.reveal {
font-family: var(--r-main-font);
font-size: var(--r-main-font-size);
font-weight: normal;
color: var(--r-main-color);
}
.reveal ::selection {
color: var(--r-selection-color);
background: var(--r-selection-background-color);
text-shadow: none;
}
.reveal ::-moz-selection {
color: var(--r-selection-color);
background: var(--r-selection-background-color);
text-shadow: none;
}
.reveal .slides section,
.reveal .slides section>section {
line-height: 1.3;
font-weight: inherit;
}
/*********************************************
* HEADERS
*********************************************/
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
margin: var(--r-heading-margin);
color: var(--r-heading-color);
font-family: var(--r-heading-font);
font-weight: var(--r-heading-font-weight);
line-height: var(--r-heading-line-height);
letter-spacing: var(--r-heading-letter-spacing);
text-transform: var(--r-heading-text-transform);
text-shadow: var(--r-heading-text-shadow);
word-wrap: break-word;
}
.reveal h1 {font-size: var(--r-heading1-size); }
.reveal h2 {font-size: var(--r-heading2-size); }
.reveal h3 {font-size: var(--r-heading3-size); }
.reveal h4 {font-size: var(--r-heading4-size); }
.reveal h1 {
text-shadow: var(--r-heading1-text-shadow);
}
/*********************************************
* OTHER
*********************************************/
.reveal p {
margin: var(--r-block-margin) 0;
line-height: 1.3;
}
/* Remove trailing margins after titles */
.reveal h1:last-child,
.reveal h2:last-child,
.reveal h3:last-child,
.reveal h4:last-child,
.reveal h5:last-child,
.reveal h6:last-child {
margin-bottom: 0;
}
/* Ensure certain elements are never larger than the slide itself */
.reveal img,
.reveal video,
.reveal iframe {
max-width: 95%;
max-height: 95%;
}
.reveal strong,
.reveal b {
font-weight: bold;
}
.reveal em {
font-style: italic;
}
.reveal ol,
.reveal dl,
.reveal ul {
display: inline-block;
text-align: left;
margin: 0 0 0 1em;
}
.reveal ol {
list-style-type: decimal;
}
.reveal ul {
list-style-type: disc;
}
.reveal ul ul {
list-style-type: square;
}
.reveal ul ul ul {
list-style-type: circle;
}
.reveal ul ul,
.reveal ul ol,
.reveal ol ol,
.reveal ol ul {
display: block;
margin-left: 40px;
}
.reveal dt {
font-weight: bold;
}
.reveal dd {
margin-left: 40px;
}
.reveal blockquote {
display: block;
position: relative;
width: 70%;
margin: var(--r-block-margin) auto;
padding: 5px;
font-style: italic;
background: rgba(255, 255, 255, 0.05);
box-shadow: 0px 0px 2px rgba(0,0,0,0.2);
}
.reveal blockquote p:first-child,
.reveal blockquote p:last-child {
display: inline-block;
}
.reveal q {
font-style: italic;
}
.reveal pre {
display: block;
position: relative;
width: 90%;
margin: var(--r-block-margin) auto;
text-align: left;
font-size: 0.55em;
font-family: var(--r-code-font);
line-height: 1.2em;
word-wrap: break-word;
box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
}
.reveal code {
font-family: var(--r-code-font);
text-transform: none;
tab-size: 2;
}
.reveal pre code {
display: block;
padding: 5px;
overflow: auto;
max-height: 400px;
word-wrap: normal;
}
.reveal .code-wrapper {
white-space: normal;
}
.reveal .code-wrapper code {
white-space: pre;
}
.reveal table {
margin: auto;
border-collapse: collapse;
border-spacing: 0;
}
.reveal table th {
font-weight: bold;
}
.reveal table th,
.reveal table td {
text-align: left;
padding: 0.2em 0.5em 0.2em 0.5em;
border-bottom: 1px solid;
}
.reveal table th[align="center"],
.reveal table td[align="center"] {
text-align: center;
}
.reveal table th[align="right"],
.reveal table td[align="right"] {
text-align: right;
}
.reveal table tbody tr:last-child th,
.reveal table tbody tr:last-child td {
border-bottom: none;
}
.reveal sup {
vertical-align: super;
font-size: smaller;
}
.reveal sub {
vertical-align: sub;
font-size: smaller;
}
.reveal small {
display: inline-block;
font-size: 0.6em;
line-height: 1.2em;
vertical-align: top;
}
.reveal small * {
vertical-align: top;
}
.reveal img {
margin: var(--r-block-margin) 0;
}
/*********************************************
* LINKS
*********************************************/
.reveal a {
color: var(--r-link-color);
text-decoration: none;
transition: color .15s ease;
}
.reveal a:hover {
color: var(--r-link-color-hover);
text-shadow: none;
border: none;
}
.reveal .roll span:after {
color: #fff;
// background: darken( var(--r-link-color), 15% );
background: var(--r-link-color-dark);
}
/*********************************************
* Frame helper
*********************************************/
.reveal .r-frame {
border: 4px solid var(--r-main-color);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}
.reveal a .r-frame {
transition: all .15s linear;
}
.reveal a:hover .r-frame {
border-color: var(--r-link-color);
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
}
/*********************************************
* NAVIGATION CONTROLS
*********************************************/
.reveal .controls {
color: var(--r-link-color);
}
/*********************************************
* PROGRESS BAR
*********************************************/
.reveal .progress {
background: rgba(0,0,0,0.2);
color: var(--r-link-color);
}
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: var(--r-background-color);
}
}
// quarto-scss-analysis-annotation { "origin": null }
// 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 <code> 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;
}
// 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};
--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;
/* 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-label-bg-color: $body-bg !default;
$mermaid-label-fg-color: $primary !default;
$mermaid-node-bg-color: rgba($primary, 0.1) !default;
$mermaid-node-fg-color: $primary !default;
/* CSS variables */
:root {
--mermaid-bg-color: #{$mermaid-bg-color};
--mermaid-edge-color: #{$mermaid-edge-color};
--mermaid-node-fg-color: #{$mermaid-node-fg-color};
--mermaid-fg-color: #{$mermaid-fg-color};
--mermaid-fg-color--lighter: #{$mermaid-fg-color--lighter};
--mermaid-fg-color--lightest: #{$mermaid-fg-color--lightest};
--mermaid-font-family: #{$mermaid-font-family};
--mermaid-label-bg-color: #{$mermaid-label-bg-color};
--mermaid-label-fg-color: #{$mermaid-label-fg-color};
--mermaid-node-bg-color: #{$mermaid-node-bg-color};
--mermaid-node-fg-color: #{$mermaid-node-fg-color};
}
@media print {
:root {
font-size: 11pt;
}
#quarto-sidebar,
#TOC,
.nav-page {
display: none;
}
.page-columns .content {
grid-column-start: page-start;
}
.fixed-top {
position: relative;
}
.panel-caption,
.figure-caption,
figcaption {
color: #666;
}
}
.code-copy-button {
position: absolute;
top: 0;
right: 0;
border: 0;
margin-top: 5px;
margin-right: 5px;
background-color: transparent;
z-index: 3;
}
.code-copy-button:focus {
outline: none;
}
.code-copy-button-tooltip {
font-size: 0.75em;
}
#{$code-copy-selector} .code-copy-button > .bi::before {
display: inline-block;
height: 1rem;
width: 1rem;
content: "";
vertical-align: -0.125em;
@if variable-exists(btn-code-copy-color) {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#{colorToRGB($btn-code-copy-color)}" viewBox="0 0 16 16"><path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/><path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>');
} @else {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/><path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>');
}
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,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#{colorToRGB($btn-code-copy-color)}" viewBox="0 0 16 16"><path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/></svg>');
} @else {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/></svg>');
}
}
@if variable-exists(btn-code-copy-color-active) {
#{$code-copy-selector} .code-copy-button:hover > .bi::before {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#{colorToRGB($btn-code-copy-color-active)}" viewBox="0 0 16 16"><path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/><path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>');
}
#{$code-copy-selector} .code-copy-button-checked:hover > .bi::before {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#{colorToRGB($btn-code-copy-color-active)}" viewBox="0 0 16 16"><path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/></svg>');
}
}
$body-bg: #fff !default;
$tabset-border-color: rgb(222, 226, 230) !default;
.panel-tabset [role="tablist"] {
border-bottom: 1px solid $tabset-border-color;
list-style: none;
margin: 0;
padding: 0;
width: 100%;
}
.panel-tabset [role="tablist"] * {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
@media (min-width: 30em) {
.panel-tabset [role="tablist"] li {
display: inline-block;
}
}
.panel-tabset [role="tab"] {
border: 1px solid transparent;
border-top-color: $tabset-border-color;
display: block;
padding: 0.5em 1em;
text-decoration: none;
}
@media (min-width: 30em) {
.panel-tabset [role="tab"] {
border-top-color: transparent;
display: inline-block;
margin-bottom: -1px;
}
}
.panel-tabset [role="tab"][aria-selected="true"] {
background-color: $tabset-border-color;
}
@media (min-width: 30em) {
.panel-tabset [role="tab"][aria-selected="true"] {
background-color: transparent;
border: 1px solid $tabset-border-color;
border-bottom-color: $body-bg;
}
}
@media (min-width: 30em) {
.panel-tabset [role="tab"]:hover:not([aria-selected="true"]) {
border: 1px solid $tabset-border-color;
}
}
.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;
}
.reveal.center .slide aside,
.reveal.center .slide div.aside {
position: initial;
}
section.has-light-background {
&,
h1,
h2,
h3,
h4,
h5,
h6 {
color: $light-bg-text-color;
}
a,
a:hover {
color: $light-bg-link-color;
}
code {
color: $light-bg-code-color;
}
}
section.has-dark-background {
&,
h1,
h2,
h3,
h4,
h5,
h6 {
color: $dark-bg-text-color;
}
a,
a:hover {
color: $dark-bg-link-color;
}
code {
color: $dark-bg-code-color;
}
}
#title-slide,
/* for when hash-type: number as identifier removed*/
div.reveal div.slides section.quarto-title-block {
text-align: $presentation-title-slide-text-align;
.subtitle {
margin-bottom: 2.5rem;
}
}
.reveal .slides {
text-align: $reveal-slide-text-align;
}
.reveal .title-slide h1 {
font-size: $revealjs-h2-font-size;
}
.reveal[data-navigation-mode="linear"] .title-slide h1 {
font-size: $revealjs-h1-font-size;
}
.reveal div.sourceCode {
border: $border-width solid $code-block-border-color;
border-radius: $border-radius;
}
.reveal pre {
width: 100%;
box-shadow: none;
background-color: $code-block-bg;
border: none;
margin: 0;
font-size: $code-block-font-size;
line-height: $code-block-line-height;
}
// Inside code-file-name div, we want to use the same background color as decorated codeblock header
// https://github.com/quarto-dev/quarto-cli/issues/9560
.reveal .code-with-filename .code-with-filename-file pre {
background-color: unset;
}
.reveal code {
color: $code-color;
background-color: $code-bg;
white-space: pre-wrap;
}
.reveal pre.sourceCode code {
@if variable-exists(code-block-color) {
color: $code-block-color;
}
background-color: $code-block-bg;
padding: 6px 9px;
max-height: $code-block-height;
white-space: pre;
}
.reveal pre code {
background-color: $body-bg;
color: $body-color;
}
.reveal .column-output-location {
display: flex;
align-items: stretch;
}
.reveal .column-output-location .column:first-of-type div.sourceCode {
height: 100%;
background-color: $code-block-bg;
}
.reveal blockquote {
display: block;
position: relative;
color: $border-color;
width: unset;
margin: var(--r-block-margin) auto;
padding: 0.625rem 1.75rem;
border-left: 0.25rem solid $text-muted;
font-style: normal;
background: none;
box-shadow: none;
}
.reveal blockquote p:first-child,
.reveal blockquote p:last-child {
display: block;
}
.reveal .slide aside,
.reveal .slide div.aside {
position: absolute;
bottom: 20px;
font-size: #{$presentation-font-smaller}em;
color: $text-muted;
}
.reveal .slide sup {
font-size: #{$presentation-font-smaller}em;
}
.reveal .slide.scrollable aside,
.reveal .slide.scrollable div.aside {
position: relative;
margin-top: 1em;
}
.reveal .slide aside .aside-footnotes {
margin-bottom: 0;
}
.reveal .slide aside .aside-footnotes li:first-of-type {
margin-top: 0;
}
$panel-sidebar-width: 270px;
$panel-sidebar-padding: 0.5em;
.reveal .layout-sidebar {
display: flex;
width: 100%;
margin-top: 0.8em;
}
.reveal .layout-sidebar .panel-sidebar {
width: $panel-sidebar-width;
}
.reveal .layout-sidebar-left .panel-sidebar {
margin-right: calc(#{$panel-sidebar-padding} * 2);
}
.reveal .layout-sidebar-right .panel-sidebar {
margin-left: calc(#{$panel-sidebar-padding} * 2);
}
.reveal .layout-sidebar .panel-fill,
.reveal .layout-sidebar .panel-center,
.reveal .layout-sidebar .panel-tabset {
flex: 1;
}
.reveal .panel-input,
.reveal .panel-sidebar {
font-size: 0.5em;
padding: $panel-sidebar-padding;
border-style: solid;
border-color: $input-panel-border-color;
border-width: $input-panel-border-width;
border-radius: $input-panel-border-radius;
background-color: $input-panel-bg;
}
.reveal .panel-sidebar :first-child,
.reveal .panel-fill :first-child {
margin-top: 0;
}
.reveal .panel-sidebar :last-child,
.reveal .panel-fill :last-child {
margin-bottom: 0;
}
.panel-input > div,
.panel-input > div > div {
vertical-align: middle;
padding-right: 1em;
}
.reveal p,
.reveal .slides section,
.reveal .slides section > section {
line-height: $revealjs-line-height;
}
.reveal.smaller .slides section,
.reveal .slides section.smaller,
.reveal .slides section .callout {
font-size: #{$presentation-font-smaller}em;
}
// avoid applying twice the reduction when using nested section
.reveal.smaller .slides section section {
font-size: inherit;
}
.reveal.smaller .slides h1,
.reveal .slides section.smaller h1 {
font-size: calc(#{$revealjs-h1-font-size} / #{$presentation-font-smaller});
}
.reveal.smaller .slides h2,
.reveal .slides section.smaller h2 {
font-size: calc(#{$revealjs-h2-font-size} / #{$presentation-font-smaller});
}
.reveal.smaller .slides h3,
.reveal .slides section.smaller h3 {
font-size: calc(#{$revealjs-h3-font-size} / #{$presentation-font-smaller});
}
.reveal .columns > .column > :not(ul, ol) {
margin-left: 0.25em;
margin-right: 0.25em;
}
.reveal .columns > .column:first-child > :not(ul, ol) {
margin-right: 0.5em;
margin-left: 0;
}
.reveal .columns > .column:last-child > :not(ul, ol) {
margin-right: 0;
margin-left: 0.5em;
}
.reveal .slide-number {
color: $linkColorHover;
background-color: $body-bg;
}
.reveal .footer {
color: $text-muted;
a {
color: $linkColor;
}
&.has-dark-background {
color: sass-color.scale($dark-bg-text-color, $whiteness: 30%);
a {
color: sass-color.scale($dark-bg-link-color, $whiteness: 30%);
}
}
&.has-light-background {
color: sass-color.scale($light-bg-text-color, $whiteness: 30%);
a {
color: sass-color.scale($light-bg-link-color, $whiteness: 30%);
}
}
}
.reveal .slide-number {
color: $text-muted;
&.has-dark-background {
color: sass-color.scale($dark-bg-text-color, $whiteness: 30%);
}
&.has-light-background {
color: sass-color.scale($light-bg-text-color, $whiteness: 30%);
}
}
// handle caption for figures
.reveal .slide {
figure > figcaption,
img.stretch + p.caption,
img.r-stretch + p.caption {
font-size: #{$presentation-font-smaller}em;
}
}
@media screen and (min-width: 500px) {
$arrow-spacing: 0.2em;
$control-arrow-spacing: 1.4em;
.reveal .controls[data-controls-layout="edges"] .navigate-left {
left: $arrow-spacing;
}
.reveal .controls[data-controls-layout="edges"] .navigate-right {
right: $arrow-spacing;
}
.reveal .controls[data-controls-layout="edges"] .navigate-up {
top: $arrow-spacing * 2;
}
.reveal .controls[data-controls-layout="edges"] .navigate-down {
bottom: $arrow-spacing - $control-arrow-spacing + 3.5em;
}
}
.tippy-box[data-theme~="light-border"] {
background-color: $backgroundColor;
color: $mainColor;
border-radius: $border-radius;
border: solid $border-width $border-color;
font-size: 0.6em;
}
.tippy-box[data-theme~="light-border"] .tippy-arrow {
color: $border-color;
}
.tippy-box[data-placement^="bottom"] > .tippy-content {
padding: 7px 10px;
z-index: 1;
}
.reveal .callout.callout-style-simple .callout-body,
.reveal .callout.callout-style-default .callout-body,
.reveal .callout.callout-style-simple div.callout-title,
.reveal .callout.callout-style-default div.callout-title {
font-size: inherit;
}
.reveal .callout.callout-style-default .callout-icon::before,
.reveal .callout.callout-style-simple .callout-icon::before {
height: 2rem;
width: 2rem;
background-size: 2rem 2rem;
}
.reveal .callout.callout-titled .callout-title p {
margin-top: 0.5em;
}
.reveal .callout.callout-titled .callout-icon::before {
margin-top: 1rem;
}
.reveal .callout.callout-titled .callout-body > .callout-content > :last-child {
margin-bottom: 1rem;
}
.reveal .panel-tabset [role="tab"] {
padding: 0.25em 0.7em;
}
.reveal .slide-menu-button .fa-bars::before {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#{colorToRGB($linkColor)}" class="bi bi-list" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"/></svg>');
}
.reveal .slide-chalkboard-buttons .fa-easel2::before {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#{colorToRGB($linkColor)}" class="bi bi-easel2" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 0a.5.5 0 0 1 .447.276L8.81 1h4.69A1.5 1.5 0 0 1 15 2.5V11h.5a.5.5 0 0 1 0 1h-2.86l.845 3.379a.5.5 0 0 1-.97.242L12.11 14H3.89l-.405 1.621a.5.5 0 0 1-.97-.242L3.36 12H.5a.5.5 0 0 1 0-1H1V2.5A1.5 1.5 0 0 1 2.5 1h4.691l.362-.724A.5.5 0 0 1 8 0ZM2 11h12V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5V11Zm9.61 1H4.39l-.25 1h7.72l-.25-1Z"/></svg>');
}
.reveal .slide-chalkboard-buttons .fa-brush::before {
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#{colorToRGB($linkColor)}" class="bi bi-brush" viewBox="0 0 16 16"><path d="M15.825.12a.5.5 0 0 1 .132.584c-1.53 3.43-4.743 8.17-7.095 10.64a6.067 6.067 0 0 1-2.373 1.534c-.018.227-.06.538-.16.868-.201.659-.667 1.479-1.708 1.74a8.118 8.118 0 0 1-3.078.132 3.659 3.659 0 0 1-.562-.135 1.382 1.382 0 0 1-.466-.247.714.714 0 0 1-.204-.288.622.622 0 0 1 .004-.443c.095-.245.316-.38.461-.452.394-.197.625-.453.867-.826.095-.144.184-.297.287-.472l.117-.198c.151-.255.326-.54.546-.848.528-.739 1.201-.925 1.746-.896.126.007.243.025.348.048.062-.172.142-.38.238-.608.261-.619.658-1.419 1.187-2.069 2.176-2.67 6.18-6.206 9.117-8.104a.5.5 0 0 1 .596.04zM4.705 11.912a1.23 1.23 0 0 0-.419-.1c-.246-.013-.573.05-.879.479-.197.275-.355.532-.5.777l-.105.177c-.106.181-.213.362-.32.528a3.39 3.39 0 0 1-.76.861c.69.112 1.736.111 2.657-.12.559-.139.843-.569.993-1.06a3.122 3.122 0 0 0 .126-.75l-.793-.792zm1.44.026c.12-.04.277-.1.458-.183a5.068 5.068 0 0 0 1.535-1.1c1.9-1.996 4.412-5.57 6.052-8.631-2.59 1.927-5.566 4.66-7.302 6.792-.442.543-.795 1.243-1.042 1.826-.121.288-.214.54-.275.72v.001l.575.575zm-4.973 3.04.007-.005a.031.031 0 0 1-.007.004zm3.582-3.043.002.001h-.002z"/></svg>');
}
// This is a sentinel value that renderers can use to determine
// whether the theme is dark or light
@if (
sass-color.blackness($backgroundColor) > $code-block-theme-dark-threshhold
) {
/*! dark */
.reveal div.callout.callout-style-default .callout-title {
color: #222;
}
} @else {
/*! light */
}
/* override theme.scss style for the default styles
Note the need for both the case sensitive flag and the
case-oblivious selectors. This is a workaround for what's
apparently a Chrome and Safari bug:
https://github.com/quarto-dev/quarto-cli/issues/1902#issuecomment-1219783059
*/
.reveal ol[type="a"] {
list-style-type: lower-alpha;
}
.reveal ol[type="a" s] {
list-style-type: lower-alpha;
}
.reveal ol[type="A" s] {
list-style-type: upper-alpha;
}
.reveal ol[type="i"] {
list-style-type: lower-roman;
}
.reveal ol[type="i" s] {
list-style-type: lower-roman;
}
.reveal ol[type="I" s] {
list-style-type: upper-roman;
}
.reveal ol[type="1"] {
list-style-type: decimal;
}
// https://github.com/quarto-dev/quarto-cli/issues/2834
// temporary workaround while we come up with a pure CSS solution
.reveal ul.task-list {
list-style: none;
}
.reveal ul.task-list li input[type="checkbox"] {
width: 2em;
height: 2em;
margin: 0 1em 0.5em -1.6em;
vertical-align: middle;
}
// https://github.com/quarto-dev/quarto-cli/issues/3380
div.cell-output-display div.pagedtable-wrapper table.table {
font-size: 0.6em;
}
.reveal .code-annotation-container-hidden {
display: none;
}
.reveal code.sourceCode button.code-annotation-anchor,
.reveal code.sourceCode .code-annotation-anchor {
font-family: $font-family-monospace;
color: var(--quarto-hl-co-color);
border: solid var(--quarto-hl-co-color) 1px;
border-radius: 50%;
font-size: 0.7em;
line-height: 1.2em;
margin-top: 2px;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
}
.reveal code.sourceCode button.code-annotation-anchor {
cursor: pointer;
}
.reveal code.sourceCode a.code-annotation-anchor {
text-align: center;
vertical-align: middle;
text-decoration: none;
cursor: default;
height: 1.2em;
width: 1.2em;
}
.reveal code.sourceCode.fragment a.code-annotation-anchor {
left: auto;
}
.reveal #code-annotation-line-highlight-gutter {
width: 100%;
border-top: solid var(--quarto-hl-co-color) 1px;
border-bottom: solid var(--quarto-hl-co-color) 1px;
z-index: 2;
}
.reveal #code-annotation-line-highlight {
margin-left: -8em;
width: calc(100% + 4em);
border-top: solid var(--quarto-hl-co-color) 1px;
border-bottom: solid var(--quarto-hl-co-color) 1px;
z-index: 2;
margin-bottom: -2px;
}
.reveal 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), green($code-block-bg), blue($code-block-bg));
font-weight: bolder;
}
.reveal pre.code-annotation-code {
padding-top: 0;
padding-bottom: 0;
code {
z-index: 3;
padding-left: 0px;
}
}
.reveal dl.code-annotation-container-grid {
margin-left: 0.1em;
dt {
margin-top: 0.65rem;
font-family: $font-family-monospace;
border: solid $body-color 1px;
border-radius: 50%;
height: 1.3em;
width: 1.3em;
line-height: 1.3em;
font-size: 0.5em;
text-align: center;
vertical-align: middle;
text-decoration: none;
}
dd {
margin-left: 0.25em;
}
}
/*
https://github.com/quarto-dev/quarto-cli/issues/4283
The trick itself is from here:
https://stackoverflow.com/questions/8720931/can-css-detect-the-number-of-children-an-element-has
*/
.reveal .scrollable ol li:first-child:nth-last-child(n + 10),
.reveal .scrollable ol li:first-child:nth-last-child(n + 10) ~ li {
margin-left: 1em;
}
/* kbd rules */
kbd {
font-family: $font-family-monospace;
font-size: $kbd-font-size;
color: $kbd-color;
@include shift_to_dark("background-color", $kbd-bg);
border: 1px solid;
border-color: $code-block-border-color;
border-radius: 5px;
padding: $kbd-padding-y $kbd-padding-x;
}
// quarto-scss-analysis-annotation { "origin": null }
$presentation-author-block-padding-left: if(
$presentation-title-slide-text-align != left,
0.5em,
0
);
$presentation-author-block-padding-right: if(
$presentation-title-slide-text-align != right,
0.5em,
0
);
.reveal {
.quarto-title-block {
.quarto-title-authors {
display: flex;
justify-content: $presentation-title-slide-text-align;
.quarto-title-author {
padding-left: $presentation-author-block-padding-left;
padding-right: $presentation-author-block-padding-right;
a,
a:hover,
a:visited,
a:active {
color: inherit;
text-decoration: none;
}
.quarto-title-author-name {
margin-bottom: 0.1rem;
}
.quarto-title-author-email {
margin-top: 0px;
margin-bottom: 0.4em;
font-size: 0.6em;
}
.quarto-title-author-orcid {
img {
margin-bottom: 4px;
}
}
.quarto-title-affiliation {
font-size: 0.7em;
margin-top: 0px;
margin-bottom: 8px;
}
.quarto-title-affiliation:first {
margin-top: 12px;
}
}
}
}
}
// Change text colors against dark slide backgrounds
.reveal .title {
line-height: 100px;
margin-top: 0.5em;
}
.reveal .subtitle {
background: $gold;
font-size: $presentation-h2-font-size;
font-weight: bold;
margin-bottom: 1.5em;
}
.reveal .author {
font-size: $presentation-h3-font-size;
font-weight: bold;
color: $maroon;
}
.reveal .institute {
font-size: $presentation-h4-font-size;
}
.reveal .date {
font-family: $font-family-monospace;
font-size: 0.8em;
}
// This is a sentinel value that renderers can use to determine
// whether the theme is dark or light
// @if (color.blackness($backgroundColor) > $code-block-theme-dark-threshhold) {
// /*! dark */
// } @else {
// /*! light */
// }
/*--Custom classes --*/
.alert {
background: #FFC627;
}
.center {
text-align: center;
display: block;
}
.large {font-size: 150%}
.small {font-size: 80%}
.gold {color: #FFC627}
.maroon {color: #8C1D40}
.green {color: #78BE20}
.blue {color: #00A3E0}
.orange {color: #FF7F32}
.grey {color: #747474}
.fade {
opacity: 0.5;
}
/* Two-column layout */
.left-column {
width: 20%;
height: 93%;
float: left;
}
.left-column h2, .left-column h3 {
color: var(--inverse-link-color);
}
.left-column h2:last-of-type, .left-column h3:last-child {
color: var(--inverse-text-color);
}
.right-column {
width: 75%;
float: right;
}
.pull-left {
float: left;
width: 48%;
}
.pull-right {
float: right;
width: 48%;
}
.pull-right + * {
clear: both;
}
hr {
content: none;
display: block;
border: none;
background-color: $gold;
height: 0.1em;
}
blockquote {
border-left: solid 5px $gold;
padding-left: 1em;
}
.container{
display: flex;
}
.col{
flex:1;
}
.reveal.reveal img
{
border: none;
box-shadow: none;
max-height: calc(75vh);
margin: auto;
display: flex;
}
.rotated {
transform: rotate(270deg)
}
.reveal .slide figure>figcaption, .reveal .slide img.stretch+p.caption, .reveal .slide img.r-stretch+p.caption {
font-size: 0.7em;
text-align: center;
color: $grey;
}
// quarto-scss-analysis-annotation { "origin": null }
We fixed a similar issue recently, so there may still be some.
it occurs after I pulled the latest commits and previewed a revealjs format file.
Which revealjs presentation is creating problem ? Can you share an example ?
I don't have any issue on my side with default revealjs and a custom presentation. So I can't reproduce.
@cscheid I am pigging you as I don't know yet how to debug from scss-error.scss
@cderv, I believe it is related to my custom scss file. I tried a minimal revealjs with the scss below, and it reported the same error:
/*--scss:defaults --*/
$yellow: #ffc627 !default;
$gold: #ffc627 !default;
$red: #8c1d40 !default;
$maroon: #8c1d40 !default;
$orange: #ff7f32 !default;
$blue: #00a3e0 !default;
$green: #78be20 !default;
$grey: #747474 !default;
// fonts
// $font-family-sans-serif: "Arial" !default;
// main colors
$link-color: $maroon !default;
// font sizes and margins
$presentation-font-size-root: 46px !default;
$presentation-h1-font-size: 2.3em !default;
$presentation-h2-font-size: 1.5em !default;
$presentation-h3-font-size: 1.2em !default;
$presentation-h4-font-size: 1.1em !default;
$presentation-heading-color: $maroon !default;
// inline code
$code-color: $blue !default;
/*-- scss:mixins --*/
// Generates the presentation background, can be overridden
// to return a background image or gradient
@mixin bodyBackground() {
background: $backgroundColor;
}
/*-- scss:rules --*/
// Change text colors against dark slide backgrounds
.reveal .title {
line-height: 100px;
margin-top: 0.5em;
}
.reveal .subtitle {
background: $gold;
font-size: $presentation-h2-font-size;
font-weight: bold;
margin-bottom: 1.5em;
}
.reveal .author {
font-size: $presentation-h3-font-size;
font-weight: bold;
color: $maroon;
}
.reveal .institute {
font-size: $presentation-h4-font-size;
}
.reveal .date {
font-family: $font-family-monospace;
font-size: 0.8em;
}
// This is a sentinel value that renderers can use to determine
// whether the theme is dark or light
// @if (color.blackness($backgroundColor) > $code-block-theme-dark-threshhold) {
// /*! dark */
// } @else {
// /*! light */
// }
/*--Custom classes --*/
.alert {
background: #FFC627;
}
.center {
text-align: center;
display: block;
}
.large {font-size: 150%}
.small {font-size: 80%}
.gold {color: #FFC627}
.maroon {color: #8C1D40}
.green {color: #78BE20}
.blue {color: #00A3E0}
.orange {color: #FF7F32}
.grey {color: #747474}
.fade {
opacity: 0.5;
}
/* Two-column layout */
.left-column {
width: 20%;
height: 93%;
float: left;
}
.left-column h2, .left-column h3 {
color: var(--inverse-link-color);
}
.left-column h2:last-of-type, .left-column h3:last-child {
color: var(--inverse-text-color);
}
.right-column {
width: 75%;
float: right;
}
.pull-left {
float: left;
width: 48%;
}
.pull-right {
float: right;
width: 48%;
}
.pull-right + * {
clear: both;
}
hr {
content: none;
display: block;
border: none;
background-color: $gold;
height: 0.1em;
}
blockquote {
border-left: solid 5px $gold;
padding-left: 1em;
}
.container{
display: flex;
}
.col{
flex:1;
}
.reveal.reveal img
{
border: none;
box-shadow: none;
max-height: calc(75vh);
margin: auto;
display: flex;
}
.rotated {
transform: rotate(270deg)
}
.reveal .slide figure>figcaption, .reveal .slide img.stretch+p.caption, .reveal .slide img.r-stretch+p.caption {
font-size: 0.7em;
text-align: center;
color: $grey;
}
Thanks. I can reproduce. I understand now the scss-error.scss
file.
Error adding css vars block Error: Expecting punctuation: "}" (2390:53)
It seems we fail on last comment line
// quarto-scss-analysis-annotation { "origin": null }
We'll fix our new parser. Thanks !
I think this is because it does not support inline scss without the ;
before }
.large {font-size: 150%}
.small {font-size: 80%}
.gold {color: #FFC627}
.maroon {color: #8C1D40}
.green {color: #78BE20}
.blue {color: #00A3E0}
.orange {color: #FF7F32}
.grey {color: #747474}
You can try with
/*--scss:defaults --*/
/*-- scss:rules --*/
.large {font-size: 150%}
and adding the ;
/*--scss:defaults --*/
/*-- scss:rules --*/
.large {font-size: 150%;}
It seems SASS does not need the last ;
before closing }
to work (trying in https://sass-lang.com/playground)
Could be sass-parser
limitations 🤔
Could be sass-parser limitations 🤔
Yes it is
> let { parse, stringify } = require('scss-parser')
undefined
> let ast = parse('.large {font-size: 150%}')
Uncaught Error: Expecting punctuation: "}" (1:24)
at InputStream.err (C:\Users\chris\node_modules\scss-parser\lib\input-stream.js:104:11)
at Object.err (C:\Users\chris\node_modules\scss-parser\lib\input-stream.js:138:16)
at TokenStream.err (C:\Users\chris\node_modules\scss-parser\lib\token-stream.js:251:23)
at Object.err (C:\Users\chris\node_modules\scss-parser\lib\token-stream.js:554:16)
at Parser.skip_type (C:\Users\chris\node_modules\scss-parser\lib\parse.js:157:19)
at Parser.skip_punctuation (C:\Users\chris\node_modules\scss-parser\lib\parse.js:170:17)
at Parser.parse_block (C:\Users\chris\node_modules\scss-parser\lib\parse.js:471:27)
at Parser.parse_rule (C:\Users\chris\node_modules\scss-parser\lib\parse.js:590:24)
at Parser.parse_node (C:\Users\chris\node_modules\scss-parser\lib\parse.js:302:49)
at Parser.parse_stylesheet (C:\Users\chris\node_modules\scss-parser\lib\parse.js:215:25)
Which is a known issue
So valid SCSS file will fail with this parser addition 🤔
So valid SCSS file will fail with this parser addition 🤔
Yes. I'm intentionally experimenting with this in the pre-release to see if it's feasible. Quarto currently attempts to fix some of these SCSS issues ahead of using the parser.
The parsing+analysis step is not strictly necessary (it's used to include all SCSS color variables as CSS variables), but before I decide to put this feature in an exception handler, I wanted to get a feel for how many of these failures would happen.
@cderv The problem is not in the comment - the line number of the parser is also incorrectly stated by the library.
The problem is not in the comment - the line number of the parser is also incorrectly stated by the library.
Yes thanks. I got that later by reproducing on my side, and looking at the source. I found the line that does error in scss-parser
JS script;
Anyhow, you got it. Thanks !
Anyhow, you got it.
Yup, I just wanted to warn for future occurrences of this problem.
This is the relevant part of our source:
That's quick! I can confirm that it works.
On Tue, Sep 24, 2024 at 12:29 PM Carlos Scheidegger < @.***> wrote:
Closed #10870 https://urldefense.com/v3/__https://github.com/quarto-dev/quarto-cli/issues/10870__;!!IKRxdwAv5BmarQ!aUVRU9Owau7KoqqXMM-Xbaqs-4DdP3LGaY3ANxLjKx-Fn0azMHf4Sq12SrWg-htkDNDR7tZgWAiWJ5YHsjN_xclJXLC2$ as completed via #10874 https://urldefense.com/v3/__https://github.com/quarto-dev/quarto-cli/pull/10874__;!!IKRxdwAv5BmarQ!aUVRU9Owau7KoqqXMM-Xbaqs-4DdP3LGaY3ANxLjKx-Fn0azMHf4Sq12SrWg-htkDNDR7tZgWAiWJ5YHsjN_xXm8JEYn$ .
— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/quarto-dev/quarto-cli/issues/10870*event-14387352135__;Iw!!IKRxdwAv5BmarQ!aUVRU9Owau7KoqqXMM-Xbaqs-4DdP3LGaY3ANxLjKx-Fn0azMHf4Sq12SrWg-htkDNDR7tZgWAiWJ5YHsjN_xaKjXVvr$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AOKU2SEL6OFH6OKHOLHMY33ZYG4SPAVCNFSM6AAAAABOXQNDDCVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGM4DOMZVGIYTGNI__;!!IKRxdwAv5BmarQ!aUVRU9Owau7KoqqXMM-Xbaqs-4DdP3LGaY3ANxLjKx-Fn0azMHf4Sq12SrWg-htkDNDR7tZgWAiWJ5YHsjN_xfzjTKse$ . You are receiving this because you authored the thread.Message ID: @.***>
I'm not sure if this is related to the previous bug, but I'm reporting a bug,as @juliantao, with Quarto 1.6.21 (prerelease) when rendering my website.
Error adding css vars block Error: Expecting punctuation: ")" (13380:53)
at InputStream.err (file:///opt/quarto-1.6.21/bin/quarto.js:48760:15)
at Object.err (file:///opt/quarto-1.6.21/bin/quarto.js:48779:23)
at TokenStream.err (file:///opt/quarto-1.6.21/bin/quarto.js:48849:27)
at Object.err (file:///opt/quarto-1.6.21/bin/quarto.js:49016:22)
at Parser.skip_type (file:///opt/quarto-1.6.21/bin/quarto.js:49074:25)
at Parser.skip_punctuation (file:///opt/quarto-1.6.21/bin/quarto.js:49078:21)
at Parser.parse_arguments (file:///opt/quarto-1.6.21/bin/quarto.js:49290:31)
at Parser.parse_function (file:///opt/quarto-1.6.21/bin/quarto.js:49304:27)
at Parser.maybe_function (file:///opt/quarto-1.6.21/bin/quarto.js:49301:85)
at Parser.parse_atom (file:///opt/quarto-1.6.21/bin/quarto.js:49195:21)
The resulting CSS file will not have SCSS color variables exported as CSS.
This is likely a Quarto bug.
Please consider reporting it at https://github.com/quarto-dev/quarto-cli,
along with the _quarto_internal_scss_error.scss file that can be found in the current working directory.
Let me know if the _quarto_internal_scss_error.scss
file is really required (size 372K, 13399 lines...)
Quarto 1.6.21
[✓] Checking versions of quarto binary dependencies...
Pandoc version 3.4.0: OK
Dart Sass version 1.70.0: OK
Deno version 1.46.3: OK
Typst version 0.11.0: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
Version: 1.6.21
Path: /opt/quarto-1.6.21/bin
[✓] Checking tools....................OK
TinyTeX: v2024.09
Chromium: (not installed)
[✓] Checking LaTeX....................OK
Using: TinyTex
Path: /home/dfolio/.TinyTeX/bin/x86_64-linux
Version: 2024
[✓] Checking basic markdown render....OK
[✓] Checking Python 3 installation....OK
Version: 3.12.6
Path: /usr/lib/python-exec/python3.12/python3
Jupyter: 5.7.2
Kernels: python3
[✓] Checking Jupyter engine render....OK
[✓] Checking R installation...........OK
Version: 4.3.1
Path: /usr/lib64/R
LibPaths:
- /home/dfolio/R/x86_64-pc-linux-gnu-library/4.3
- /usr/lib64/R/library
knitr: 1.48
rmarkdown: 2.28
[✓] Checking Knitr engine render......OK
Note: it works fine with quarto-1.5.57
@dfolio Please open a new bug report (with the means to reproduce and not only an error message) referencing this one. Thank you.
Let me know if the _quarto_internal_scss_error.scss file is really required (size 372K, 13399 lines...)
Yes, it's really required (372K is about the size of a large image these days, or 1% of a short video. It's not a big deal.)
Bug description
Just reporting a bug suggested by Quarto. It occurs after I pulled the latest commits and previewed a revealjs format file.
Steps to reproduce
No response
Expected behavior
No response
Actual behavior
No response
Your environment
No response
Quarto check output