mirror of
https://github.com/hakimel/reveal.js.git
synced 2025-07-30 19:30:22 +02:00
prettier config, format files
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
**/*
|
||||
**/*.html
|
||||
|
||||
js/**/*.js
|
||||
plugin/**/*.js
|
||||
plugin/**/*.js
|
||||
test/**/*.md
|
||||
examples/**/*.md
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"useTabs": false,
|
||||
"useTabs": true,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "es5",
|
||||
"printWidth": 100,
|
||||
|
@@ -18,13 +18,15 @@ Want to create reveal.js presentation in a graphical editor? Try <https://slides
|
||||
---
|
||||
|
||||
### Getting started
|
||||
|
||||
- 🚀 [Install reveal.js](https://revealjs.com/installation)
|
||||
- 👀 [View the demo presentation](https://revealjs.com/demo)
|
||||
- 📖 [Read the documentation](https://revealjs.com/markup/)
|
||||
- 🖌 [Try the visual editor for reveal.js at Slides.com](https://slides.com/)
|
||||
- 🎬 [Watch the reveal.js video course (paid)](https://revealjs.com/course)
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
MIT licensed | Copyright © 2011-2024 Hakim El Hattab, https://hakim.se
|
||||
</div>
|
||||
|
@@ -38,7 +38,8 @@
|
||||
.reveal .r-hstack {
|
||||
display: flex;
|
||||
|
||||
img, video {
|
||||
img,
|
||||
video {
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
object-fit: contain;
|
||||
@@ -58,13 +59,31 @@
|
||||
}
|
||||
|
||||
// Naming based on tailwindcss
|
||||
.reveal .items-stretch { align-items: stretch; }
|
||||
.reveal .items-start { align-items: flex-start; }
|
||||
.reveal .items-center { align-items: center; }
|
||||
.reveal .items-end { align-items: flex-end; }
|
||||
.reveal .items-stretch {
|
||||
align-items: stretch;
|
||||
}
|
||||
.reveal .items-start {
|
||||
align-items: flex-start;
|
||||
}
|
||||
.reveal .items-center {
|
||||
align-items: center;
|
||||
}
|
||||
.reveal .items-end {
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.reveal .justify-between { justify-content: space-between; }
|
||||
.reveal .justify-around { justify-content: space-around; }
|
||||
.reveal .justify-start { justify-content: flex-start; }
|
||||
.reveal .justify-center { justify-content: center; }
|
||||
.reveal .justify-end { justify-content: flex-end; }
|
||||
.reveal .justify-between {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.reveal .justify-around {
|
||||
justify-content: space-around;
|
||||
}
|
||||
.reveal .justify-start {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.reveal .justify-center {
|
||||
justify-content: center;
|
||||
}
|
||||
.reveal .justify-end {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
@@ -1,4 +1,3 @@
|
||||
|
||||
@media print {
|
||||
html:not(.print-pdf) {
|
||||
overflow: visible;
|
||||
@@ -24,25 +23,46 @@
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
p, td, li {
|
||||
font-size: 20pt!important;
|
||||
p,
|
||||
td,
|
||||
li {
|
||||
font-size: 20pt !important;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000!important;
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: #000 !important;
|
||||
height: auto;
|
||||
line-height: normal;
|
||||
text-align: left;
|
||||
letter-spacing: normal;
|
||||
}
|
||||
|
||||
h1 { font-size: 28pt !important; }
|
||||
h2 { font-size: 24pt !important; }
|
||||
h3 { font-size: 22pt !important; }
|
||||
h4 { font-size: 22pt !important; font-variant: small-caps; }
|
||||
h5 { font-size: 21pt !important; }
|
||||
h6 { font-size: 20pt !important; font-style: italic; }
|
||||
h1 {
|
||||
font-size: 28pt !important;
|
||||
}
|
||||
h2 {
|
||||
font-size: 24pt !important;
|
||||
}
|
||||
h3 {
|
||||
font-size: 22pt !important;
|
||||
}
|
||||
h4 {
|
||||
font-size: 22pt !important;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
h5 {
|
||||
font-size: 21pt !important;
|
||||
}
|
||||
h6 {
|
||||
font-size: 20pt !important;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
a:link,
|
||||
a:visited {
|
||||
@@ -51,7 +71,10 @@
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
ul, ol, div, p {
|
||||
ul,
|
||||
ol,
|
||||
div,
|
||||
p {
|
||||
visibility: visible;
|
||||
position: static;
|
||||
width: auto;
|
||||
@@ -137,7 +160,7 @@
|
||||
section img {
|
||||
display: block;
|
||||
margin: 15px 0px;
|
||||
background: rgba(255,255,255,1);
|
||||
background: rgba(255, 255, 255, 1);
|
||||
border: 1px solid #666;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
@@ -135,7 +135,7 @@ html.reveal-print {
|
||||
}
|
||||
|
||||
/* Layout option which makes notes appear on a separate page */
|
||||
.reveal .speaker-notes-pdf[data-layout="separate-page"] {
|
||||
.reveal .speaker-notes-pdf[data-layout='separate-page'] {
|
||||
position: relative;
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
|
@@ -3,6 +3,7 @@
|
||||
License: none (public domain)
|
||||
*/
|
||||
|
||||
/* prettier-ignore */
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
@@ -23,8 +24,8 @@ time, mark, audio, video {
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
/* prettier-ignore */
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, main, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
757
css/reveal.scss
757
css/reveal.scss
File diff suppressed because it is too large
Load Diff
@@ -4,17 +4,17 @@ Themes are written using Sass to keep things modular and reduce the need for rep
|
||||
|
||||
## Creating a Theme
|
||||
|
||||
To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled from Sass to CSS (see the [gulpfile](https://github.com/hakimel/reveal.js/blob/master/gulpfile.js)) when you run `npm run build:styles`.
|
||||
To create your own theme, start by duplicating a `.scss` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled from Sass to CSS (see the [gulpfile](https://github.com/hakimel/reveal.js/blob/master/gulpfile.js)) when you run `npm run build:styles`.
|
||||
|
||||
Each theme file follows the same structure:
|
||||
|
||||
1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)**
|
||||
Shared utility functions.
|
||||
1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)**
|
||||
Shared utility functions.
|
||||
|
||||
2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)**
|
||||
Declares a set of custom CSS variables that the template file (step 4) expects. Each of these variables can be overridden to customize the theme.
|
||||
2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)**
|
||||
Declares a set of custom CSS variables that the template file (step 4) expects. Each of these variables can be overridden to customize the theme.
|
||||
|
||||
3. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)**
|
||||
The template theme file which will generate final CSS output based on the currently defined variables.
|
||||
3. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)**
|
||||
The template theme file which will generate final CSS output based on the currently defined variables.
|
||||
|
||||
4. **Optionally add custom fonts and/or additional styles**
|
||||
4. **Optionally add custom fonts and/or additional styles**
|
||||
|
@@ -4,49 +4,55 @@
|
||||
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
|
||||
*/
|
||||
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #8b743d;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #f7f3de,
|
||||
$background: radial-gradient( rgba(255,255,255,1), rgba(247,242,211,1) ),
|
||||
@use 'template/settings' with (
|
||||
$background-color: #f7f3de,
|
||||
$background: radial-gradient(rgba(255, 255, 255, 1), rgba(247, 242, 211, 1)),
|
||||
$main-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$main-font-size: 42px,
|
||||
$main-color: #333,
|
||||
|
||||
$main-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$main-font-size: 42px,
|
||||
$main-color: #333,
|
||||
$heading-color: #333,
|
||||
$heading-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$heading-font-weight: 600,
|
||||
|
||||
$heading-color: #333,
|
||||
$heading-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$heading-font-weight: 600,
|
||||
$heading1-text-shadow: #{0 1px 0 #ccc,
|
||||
0 2px 0 #c9c9c9,
|
||||
0 3px 0 #bbb,
|
||||
0 4px 0 #b9b9b9,
|
||||
0 5px 0 #aaa,
|
||||
0 6px 1px rgba(0, 0, 0, 0.1),
|
||||
0 0 5px rgba(0, 0, 0, 0.1),
|
||||
0 1px 3px rgba(0, 0, 0, 0.3),
|
||||
0 3px 5px rgba(0, 0, 0, 0.2),
|
||||
0 5px 10px rgba(0, 0, 0, 0.25),
|
||||
0 20px 20px rgba(0, 0, 0, 0.15)},
|
||||
|
||||
$heading1-text-shadow: #{0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15)},
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1em,
|
||||
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1.0em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 20% ),
|
||||
|
||||
$selection-color: #333,
|
||||
$selection-background-color: color.scale( $active-color, $lightness: 35% ),
|
||||
|
||||
$overlay-element-bg-color: #{0, 0, 0},
|
||||
$overlay-element-fg-color: #{240, 240, 240}
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 20%),
|
||||
$selection-color: #333,
|
||||
$selection-background-color: color.scale($active-color, $lightness: 35%),
|
||||
$overlay-element-bg-color: '0 0 0',
|
||||
$overlay-element-fg-color: '240 240 240'
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/league-gothic/league-gothic.css");
|
||||
@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic");
|
||||
@import url('./fonts/league-gothic/league-gothic.css');
|
||||
@import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.dark-bg-text-color(#fff);
|
||||
|
@@ -8,40 +8,39 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #42affa;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #000,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #000,
|
||||
|
||||
$main-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$main-font-size: 42px,
|
||||
$main-color: #fff,
|
||||
$main-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$main-font-size: 42px,
|
||||
$main-color: #fff,
|
||||
|
||||
$heading-color: #fff,
|
||||
$heading-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$heading-font-weight: 600,
|
||||
$heading-color: #fff,
|
||||
$heading-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$heading-font-weight: 600,
|
||||
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1.0em,
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 15% ),
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: color.scale( $active-color, $lightness: -35% )
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 15%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: color.scale($active-color, $lightness: -35%)
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/source-sans-pro/source-sans-pro.css");
|
||||
@import url('./fonts/source-sans-pro/source-sans-pro.css');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.light-bg-text-color(#000);
|
||||
|
@@ -5,40 +5,39 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #42affa;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #191919,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #191919,
|
||||
|
||||
$main-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$main-font-size: 42px,
|
||||
$main-color: #fff,
|
||||
$main-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$main-font-size: 42px,
|
||||
$main-color: #fff,
|
||||
|
||||
$heading-color: #fff,
|
||||
$heading-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$heading-font-weight: 600,
|
||||
$heading-color: #fff,
|
||||
$heading-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$heading-font-weight: 600,
|
||||
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1.0em,
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 15% ),
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: color.scale( $active-color, $lightness: -35% )
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 15%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: color.scale($active-color, $lightness: -35%)
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/source-sans-pro/source-sans-pro.css");
|
||||
@import url('./fonts/source-sans-pro/source-sans-pro.css');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.light-bg-text-color(#222);
|
||||
|
@@ -11,54 +11,63 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$coal: #222;
|
||||
$active-color: #a23;
|
||||
$code-background-color: #23241f;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: $coal,
|
||||
@use 'template/variables' with (
|
||||
$background-color: $coal,
|
||||
|
||||
$main-font: #{Ubuntu, 'sans-serif'},
|
||||
$main-color: #eee,
|
||||
$main-font: 'Ubuntu, sans-serif',
|
||||
$main-color: #eee,
|
||||
|
||||
$heading-font: #{Ubuntu, 'sans-serif'},
|
||||
$heading-text-shadow: 2px 2px 2px $coal,
|
||||
$heading-font: 'Ubuntu, sans-serif',
|
||||
$heading-text-shadow: 2px 2px 2px $coal,
|
||||
|
||||
$heading1-text-shadow: #{0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15)},
|
||||
$heading1-text-shadow: #{0 1px 0 #ccc,
|
||||
0 2px 0 #c9c9c9,
|
||||
0 3px 0 #bbb,
|
||||
0 4px 0 #b9b9b9,
|
||||
0 5px 0 #aaa,
|
||||
0 6px 1px rgba(0, 0, 0, 0.1),
|
||||
0 0 5px rgba(0, 0, 0, 0.1),
|
||||
0 1px 3px rgba(0, 0, 0, 0.3),
|
||||
0 3px 5px rgba(0, 0, 0, 0.2),
|
||||
0 5px 10px rgba(0, 0, 0, 0.25),
|
||||
0 20px 20px rgba(0, 0, 0, 0.15)},
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 20% ),
|
||||
|
||||
$selection-background-color: $active-color,
|
||||
$selection-color: #fff
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 20%),
|
||||
$selection-background-color: $active-color,
|
||||
$selection-color: #fff
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Fonts
|
||||
@import url("https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic");
|
||||
@import url('https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic');
|
||||
|
||||
// Invert text color when the background is light
|
||||
@include mixins.light-bg-text-color(#222);
|
||||
|
||||
.reveal p {
|
||||
font-weight: 300;
|
||||
text-shadow: 1px 1px $coal;
|
||||
font-weight: 300;
|
||||
text-shadow: 1px 1px $coal;
|
||||
}
|
||||
|
||||
section.has-light-background {
|
||||
p,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
text-shadow: none;
|
||||
}
|
||||
p,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
.reveal h1,
|
||||
@@ -67,15 +76,15 @@ section.has-light-background {
|
||||
.reveal h4,
|
||||
.reveal h5,
|
||||
.reveal h6 {
|
||||
font-weight: 700;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.reveal p code {
|
||||
background-color: $code-background-color;
|
||||
display: inline-block;
|
||||
border-radius: 7px;
|
||||
background-color: $code-background-color;
|
||||
display: inline-block;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.reveal small code {
|
||||
vertical-align: baseline;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
@@ -4,85 +4,65 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url(./fonts/league-gothic/league-gothic.css);
|
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
|
||||
$systemFontsSansSerif: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui,
|
||||
helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||
$systemFontsMono: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
|
||||
|
||||
$systemFontsSansSerif: -apple-system,
|
||||
BlinkMacSystemFont,
|
||||
avenir next,
|
||||
avenir,
|
||||
segoe ui,
|
||||
helvetica neue,
|
||||
helvetica,
|
||||
Cantarell,
|
||||
Ubuntu,
|
||||
roboto,
|
||||
noto,
|
||||
arial,
|
||||
sans-serif;
|
||||
$systemFontsMono: Menlo,
|
||||
Consolas,
|
||||
Monaco,
|
||||
Liberation Mono,
|
||||
Lucida Console,
|
||||
monospace;
|
||||
|
||||
$background: #282A36;
|
||||
$foreground: #F8F8F2;
|
||||
$selection: #44475A;
|
||||
$comment: #6272A4;
|
||||
$red: #FF5555;
|
||||
$orange: #FFB86C;
|
||||
$yellow: #F1FA8C;
|
||||
$green: #50FA7B;
|
||||
$purple: #BD93F9;
|
||||
$cyan: #8BE9FD;
|
||||
$pink: #FF79C6;
|
||||
$background: #282a36;
|
||||
$foreground: #f8f8f2;
|
||||
$selection: #44475a;
|
||||
$comment: #6272a4;
|
||||
$red: #ff5555;
|
||||
$orange: #ffb86c;
|
||||
$yellow: #f1fa8c;
|
||||
$green: #50fa7b;
|
||||
$purple: #bd93f9;
|
||||
$cyan: #8be9fd;
|
||||
$pink: #ff79c6;
|
||||
|
||||
$mainFont: $systemFontsSansSerif;
|
||||
$codeFont: "Fira Code", $systemFontsMono;
|
||||
$codeFont: 'Fira Code', $systemFontsMono;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #191919,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #191919,
|
||||
|
||||
$main-font: $mainFont,
|
||||
$main-font-size: 42px,
|
||||
$main-color: $foreground,
|
||||
$main-font: $mainFont,
|
||||
$main-font-size: 42px,
|
||||
$main-color: $foreground,
|
||||
|
||||
$code-font: $codeFont,
|
||||
$code-font: $codeFont,
|
||||
|
||||
$heading-color: $purple,
|
||||
$heading-font: $mainFont,
|
||||
$heading-font-weight: 600,
|
||||
$heading-text-transform: none,
|
||||
$heading-color: $purple,
|
||||
$heading-font: $mainFont,
|
||||
$heading-font-weight: 600,
|
||||
$heading-text-transform: none,
|
||||
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1.0em,
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1em,
|
||||
|
||||
$link-color: $pink,
|
||||
$link-color-hover: $cyan,
|
||||
$link-color: $pink,
|
||||
$link-color-hover: $cyan,
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $selection
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $selection
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/source-sans-pro/source-sans-pro.css");
|
||||
@import url('./fonts/source-sans-pro/source-sans-pro.css');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.light-bg-text-color($background);
|
||||
|
||||
|
||||
// Define additional color effects based on Dracula spec
|
||||
// https://spec.draculatheme.com/
|
||||
:root {
|
||||
@@ -97,20 +77,23 @@ $codeFont: "Fira Code", $systemFontsMono;
|
||||
* https://draculatheme.com/contribute
|
||||
*/
|
||||
.reveal {
|
||||
strong, b {
|
||||
strong,
|
||||
b {
|
||||
color: var(--r-bold-color);
|
||||
}
|
||||
em, i, blockquote {
|
||||
em,
|
||||
i,
|
||||
blockquote {
|
||||
color: var(--r-italic-color);
|
||||
}
|
||||
code {
|
||||
color: var(--r-inline-code-color);
|
||||
}
|
||||
// Dracula colored list bullets and numbers
|
||||
ul, ol {
|
||||
ul,
|
||||
ol {
|
||||
li::marker {
|
||||
color: var(--r-list-bullet-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -7,25 +7,33 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background: radial-gradient( rgba(85,90,95,1), rgba(28,30,32,1) ),
|
||||
$background-color: rgba(28,30,32,1),
|
||||
|
||||
$heading-text-shadow: #{0px 0px 6px rgba(0,0,0,0.2)},
|
||||
$heading1-text-shadow: #{0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15)},
|
||||
@use 'template/settings' with (
|
||||
$background: radial-gradient(rgba(85, 90, 95, 1), rgba(28, 30, 32, 1)),
|
||||
$background-color: rgba(28, 30, 32, 1),
|
||||
$heading-text-shadow: #{0px 0px 6px rgba(0, 0, 0, 0.2)},
|
||||
$heading1-text-shadow: #{0 1px 0 #ccc,
|
||||
0 2px 0 #c9c9c9,
|
||||
0 3px 0 #bbb,
|
||||
0 4px 0 #b9b9b9,
|
||||
0 5px 0 #aaa,
|
||||
0 6px 1px rgba(0, 0, 0, 0.1),
|
||||
0 0 5px rgba(0, 0, 0, 0.1),
|
||||
0 1px 3px rgba(0, 0, 0, 0.3),
|
||||
0 3px 5px rgba(0, 0, 0, 0.2),
|
||||
0 5px 10px rgba(0, 0, 0, 0.25),
|
||||
0 20px 20px rgba(0, 0, 0, 0.15)}
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/league-gothic/league-gothic.css");
|
||||
@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic");
|
||||
@import url('./fonts/league-gothic/league-gothic.css');
|
||||
@import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.light-bg-text-color(#222);
|
||||
@include mixins.light-bg-text-color(#222);
|
||||
|
@@ -4,50 +4,49 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
// Solarized colors by Ethan Schoonover
|
||||
$base03: #002b36;
|
||||
$base02: #073642;
|
||||
$base01: #586e75;
|
||||
$base00: #657b83;
|
||||
$base0: #839496;
|
||||
$base1: #93a1a1;
|
||||
$base2: #eee8d5;
|
||||
$base3: #fdf6e3;
|
||||
$yellow: #b58900;
|
||||
$orange: #cb4b16;
|
||||
$red: #dc322f;
|
||||
$magenta: #d33682;
|
||||
$violet: #6c71c4;
|
||||
$blue: #268bd2;
|
||||
$cyan: #2aa198;
|
||||
$green: #859900;;
|
||||
$base03: #002b36;
|
||||
$base02: #073642;
|
||||
$base01: #586e75;
|
||||
$base00: #657b83;
|
||||
$base0: #839496;
|
||||
$base1: #93a1a1;
|
||||
$base2: #eee8d5;
|
||||
$base3: #fdf6e3;
|
||||
$yellow: #b58900;
|
||||
$orange: #cb4b16;
|
||||
$red: #dc322f;
|
||||
$magenta: #d33682;
|
||||
$violet: #6c71c4;
|
||||
$blue: #268bd2;
|
||||
$cyan: #2aa198;
|
||||
$green: #859900;
|
||||
|
||||
$active-color: $blue;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: $base03,
|
||||
@use 'template/settings' with (
|
||||
$background-color: $base03,
|
||||
|
||||
$main-color: $base1,
|
||||
$heading-color: $base2,
|
||||
$main-color: $base1,
|
||||
$heading-color: $base2,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 20% ),
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $magenta
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 20%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $magenta
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/league-gothic/league-gothic.css");
|
||||
@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic");
|
||||
@import url('./fonts/league-gothic/league-gothic.css');
|
||||
@import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.light-bg-text-color(#222);
|
||||
|
@@ -5,36 +5,35 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #e7ad52;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #111,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #111,
|
||||
|
||||
$main-font: #{'Open Sans', sans-serif},
|
||||
$main-color: #fff,
|
||||
$main-font: "'Open Sans', sans-serif",
|
||||
$main-color: #fff,
|
||||
|
||||
$heading-color: #fff,
|
||||
$heading-font: #{'Montserrat', Impact, sans-serif},
|
||||
$heading-text-transform: none,
|
||||
$heading-letter-spacing: -0.03em,
|
||||
$heading-color: #fff,
|
||||
$heading-font: "'Montserrat', Impact, sans-serif",
|
||||
$heading-text-transform: none,
|
||||
$heading-letter-spacing: -0.03em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 20% ),
|
||||
|
||||
$selection-color: #111,
|
||||
$selection-background-color: $active-color
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 20%),
|
||||
$selection-color: #111,
|
||||
$selection-background-color: $active-color
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("https://fonts.googleapis.com/css?family=Montserrat:700");
|
||||
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic");
|
||||
@import url('https://fonts.googleapis.com/css?family=Montserrat:700');
|
||||
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.light-bg-text-color(#222);
|
||||
|
@@ -6,43 +6,42 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #51483D;
|
||||
$active-color: #51483d;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #F0F1EB,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #f0f1eb,
|
||||
|
||||
$main-font: #{'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif},
|
||||
$main-font-size: 42px,
|
||||
$main-color: #000,
|
||||
$main-font: "'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif",
|
||||
$main-font-size: 42px,
|
||||
$main-color: #000,
|
||||
|
||||
$heading-color: #383D3D,
|
||||
$heading-font: #{'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif},
|
||||
$heading-font-weight: 600,
|
||||
$heading-text-transform: none,
|
||||
$heading-color: #383d3d,
|
||||
$heading-font: "'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif",
|
||||
$heading-font-weight: 600,
|
||||
$heading-text-transform: none,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 25% ),
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 25%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$overlay-element-bg-color: #{0, 0, 0},
|
||||
$overlay-element-fg-color: #{240, 240, 240}
|
||||
$overlay-element-bg-color: '0 0 0',
|
||||
$overlay-element-fg-color: '240 240 240'
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/source-sans-pro/source-sans-pro.css");
|
||||
@import url('./fonts/source-sans-pro/source-sans-pro.css');
|
||||
|
||||
// Change text colors against light slide backgrounds
|
||||
@include mixins.dark-bg-text-color(#fff);
|
||||
|
||||
.reveal a {
|
||||
line-height: 1.3em;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
@@ -7,43 +7,42 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #00008B;
|
||||
$active-color: #00008b;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #fff,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #fff,
|
||||
|
||||
$main-color: #000,
|
||||
$main-font: #{'Lato', sans-serif},
|
||||
$main-color: #000,
|
||||
$main-font: "'Lato', sans-serif",
|
||||
|
||||
$heading-color: #000,
|
||||
$heading-font: #{'News Cycle', Impact, sans-serif},
|
||||
$heading-font-weight: 600,
|
||||
$heading-color: #000,
|
||||
$heading-font: "'News Cycle', Impact, sans-serif",
|
||||
$heading-font-weight: 600,
|
||||
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1.0em,
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 20% ),
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 20%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$overlay-element-bg-color: #{0, 0, 0},
|
||||
$overlay-element-fg-color: #{240, 240, 240}
|
||||
$overlay-element-bg-color: '0, 0, 0',
|
||||
$overlay-element-fg-color: '240, 240, 240'
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("https://fonts.googleapis.com/css?family=News+Cycle:400,700");
|
||||
@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic");
|
||||
@import url('https://fonts.googleapis.com/css?family=News+Cycle:400,700');
|
||||
@import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic');
|
||||
|
||||
// Change text when the background is inverted
|
||||
@include mixins.dark-bg-text-color(#fff);
|
||||
|
@@ -5,39 +5,38 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #2a76dd;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background: radial-gradient( #f7fbfc, #add9e4 ),
|
||||
$background-color: #f7fbfc,
|
||||
@use 'template/settings' with (
|
||||
$background: radial-gradient(#f7fbfc, #add9e4),
|
||||
$background-color: #f7fbfc,
|
||||
|
||||
$main-color: #333,
|
||||
$main-font: #{'Open Sans', sans-serif},
|
||||
$main-color: #333,
|
||||
$main-font: "'Open Sans', sans-serif",
|
||||
|
||||
$heading-color: #333,
|
||||
$heading-font: #{'Quicksand', sans-serif},
|
||||
$heading-letter-spacing: -0.05em,
|
||||
$heading-color: #333,
|
||||
$heading-font: "'Quicksand', sans-serif",
|
||||
$heading-letter-spacing: -0.05em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 15% ),
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 15%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$overlay-element-bg-color: #{0, 0, 0},
|
||||
$overlay-element-fg-color: #{240, 240, 240}
|
||||
$overlay-element-bg-color: '0 0 0',
|
||||
$overlay-element-fg-color: '240 240 240'
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic");
|
||||
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700");
|
||||
@import url('https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic');
|
||||
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700');
|
||||
|
||||
// Change text when the background is inverted
|
||||
@include mixins.dark-bg-text-color(#fff);
|
||||
|
@@ -4,52 +4,51 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
// Solarized colors by Ethan Schoonover
|
||||
$base03: #002b36;
|
||||
$base02: #073642;
|
||||
$base01: #586e75;
|
||||
$base00: #657b83;
|
||||
$base0: #839496;
|
||||
$base1: #93a1a1;
|
||||
$base2: #eee8d5;
|
||||
$base3: #fdf6e3;
|
||||
$yellow: #b58900;
|
||||
$orange: #cb4b16;
|
||||
$red: #dc322f;
|
||||
$magenta: #d33682;
|
||||
$violet: #6c71c4;
|
||||
$blue: #268bd2;
|
||||
$cyan: #2aa198;
|
||||
$green: #859900;
|
||||
$base03: #002b36;
|
||||
$base02: #073642;
|
||||
$base01: #586e75;
|
||||
$base00: #657b83;
|
||||
$base0: #839496;
|
||||
$base1: #93a1a1;
|
||||
$base2: #eee8d5;
|
||||
$base3: #fdf6e3;
|
||||
$yellow: #b58900;
|
||||
$orange: #cb4b16;
|
||||
$red: #dc322f;
|
||||
$magenta: #d33682;
|
||||
$violet: #6c71c4;
|
||||
$blue: #268bd2;
|
||||
$cyan: #2aa198;
|
||||
$green: #859900;
|
||||
|
||||
$active-color: $blue;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: $base3,
|
||||
@use 'template/settings' with (
|
||||
$background-color: $base3,
|
||||
|
||||
$main-color: $base00,
|
||||
$heading-color: $base01,
|
||||
$main-color: $base00,
|
||||
$heading-color: $base01,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 20% ),
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 20%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $magenta,
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $magenta,
|
||||
|
||||
$overlay-element-bg-color: #{0, 0, 0},
|
||||
$overlay-element-fg-color: #{240, 240, 240}
|
||||
$overlay-element-bg-color: '0 0 0',
|
||||
$overlay-element-fg-color: '240 240 240'
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/league-gothic/league-gothic.css");
|
||||
@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic");
|
||||
@import url('./fonts/league-gothic/league-gothic.css');
|
||||
@import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic');
|
||||
|
||||
// Change text when the background is inverted
|
||||
@include mixins.dark-bg-text-color(#fff);
|
||||
|
@@ -1,15 +1,27 @@
|
||||
@mixin light-bg-text-color( $color ) {
|
||||
@mixin light-bg-text-color($color) {
|
||||
section.has-light-background {
|
||||
&, h1, h2, h3, h4, h5, h6 {
|
||||
&,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin dark-bg-text-color( $color ) {
|
||||
@mixin dark-bg-text-color($color) {
|
||||
section.has-dark-background {
|
||||
&, h1, h2, h3, h4, h5, h6 {
|
||||
&,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -32,12 +32,12 @@ $heading1-text-shadow: none !default;
|
||||
$heading1-size: 3.77em !default;
|
||||
$heading2-size: 2.11em !default;
|
||||
$heading3-size: 1.55em !default;
|
||||
$heading4-size: 1.00em !default;
|
||||
$heading4-size: 1em !default;
|
||||
|
||||
$code-font: monospace !default;
|
||||
|
||||
// Links and actions
|
||||
$link-color: #13DAEC !default;
|
||||
$link-color: #13daec !default;
|
||||
$link-color-dark: color.scale($link-color, $lightness: -15%) !default;
|
||||
$link-color-hover: color.scale($link-color, $lightness: 20%) !default;
|
||||
|
||||
@@ -52,47 +52,47 @@ $overlay-element-fg-color: 0, 0, 0 !default;
|
||||
|
||||
// Expose all variables to the DOM
|
||||
:root {
|
||||
// Background of the presentation
|
||||
--r-background: #{$background};
|
||||
--r-background-color: #{$background-color};
|
||||
// Background of the presentation
|
||||
--r-background: #{$background};
|
||||
--r-background-color: #{$background-color};
|
||||
|
||||
// Primary/body text
|
||||
--r-main-font: #{$main-font};
|
||||
--r-main-font-size: #{$main-font-size};
|
||||
--r-main-color: #{$main-color};
|
||||
// Primary/body text
|
||||
--r-main-font: #{$main-font};
|
||||
--r-main-font-size: #{$main-font-size};
|
||||
--r-main-color: #{$main-color};
|
||||
|
||||
// Vertical spacing between blocks of text
|
||||
--r-block-margin: #{$block-margin};
|
||||
// Vertical spacing between blocks of text
|
||||
--r-block-margin: #{$block-margin};
|
||||
|
||||
// Headings
|
||||
--r-heading-margin: #{$heading-margin};
|
||||
--r-heading-font: #{$heading-font};
|
||||
--r-heading-color: #{$heading-color};
|
||||
--r-heading-line-height: #{$heading-line-height};
|
||||
--r-heading-letter-spacing: #{$heading-letter-spacing};
|
||||
--r-heading-text-transform: #{$heading-text-transform};
|
||||
--r-heading-text-shadow: #{$heading-text-shadow};
|
||||
--r-heading-font-weight: #{$heading-font-weight};
|
||||
--r-heading1-text-shadow: #{$heading1-text-shadow};
|
||||
// Headings
|
||||
--r-heading-margin: #{$heading-margin};
|
||||
--r-heading-font: #{$heading-font};
|
||||
--r-heading-color: #{$heading-color};
|
||||
--r-heading-line-height: #{$heading-line-height};
|
||||
--r-heading-letter-spacing: #{$heading-letter-spacing};
|
||||
--r-heading-text-transform: #{$heading-text-transform};
|
||||
--r-heading-text-shadow: #{$heading-text-shadow};
|
||||
--r-heading-font-weight: #{$heading-font-weight};
|
||||
--r-heading1-text-shadow: #{$heading1-text-shadow};
|
||||
|
||||
--r-heading1-size: #{$heading1-size};
|
||||
--r-heading2-size: #{$heading2-size};
|
||||
--r-heading3-size: #{$heading3-size};
|
||||
--r-heading4-size: #{$heading4-size};
|
||||
--r-heading1-size: #{$heading1-size};
|
||||
--r-heading2-size: #{$heading2-size};
|
||||
--r-heading3-size: #{$heading3-size};
|
||||
--r-heading4-size: #{$heading4-size};
|
||||
|
||||
--r-code-font: #{$code-font};
|
||||
--r-code-font: #{$code-font};
|
||||
|
||||
// Links and actions
|
||||
--r-link-color: #{$link-color};
|
||||
--r-link-color-dark: #{$link-color-dark};
|
||||
--r-link-color-hover: #{$link-color-hover};
|
||||
// Links and actions
|
||||
--r-link-color: #{$link-color};
|
||||
--r-link-color-dark: #{$link-color-dark};
|
||||
--r-link-color-hover: #{$link-color-hover};
|
||||
|
||||
// Text selection
|
||||
--r-selection-background-color: #{$selection-background-color};
|
||||
--r-selection-color: #{$selection-color};
|
||||
// Text selection
|
||||
--r-selection-background-color: #{$selection-background-color};
|
||||
--r-selection-color: #{$selection-color};
|
||||
|
||||
// Colors used for UI elements that are overlaid on top of
|
||||
// the presentation
|
||||
--r-overlay-element-bg-color: #{$overlay-element-bg-color};
|
||||
--r-overlay-element-fg-color: #{$overlay-element-fg-color};
|
||||
}
|
||||
// Colors used for UI elements that are overlaid on top of
|
||||
// the presentation
|
||||
--r-overlay-element-bg-color: #{$overlay-element-bg-color};
|
||||
--r-overlay-element-fg-color: #{$overlay-element-fg-color};
|
||||
}
|
||||
|
@@ -29,7 +29,7 @@
|
||||
}
|
||||
|
||||
.reveal .slides section,
|
||||
.reveal .slides section>section {
|
||||
.reveal .slides section > section {
|
||||
line-height: 1.3;
|
||||
font-weight: inherit;
|
||||
}
|
||||
@@ -58,16 +58,23 @@
|
||||
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 {
|
||||
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
|
||||
*********************************************/
|
||||
@@ -153,12 +160,12 @@
|
||||
|
||||
font-style: italic;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
box-shadow: 0px 0px 2px rgba(0,0,0,0.2);
|
||||
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 blockquote p:first-child,
|
||||
.reveal blockquote p:last-child {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.reveal q {
|
||||
font-style: italic;
|
||||
@@ -219,13 +226,13 @@
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
.reveal table th[align="center"],
|
||||
.reveal table td[align="center"] {
|
||||
.reveal table th[align='center'],
|
||||
.reveal table td[align='center'] {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.reveal table th[align="right"],
|
||||
.reveal table td[align="right"] {
|
||||
.reveal table th[align='right'],
|
||||
.reveal table td[align='right'] {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@@ -258,7 +265,6 @@
|
||||
margin: var(--r-block-margin) 0;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************
|
||||
* LINKS
|
||||
*********************************************/
|
||||
@@ -266,21 +272,20 @@
|
||||
.reveal a {
|
||||
color: var(--r-link-color);
|
||||
text-decoration: none;
|
||||
transition: color .15s ease;
|
||||
transition: color 0.15s ease;
|
||||
}
|
||||
.reveal a:hover {
|
||||
color: var(--r-link-color-hover);
|
||||
text-shadow: none;
|
||||
border: none;
|
||||
}
|
||||
.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
|
||||
*********************************************/
|
||||
@@ -291,7 +296,7 @@
|
||||
}
|
||||
|
||||
.reveal a .r-frame {
|
||||
transition: all .15s linear;
|
||||
transition: all 0.15s linear;
|
||||
}
|
||||
|
||||
.reveal a:hover .r-frame {
|
||||
@@ -299,7 +304,6 @@
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
|
||||
}
|
||||
|
||||
|
||||
/*********************************************
|
||||
* NAVIGATION CONTROLS
|
||||
*********************************************/
|
||||
@@ -308,21 +312,20 @@
|
||||
color: var(--r-link-color);
|
||||
}
|
||||
|
||||
|
||||
/*********************************************
|
||||
* PROGRESS BAR
|
||||
*********************************************/
|
||||
|
||||
.reveal .progress {
|
||||
background: rgba(0,0,0,0.2);
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
color: var(--r-link-color);
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
* PRINT BACKGROUND
|
||||
*********************************************/
|
||||
@media print {
|
||||
.backgrounds {
|
||||
background-color: var(--r-background-color);
|
||||
}
|
||||
@media print {
|
||||
.backgrounds {
|
||||
background-color: var(--r-background-color);
|
||||
}
|
||||
}
|
||||
|
@@ -8,43 +8,42 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #2a76dd;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #fff,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #fff,
|
||||
|
||||
$main-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$main-font-size: 42px,
|
||||
$main-color: #000,
|
||||
$main-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$main-font-size: 42px,
|
||||
$main-color: #000,
|
||||
|
||||
$heading-color: #000,
|
||||
$heading-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$heading-font-weight: 600,
|
||||
$heading-color: #000,
|
||||
$heading-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$heading-font-weight: 600,
|
||||
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1.0em,
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 15% ),
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 15%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$overlay-element-bg-color: "0, 0, 0",
|
||||
$overlay-element-fg-color: "240, 240, 240"
|
||||
$overlay-element-bg-color: '0, 0, 0',
|
||||
$overlay-element-fg-color: '240, 240, 240'
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/source-sans-pro/source-sans-pro.css");
|
||||
@import url('./fonts/source-sans-pro/source-sans-pro.css');
|
||||
|
||||
// Change text when the background is inverted
|
||||
@include mixins.dark-bg-text-color(#fff);
|
||||
|
@@ -5,43 +5,42 @@
|
||||
*/
|
||||
|
||||
// Load utils
|
||||
@use "sass:color";
|
||||
@use "template/mixins" as mixins;
|
||||
@use 'sass:color';
|
||||
@use 'template/mixins' as mixins;
|
||||
|
||||
$active-color: #2a76dd;
|
||||
|
||||
// Inject theme variables (with some overrides)
|
||||
@use "template/settings" with (
|
||||
$background-color: #fff,
|
||||
@use 'template/settings' with (
|
||||
$background-color: #fff,
|
||||
|
||||
$main-color: #222,
|
||||
$main-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$main-font-size: 42px,
|
||||
$main-color: #222,
|
||||
$main-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$main-font-size: 42px,
|
||||
|
||||
$heading-color: #222,
|
||||
$heading-font: #{'Source Sans Pro', Helvetica, sans-serif},
|
||||
$heading-font-weight: 600,
|
||||
$heading-color: #222,
|
||||
$heading-font: "'Source Sans Pro', Helvetica, sans-serif",
|
||||
$heading-font-weight: 600,
|
||||
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1.0em,
|
||||
$heading1-size: 2.5em,
|
||||
$heading2-size: 1.6em,
|
||||
$heading3-size: 1.3em,
|
||||
$heading4-size: 1em,
|
||||
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale( $active-color, $lightness: 15% ),
|
||||
$link-color: $active-color,
|
||||
$link-color-hover: color.scale($active-color, $lightness: 15%),
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$selection-color: #fff,
|
||||
$selection-background-color: $active-color,
|
||||
|
||||
$overlay-element-bg-color: #{0, 0, 0},
|
||||
$overlay-element-fg-color: #{240, 240, 240}
|
||||
$overlay-element-bg-color: '0 0 0',
|
||||
$overlay-element-fg-color: '240 240 240'
|
||||
);
|
||||
|
||||
// Inject the theme template
|
||||
@use "template/theme";
|
||||
@use 'template/theme';
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url("./fonts/source-sans-pro/source-sans-pro.css");
|
||||
@import url('./fonts/source-sans-pro/source-sans-pro.css');
|
||||
|
||||
// Change text when the background is inverted
|
||||
@include mixins.dark-bg-text-color(#fff);
|
||||
|
1442
js/config.ts
1442
js/config.ts
File diff suppressed because it is too large
Load Diff
24
js/index.ts
24
js/index.ts
@@ -14,8 +14,8 @@ import Deck, { VERSION } from './reveal.js';
|
||||
* });
|
||||
*/
|
||||
let Reveal: {
|
||||
initialize: (options?: Config) => Promise<void>;
|
||||
[key: string]: any;
|
||||
initialize: (options?: Config) => Promise<void>;
|
||||
[key: string]: any;
|
||||
} = Deck;
|
||||
|
||||
/**
|
||||
@@ -35,13 +35,13 @@ type RevealApiFunction = (...args: any[]) => any;
|
||||
let enqueuedAPICalls: RevealApiFunction[] = [];
|
||||
|
||||
Reveal.initialize = (options?: Config) => {
|
||||
// Create our singleton reveal.js instance
|
||||
Object.assign(Reveal, new Deck(document.querySelector('.reveal'), options));
|
||||
// Create our singleton reveal.js instance
|
||||
Object.assign(Reveal, new Deck(document.querySelector('.reveal'), options));
|
||||
|
||||
// Invoke any enqueued API calls
|
||||
enqueuedAPICalls.map((method) => method(Reveal));
|
||||
// Invoke any enqueued API calls
|
||||
enqueuedAPICalls.map((method) => method(Reveal));
|
||||
|
||||
return Reveal.initialize();
|
||||
return Reveal.initialize();
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -51,11 +51,11 @@ Reveal.initialize = (options?: Config) => {
|
||||
* of them when Reveal.initialize is called.
|
||||
*/
|
||||
['configure', 'on', 'off', 'addEventListener', 'removeEventListener', 'registerPlugin'].forEach(
|
||||
(method) => {
|
||||
Reveal[method] = (...args: any) => {
|
||||
enqueuedAPICalls.push((deck) => deck[method].call(null, ...args));
|
||||
};
|
||||
}
|
||||
(method) => {
|
||||
Reveal[method] = (...args: any) => {
|
||||
enqueuedAPICalls.push((deck) => deck[method].call(null, ...args));
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
Reveal.isReady = () => false;
|
||||
|
252
package.json
252
package.json
@@ -1,128 +1,128 @@
|
||||
{
|
||||
"name": "reveal.js",
|
||||
"version": "5.2.1",
|
||||
"description": "The HTML Presentation Framework",
|
||||
"homepage": "https://revealjs.com",
|
||||
"subdomain": "revealjs",
|
||||
"license": "MIT",
|
||||
"main": "dist/reveal.js",
|
||||
"module": "dist/reveal.mjs",
|
||||
"types": "dist/reveal.d.ts",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/reveal.mjs",
|
||||
"require": "./dist/reveal.js",
|
||||
"default": "./dist/reveal.js"
|
||||
},
|
||||
"./reveal.css": "./dist/reveal.css",
|
||||
"./reset.css": "./dist/reset.css",
|
||||
"./theme/*": "./dist/theme/*",
|
||||
"./plugin/highlight": {
|
||||
"import": "./dist/plugin/highlight.mjs",
|
||||
"require": "./dist/plugin/highlight.js",
|
||||
"default": "./dist/plugin/highlight.js"
|
||||
},
|
||||
"./plugin/markdown": {
|
||||
"import": "./dist/plugin/markdown.mjs",
|
||||
"require": "./dist/plugin/markdown.js",
|
||||
"default": "./dist/plugin/markdown.js"
|
||||
},
|
||||
"./plugin/math": {
|
||||
"import": "./dist/plugin/math.mjs",
|
||||
"require": "./dist/plugin/math.js",
|
||||
"default": "./dist/plugin/math.js"
|
||||
},
|
||||
"./plugin/notes": {
|
||||
"import": "./dist/plugin/notes.mjs",
|
||||
"require": "./dist/plugin/notes.js",
|
||||
"default": "./dist/plugin/notes.js"
|
||||
},
|
||||
"./plugin/search": {
|
||||
"import": "./dist/plugin/search.mjs",
|
||||
"require": "./dist/plugin/search.js",
|
||||
"default": "./dist/plugin/search.js"
|
||||
},
|
||||
"./plugin/zoom": {
|
||||
"import": "./dist/plugin/zoom.mjs",
|
||||
"require": "./dist/plugin/zoom.js",
|
||||
"default": "./dist/plugin/zoom.js"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "npm run start",
|
||||
"start": "vite --port 8000",
|
||||
"build:core": "tsc && vite build && vite build -c vite.config.styles.ts",
|
||||
"build:styles": "vite build -c vite.config.styles.ts",
|
||||
"build": "tsc && vite build && vite build -c vite.config.styles.ts && vite build -c plugin/highlight/vite.config.ts && vite build -c plugin/markdown/vite.config.ts && vite build -c plugin/math/vite.config.ts && vite build -c plugin/notes/vite.config.ts && vite build -c plugin/search/vite.config.ts && vite build -c plugin/zoom/vite.config.ts",
|
||||
"test": "node test.js"
|
||||
},
|
||||
"author": {
|
||||
"name": "Hakim El Hattab",
|
||||
"email": "hakim.elhattab@gmail.com",
|
||||
"web": "https://hakim.se"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/hakimel/reveal.js.git"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
},
|
||||
"keywords": [
|
||||
"reveal",
|
||||
"slides",
|
||||
"presentation"
|
||||
],
|
||||
"devDependencies": {
|
||||
"fitty": "^2.4.2",
|
||||
"glob": "^10.3.10",
|
||||
"highlight.js": "^11.10.0",
|
||||
"marked": "^4.3.0",
|
||||
"node-qunit-puppeteer": "^2.2.0",
|
||||
"qunit": "^2.22.0",
|
||||
"sass": "^1.80.2",
|
||||
"typescript": "^5.2.2",
|
||||
"vite": "^5.4.9",
|
||||
"vite-plugin-dts": "^4.2.4"
|
||||
},
|
||||
"browserslist": "> 2%, not dead",
|
||||
"eslintConfig": {
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true
|
||||
},
|
||||
"parser": "@babel/eslint-parser",
|
||||
"parserOptions": {
|
||||
"sourceType": "module",
|
||||
"allowImportExportEverywhere": true,
|
||||
"requireConfigFile": false
|
||||
},
|
||||
"globals": {
|
||||
"module": false,
|
||||
"console": false,
|
||||
"unescape": false,
|
||||
"define": false,
|
||||
"exports": false
|
||||
},
|
||||
"rules": {
|
||||
"curly": 0,
|
||||
"eqeqeq": 2,
|
||||
"wrap-iife": [
|
||||
2,
|
||||
"any"
|
||||
],
|
||||
"no-use-before-define": [
|
||||
2,
|
||||
{
|
||||
"functions": false
|
||||
}
|
||||
],
|
||||
"new-cap": 2,
|
||||
"no-caller": 2,
|
||||
"dot-notation": 0,
|
||||
"no-eq-null": 2,
|
||||
"no-unused-expressions": 0
|
||||
}
|
||||
}
|
||||
"name": "reveal.js",
|
||||
"version": "5.0.5",
|
||||
"description": "The HTML Presentation Framework",
|
||||
"homepage": "https://revealjs.com",
|
||||
"subdomain": "revealjs",
|
||||
"license": "MIT",
|
||||
"main": "dist/reveal.js",
|
||||
"module": "dist/reveal.mjs",
|
||||
"types": "dist/reveal.d.ts",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/reveal.mjs",
|
||||
"require": "./dist/reveal.js",
|
||||
"default": "./dist/reveal.js"
|
||||
},
|
||||
"./reveal.css": "./dist/reveal.css",
|
||||
"./reset.css": "./dist/reset.css",
|
||||
"./theme/*": "./dist/theme/*",
|
||||
"./plugin/highlight": {
|
||||
"import": "./dist/plugin/highlight.mjs",
|
||||
"require": "./dist/plugin/highlight.js",
|
||||
"default": "./dist/plugin/highlight.js"
|
||||
},
|
||||
"./plugin/markdown": {
|
||||
"import": "./dist/plugin/markdown.mjs",
|
||||
"require": "./dist/plugin/markdown.js",
|
||||
"default": "./dist/plugin/markdown.js"
|
||||
},
|
||||
"./plugin/math": {
|
||||
"import": "./dist/plugin/math.mjs",
|
||||
"require": "./dist/plugin/math.js",
|
||||
"default": "./dist/plugin/math.js"
|
||||
},
|
||||
"./plugin/notes": {
|
||||
"import": "./dist/plugin/notes.mjs",
|
||||
"require": "./dist/plugin/notes.js",
|
||||
"default": "./dist/plugin/notes.js"
|
||||
},
|
||||
"./plugin/search": {
|
||||
"import": "./dist/plugin/search.mjs",
|
||||
"require": "./dist/plugin/search.js",
|
||||
"default": "./dist/plugin/search.js"
|
||||
},
|
||||
"./plugin/zoom": {
|
||||
"import": "./dist/plugin/zoom.mjs",
|
||||
"require": "./dist/plugin/zoom.js",
|
||||
"default": "./dist/plugin/zoom.js"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "npm run start",
|
||||
"start": "vite --port 8000",
|
||||
"build:core": "tsc && vite build && vite build -c vite.config.styles.ts",
|
||||
"build:styles": "vite build -c vite.config.styles.ts",
|
||||
"build": "tsc && vite build && vite build -c vite.config.styles.ts && vite build -c plugin/highlight/vite.config.ts && vite build -c plugin/markdown/vite.config.ts && vite build -c plugin/math/vite.config.ts && vite build -c plugin/notes/vite.config.ts && vite build -c plugin/search/vite.config.ts && vite build -c plugin/zoom/vite.config.ts",
|
||||
"test": "node test.js"
|
||||
},
|
||||
"author": {
|
||||
"name": "Hakim El Hattab",
|
||||
"email": "hakim.elhattab@gmail.com",
|
||||
"web": "https://hakim.se"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/hakimel/reveal.js.git"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
},
|
||||
"keywords": [
|
||||
"reveal",
|
||||
"slides",
|
||||
"presentation"
|
||||
],
|
||||
"devDependencies": {
|
||||
"fitty": "^2.4.2",
|
||||
"glob": "^10.3.10",
|
||||
"highlight.js": "^11.10.0",
|
||||
"marked": "^4.3.0",
|
||||
"node-qunit-puppeteer": "^2.2.0",
|
||||
"qunit": "^2.22.0",
|
||||
"sass": "^1.80.2",
|
||||
"typescript": "^5.2.2",
|
||||
"vite": "^5.4.9",
|
||||
"vite-plugin-dts": "^4.2.4"
|
||||
},
|
||||
"browserslist": "> 2%, not dead",
|
||||
"eslintConfig": {
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true
|
||||
},
|
||||
"parser": "@babel/eslint-parser",
|
||||
"parserOptions": {
|
||||
"sourceType": "module",
|
||||
"allowImportExportEverywhere": true,
|
||||
"requireConfigFile": false
|
||||
},
|
||||
"globals": {
|
||||
"module": false,
|
||||
"console": false,
|
||||
"unescape": false,
|
||||
"define": false,
|
||||
"exports": false
|
||||
},
|
||||
"rules": {
|
||||
"curly": 0,
|
||||
"eqeqeq": 2,
|
||||
"wrap-iife": [
|
||||
2,
|
||||
"any"
|
||||
],
|
||||
"no-use-before-define": [
|
||||
2,
|
||||
{
|
||||
"functions": false
|
||||
}
|
||||
],
|
||||
"new-cap": 2,
|
||||
"no-caller": 2,
|
||||
"dot-notation": 0,
|
||||
"no-eq-null": 2,
|
||||
"no-unused-expressions": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { resolve } from 'path';
|
||||
import { defineConfig } from 'vite'
|
||||
import { defineConfig } from 'vite';
|
||||
import { appendExtension } from '../../vite.config.ts';
|
||||
|
||||
// Once Vite supports multiple entries for plugins, this build can
|
||||
@@ -15,8 +15,8 @@ export default defineConfig({
|
||||
'plugin/markdown': resolve(__dirname, 'index.js'),
|
||||
},
|
||||
name: 'RevealMarkdown',
|
||||
fileName: appendExtension
|
||||
}
|
||||
fileName: appendExtension,
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
})
|
||||
});
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { resolve } from 'path';
|
||||
import { defineConfig } from 'vite'
|
||||
import { defineConfig } from 'vite';
|
||||
import { appendExtension } from '../../vite.config.ts';
|
||||
|
||||
// Once Vite supports multiple entries for plugins, this build can
|
||||
@@ -15,8 +15,8 @@ export default defineConfig({
|
||||
'plugin/math': resolve(__dirname, 'index.js'),
|
||||
},
|
||||
name: 'RevealMath',
|
||||
fileName: appendExtension
|
||||
}
|
||||
fileName: appendExtension,
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
})
|
||||
});
|
||||
|
@@ -70,7 +70,6 @@ based on dark.css by Ivan Sagalaev
|
||||
color: #7f9f7f;
|
||||
}
|
||||
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
108
test.js
108
test.js
@@ -13,70 +13,70 @@ const combinedResults = { passed: 0, failed: 0, total: 0, runtime: 0 };
|
||||
|
||||
// Create and start Vite server
|
||||
const startServer = async () => {
|
||||
const server = await createServer({
|
||||
root: __dirname,
|
||||
server: {
|
||||
port: 8009,
|
||||
},
|
||||
});
|
||||
await server.listen();
|
||||
return server;
|
||||
const server = await createServer({
|
||||
root: __dirname,
|
||||
server: {
|
||||
port: 8009,
|
||||
},
|
||||
});
|
||||
await server.listen();
|
||||
return server;
|
||||
};
|
||||
|
||||
// Run tests
|
||||
const runTests = async (server) => {
|
||||
await Promise.all(
|
||||
testFiles.map(async (file) => {
|
||||
const qunitArgs = {
|
||||
targetUrl: `http://localhost:8009/${file}`,
|
||||
timeout: 30000,
|
||||
redirectConsole: false,
|
||||
puppeteerArgs: ['--allow-file-access-from-files'],
|
||||
};
|
||||
await Promise.all(
|
||||
testFiles.map(async (file) => {
|
||||
const qunitArgs = {
|
||||
targetUrl: `http://localhost:8009/${file}`,
|
||||
timeout: 30000,
|
||||
redirectConsole: false,
|
||||
puppeteerArgs: ['--allow-file-access-from-files'],
|
||||
};
|
||||
|
||||
try {
|
||||
const result = await runQunitPuppeteer(qunitArgs);
|
||||
combinedResults.passed += result.stats.passed;
|
||||
combinedResults.failed += result.stats.failed;
|
||||
combinedResults.total += result.stats.total;
|
||||
combinedResults.runtime += result.stats.runtime;
|
||||
try {
|
||||
const result = await runQunitPuppeteer(qunitArgs);
|
||||
combinedResults.passed += result.stats.passed;
|
||||
combinedResults.failed += result.stats.failed;
|
||||
combinedResults.total += result.stats.total;
|
||||
combinedResults.runtime += result.stats.runtime;
|
||||
|
||||
if (result.stats.failed > 0) {
|
||||
console.log(
|
||||
`${'!'} ${file} [${result.stats.passed}/${result.stats.total}] in ${
|
||||
result.stats.runtime
|
||||
}ms`.red
|
||||
);
|
||||
printFailedTests(result, console);
|
||||
} else {
|
||||
console.log(
|
||||
`${'✔'} ${file} [${result.stats.passed}/${result.stats.total}] in ${
|
||||
result.stats.runtime
|
||||
}ms`.green
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error running tests for ${file}:`, error);
|
||||
}
|
||||
})
|
||||
);
|
||||
if (result.stats.failed > 0) {
|
||||
console.log(
|
||||
`${'!'} ${file} [${result.stats.passed}/${result.stats.total}] in ${
|
||||
result.stats.runtime
|
||||
}ms`.red
|
||||
);
|
||||
printFailedTests(result, console);
|
||||
} else {
|
||||
console.log(
|
||||
`${'✔'} ${file} [${result.stats.passed}/${result.stats.total}] in ${
|
||||
result.stats.runtime
|
||||
}ms`.green
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error running tests for ${file}:`, error);
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
console.log(
|
||||
`\n${combinedResults.passed}/${combinedResults.total} tests passed, ${combinedResults.failed} failed, ${combinedResults.runtime}ms runtime`
|
||||
);
|
||||
console.log(
|
||||
`\n${combinedResults.passed}/${combinedResults.total} tests passed, ${combinedResults.failed} failed, ${combinedResults.runtime}ms runtime`
|
||||
);
|
||||
|
||||
// Exit with status code 1 if any tests failed, otherwise exit with 0
|
||||
process.exit(combinedResults.failed > 0 ? 1 : 0);
|
||||
// Exit with status code 1 if any tests failed, otherwise exit with 0
|
||||
process.exit(combinedResults.failed > 0 ? 1 : 0);
|
||||
};
|
||||
|
||||
// Main execution
|
||||
(async () => {
|
||||
try {
|
||||
const server = await startServer();
|
||||
await runTests(server);
|
||||
await server.close();
|
||||
} catch (error) {
|
||||
console.error('An error occurred:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
try {
|
||||
const server = await startServer();
|
||||
await runTests(server);
|
||||
await server.close();
|
||||
} catch (error) {
|
||||
console.error('An error occurred:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
})();
|
||||
|
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true,
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
||||
"module": "ESNext",
|
||||
"skipLibCheck": true,
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true,
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
||||
"module": "ESNext",
|
||||
"skipLibCheck": true,
|
||||
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx",
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx",
|
||||
|
||||
/* Linting */
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
},
|
||||
"include": ["js"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
/* Linting */
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
},
|
||||
"include": ["js"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
}
|
||||
|
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"skipLibCheck": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"skipLibCheck": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
}
|
||||
|
@@ -4,34 +4,34 @@ import fs from 'fs';
|
||||
|
||||
// List all theme files in the css/theme directory
|
||||
const themeFiles = fs
|
||||
.readdirSync(resolve(__dirname, 'css/theme'))
|
||||
.filter((file) => file.endsWith('.scss'));
|
||||
.readdirSync(resolve(__dirname, 'css/theme'))
|
||||
.filter((file) => file.endsWith('.scss'));
|
||||
const themeEntries = themeFiles.reduce((acc, file) => {
|
||||
acc[`theme/${file.replace('.scss', '')}`] = resolve(__dirname, `css/theme/${file}`);
|
||||
return acc;
|
||||
acc[`theme/${file.replace('.scss', '')}`] = resolve(__dirname, `css/theme/${file}`);
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
export default defineConfig({
|
||||
root: './',
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
api: 'modern-compiler'
|
||||
}
|
||||
}
|
||||
},
|
||||
build: {
|
||||
emptyOutDir: false,
|
||||
cssCodeSplit: true,
|
||||
lib: {
|
||||
formats: ['es'],
|
||||
entry: {
|
||||
reveal: resolve(__dirname, 'css/reveal.scss'),
|
||||
reset: resolve(__dirname, 'css/reset.css'),
|
||||
root: './',
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
api: 'modern-compiler',
|
||||
},
|
||||
},
|
||||
},
|
||||
build: {
|
||||
emptyOutDir: false,
|
||||
cssCodeSplit: true,
|
||||
lib: {
|
||||
formats: ['es'],
|
||||
entry: {
|
||||
reveal: resolve(__dirname, 'css/reveal.scss'),
|
||||
reset: resolve(__dirname, 'css/reset.css'),
|
||||
|
||||
...themeEntries,
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
...themeEntries,
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
});
|
||||
|
@@ -4,43 +4,43 @@ import { defineConfig } from 'vite';
|
||||
import dts from 'vite-plugin-dts';
|
||||
|
||||
export const appendExtension = (format: ModuleFormat, name: String): string => {
|
||||
if (format === 'es') {
|
||||
return `${name}.mjs`;
|
||||
} else {
|
||||
return `${name}.js`;
|
||||
}
|
||||
if (format === 'es') {
|
||||
return `${name}.mjs`;
|
||||
} else {
|
||||
return `${name}.js`;
|
||||
}
|
||||
};
|
||||
|
||||
export default defineConfig({
|
||||
build: {
|
||||
emptyOutDir: true,
|
||||
lib: {
|
||||
formats: ['es', 'umd'],
|
||||
entry: resolve(__dirname, 'js/index.ts'),
|
||||
name: 'Reveal',
|
||||
fileName: (format, entryName) => {
|
||||
return appendExtension(format, 'reveal');
|
||||
},
|
||||
},
|
||||
rollupOptions: {
|
||||
output: {
|
||||
assetFileNames: 'reveal.[ext]',
|
||||
},
|
||||
},
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
// Matches the exported paths in package.json
|
||||
'reveal.js/plugin': './plugin',
|
||||
'reveal.js': '/js',
|
||||
},
|
||||
},
|
||||
plugins: [dts({ insertTypesEntry: true, rollupTypes: true })],
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
api: 'modern-compiler'
|
||||
}
|
||||
}
|
||||
},
|
||||
build: {
|
||||
emptyOutDir: true,
|
||||
lib: {
|
||||
formats: ['es', 'umd'],
|
||||
entry: resolve(__dirname, 'js/index.ts'),
|
||||
name: 'Reveal',
|
||||
fileName: (format, entryName) => {
|
||||
return appendExtension(format, 'reveal');
|
||||
},
|
||||
},
|
||||
rollupOptions: {
|
||||
output: {
|
||||
assetFileNames: 'reveal.[ext]',
|
||||
},
|
||||
},
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
// Matches the exported paths in package.json
|
||||
'reveal.js/plugin': './plugin',
|
||||
'reveal.js': '/js',
|
||||
},
|
||||
},
|
||||
plugins: [dts({ insertTypesEntry: true, rollupTypes: true })],
|
||||
css: {
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
api: 'modern-compiler',
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
Reference in New Issue
Block a user