1
0
mirror of https://github.com/hakimel/reveal.js.git synced 2025-09-10 14:40:47 +02:00

Compare commits

...

343 Commits

Author SHA1 Message Date
Hakim El Hattab
a4130839ee migrated utils to ts, exclude filendings in imports 2025-06-08 21:57:12 +02:00
Hakim El Hattab
2cba3fb7db update 'npm run package' task to also swap out dynamic imports for static 2025-06-08 21:20:16 +02:00
Hakim El Hattab
c330bb3768 dependency update 2025-06-08 21:17:03 +02:00
Hakim El Hattab
4506894770 initial work on zip packaging task 2025-05-22 16:24:24 +02:00
Hakim El Hattab
6e98988b32 content tweak for demo 2025-05-22 16:09:58 +02:00
Hakim El Hattab
3d762539a3 remove source sans from themes where it isn't used 2025-05-22 15:58:05 +02:00
Hakim El Hattab
7103c20916 one more attempt at excluding dist from codespell 2025-05-09 14:18:04 +02:00
Hakim El Hattab
18c9cc527c fix bad imports in examples, add codespell skip list to action 2025-05-09 14:12:26 +02:00
Hakim El Hattab
53855d4a49 rebase and rebuild 2025-05-09 13:58:14 +02:00
Hakim El Hattab
3ee52e140e ignore dist in spellcheck 2025-05-09 13:39:15 +02:00
Hakim El Hattab
ad2a206694 dep upgrades 2025-05-09 13:39:15 +02:00
Hakim El Hattab
659303e7bb audit fix and rebuild after merge 2025-05-09 13:39:15 +02:00
Hakim El Hattab
1b075c8aa8 refactored tests 2025-05-09 13:39:05 +02:00
Hakim El Hattab
f8a33e1929 rebuild assets and fix issues after master rebase 2025-05-09 13:39:05 +02:00
Hakim El Hattab
7fff2f59f0 fix and format examples decks 2025-05-09 13:38:33 +02:00
Hakim El Hattab
ce890a6780 format main html files 2025-05-09 13:38:33 +02:00
Hakim El Hattab
faf8fb9c58 prettier config, format files 2025-05-09 13:38:33 +02:00
Hakim El Hattab
94a86f466d refactored all themes to latest sass syntax, fixes deprecation warnings 2025-05-09 13:38:33 +02:00
Hakim El Hattab
294d7c2486 setup prettier (not applied until closer to merge) 2025-05-09 13:38:33 +02:00
Hakim El Hattab
900bdd4686 update all dependencies 2025-05-09 13:38:33 +02:00
Hakim El Hattab
d712c148ec bake font into themes, fix broken test, switch tests to mjs 2025-05-09 13:38:21 +02:00
Hakim El Hattab
22a23e43ee rebuild 2025-05-09 13:38:21 +02:00
Hakim El Hattab
d3195019cf remove outdated font fallback formats 2025-05-09 13:38:21 +02:00
Hakim El Hattab
e9ca76c59e drop all gulp dependencies 2025-05-09 13:38:21 +02:00
Hakim El Hattab
a03788be3c run qunit test suite without gulp 2025-05-09 13:38:21 +02:00
Hakim El Hattab
41cca8e576 vite theme build 2025-05-09 13:38:21 +02:00
Hakim El Hattab
a89af36022 switch from gulp to vite to build, add types for reveal.js config 2025-05-09 13:38:21 +02:00
Hakim El Hattab
eb95b14531 overview mode: fix missing thumbs in adjacent stacks with over 10 vertical slides (closes #3754) 2025-04-28 13:24:53 +02:00
Hakim El Hattab
dfc5690c6d add missing font to dracula theme, fixes #3781 2025-03-28 14:15:33 +01:00
Hakim El Hattab
b03a94c6fc distinct active/hover state difference in overview mode #3780 2025-03-28 14:14:59 +01:00
Hakim El Hattab
23926edb87 Merge pull request #3778 from tobi-or-not-tobi/feature/open-active-slide-on-enter
feat: Open the active slide from the overview screen on enter
2025-03-28 14:04:02 +01:00
Hakim El Hattab
70daf8fce6 Merge branch 'master' into feature/open-active-slide-on-enter 2025-03-28 14:03:49 +01:00
Hakim El Hattab
25e52e26af release 5.2.1 2025-03-28 13:51:23 +01:00
Hakim El Hattab
7e96e9ce0a dont show lightboxes over upcoming slide in speaker view 2025-03-28 13:38:58 +01:00
Hakim El Hattab
2f76a34897 add lightbox example to demo deck 2025-03-26 15:08:44 +01:00
tobi-or-not-tobi
9612f7bde0 open the active slide from the overview screen on enter key event 2025-03-25 20:55:36 +01:00
Hakim El Hattab
722b14b89f reduce lightbox header in small windows 2025-03-25 11:58:07 +01:00
Hakim El Hattab
1923a5c7a4 lightbox refactor 2025-03-25 11:14:46 +01:00
Hakim El Hattab
aa9dfc7eb8 sync lightbox between speaker/main window (fixes #3771) 2025-03-25 10:42:41 +01:00
Hakim El Hattab
ac4064b64d Merge pull request #3776 from tobi-or-not-tobi/feature/shift-click-preview-link
Allow users to use meta keys when navigating to preview links
2025-03-25 10:11:34 +01:00
tobi-or-not-tobi
9f7256fe78 Allow users to use meta keys when navigating to preview links 2025-03-25 08:29:03 +01:00
Hakim El Hattab
5c77e86301 Merge pull request #3768 from tobi-or-not-tobi/fix/move-pause-overlay-over-other-overlay
fix: move pause overlay over other overlay
2025-03-24 15:38:27 +01:00
tobi-or-not-tobi
0121173213 fix z-index 2025-03-24 08:56:11 +01:00
tobi-or-not-tobi
7a62643c6a z-index 2025-03-21 15:26:38 +01:00
tobi-or-not-tobi
198e206ad0 build files 2025-03-21 07:17:08 +01:00
tobi-or-not-tobi
1e0a2a7d4a fix pause overlay 2025-03-21 07:09:21 +01:00
Hakim El Hattab
47ee25dd19 build assets 2025-03-20 13:58:22 +01:00
Hakim El Hattab
94716f9e51 add support for data-preview-link on any element type (prev only a) 2025-03-20 13:52:28 +01:00
Hakim El Hattab
b3fd27d071 prevent default keyboard shortcuts while overlay is open #3766 #3767 2025-03-20 11:38:20 +01:00
Hakim El Hattab
edb69c840c update version to 5.2.0 2025-03-19 12:03:33 +01:00
Hakim El Hattab
f11812e0a2 fix theme css conflict 2025-03-19 11:59:39 +01:00
Hakim El Hattab
d5d292f70a config tweak for lightbox demo 2025-03-19 11:29:36 +01:00
Hakim El Hattab
a7b4bb4946 fix css help overlay css conflict 2025-03-19 11:11:35 +01:00
Hakim El Hattab
659472f8a4 rebuild math plugin 2025-03-19 10:53:35 +01:00
Hakim El Hattab
2ac0566941 dont restart background video when it hasn't changed (fixes #3633) 2025-03-19 10:33:13 +01:00
Hakim El Hattab
657543ac96 rename actions 2025-03-19 10:16:05 +01:00
Hakim El Hattab
e7456847c6 spelling fix 2025-03-19 10:14:10 +01:00
Hakim El Hattab
255d55ab8f Merge pull request #3602 from yarikoptic/enh-codespell
codespell: add config + workflow and make it fix some typos it finds
2025-03-19 10:11:48 +01:00
Hakim El Hattab
60401a2740 npm audit fix 2025-03-19 10:02:56 +01:00
Hakim El Hattab
9c6bd42939 Merge pull request #3744 from KlavierCat/fix-security-vulnerability
fix: bump 2 deps to patch security vulnerabilities
2025-03-19 10:02:18 +01:00
Hakim El Hattab
36daed927e update readme 2025-03-14 08:46:56 +01:00
Hakim El Hattab
2059d388f7 dispatch event when showing lightbox or help overlay 2025-02-20 10:30:31 +01:00
Hakim El Hattab
fe67bad092 .overlay -> .r-overlay to reduce risk of conflict, move overlay up to viewport level 2025-02-17 19:59:40 +01:00
Hakim El Hattab
9af726b606 brief transition for overlay 2025-02-17 19:08:43 +01:00
Hakim El Hattab
0950590300 more flexible styling system for overlays 2025-02-05 15:57:14 +01:00
Hakim El Hattab
087eed8dc3 overlay mode refactoring 2025-02-05 14:38:53 +01:00
KlavierCat
8f19e13ab1 fix: bump 2 deps to patch security vulnerabilities 2025-01-31 15:55:28 +00:00
Hakim El Hattab
1b2c39a86e add support image/video lightbox via data-preview-image/video, move overlay into standalone controller 2025-01-31 16:10:15 +01:00
Hakim El Hattab
0524ae855d further refinements to overlay styles 2025-01-29 15:19:47 +01:00
Hakim El Hattab
3ceac9402d remove outdated ff bug fix 2025-01-29 14:34:29 +01:00
Hakim El Hattab
6cebb771ee switch to dvh for reveal.js height, fixes issue with presentations not covering fullviewport in ios 2025-01-24 09:16:36 +01:00
Hakim El Hattab
31ba65ce86 refactored overlays; new icons and reduced selector specificity 2025-01-24 09:15:47 +01:00
Hakim El Hattab
983c6248f7 update controls comment to match other prop descriptions 2025-01-13 13:16:02 +01:00
Hakim El Hattab
6527f4d912 Merge pull request #3716 from gpotter2/controls-for-speaker
Add 'controlsOnlyForSpeaker' option
2025-01-13 13:13:30 +01:00
gpotter2
3751715414 Add controls: 'speaker-only' option 2025-01-11 16:41:06 +01:00
Hakim El Hattab
e15cf92ccd update specs for 6dea2a5094 2024-11-28 14:53:25 +01:00
Hakim El Hattab
6dea2a5094 auto-animate no longer skips matching fragments on adjacent slides 2024-11-28 14:44:01 +01:00
Hakim El Hattab
0d02d8a303 default mathjax config now ignores code tags 2024-11-18 08:26:23 +01:00
Hakim El Hattab
fe4a6e82b0 fix last slide not triggering slidechange in scroll view (closes #3715) 2024-11-11 16:05:34 +01:00
Hakim El Hattab
5a275f223b don't parse math equations in code blocks 2024-11-11 15:35:16 +01:00
Hakim El Hattab
f979ff68e9 fix bug where hiding all except 1 slide in a stack caused controls to break 2024-10-29 15:39:27 +01:00
Hakim El Hattab
a6417ae747 Merge pull request #3701 from dennybiasiolli/fixing-gulp-package
gulp package: fixing encoding before piping to zip
2024-10-29 13:21:51 +01:00
Denny Biasiolli
c9ad332057 gulp package: fixing encoding after updating to gulp 5
Took inspiration from this issue: https://github.com/sindresorhus/gulp-zip/issues/123
2024-10-26 14:00:00 +02:00
Hakim El Hattab
16ac4b0067 prevent double-initialization #3696 2024-10-25 10:27:54 +02:00
Hakim El Hattab
96ca819770 fix gulp package #3693 2024-10-25 09:57:14 +02:00
Hakim El Hattab
95946b4ec6 autoplay muted background videos in speaker view #1037 2024-10-21 14:27:51 +02:00
Hakim El Hattab
8d7b03c886 fix two npm audit warnings 2024-10-11 14:58:40 +02:00
Hakim El Hattab
b8bb94f788 upgrade to gulp 5.0, latest sass, & node-qunit-puppeteer #3608 2024-10-11 14:50:22 +02:00
Hakim El Hattab
8e58d1b7db scroll demo tweak 2024-10-11 13:40:54 +02:00
Hakim El Hattab
669cc25e55 Merge pull request #3685 from lechten/extend-search-API
Extend search API
2024-09-30 10:41:34 +02:00
Jens Lechtenbörger
2dcbf2745e Extend search API
Previously, only openSearch() was exported.  For symmetry, add
closeSearch().  For convenience, also add toggleSearch().
2024-09-29 12:48:39 +02:00
Hakim El Hattab
472535065c only destroy if reveal instance is ready, don't proceed with initialization after destroy is called, tests #3593 2024-05-15 11:15:31 +02:00
Hakim El Hattab
7cab93baab Merge pull request #3620 from wainuiomata/typos
Fix typo in jsdoc: presentation
2024-05-15 10:30:39 +02:00
Hakim El Hattab
15d9b650a5 Merge pull request #3618 from wainuiomata/regex-redundant-escape
Fix escape before comma in regex is redundant
2024-05-15 10:30:23 +02:00
Rob van der Linde
ab760babb7 Fix typo in jsdoc: presentation 2024-04-30 19:41:47 +12:00
Rob van der Linde
2d273bf06c Fix escape before comma in regex is redundant
There are various other commas in the same regex that aren't escaped.

This one doesn't need escaping either.
2024-04-30 19:35:39 +12:00
Hakim El Hattab
6b8c64ffa8 5.1.0 2024-04-11 08:45:27 +02:00
Hakim El Hattab
dab6ef6b38 Merge pull request #3603 from lechten/fix-help
Re-add question mark for help
2024-04-09 09:19:20 +02:00
Jens Lechtenbörger
092a34bf0c Re-add question mark for help 2024-04-01 16:12:15 +02:00
Yaroslav Halchenko
e0bc3f764d [DATALAD RUNCMD] run codespell throughout fixing typos automagically
=== Do not change lines below ===
{
 "chain": [],
 "cmd": "codespell -w",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^
2024-03-29 14:49:42 -04:00
Yaroslav Halchenko
091fede288 [DATALAD RUNCMD] Do interactive fixing of leftover ambigous typos
=== Do not change lines below ===
{
 "chain": [],
 "cmd": "codespell -w -i 3 -C 2 ./plugin/zoom/plugin.js plugin/notes/plugin.js",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^
2024-03-29 14:49:40 -04:00
Yaroslav Halchenko
e8ddb101de Adjust codespell config to minimize false positives etc 2024-03-29 14:48:02 -04:00
Yaroslav Halchenko
f9cf4f5cfe Add rudimentary codespell config 2024-03-29 14:44:08 -04:00
Yaroslav Halchenko
1cc02565b0 Add github action to codespell master on push and PRs 2024-03-29 14:44:08 -04:00
Hakim El Hattab
6410c756ea auto-animate demo tweak 2024-03-25 09:10:26 +01:00
Hakim El Hattab
62297e6259 nil check slides before running auto-animate transition #3592 2024-03-25 09:01:53 +01:00
Hakim El Hattab
ade53094b9 Merge pull request #3598 from alifeee/fix/r-stack-chrome
Fix `r-stack` overflow behaviour on Chromium browsers
2024-03-25 08:52:32 +01:00
alifeee
164254655b update build 2024-03-24 23:13:36 +00:00
alifeee
e2344787c4 fix r-stack with grid-template-rows: 100%; 2024-03-24 23:11:22 +00:00
Hakim El Hattab
334abff10f Merge pull request #3595 from jokester/mathjax3-fix-for-multiple-instances 2024-03-23 12:27:59 +01:00
Wang Guan
19c1bca1e4 MathJax3: allow non-singleton Reveal instance 2024-03-23 17:22:23 +09:00
Hakim El Hattab
0799c8f674 fix exception when destroying uninitialized reveal instance (closes #3593) 2024-03-22 14:29:35 +01:00
Hakim El Hattab
924bdb6305 fix vertical swipe navigation not blocking page scrolling in embedded decks 2024-03-19 09:09:44 +01:00
Hakim El Hattab
d4e5c39fe4 Merge pull request #3588 from NatKarmios/notes-error-catch
Fix error when the notes plugin receives a non-string message
2024-03-15 09:02:32 +01:00
Nat Karmios
2fb4b46307 Notes: don't error on non-string message 2024-03-14 18:18:33 +00:00
Hakim El Hattab
488c5c8f94 fix rtl prev/next navigation on slides with fragments 2024-03-13 15:15:59 +01:00
Hakim El Hattab
421da63750 fix previous bg video playing in background 2024-03-12 10:54:28 +01:00
Hakim El Hattab
62b1ea302c don't start video bgs if autoPlayMedia config is set to false 2024-03-11 14:20:01 +01:00
Hakim El Hattab
76ec60a137 fix issue when disabling autoPlay config flag at runtime 2024-03-11 13:24:27 +01:00
Hakim El Hattab
1748a55ece don't restart media when it's already playing #2882 2024-03-11 11:24:00 +01:00
Hakim El Hattab
a29a9c71ae allow same background video to continue playing across multiple slides #3189 #2882
Co-authored-by: Chi Vong <chivongv@gmail.com>
2024-03-08 14:02:26 +01:00
Hakim El Hattab
6ef138b61f dont prevent swipe navigation on video backgrounds #3584 2024-03-07 10:26:01 +01:00
Hakim El Hattab
63e0a37a88 fix broken backwards navigation in rtl mode 2024-03-06 10:55:09 +01:00
Hakim El Hattab
2927be34d8 new .enter-fullscreen class lets you add shortcuts to fullscreen mode 2024-02-28 11:08:56 +01:00
Hakim El Hattab
9d4b4362e9 5.0.5 2024-02-26 11:17:44 +01:00
Hakim El Hattab
8efd7af37c fix fragment events not firing in scroll view + add tests #3580 2024-02-26 10:54:16 +01:00
Hakim El Hattab
66fa4350e1 indentation tweak 2024-02-26 10:53:34 +01:00
Hakim El Hattab
f149d1f7ca Merge pull request #3570 from gchriz/toggleHelp
add F1 key to toggleHelp for non-english keyboards
2024-02-06 09:51:42 +01:00
Christian Ziemski
0951ce2b4f add F1 key to toggleHelp for non-english keyyboards 2024-02-05 16:56:45 +01:00
Hakim El Hattab
18ec38a6b1 tweaks for #3568 2024-02-05 11:27:57 +01:00
Hakim El Hattab
67b5ec1773 Merge pull request #3568 from bouzidanas/master
fix vertical stack background not working in scroll view
2024-02-05 11:14:13 +01:00
Anas Bouzid
50580c37c2 add comment for background fix 2024-02-04 22:16:42 -06:00
Anas Bouzid
ec4eeab478 fix selector constant 2024-02-04 21:59:46 -06:00
Anas Bouzid
4e353b207d remove console logs 2024-02-04 21:49:24 -06:00
Anas Bouzid
608e0eefcd fix selector constant 2024-02-04 21:32:55 -06:00
Anas Bouzid
aa31cab9e3 fix slide backgrounds being replaced by global background 2024-02-04 21:26:06 -06:00
Anas Bouzid
28aee42e8e update build 2024-02-04 19:35:35 -06:00
Anas Bouzid
ebca26e1f9 update build 2024-02-04 19:23:37 -06:00
Anas Bouzid
d61b375bf8 add logs to scrollview.js 2024-02-04 19:17:06 -06:00
Anas Bouzid
dcc21516dd Merge pull request #1 from hakimel/master
update repo
2024-02-04 18:37:16 -06:00
Hakim El Hattab
16f6633014 fix xss issue reported by @realansgar, regression from 3dade61176 2024-01-30 14:14:40 +01:00
Hakim El Hattab
5d131cea20 add support for keyboard navigation in scroll view #3515 2024-01-10 14:13:54 +01:00
Hakim El Hattab
52480157a1 2024 2024-01-09 11:38:35 +01:00
Hakim El Hattab
5ee1f729bd fix missing backgrounds when scroll view is actived responsively (fixes #3554) 2023-12-22 13:18:06 +01:00
Hakim El Hattab
0e21a2a791 rebuild 2023-12-15 09:03:32 +01:00
Hakim El Hattab
767a67ee00 Merge pull request #3548 from hackmdio/fix/xss-on-data-background-video-attribute
fix: use `setAttribute` instead of `innerHTML` to prevent XSS
2023-12-15 08:56:55 +01:00
Michael Wang
89ab00a4a1 fix: use setAttribute instead of innerHTML to prevent xss 2023-12-15 13:59:27 +08:00
Hakim El Hattab
993b8f302a fix pause/help overlay position in scroll mode (closes #3542) 2023-12-06 14:26:02 +01:00
Hakim El Hattab
d5896c968b fix broken mobile scroll view navigation where there were fragments starting at an index above 1 #3540 2023-11-30 19:05:37 +01:00
Hakim El Hattab
bf285afcf2 fix exception when navigating decks on mobile browsers #3539 2023-11-30 08:41:32 +01:00
Hakim El Hattab
9d491c6d2f fix notes in pdf print view #3535 2023-11-24 10:42:41 +01:00
Hakim El Hattab
a88f38dec0 Merge pull request #3533 from t-fritsch/bump-5.0.2-version-in-build-files
bump 5.0.2 version in build files
2023-11-23 14:13:15 +01:00
Hakim El Hattab
20d9eaf496 search plugin; search for whole phrase #2331 #3532 2023-11-23 14:08:39 +01:00
Hakim El Hattab
339dc709da search plugin; allow searching for any character (was alphanum) #2331 #3532 2023-11-23 14:03:47 +01:00
Thomas Fritsch
f33e9d7662 bump 5.0.2 version in build files 2023-11-20 10:46:33 +01:00
Hakim El Hattab
bbd0d3e4f7 fix exception when stepping backwards through code highlights #3524 2023-11-13 11:26:29 +01:00
Hakim El Hattab
3d7d3152a4 jump-to-slide; add support for 'h.v' format, adapat to match slide number format #3501 2023-11-13 10:08:36 +01:00
Hakim El Hattab
bddeb70f4e 5.0.2 2023-11-09 09:05:58 +01:00
Hakim El Hattab
1e1e228680 fix issue where background of a future vertical slide is briefly visible ahead of time #3520 2023-11-09 09:02:29 +01:00
Hakim El Hattab
11680561e9 nil check for deck in md plugin #3517 2023-11-06 18:10:53 +01:00
Hakim El Hattab
9d1c7e21b6 md plugin api works even if deck isn't available #3517 2023-11-06 10:59:12 +01:00
Hakim El Hattab
010f06c339 fix speaker view bug, bump version to 5.0.1 #3512 2023-10-30 07:37:05 +01:00
Hakim El Hattab
eee0a4ff24 scroll example deck tweaks 2023-10-29 21:31:25 +01:00
Hakim El Hattab
d14084d4a4 rebuild after deps update 2023-10-29 19:53:52 +01:00
Hakim El Hattab
30eddd95ed Merge pull request #3507 from Mister-Hope/deps
chore: bump deps
2023-10-29 19:52:27 +01:00
Hakim El Hattab
b6a3ea82e1 Merge pull request #3506 from Mister-Hope/typos
chore: fix typos
2023-10-29 19:43:38 +01:00
Hakim El Hattab
b2d0a3f70c Merge pull request #3505 from Mister-Hope/moon
chore: remove deprecated css declarations
2023-10-29 19:43:18 +01:00
Mr.Hope
73d3f3432f chore: bump deps 2023-10-28 18:49:41 +08:00
Mr.Hope
09b22cee6c chore: remove deprecated css declarations 2023-10-28 18:42:08 +08:00
Mr.Hope
97d73bd3dc chore: fix typos 2023-10-28 18:40:24 +08:00
Hakim El Hattab
790fd8c29a mute video in scroll demo 2023-10-27 14:57:55 +02:00
Hakim El Hattab
2518301d3e 5.0 2023-10-27 14:50:14 +02:00
Hakim El Hattab
89bf44ba92 remove legacy mousewheel listeners #3489 2023-10-27 10:35:37 +02:00
Hakim El Hattab
adfa3462cc Merge pull request #3489 from quochuy/mousewheelevents
Support to 'wheel' event listener
2023-10-27 09:43:13 +02:00
Hakim El Hattab
68efdf6b03 Merge branch 'master' into mousewheelevents 2023-10-27 09:42:32 +02:00
Hakim El Hattab
cc640a21d3 not important 2023-10-25 21:33:36 +02:00
Hakim El Hattab
c594f9c6ec not so important 2023-10-25 21:30:53 +02:00
Hakim El Hattab
942be4ee42 fix scroll view activation in tests 2023-10-25 14:13:51 +02:00
Hakim El Hattab
c23964274c reader mode -> scroll view, auto-enable below 435px width 2023-10-25 13:58:06 +02:00
Hakim El Hattab
e46bad392a fix scroll snapping in reader mode compact layout 2023-10-25 13:08:41 +02:00
Hakim El Hattab
ff252c984f reader mode now works for embedded decks 2023-10-25 11:32:40 +02:00
Hakim El Hattab
0072845828 ? keyboard shortcut should not trigger when focus is on an editable element fixes #2645 2023-10-25 11:04:53 +02:00
Hakim El Hattab
5b537aa8f8 fix slide numbers not visible in pdf exports 2023-10-24 10:19:59 +02:00
Hakim El Hattab
aa5c03c234 reader mode remembers scroll position when reloading 2023-10-23 13:08:17 +02:00
Hakim El Hattab
ff3244af7a reader mode refactoring 2023-10-23 11:24:50 +02:00
Hakim El Hattab
49c0030392 improved reader progress bar visuals in high density 2023-10-20 21:02:04 +02:00
Hakim El Hattab
51acc830f9 major cleanup of reader mode code 2023-10-20 20:23:31 +02:00
Hakim El Hattab
cc9a36dc25 massive reader mode refactor; adds support for auto-animate + snapping for fragments 2023-10-20 10:18:34 +02:00
Hakim El Hattab
a9031821ef add scroll snap points for reader mode scroll triggers 2023-10-18 11:16:06 +02:00
Hakim El Hattab
c1d64ad8d0 audit fix 2023-10-17 14:03:27 +02:00
Hakim El Hattab
57ce5a5e3d === 2023-10-17 14:03:00 +02:00
Hakim El Hattab
c4e322ce79 don't show reader scroll bar when there is no overflow, reader style tweaks 2023-10-17 13:59:11 +02:00
Hakim El Hattab
836967d8ab prevent extra page at end when printing to pdf, reader mode styling tweaks 2023-10-13 16:02:55 +02:00
Hakim El Hattab
28ef437a89 rebuild assets 2023-10-12 14:05:42 +02:00
Hakim El Hattab
c80b685a88 Merge pull request #3482 from hakimel/feature/reader-mode
Add reader mode
2023-10-12 14:04:44 +02:00
Hakim El Hattab
7108476911 Merge branch 'master' into feature/reader-mode 2023-10-12 14:04:36 +02:00
Hakim El Hattab
b8b55b8d4c readerScrollBar -> readerScrollbar 2023-10-12 14:03:28 +02:00
Hakim El Hattab
a7d0916f28 reader mode accessibility, bug fixes 2023-10-12 13:58:10 +02:00
Hakim El Hattab
198cbc4ace reader mode tweaks 2023-10-12 13:39:44 +02:00
Hakim El Hattab
d802789c4d more accurate scroll trigger positioning in progress bar 2023-10-12 11:09:47 +02:00
Hakim El Hattab
c1b1745200 audit fix 2023-10-11 10:43:15 +02:00
Hakim El Hattab
980b902a9d disable overview while in reader mode 2023-10-11 10:42:47 +02:00
Hakim El Hattab
be5d811914 convert sass controls spacing to css var, full height reader progress bar 2023-10-11 10:01:32 +02:00
Hakim El Hattab
122642fdea reader progress theming, automatically invert based on slide bg 2023-10-11 09:51:03 +02:00
Hakim El Hattab
09f36adc70 mobile tweaks 2023-10-11 08:24:06 +02:00
Hakim El Hattab
2c5a83c945 refactoring 2023-10-10 14:47:08 +02:00
Hakim El Hattab
a6abd0423e finishing touches on reader mode progress bar 2023-10-10 13:34:33 +02:00
Hakim El Hattab
234799114a reader mode progress bar can be dragged to scroll 2023-10-10 11:16:31 +02:00
Hakim El Hattab
f80ee3b917 reader mode progress bar 2023-10-10 10:24:02 +02:00
Hakim El Hattab
1871824fae reader mode; named deeplink support, stay on same slide when reader mode is turned on/off 2023-10-06 11:37:58 +02:00
Hakim El Hattab
1f1ca3a887 refactoring 2023-10-06 10:07:19 +02:00
Hakim El Hattab
d84aa3472e reader mode tests 2023-10-06 09:52:21 +02:00
Hakim El Hattab
ab52d334df add support for responsively activating reader mode via 2023-10-06 09:14:23 +02:00
NGUYEN DINH Quoc-Huy
42a1844d27 Support to 'wheel' event listener 2023-10-06 15:03:32 +11:00
Hakim El Hattab
899a45dff6 update api method name 2023-10-05 14:24:13 +02:00
Hakim El Hattab
3db2340df3 fix issues with active slide logic in reader mode, foundational work for auto-animate support 2023-10-05 14:06:06 +02:00
Hakim El Hattab
88fbfc5751 fix incorrect unit for slide-width/height css variable #1263 2023-09-26 10:20:29 -04:00
Hakim El Hattab
c856fa9db1 dispatch slidechange events in reader mode 2023-09-25 12:32:46 +02:00
Hakim El Hattab
4c9cc89566 refactoring, remove unused layout 2023-09-22 10:31:34 +02:00
Hakim El Hattab
97f2e184c1 fix preload bug 2023-09-21 14:15:46 +02:00
Hakim El Hattab
e49e89a557 reader mode supports scroll snapping, sticky pages with scroll triggers are always full height 2023-09-21 13:35:49 +02:00
Hakim El Hattab
f0950ba9ae rename 'mode' config value to 'view' 2023-09-20 16:11:31 +02:00
Hakim El Hattab
0861b07618 revamped reader mode sticky logic, add option for fullscreen pages 2023-09-20 15:00:15 +02:00
Hakim El Hattab
5de7da7692 reader mode can be turned off without reload, add Reveal.toggleReader() 2023-09-19 11:52:54 +02:00
Hakim El Hattab
db2523db27 add support for aside element notes inside of fragments (fixes #3478) 2023-09-19 09:29:53 +02:00
Hakim El Hattab
eb01f8f3a5 Merge pull request #3477 from skyboyer/3476-data-notes-does-not-work-on-slide-level
Notes plugin: notes from data-notes attribute were not shown
2023-09-19 09:20:19 +02:00
Yevhen Kozlov
cd948d4136 Notes plugin: notes from data-notes attribute were not shown 2023-09-17 23:29:31 +02:00
Hakim El Hattab
07a6cf1249 fix empty slide bug when all slides in a stack are hidden via data-visibility 2023-09-15 13:48:26 +02:00
Hakim El Hattab
4da6f6b30f refactoring, fix preload distance 2023-09-14 15:17:28 +02:00
Hakim El Hattab
eaf5f61318 reader mode; deeplink support, presentation scaling, scroll trigger fixes 2023-09-14 15:03:23 +02:00
Hakim El Hattab
0f27ef40fb revert demo changes to index.html 2023-09-14 13:19:33 +02:00
Hakim El Hattab
f26d31570e separate reader mode into individual controller, add scroll triggers for fragments 2023-09-14 13:00:31 +02:00
Hakim El Hattab
a4b7f9dff7 4.6.1, remove log 2023-09-13 12:23:36 +02:00
Hakim El Hattab
6aa1eae796 foundation for reader mode, activate via 'mode=reader/print' config param 2023-09-12 17:00:56 +02:00
Hakim El Hattab
487cc860f8 fix alpha overlap during scrolled code highlight transitions 2023-09-12 10:35:37 +02:00
Hakim El Hattab
c5307462b0 4.6.0 2023-09-12 09:16:24 +02:00
Hakim El Hattab
fc16cc8b11 add test deck with 500 slides 2023-09-11 10:22:21 +02:00
Hakim El Hattab
03fe25c1f6 Merge pull request #3464 from t-fritsch/fix-dracula-theme-li-marker-colors
fix dracula li markers
2023-09-04 08:53:40 +02:00
Thomas Fritsch
81ea116292 refactor dracula theme sass code 2023-09-02 12:21:54 +02:00
Thomas Fritsch
3a830dd98f fix dracula theme li numbering 2023-09-02 12:19:59 +02:00
Thomas Fritsch
777e2a2d05 fix dracula li markers
replace :before pseudo elements with :marker selector

allows to have different marker based on the level of nesting (as in other themes : disc, square, circle)
2023-09-02 12:03:11 +02:00
Hakim El Hattab
680cf5edb8 add start/stopEmbeddedMedia API methods for controlling playback of video/audio/iframes 2023-08-25 08:51:52 +02:00
Hakim El Hattab
edf6638065 Merge pull request #3457 from t-fritsch/fix-print-font-for-code-blocks
fix code blocks font when printing pdf
2023-08-24 11:32:27 +02:00
Thomas Fritsch
a1d0cdffc4 fix code blocks font when printing pdf
fixes #2867
2023-08-24 11:11:05 +02:00
Hakim El Hattab
064b3c3aa5 Merge pull request #3450 from gildasio/master
Fix dracula's theme list-style on sub-items
2023-08-24 08:29:59 +02:00
Hakim El Hattab
2ab0689aa3 Merge pull request #3456 from menotti/master-1
Update demo.html
2023-08-24 08:27:09 +02:00
Ricardo Menotti
75c0be853c Update demo.html
switch themes keep current slide
2023-08-23 21:49:36 -03:00
Hakim El Hattab
ccbaffc975 build md plugin #3454 2023-08-23 10:22:58 +02:00
Hakim El Hattab
bae6de87ec Merge pull request #3454 from JankariTech/refactor-vars-and-equality
Refactored var to let or const, used strict equality operator
2023-08-22 13:43:56 +02:00
Prarup Gurung
9babaa005f Refactored var to let or const, strict equality 2023-08-22 17:05:12 +05:45
Hakim El Hattab
af1cd9d6a4 Merge pull request #3453 from JankariTech/fixVariablesTypos
fix typos in variable names
2023-08-22 10:14:58 +02:00
Artur Neumann
a3f71b4a9b fix typos in variable names 2023-08-22 13:56:46 +05:45
Gildasio Junior
58881061ab Fix dracula's theme list-style on sub-items 2023-08-16 15:34:57 -03:00
Hakim El Hattab
e1c180565e Merge pull request #3445 from t-fritsch/fix-scss-watch-tasks
fix scss watch tasks broken on syntax error
2023-08-09 15:17:25 +02:00
Hakim El Hattab
b8d97d2537 Merge pull request #3446 from t-fritsch/speed-up-livereload
speed up livereload
2023-08-09 15:12:36 +02:00
Thomas Fritsch
74a5dac34f speed up livereload
connect.reload needs a stream of files to fire, but this stream is irrelevant here and slows refresh time a lot (from ~2ms to 2000ms here)
2023-08-06 22:52:03 +02:00
Thomas Fritsch
f2b0316a91 fix scss watch tasks broken on syntax error
when there is a syntax error in a sass file (theme or core) the npm start command used to hang, forcing the user to stop and restart the task to compile again.
this fix allows to keep the start-task watching/compiling even when there is an error :
- the error is displayed in terminal
- the rest of gulp tasks are not called (no reload in the browser)
- the user can edit the scss files to try a fix without the need to stop/restart the `npm start` command
2023-08-06 18:39:14 +02:00
Hakim El Hattab
92ee97fbfe update markdown default notes separator to ignore inline occurances of 'notes:', closes #1915, closes #2762 2023-08-06 14:02:55 +02:00
Hakim El Hattab
da5682ce51 move markdown default options to top level #3443 2023-08-06 13:55:00 +02:00
Hakim El Hattab
f4e1a8ef50 Merge pull request #3443 from t-fritsch/allow-markdown-default-options-override
adds ability to override markdown plugin default options
2023-08-06 13:50:11 +02:00
Hakim El Hattab
b66121e32b Merge pull request #3444 from t-fritsch/allow-link-to-nested-element-id
add support for links to the id of an element nested inside slide
2023-08-06 13:41:23 +02:00
Hakim El Hattab
bddf79873b Merge pull request #3442 from t-fritsch/allow-theme-subfolders
allow theme subfolders
2023-08-06 13:33:11 +02:00
Hakim El Hattab
ae703c372c Merge pull request #3441 from t-fritsch/fix-livereload-with-root-param
fixes livereload when using root CLI param
2023-08-06 13:27:12 +02:00
Thomas Fritsch
3d1eabba0f build 2023-08-05 16:47:52 +02:00
Thomas Fritsch
27ff199627 add support for links to the id of an element nested inside slide
fixes hakimel/reveal.js#3231
2023-08-05 16:24:22 +02:00
Thomas Fritsch
31174cbaba adds ability to override markdown default options
```js
Reveal.initialize({
    markdown: {
        defaultOptions: {
            verticalSeparator: '\n--\n`,
        }
    }
})
2023-08-05 00:14:15 +02:00
t-fritsch
ba20abf0c3 allow theme subfolders
allows custom themes to import files from subfolders inside the `css/theme/source` folder.

in `css/theme/source/custom-theme.scss` we can now do
```scss
@import `custom-theme/controls`
@import `custom-theme/headings`
...
```
2023-08-03 22:38:03 +02:00
t-fritsch
2dd27b37c6 ignore node_modules for livereload
may allow perf boost
2023-08-03 22:31:07 +02:00
t-fritsch
82d63e0296 fixes livereload when using root CLI param 2023-08-03 22:23:58 +02:00
Hakim El Hattab
c8a7f26229 fix issue where fragment-evel autoslide timing was when multiple fragments share the same index 2023-08-03 16:00:00 +02:00
Hakim El Hattab
12f5ba4c9d auto-slide duration falls back on global setting instead of looking at first fragment 2023-06-16 12:11:46 +02:00
Hakim El Hattab
227f90fa00 fix code block auto-animate bug that caused unmatched lines to appear without fading in 2023-05-31 09:07:10 +02:00
Hakim El Hattab
0d699ec7f5 Merge pull request #3409 from flowolf/add-code-line-offset-to-markdown
[Markdown plugin] add line number offset for code sections to markdown
2023-05-15 14:14:30 +02:00
Florian Klien
bf749ee1da add tests 2023-05-12 15:45:29 +02:00
Florian Klien
0b44308754 add ln-start-from for code sections to markdown 2023-05-12 14:22:00 +02:00
Hakim El Hattab
0301ce58ab 4.5.0 2023-04-13 13:50:05 +02:00
Hakim El Hattab
724c4fee27 build latest css 2023-03-08 09:34:15 +07:00
Hakim El Hattab
006b348e6b reduce fragment style specificity, add custom class to reset fragment styles #2927 2023-03-07 10:22:52 +07:00
Hakim El Hattab
0c9bdeab70 Merge pull request #3358 from azat-archive/markdown-fix
Correctly strip leading white-space from markdown
2023-02-27 02:10:23 +01:00
Hakim El Hattab
cd019514f3 rename high contrast themes, dont change anything else compared to black/white themes #3310 2023-02-22 10:21:31 +07:00
Peter Kehl
1bfc699045 Black & White compact themes with verbatim headers. (#3310) 2023-02-22 04:05:29 +01:00
Hakim El Hattab
2cacfc1394 remove commented out config 2023-02-22 10:02:17 +07:00
Elliot" Constantin H
dcae8a4dc9 Fix overview spacing for disabled auto layout (#3291)
* Fix overlap in overview when config.disableLayout === true

* run gulp js
after commit 9193e5cd5d

---------

Co-authored-by: Hakim El Hattab <hakim.elhattab@gmail.com>
2023-02-22 04:01:21 +01:00
Hakim El Hattab
7de6ccb65b add sortFragmentsOnSync option, makes it possible to avoid unwanted sorting in editing environments like slides.com 2023-02-16 09:48:48 +07:00
Martino
ea6b7197c7 Add RFC3986-compliant URL format encoding
Fixes https://github.com/hakimel/reveal.js/issues/3315
2023-02-13 10:02:15 +01:00
John Kristensen
ae652a8e4e Correctly strip leading white-space from markdown
If the markdown contains something that is indented by more that the
`leadingTabs`/`leadingWs` then extra white space is incorrectly removed.
ie the following example:

```
    <section data-markdown>
    some text
       indented text
          more indented text
    </section>
```

would result in the following markdown:

```
some text
   indented text
  more indented text
```

We can work around this problem by using a function to generate the
replace value.
2023-02-02 13:27:52 +01:00
Hakim El Hattab
b1a9842b2f Merge pull request #3356 from deining/fix/typos
Fixes typos
2023-01-25 14:17:50 +01:00
Andreas Deininger
32a16295c3 Fixes typos 2023-01-25 14:13:31 +01:00
hakimel
447fefd31c scope print styles to .reveal #3348 2023-01-23 12:12:28 +01:00
Hakim El Hattab
6510916b9f Merge pull request #3257 from sojinsamuel/patch-1
Missing lang attribute
2023-01-18 10:50:34 +01:00
Hakim El Hattab
9c95411dfa Merge pull request #3268 from sashashura/patch-1
GitHub Workflows security hardening
2023-01-18 10:48:46 +01:00
hakimel
e0ef8db54b fix security alerts by upgrading glob-parent #3343 2023-01-18 10:45:25 +01:00
hakimel
4a1b91a9c8 jump to slide tweak 2023-01-18 10:40:33 +01:00
hakimel
3301d3036e fix incorrect condition for jump-to-slide 2023-01-17 10:56:45 +01:00
hakimel
fb1fecd754 enforce a min length on jump to slide search queries 2023-01-17 10:30:35 +01:00
hakimel
60769db4ee better selection color contrast for black theme 2023-01-17 09:52:10 +01:00
hakimel
efcc86273b jump-to-slide is 1-indexed, falls back on word search 2023-01-17 09:49:49 +01:00
hakimel
b648a56009 update hljs 10 > 11.7, fix perf issue in demo presentation caused by auto lang detection 2023-01-17 09:12:00 +01:00
hakimel
282680e163 delay slide jumps a few ms 2023-01-16 14:43:50 +01:00
hakimel
79e9fdf13f add jump-to-slide to help overlay, style tweaks 2023-01-16 12:33:37 +01:00
hakimel
d146c1ddc1 adds jump-to-slide, press G to activate 2023-01-16 11:41:19 +01:00
hakimel
a815c7d269 spec updates 2023-01-10 10:24:49 +01:00
hakimel
2eb6d1e71c audit fix 2023-01-10 10:09:48 +01:00
hakimel
6378df47c0 run tests in node 14 2023-01-10 09:48:11 +01:00
hakimel
9f629a9d38 only test one node version 2023-01-09 15:20:31 +01:00
hakimel
df355eca3a 2023 2023-01-09 14:31:46 +01:00
Hakim El Hattab
4fe3946cb4 Merge pull request #3305 from lolmaus/patch-1
Gulp livereload: include subfolders to watch for changes in html and md
2022-12-07 11:27:14 +01:00
Hakim El Hattab
7fbe03946f Merge pull request #3324 from iiska/theme-dracula
Add theme 'dracula'
2022-12-07 11:24:36 +01:00
Juhamatti Niemelä
7a613a4507 Add theme 'dracula'
New theme using color palette from [Dracula](https://draculatheme.com/)
dark editor theme available for quite a number of different
applications.
2022-11-19 20:29:59 +02:00
hakimel
9f1f7789bf roll back unintended change to index content 2022-11-17 09:39:00 +01:00
Andrey Mikhaylov (lolmaus)
8492b82d12 Gulp livereload: include subfolders to watch for changes in html and md
Currently it's only watching for changes to `.html` and `.md` files located in the root of the project. I was frustrated when livereload stopped working for me: turns out it was because I put my content into subfolders.
2022-10-24 14:06:31 +03:00
hakimel
f6f657b627 4.4.0 2022-10-17 09:46:41 +02:00
hakimel
fb68f1c389 fix getAttribute exception in notes plugin #3285 2022-10-17 08:51:44 +02:00
Hakim El Hattab
468132320d remove doppler 2022-09-24 11:39:12 +02:00
hakimel
c1c4145240 fix merge error, closes #3277 2022-09-14 14:14:42 +02:00
hakimel
8a97ad58b0 prevent extra \n at end of single notes #3010 2022-09-05 11:10:32 +02:00
hakimel
01efcf2d92 merge support for multiple notes on same slide 2022-09-05 10:47:47 +02:00
Alex
a092499981 Update js.yml
Signed-off-by: sashashura <93376818+sashashura@users.noreply.github.com>
2022-08-31 08:16:04 +01:00
hakimel
b23d15c430 fix issue were auto-animate could interfere with inherited line-height 2022-08-14 19:55:24 +02:00
hakimel
a0e48602d3 fix issue with past/future vertical slides remaining visible in Safari 15.4 (closes #3164) 2022-08-13 19:38:54 +02:00
Sam
b5fb6da46e Missing lang attribute
The lang attribute does not default to English. It defaults to an unknown, which is an accessibility issue.
2022-08-12 11:49:15 +05:30
hakimel
e219184f37 update browserlist from '> 0.5%, IE 11, not dead' to '> 2%, not dead' #2985 2022-08-08 07:58:18 +02:00
Hakim El Hattab
039972c730 tweak slides mention 2022-05-31 12:34:38 +02:00
hakimel
5a031c07b6 fix issues with overflowing fit-text when exporting to pdf #3191 #3120 2022-05-31 11:50:26 +02:00
Hakim El Hattab
a3f4caf179 Merge pull request #3191 from chivongv/fix-pdf-long-r-fit-text
fix: truncated long r-fit-text on pdf
2022-05-31 10:41:24 +02:00
Hakim El Hattab
0d5b69d551 Merge pull request #3210 from eltociear/patch-1
Fix typo in plugin.js
2022-05-20 14:32:36 +02:00
Ikko Ashimine
a8e9d8cc8a Fix typo in plugin.js
withing -> within
2022-05-19 12:42:45 +09:00
hakimel
3dade61176 notes plugin only listens for same-origin postmessages to prevent xss 2022-05-12 22:07:48 +02:00
hakimel
4b6ac46cde new attempt at speaker view xss fix 2022-05-12 14:53:40 +02:00
hakimel
0ca389721c add support for 'data-background-gradient' #2510
Co-authored-by: Giacomo Zinetti <giacomo.zinetti@giko.it>
2022-05-02 14:49:21 +02:00
hakimel
eada286ca0 fix issue where auto-animate did not work when jumping three or more slides (i.e. longer than the view distance) 2022-04-28 13:38:30 +02:00
hakimel
286d5ef561 made data-background attribute work with .webp #3200 2022-04-25 08:45:43 +02:00
Chi Vong
f319b246db fix: truncated long r-fit-text on pdf 2022-04-10 11:29:06 +02:00
Hakim El Hattab
9415ad5d7f update link 2022-04-06 13:15:08 +02:00
hakimel
1767e76cdc fix issue with #3182 when slide numbers are disabled 2022-04-04 15:33:44 +02:00
Hakim El Hattab
fca5b33530 Merge pull request #3182 from chivongv/fix-pdf-page-numbering
fix: pdf page numbering for fragment group
2022-04-04 15:25:25 +02:00
Hakim El Hattab
25ed8f2c47 Merge branch 'master' into fix-pdf-page-numbering 2022-04-04 15:25:14 +02:00
hakimel
914b2aea83 fix inconsistent fragment visibility in looping presentations #3123 2022-04-04 15:11:57 +02:00
Chi Vong
953aaad83a fix: pdf page numbering for fragment group 2022-04-02 18:59:46 +02:00
hakimel
e281b3234e always use css transforms for presentation scaling (zoom has too many quirks even if it is slightly sharper on ldpi displays) 2022-03-31 11:19:55 +02:00
hakimel
918ee5610a update lock file 2022-03-21 10:47:50 +01:00
Jens Lechtenbörger
62a85d55f8 Add generated files 2021-10-06 17:51:11 +02:00
Jens Lechtenbörger
f9ce61e34a Support multiple aside notes elements per slide
So far, multiple notes per slide are only supported if they are
attached to fragments (without fragments, only the first aside notes
element on a slide is displayed).  With this commit, the contents of
all notes on a slide are displayed (except for fragments with notes,
for which, as before, only each fragment's first/single note is
displayed).
2021-09-16 11:56:52 +02:00
203 changed files with 71229 additions and 25129 deletions

8
.codespellrc Normal file
View File

@@ -0,0 +1,8 @@
[codespell]
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
skip = ./.git,./dist,.package-lock.json,*.css,.codespellrc
check-hidden = true
# Ignore super long lines -- must be minimized etc, acronyms
# and some near hit variables
ignore-regex = ^.{120,}|\b(currentY|FOM)\b
# ignore-words-list =

View File

@@ -1,24 +0,0 @@
name: tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x, 14.x, 16.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm run build --if-present
- run: npm test
env:
CI: true

25
.github/workflows/spellcheck.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
# Codespell configuration is within .codespellrc
---
name: Spellcheck
on:
push:
branches: [master]
pull_request:
branches: [master]
permissions:
contents: read
jobs:
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Codespell
uses: codespell-project/actions-codespell@v2
with:
skip: ./.git,./dist,package-lock.json,*.css,.codespellrc

31
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Tests
on:
- push
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version:
- 18
- 20
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm run build --if-present
- run: npm test
env:
CI: true

2
.gitignore vendored
View File

@@ -9,3 +9,5 @@ log/*.log
tmp/**
node_modules/
.sass-cache
reveal-js-presentation
reveal-js-presentation.zip

View File

@@ -1,7 +1,5 @@
/test
/examples
.github
.gulpfile
.sass-cache
gulpfile.js
CONTRIBUTING.md

5
.prettierignore Normal file
View File

@@ -0,0 +1,5 @@
js/**/*.js
plugin/**/*.js
test/**/*.md
test/**/*.html
examples/**/*.md

8
.prettierrc Normal file
View File

@@ -0,0 +1,8 @@
{
"useTabs": true,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 100,
"singleQuote": true,
"bracketSameLine": false
}

View File

@@ -1,4 +1,4 @@
Copyright (C) 2011-2022 Hakim El Hattab, http://hakim.se, and reveal.js contributors
Copyright (C) 2011-2024 Hakim El Hattab, http://hakim.se, and reveal.js contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -4,7 +4,7 @@
</a>
<br><br>
<a href="https://github.com/hakimel/reveal.js/actions"><img src="https://github.com/hakimel/reveal.js/workflows/tests/badge.svg"></a>
<a href="https://slides.com/"><img src="https://s3.amazonaws.com/static.slid.es/images/slides-github-banner-320x40.png?1" alt="Slides" width="160" height="20"></a>
<a href="https://slides.com/"><img src="https://static.slid.es/images/slides-github-banner-320x40.png?1" alt="Slides" width="160" height="20"></a>
</p>
reveal.js is an open source HTML presentation framework. It enables anyone with a web browser to create beautiful presentations for free. Check out the live demo at [revealjs.com](https://revealjs.com/).
@@ -13,39 +13,12 @@ The framework comes with a powerful feature set including [nested slides](https:
---
### Sponsors
Hakim's open source work is supported by <a href="https://github.com/sponsors/hakimel">GitHub sponsors</a>. Special thanks to:
<div align="center">
<table>
<td align="center">
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=revealjs&utm_source=github">
<div>
<img src="https://user-images.githubusercontent.com/629429/151508669-efb4c3b3-8fe3-45eb-8e47-e9510b5f0af1.svg" width="290" alt="WorkOS">
</div>
<b>Your app, enterprise-ready.</b>
<div>
<sub>Start selling to enterprise customers with just a few lines of code. Add Single Sign-On (and more) in minutes instead of months.</sup>
</div>
</a>
</td>
<td align="center">
<a href="https://www.doppler.com/?utm_cam![Uploading workos-logo-white-bg.svg…]()
paign=github_repo&utm_medium=referral&utm_content=revealjs&utm_source=github">
<div>
<img src="https://user-images.githubusercontent.com/629429/151510865-9fd454f1-fd8c-4df4-b227-a54b87313db4.png" width="290" alt="Doppler">
</div>
<b>All your environment variables, in one place</b>
<div>
<sub>Stop struggling with scattered API keys, hacking together home-brewed tools, and avoiding access controls. Keep your team and servers in sync with Doppler.</sup>
</div>
</a>
</td>
</table>
</div>
Want to create reveal.js presentation in a graphical editor? Try <https://slides.com>. It's made by the same people behind reveal.js.
---
### Getting started
- 🚀 [Install reveal.js](https://revealjs.com/installation)
- 👀 [View the demo presentation](https://revealjs.com/demo)
- 📖 [Read the documentation](https://revealjs.com/markup/)
@@ -54,13 +27,6 @@ Hakim's open source work is supported by <a href="https://github.com/sponsors/ha
---
### Online Editor
Want to create your presentation using a visual editor? Try the official reveal.js presentation platform for free at [Slides.com](https://slides.com). It's made by the same people behind reveal.js.
<br>
<br>
---
<div align="center">
MIT licensed | Copyright © 2011-2022 Hakim El Hattab, https://hakim.se
MIT licensed | Copyright © 2011-2024 Hakim El Hattab, https://hakim.se
</div>

View File

@@ -25,6 +25,7 @@
// Stack multiple elements on top of each other
.reveal .r-stack {
display: grid;
grid-template-rows: 100%;
}
.reveal .r-stack > * {
@@ -37,7 +38,8 @@
.reveal .r-hstack {
display: flex;
img, video {
img,
video {
min-width: 0;
min-height: 0;
object-fit: contain;
@@ -57,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;
}

View File

@@ -1,47 +1,41 @@
/* Default Print Stylesheet Template
by Rob Glazebrook of CSSnewbie.com
Last Updated: June 4, 2008
Feel free (nay, compelled) to edit, append, and
manipulate this file as you see fit. */
@media print {
html:not(.print-pdf) {
background: #fff;
overflow: visible;
width: auto;
height: auto;
overflow: visible;
body {
background: #fff;
font-size: 20pt;
width: auto;
height: auto;
border: 0;
margin: 0 5%;
margin: 0;
padding: 0;
overflow: visible;
float: none !important;
}
}
.nestedarrow,
html:not(.print-pdf) .reveal {
background: #fff;
font-size: 20pt;
.controls,
.fork-reveal,
.share-reveal,
.state-background,
.reveal .progress,
.reveal .backgrounds,
.reveal .slide-number {
.progress,
.backgrounds,
.slide-number {
display: none !important;
}
body, p, td, li {
p,
td,
li {
font-size: 20pt !important;
color: #000;
}
h1,h2,h3,h4,h5,h6 {
h1,
h2,
h3,
h4,
h5,
h6 {
color: #000 !important;
height: auto;
line-height: normal;
@@ -49,13 +43,26 @@
letter-spacing: normal;
}
/* Need to reduce the size of the fonts for printing */
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 {
@@ -64,7 +71,10 @@
text-decoration: underline;
}
ul, ol, div, p {
ul,
ol,
div,
p {
visibility: visible;
position: static;
width: auto;
@@ -74,18 +84,19 @@
margin: 0;
text-align: left !important;
}
.reveal pre,
.reveal table {
pre,
table {
margin-left: 0;
margin-right: 0;
}
.reveal pre code {
pre code {
padding: 20px;
}
.reveal blockquote {
blockquote {
margin: 20px 0;
}
.reveal .slides {
.slides {
position: static !important;
width: auto !important;
height: auto !important;
@@ -106,7 +117,7 @@
perspective-origin: 50% 50%;
}
.reveal .slides section {
.slides section {
visibility: visible !important;
position: static !important;
width: auto !important;
@@ -129,19 +140,24 @@
transform: none !important;
transition: none !important;
}
.reveal .slides section.stack {
.slides section.stack {
padding: 0 !important;
}
.reveal section:last-of-type {
.slides section:last-of-type {
page-break-after: avoid !important;
}
.reveal section .fragment {
.slides section .fragment {
opacity: 1 !important;
visibility: visible !important;
transform: none !important;
}
.reveal section img {
.r-fit-text {
white-space: normal !important;
}
section img {
display: block;
margin: 15px 0px;
background: rgba(255, 255, 255, 1);
@@ -149,11 +165,11 @@
box-shadow: none;
}
.reveal section small {
section small {
font-size: 0.8em;
}
.reveal .hljs {
.hljs {
max-height: 100%;
white-space: pre-wrap;
word-wrap: break-word;
@@ -161,11 +177,11 @@
font-size: 15pt;
}
.reveal .hljs .hljs-ln-numbers {
.hljs .hljs-ln-numbers {
white-space: nowrap;
}
.reveal .hljs td {
.hljs td {
font-size: inherit !important;
color: inherit !important;
}

View File

@@ -5,7 +5,7 @@
* https://revealjs.com/pdf-export/
*/
html.print-pdf {
html.reveal-print {
* {
-webkit-print-color-adjust: exact;
}
@@ -36,7 +36,6 @@ html.print-pdf {
.reveal pre code {
overflow: hidden !important;
font-family: Courier, 'Courier New', monospace !important;
}
.reveal {
@@ -71,6 +70,10 @@ html.print-pdf {
page-break-after: always;
}
.reveal .slides .pdf-page:last-of-type {
page-break-after: avoid;
}
.reveal .slides section {
visibility: visible !important;
display: block !important;
@@ -100,7 +103,6 @@ html.print-pdf {
box-shadow: none;
}
/* Slide backgrounds are placed inside of their slide when exporting to PDF */
.reveal .backgrounds {
display: none;
@@ -133,7 +135,7 @@ html.print-pdf {
}
/* 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;
@@ -147,6 +149,7 @@ html.print-pdf {
display: block;
position: absolute;
font-size: 14px;
visibility: visible;
}
/* This accessibility tool is not useful in PDF and breaks it visually */

31
css/reset.css Normal file
View File

@@ -0,0 +1,31 @@
/* http://meyerweb.com/eric/tools/css/reset/
v4.0 | 20180602
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,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* prettier-ignore */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
display: block;
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,18 +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 -- css-themes`.
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 does four things in the following order:
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.
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 variables that the template file (step 4) expects. Can be overridden in step 3.
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. **Override**
This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding any selectors and styles you please.
4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)**
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**

58
css/theme/beige.scss Normal file
View File

@@ -0,0 +1,58 @@
/**
* Beige theme for reveal.js.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Load utils
@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)),
$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,
$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-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%),
$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';
// 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');
// Change text colors against light slide backgrounds
@include mixins.dark-bg-text-color(#fff);

View File

@@ -0,0 +1,46 @@
/**
* Black compact & high contrast reveal.js theme, with headers not in capitals.
*
* By Peter Kehl. Based on black.(s)css by Hakim El Hattab, http://hakim.se
*
* - Keep the source similar to black.css - for easy comparison.
* - $mainFontSize controls code blocks, too (although under some ratio).
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
$active-color: #42affa;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #000,
$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,
$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%)
);
// Inject the theme template
@use 'template/theme';
// Include theme-specific fonts
@import url('./fonts/source-sans-pro/source-sans-pro.css');
// Change text colors against light slide backgrounds
@include mixins.light-bg-text-color(#000);

43
css/theme/black.scss Normal file
View File

@@ -0,0 +1,43 @@
/**
* Black theme for reveal.js. This is the opposite of the 'white' theme.
*
* By Hakim El Hattab, http://hakim.se
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
$active-color: #42affa;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #191919,
$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,
$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%)
);
// Inject the theme template
@use 'template/theme';
// Include theme-specific fonts
@import url('./fonts/source-sans-pro/source-sans-pro.css');
// Change text colors against light slide backgrounds
@include mixins.light-bg-text-color(#222);

90
css/theme/blood.scss Normal file
View File

@@ -0,0 +1,90 @@
/**
* Blood theme for reveal.js
* Author: Walther http://github.com/Walther
*
* Designed to be used with highlight.js theme
* "monokai_sublime.css" available from
* https://github.com/isagalaev/highlight.js/
*
* For other themes, change $codeBackground accordingly.
*
*/
// Load utils
@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,
$main-font: 'Ubuntu, sans-serif',
$main-color: #eee,
$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, 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
);
// Inject the theme template
@use 'template/theme';
// Fonts
@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;
}
section.has-light-background {
p,
h1,
h2,
h3,
h4 {
text-shadow: none;
}
}
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
font-weight: 700;
}
.reveal p code {
background-color: $code-background-color;
display: inline-block;
border-radius: 7px;
}
.reveal small code {
vertical-align: baseline;
}

96
css/theme/dracula.scss Normal file
View File

@@ -0,0 +1,96 @@
/**
* Dracula Dark theme for reveal.js.
* Based on https://draculatheme.com
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
// Include theme-specific fonts
$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;
$mainFont: $systemFontsSansSerif;
$codeFont: 'Fira Code', $systemFontsMono;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #191919,
$main-font: $mainFont,
$main-font-size: 42px,
$main-color: $foreground,
$code-font: $codeFont,
$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: 1em,
$link-color: $pink,
$link-color-hover: $cyan,
$selection-color: #fff,
$selection-background-color: $selection
);
// Inject the theme template
@use 'template/theme';
// 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 {
--r-bold-color: #{$orange};
--r-italic-color: #{$yellow};
--r-inline-code-color: #{$green};
--r-list-bullet-color: #{$cyan};
}
/**
* Dracula colors by Zeno Rocha
* https://draculatheme.com/contribute
*/
.reveal {
strong,
b {
color: var(--r-bold-color);
}
em,
i,
blockquote {
color: var(--r-italic-color);
}
code {
color: var(--r-inline-code-color);
}
// Dracula colored list bullets and numbers
ul,
ol {
li::marker {
color: var(--r-list-bullet-color);
}
}
}

View File

@@ -0,0 +1,7 @@
@font-face {
font-family: 'League Gothic';
src: url('./league-gothic.woff') format('woff');
font-weight: normal;
font-style: normal;
}

View File

@@ -0,0 +1,27 @@
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-regular.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-italic.woff') format('woff');
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-semibold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-semibolditalic.woff') format('woff');
font-weight: 600;
font-style: italic;
}

39
css/theme/league.scss Normal file
View File

@@ -0,0 +1,39 @@
/**
* League theme for reveal.js.
*
* This was the default theme pre-3.0.0.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Load utils
@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, 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';
// 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');
// Change text colors against light slide backgrounds
@include mixins.light-bg-text-color(#222);

52
css/theme/moon.scss Normal file
View File

@@ -0,0 +1,52 @@
/**
* Solarized Dark theme for reveal.js.
* Author: Achim Staebler
*/
// Load utils
@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;
$active-color: $blue;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: $base03,
$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
);
// Inject the theme template
@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');
// Change text colors against light slide backgrounds
@include mixins.light-bg-text-color(#222);

39
css/theme/night.scss Normal file
View File

@@ -0,0 +1,39 @@
/**
* Black theme for reveal.js.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
$active-color: #e7ad52;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #111,
$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,
$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';
// 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');
// Change text colors against light slide backgrounds
@include mixins.light-bg-text-color(#222);

44
css/theme/serif.scss Normal file
View File

@@ -0,0 +1,44 @@
/**
* A simple theme for reveal.js presentations, similar
* to the default theme. The accent color is brown.
*
* This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
$active-color: #51483d;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #f0f1eb,
$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,
$link-color: $active-color,
$link-color-hover: color.scale($active-color, $lightness: 25%),
$selection-color: #fff,
$selection-background-color: $active-color,
$overlay-element-bg-color: '0 0 0',
$overlay-element-fg-color: '240 240 240'
);
// Inject the theme template
@use 'template/theme';
// Change text colors against light slide backgrounds
@include mixins.dark-bg-text-color(#fff);
.reveal a {
line-height: 1.3em;
}

48
css/theme/simple.scss Normal file
View File

@@ -0,0 +1,48 @@
/**
* A simple theme for reveal.js presentations, similar
* to the default theme. The accent color is darkblue.
*
* This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
* reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
$active-color: #00008b;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #fff,
$main-color: #000,
$main-font: "'Lato', sans-serif",
$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: 1em,
$link-color: $active-color,
$link-color-hover: color.scale($active-color, $lightness: 20%),
$selection-color: #fff,
$selection-background-color: $active-color,
$overlay-element-bg-color: '0, 0, 0',
$overlay-element-fg-color: '240, 240, 240'
);
// Inject the theme template
@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');
// Change text when the background is inverted
@include mixins.dark-bg-text-color(#fff);

46
css/theme/sky.scss Normal file
View File

@@ -0,0 +1,46 @@
/**
* Sky theme for reveal.js.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Load utils
@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,
$main-color: #333,
$main-font: "'Open Sans', sans-serif",
$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%),
$selection-color: #fff,
$selection-background-color: $active-color,
$overlay-element-bg-color: '0 0 0',
$overlay-element-fg-color: '240 240 240'
);
// Inject the theme template
@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');
// Change text when the background is inverted
@include mixins.dark-bg-text-color(#fff);
.reveal a {
line-height: 1.3em;
}

54
css/theme/solarized.scss Normal file
View File

@@ -0,0 +1,54 @@
/**
* Solarized Light theme for reveal.js.
* Author: Achim Staebler
*/
// Load utils
@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;
$active-color: $blue;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: $base3,
$main-color: $base00,
$heading-color: $base01,
$link-color: $active-color,
$link-color-hover: color.scale($active-color, $lightness: 20%),
$selection-color: #fff,
$selection-background-color: $magenta,
$overlay-element-bg-color: '0 0 0',
$overlay-element-fg-color: '240 240 240'
);
// Inject the theme template
@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');
// Change text when the background is inverted
@include mixins.dark-bg-text-color(#fff);

View File

@@ -1,41 +0,0 @@
/**
* Beige theme for reveal.js.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// 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);
// Override theme settings (see ../template/settings.scss)
$mainColor: #333;
$headingColor: #333;
$headingTextShadow: none;
$backgroundColor: #f7f3de;
$linkColor: #8b743d;
$linkColorHover: lighten( $linkColor, 20% );
$selectionBackgroundColor: rgba(79, 64, 28, 0.99);
$heading1TextShadow: 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);
// Background generator
@mixin bodyBackground() {
@include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) );
}
// Change text colors against dark slide backgrounds
@include dark-bg-text-color(#fff);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,46 +0,0 @@
/**
* Black theme for reveal.js. This is the opposite of the 'white' theme.
*
* By Hakim El Hattab, http://hakim.se
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// Include theme-specific fonts
@import url(./fonts/source-sans-pro/source-sans-pro.css);
// Override theme settings (see ../template/settings.scss)
$backgroundColor: #191919;
$mainColor: #fff;
$headingColor: #fff;
$mainFontSize: 42px;
$mainFont: 'Source Sans Pro', Helvetica, sans-serif;
$headingFont: 'Source Sans Pro', Helvetica, sans-serif;
$headingTextShadow: none;
$headingLetterSpacing: normal;
$headingTextTransform: uppercase;
$headingFontWeight: 600;
$linkColor: #42affa;
$linkColorHover: lighten( $linkColor, 15% );
$selectionBackgroundColor: lighten( $linkColor, 25% );
$heading1Size: 2.5em;
$heading2Size: 1.6em;
$heading3Size: 1.3em;
$heading4Size: 1.0em;
// Change text colors against light slide backgrounds
@include light-bg-text-color(#222);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,87 +0,0 @@
/**
* Blood theme for reveal.js
* Author: Walther http://github.com/Walther
*
* Designed to be used with highlight.js theme
* "monokai_sublime.css" available from
* https://github.com/isagalaev/highlight.js/
*
* For other themes, change $codeBackground accordingly.
*
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// Include theme-specific fonts
@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
// Colors used in the theme
$blood: #a23;
$coal: #222;
$codeBackground: #23241f;
$backgroundColor: $coal;
// Main text
$mainFont: Ubuntu, 'sans-serif';
$mainColor: #eee;
// Headings
$headingFont: Ubuntu, 'sans-serif';
$headingTextShadow: 2px 2px 2px $coal;
// h1 shadow, borrowed humbly from
// (c) Default theme by Hakim El Hattab
$heading1TextShadow: 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);
// Links
$linkColor: $blood;
$linkColorHover: lighten( $linkColor, 20% );
// Text selection
$selectionBackgroundColor: $blood;
$selectionColor: #fff;
// Change text colors against dark slide backgrounds
@include light-bg-text-color(#222);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------
// some overrides after theme template import
.reveal p {
font-weight: 300;
text-shadow: 1px 1px $coal;
}
section.has-light-background {
p, h1, h2, h3, h4 {
text-shadow: none;
}
}
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
font-weight: 700;
}
.reveal p code {
background-color: $codeBackground;
display: inline-block;
border-radius: 7px;
}
.reveal small code {
vertical-align: baseline;
}

View File

@@ -1,36 +0,0 @@
/**
* League theme for reveal.js.
*
* This was the default theme pre-3.0.0.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// 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);
// Override theme settings (see ../template/settings.scss)
$headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2);
$heading1TextShadow: 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);
// Background generator
@mixin bodyBackground() {
@include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) );
}
// Change text colors against light slide backgrounds
@include light-bg-text-color(#222);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,58 +0,0 @@
/**
* Solarized Dark theme for reveal.js.
* Author: Achim Staebler
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// 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);
/**
* Solarized colors by Ethan Schoonover
*/
html * {
color-profile: sRGB;
rendering-intent: auto;
}
// Solarized colors
$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;
// Override theme settings (see ../template/settings.scss)
$mainColor: $base1;
$headingColor: $base2;
$headingTextShadow: none;
$backgroundColor: $base03;
$linkColor: $blue;
$linkColorHover: lighten( $linkColor, 20% );
$selectionBackgroundColor: $magenta;
// Change text colors against light slide backgrounds
@include light-bg-text-color(#222);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,37 +0,0 @@
/**
* Black theme for reveal.js.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// 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);
// Override theme settings (see ../template/settings.scss)
$backgroundColor: #111;
$mainFont: 'Open Sans', sans-serif;
$linkColor: #e7ad52;
$linkColorHover: lighten( $linkColor, 20% );
$headingFont: 'Montserrat', Impact, sans-serif;
$headingTextShadow: none;
$headingLetterSpacing: -0.03em;
$headingTextTransform: none;
$selectionBackgroundColor: #e7ad52;
// Change text colors against light slide backgrounds
@include light-bg-text-color(#222);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,38 +0,0 @@
/**
* A simple theme for reveal.js presentations, similar
* to the default theme. The accent color is brown.
*
* This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// Override theme settings (see ../template/settings.scss)
$mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
$mainColor: #000;
$headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
$headingColor: #383D3D;
$headingTextShadow: none;
$headingTextTransform: none;
$backgroundColor: #F0F1EB;
$linkColor: #51483D;
$linkColorHover: lighten( $linkColor, 20% );
$selectionBackgroundColor: #26351C;
.reveal a {
line-height: 1.3em;
}
// Change text colors against dark slide backgrounds
@include dark-bg-text-color(#fff);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,40 +0,0 @@
/**
* A simple theme for reveal.js presentations, similar
* to the default theme. The accent color is darkblue.
*
* This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
* reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// 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);
// Override theme settings (see ../template/settings.scss)
$mainFont: 'Lato', sans-serif;
$mainColor: #000;
$headingFont: 'News Cycle', Impact, sans-serif;
$headingColor: #000;
$headingTextShadow: none;
$headingTextTransform: none;
$backgroundColor: #fff;
$linkColor: #00008B;
$linkColorHover: lighten( $linkColor, 20% );
$selectionBackgroundColor: rgba(0, 0, 0, 0.99);
// Change text colors against dark slide backgrounds
@include dark-bg-text-color(#fff);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,49 +0,0 @@
/**
* Sky theme for reveal.js.
*
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// 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);
// Override theme settings (see ../template/settings.scss)
$mainFont: 'Open Sans', sans-serif;
$mainColor: #333;
$headingFont: 'Quicksand', sans-serif;
$headingColor: #333;
$headingLetterSpacing: -0.08em;
$headingTextShadow: none;
$backgroundColor: #f7fbfc;
$linkColor: #3b759e;
$linkColorHover: lighten( $linkColor, 20% );
$selectionBackgroundColor: #134674;
// Fix links so they are not cut off
.reveal a {
line-height: 1.3em;
}
// Background generator
@mixin bodyBackground() {
@include radial-gradient( #add9e4, #f7fbfc );
}
// Change text colors against dark slide backgrounds
@include dark-bg-text-color(#fff);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,63 +0,0 @@
/**
* Solarized Light theme for reveal.js.
* Author: Achim Staebler
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// 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);
/**
* Solarized colors by Ethan Schoonover
*/
html * {
color-profile: sRGB;
rendering-intent: auto;
}
// Solarized colors
$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;
// Override theme settings (see ../template/settings.scss)
$mainColor: $base00;
$headingColor: $base01;
$headingTextShadow: none;
$backgroundColor: $base3;
$linkColor: $blue;
$linkColorHover: lighten( $linkColor, 20% );
$selectionBackgroundColor: $magenta;
// Background generator
// @mixin bodyBackground() {
// @include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) );
// }
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,46 +0,0 @@
/**
* White theme for reveal.js. This is the opposite of the 'black' theme.
*
* By Hakim El Hattab, http://hakim.se
*/
// Default mixins and settings -----------------
@import "../template/mixins";
@import "../template/settings";
// ---------------------------------------------
// Include theme-specific fonts
@import url(./fonts/source-sans-pro/source-sans-pro.css);
// Override theme settings (see ../template/settings.scss)
$backgroundColor: #fff;
$mainColor: #222;
$headingColor: #222;
$mainFontSize: 42px;
$mainFont: 'Source Sans Pro', Helvetica, sans-serif;
$headingFont: 'Source Sans Pro', Helvetica, sans-serif;
$headingTextShadow: none;
$headingLetterSpacing: normal;
$headingTextTransform: uppercase;
$headingFontWeight: 600;
$linkColor: #2a76dd;
$linkColorHover: lighten( $linkColor, 15% );
$selectionBackgroundColor: lighten( $linkColor, 25% );
$heading1Size: 2.5em;
$heading2Size: 1.6em;
$heading3Size: 1.3em;
$heading4Size: 1.0em;
// Change text colors against dark slide backgrounds
@include dark-bg-text-color(#fff);
// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------

View File

@@ -1,28 +0,0 @@
// Exposes theme's variables for easy re-use in CSS for plugin authors
:root {
--r-background-color: #{$backgroundColor};
--r-main-font: #{$mainFont};
--r-main-font-size: #{$mainFontSize};
--r-main-color: #{$mainColor};
--r-block-margin: #{$blockMargin};
--r-heading-margin: #{$headingMargin};
--r-heading-font: #{$headingFont};
--r-heading-color: #{$headingColor};
--r-heading-line-height: #{$headingLineHeight};
--r-heading-letter-spacing: #{$headingLetterSpacing};
--r-heading-text-transform: #{$headingTextTransform};
--r-heading-text-shadow: #{$headingTextShadow};
--r-heading-font-weight: #{$headingFontWeight};
--r-heading1-text-shadow: #{$heading1TextShadow};
--r-heading1-size: #{$heading1Size};
--r-heading2-size: #{$heading2Size};
--r-heading3-size: #{$heading3Size};
--r-heading4-size: #{$heading4Size};
--r-code-font: #{$codeFont};
--r-link-color: #{$linkColor};
--r-link-color-dark: #{darken($linkColor , 15% )};
--r-link-color-hover: #{$linkColorHover};
--r-selection-background-color: #{$selectionBackgroundColor};
--r-selection-color: #{$selectionColor};
}

View File

@@ -1,36 +1,12 @@
@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 {
&,
h1,
h2,
h3,
h4,
h5,
h6 {
color: $color;
}
}
@@ -38,7 +14,13 @@
@mixin dark-bg-text-color($color) {
section.has-dark-background {
&, h1, h2, h3, h4, h5, h6 {
&,
h1,
h2,
h3,
h4,
h5,
h6 {
color: $color;
}
}

View File

@@ -1,45 +1,96 @@
// Base settings for all themes that can optionally be
// overridden by the super-theme
@use 'sass:color';
@use 'sass:meta';
// Background of the presentation
$backgroundColor: #2b2b2b;
$background: #2b2b2b !default;
$background-color: #bbb !default;
// Primary/body text
$mainFont: 'Lato', sans-serif;
$mainFontSize: 40px;
$mainColor: #eee;
$main-font: 'Lato', sans-serif !default;
$main-font-size: 40px !default;
$main-color: #eee !default;
// Vertical spacing between blocks of text
$blockMargin: 20px;
$block-margin: 20px !default;
// Headings
$headingMargin: 0 0 $blockMargin 0;
$headingFont: 'League Gothic', Impact, sans-serif;
$headingColor: #eee;
$headingLineHeight: 1.2;
$headingLetterSpacing: normal;
$headingTextTransform: uppercase;
$headingTextShadow: none;
$headingFontWeight: normal;
$heading1TextShadow: $headingTextShadow;
$heading-margin: 0 0 20px 0 !default;
$heading-font: 'League Gothic', Impact, sans-serif !default;
$heading-color: #eee !default;
$heading-line-height: 1.2 !default;
$heading-letter-spacing: normal !default;
$heading-text-transform: uppercase !default;
$heading-text-shadow: none !default;
$heading-font-weight: normal !default;
$heading1-text-shadow: none !default;
$heading1Size: 3.77em;
$heading2Size: 2.11em;
$heading3Size: 1.55em;
$heading4Size: 1.00em;
$heading1-size: 3.77em !default;
$heading2-size: 2.11em !default;
$heading3-size: 1.55em !default;
$heading4-size: 1em !default;
$codeFont: monospace;
$code-font: monospace !default;
// Links and actions
$linkColor: #13DAEC;
$linkColorHover: lighten( $linkColor, 20% );
$link-color: #13daec !default;
$link-color-dark: color.scale($link-color, $lightness: -15%) !default;
$link-color-hover: color.scale($link-color, $lightness: 20%) !default;
// Text selection
$selectionBackgroundColor: #FF5E99;
$selectionColor: #fff;
$selection-background-color: #0fadbb !default;
$selection-color: #fff !default;
// Generates the presentation background, can be overridden
// to return a background image or gradient
@mixin bodyBackground() {
background: $backgroundColor;
// Colors used for UI elements that are overlaid on top of
// the presentation
$overlay-element-bg-color: 240, 240, 240 !default;
$overlay-element-fg-color: 0, 0, 0 !default;
// Expose all SCSS variables as CSS custom properties
:root {
// 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};
// 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};
--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};
// 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};
// 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};
}

View File

@@ -4,10 +4,8 @@
* GLOBAL STYLES
*********************************************/
@import "./exposer";
.reveal-viewport {
@include bodyBackground();
background: var(--r-background);
background-color: var(--r-background-color);
}
@@ -60,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
*********************************************/
@@ -221,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;
}
@@ -260,7 +265,6 @@
margin: var(--r-block-margin) 0;
}
/*********************************************
* LINKS
*********************************************/
@@ -268,7 +272,7 @@
.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);
@@ -280,10 +284,8 @@
color: #fff;
// background: darken( var(--r-link-color), 15% );
background: var(--r-link-color-dark);
}
/*********************************************
* Frame helper
*********************************************/
@@ -294,7 +296,7 @@
}
.reveal a .r-frame {
transition: all .15s linear;
transition: all 0.15s linear;
}
.reveal a:hover .r-frame {
@@ -302,7 +304,6 @@
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
}
/*********************************************
* NAVIGATION CONTROLS
*********************************************/
@@ -311,7 +312,6 @@
color: var(--r-link-color);
}
/*********************************************
* PROGRESS BAR
*********************************************/

View File

@@ -0,0 +1,49 @@
/**
* White compact & high contrast reveal.js theme, with headers not in capitals.
*
* By Peter Kehl. Based on white.(s)css by Hakim El Hattab, http://hakim.se
*
* - Keep the source similar to black.css - for easy comparison.
* - $mainFontSize controls code blocks, too (although under some ratio).
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
$active-color: #2a76dd;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #fff,
$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,
$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: $active-color,
$overlay-element-bg-color: '0, 0, 0',
$overlay-element-fg-color: '240, 240, 240'
);
// Inject the theme template
@use 'template/theme';
// Include theme-specific fonts
@import url('./fonts/source-sans-pro/source-sans-pro.css');
// Change text when the background is inverted
@include mixins.dark-bg-text-color(#fff);

46
css/theme/white.scss Normal file
View File

@@ -0,0 +1,46 @@
/**
* White theme for reveal.js. This is the opposite of the 'black' theme.
*
* By Hakim El Hattab, http://hakim.se
*/
// Load utils
@use 'sass:color';
@use 'template/mixins' as mixins;
$active-color: #2a76dd;
// Inject theme variables (with some overrides)
@use 'template/settings' with (
$background-color: #fff,
$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,
$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: $active-color,
$overlay-element-bg-color: '0 0 0',
$overlay-element-fg-color: '240 240 240'
);
// Inject the theme template
@use 'template/theme';
// Include theme-specific fonts
@import url('./fonts/source-sans-pro/source-sans-pro.css');
// Change text when the background is inverted
@include mixins.dark-bg-text-color(#fff);

453
demo.html
View File

@@ -1,47 +1,58 @@
<!doctype html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta charset="utf-8" />
<title>reveal.js The HTML Presentation Framework</title>
<meta name="description" content="A framework for easily creating beautiful presentations using HTML">
<meta name="author" content="Hakim El Hattab">
<meta
name="description"
content="A framework for easily creating beautiful presentations using HTML"
/>
<meta name="author" content="Hakim El Hattab" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/black.css" id="theme">
<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/reveal.scss" />
<link rel="stylesheet" href="css/theme/black.scss" id="theme" />
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
<link rel="stylesheet" href="plugin/highlight/monokai.css" />
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section>
<a href="https://revealjs.com">
<img src="https://static.slid.es/reveal/logo-v1/reveal-white-text.svg" alt="reveal.js logo" style="height: 180px; margin: 0 auto 4rem auto; background: transparent;" class="demo-logo">
<img
src="https://static.slid.es/reveal/logo-v1/reveal-white-text.svg"
alt="reveal.js logo"
style="height: 180px; margin: 0 auto 4rem auto; background: transparent"
class="demo-logo"
/>
</a>
<h3>The HTML Presentation Framework</h3>
<p>
<small>Created by <a href="http://hakim.se">Hakim El Hattab</a> and <a href="https://github.com/hakimel/reveal.js/graphs/contributors">contributors</a></small>
<small
>Created by <a href="http://hakim.se">Hakim El Hattab</a> and
<a href="https://github.com/hakimel/reveal.js/graphs/contributors"
>contributors</a
></small
>
</p>
</section>
<section>
<h2>Hello There</h2>
<p>
reveal.js enables you to create beautiful interactive slide decks using HTML. This presentation will show you examples of what it can do.
reveal.js enables you to create beautiful interactive slide decks using HTML. This
presentation will show you examples of what it can do.
</p>
</section>
@@ -51,21 +62,38 @@
<h2>Vertical Slides</h2>
<p>Slides can be nested inside of each other.</p>
<p>Use the <em>Space</em> key to navigate through all slides.</p>
<br>
<br />
<a href="#/2/1" class="navigate-down">
<img class="r-frame" style="background: rgba(255,255,255,0.1);" width="178" height="238" data-src="https://static.slid.es/reveal/arrow.png" alt="Down arrow">
<img
class="r-frame"
style="background: rgba(255, 255, 255, 0.1)"
width="178"
height="238"
data-src="https://static.slid.es/reveal/arrow.png"
alt="Down arrow"
/>
</a>
</section>
<section>
<h2>Basement Level 1</h2>
<p>Nested slides are useful for adding additional detail underneath a high level horizontal slide.</p>
<p>
Nested slides are useful for adding additional detail underneath a high level
horizontal slide.
</p>
</section>
<section>
<h2>Basement Level 2</h2>
<p>That's it, time to go back up.</p>
<br>
<br />
<a href="#/2">
<img class="r-frame" style="background: rgba(255,255,255,0.1); transform: rotate(180deg);" width="178" height="238" data-src="https://static.slid.es/reveal/arrow.png" alt="Up arrow">
<img
class="r-frame"
style="background: rgba(255, 255, 255, 0.1); transform: rotate(180deg)"
width="178"
height="238"
data-src="https://static.slid.es/reveal/arrow.png"
alt="Up arrow"
/>
</a>
</section>
</section>
@@ -73,37 +101,46 @@
<section>
<h2>Slides</h2>
<p>
Not a coder? Not a problem. There's a fully-featured visual editor for authoring these, try it out at <a href="https://slides.com" target="_blank">https://slides.com</a>.
Not a coder? Not a problem. There's a fully-featured visual editor for authoring these,
try it out at <a href="https://slides.com" target="_blank">https://slides.com</a>.
</p>
</section>
<section data-visibility="hidden">
<h2>Hidden Slides</h2>
<p>
This slide is visible in the source, but hidden when the presentation is viewed. You can show all hidden slides by setting the `showHiddenSlides` config option to `true`.
This slide is visible in the source, but hidden when the presentation is viewed. You can
show all hidden slides by setting the `showHiddenSlides` config option to `true`.
</p>
</section>
<section data-auto-animate>
<h2 data-id="code-title">Pretty Code</h2>
<pre data-id="code-animation"><code class="hljs" data-trim data-line-numbers>
import React, { useState } from 'react';
<pre data-id="code-animation"><code class="hljs javascript" data-trim data-line-numbers>
import { useState } from 'react';
function Example() {
const [count, setCount] = useState(0);
return (
...
);
}
</code></pre>
<p>Code syntax highlighting courtesy of <a href="https://highlightjs.org/usage/">highlight.js</a>.</p>
<p>
Code syntax highlighting courtesy of
<a href="https://highlightjs.org/usage/">highlight.js</a>.
</p>
</section>
<section data-auto-animate>
<h2 data-id="code-title">With animations</h2>
<pre data-id="code-animation"><code class="hljs" data-trim data-line-numbers="|4,8-11|17|22-24"><script type="text/template">
import React, { useState } from 'react';
<h2 data-id="code-title">With Animations</h2>
<pre
data-id="code-animation"
><code class="hljs javascript" data-trim data-line-numbers="|4,8-11|17|22-24"><script type="text/template">
import { useState } from 'react';
function Example() {
const [count, setCount] = useState(0);
@@ -135,60 +172,92 @@
<section>
<h2>Point of View</h2>
<p>Press <strong>ESC</strong> to enter the slide overview.</p>
<p>
Press <strong>ESC</strong> to enter the slide overview.
</p>
<p>
Hold down the <strong>alt</strong> key (<strong>ctrl</strong> in Linux) and click on any element to zoom towards it using <a href="http://lab.hakim.se/zoom-js">zoom.js</a>. Click again to zoom back out.
</p>
<p>
(NOTE: Use ctrl + click in Linux.)
Hold down the <strong>alt</strong> key (<strong>ctrl</strong> in Linux) and click on any
element to zoom towards it using <a href="http://lab.hakim.se/zoom-js">zoom.js</a>.
Click again to zoom back out.
</p>
<p>(NOTE: Use ctrl + click in Linux.)</p>
</section>
<section data-auto-animate data-auto-animate-easing="cubic-bezier(0.770, 0.000, 0.175, 1.000)">
<section
data-auto-animate
data-auto-animate-easing="cubic-bezier(0.770, 0.000, 0.175, 1.000)"
>
<h2>Auto-Animate</h2>
<p>Automatically animate matching elements across slides with <a href="https://revealjs.com/auto-animate/">Auto-Animate</a>.</p>
<p>
Automatically animate matching elements across slides with
<a href="https://revealjs.com/auto-animate/">Auto-Animate</a>.
</p>
<div class="r-hstack justify-center">
<div data-id="box1" style="background: #999; width: 50px; height: 50px; margin: 10px; border-radius: 5px;"></div>
<div data-id="box2" style="background: #999; width: 50px; height: 50px; margin: 10px; border-radius: 5px;"></div>
<div data-id="box3" style="background: #999; width: 50px; height: 50px; margin: 10px; border-radius: 5px;"></div>
<div
data-id="box1"
style="background: #999; width: 50px; height: 50px; margin: 10px; border-radius: 5px"
></div>
<div
data-id="box2"
style="background: #999; width: 50px; height: 50px; margin: 10px; border-radius: 5px"
></div>
<div
data-id="box3"
style="background: #999; width: 50px; height: 50px; margin: 10px; border-radius: 5px"
></div>
</div>
</section>
<section data-auto-animate data-auto-animate-easing="cubic-bezier(0.770, 0.000, 0.175, 1.000)">
<section
data-auto-animate
data-auto-animate-easing="cubic-bezier(0.770, 0.000, 0.175, 1.000)"
>
<div class="r-hstack justify-center">
<div data-id="box1" data-auto-animate-delay="0" style="background: cyan; width: 150px; height: 100px; margin: 10px;"></div>
<div data-id="box2" data-auto-animate-delay="0.1" style="background: magenta; width: 150px; height: 100px; margin: 10px;"></div>
<div data-id="box3" data-auto-animate-delay="0.2" style="background: yellow; width: 150px; height: 100px; margin: 10px;"></div>
<div
data-id="box1"
data-auto-animate-delay="0"
style="background: cyan; width: 150px; height: 100px; margin: 10px"
></div>
<div
data-id="box2"
data-auto-animate-delay="0.1"
style="background: magenta; width: 150px; height: 100px; margin: 10px"
></div>
<div
data-id="box3"
data-auto-animate-delay="0.2"
style="background: yellow; width: 150px; height: 100px; margin: 10px"
></div>
</div>
<h2 style="margin-top: 20px;">Auto-Animate</h2>
<h2 style="margin-top: 20px">Auto-Animate</h2>
</section>
<section data-auto-animate data-auto-animate-easing="cubic-bezier(0.770, 0.000, 0.175, 1.000)">
<section
data-auto-animate
data-auto-animate-easing="cubic-bezier(0.770, 0.000, 0.175, 1.000)"
>
<div class="r-stack">
<div data-id="box1" style="background: cyan; width: 300px; height: 300px; border-radius: 200px;"></div>
<div data-id="box2" style="background: magenta; width: 200px; height: 200px; border-radius: 200px;"></div>
<div data-id="box3" style="background: yellow; width: 100px; height: 100px; border-radius: 200px;"></div>
<div data-id="box1" style="background: cyan; width: 300px; height: 300px"></div>
<div data-id="box2" style="background: magenta; width: 200px; height: 200px"></div>
<div data-id="box3" style="background: yellow; width: 100px; height: 100px"></div>
</div>
<h2 style="margin-top: 20px;">Auto-Animate</h2>
<h2 style="margin-top: 20px">Auto-Animate</h2>
</section>
<section>
<h2>Touch Optimized</h2>
<p>
Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.
Presentations look great on touch devices, like mobile phones and tablets. Simply swipe
through your slides.
</p>
</section>
<section data-markdown>
<script type="text/template">
## Markdown support
## Markdown Support
Write content using inline or external Markdown.
Instructions and more info available in the [docs](https://revealjs.com/markdown/).
```html []
<section data-markdown>
## Markdown support
## Markdown Support
Write content using inline or external Markdown.
Instructions and more info available in the [docs](https://revealjs.com/markdown/).
@@ -197,6 +266,25 @@
</script>
</section>
<section>
<h2>Lightbox</h2>
Turn any element into a <a href="https://revealjs.com/lightbox/">lightbox</a> using <strong>datapreviewimage</strong> & <strong>datapreviewvideo</strong>.
<div class="r-hstack" style="gap: 2rem;">
<div>
<pre style="font-size: 12px; width: 100%"><code class="html" data-trim>
&lt;img src="image.png" data-preview-image="image.png"&gt;
</code></pre>
<img src="https://static.slid.es/logo/v2/slides-symbol-1024x1024.png" height="100" data-preview-image>
</div>
<div>
<pre style="font-size: 12px; width: 100%"><code class="html" data-trim>
&lt;img src="video.png" data-preview-video="video.mp4"&gt;
</code></pre>
<img src="https://static.slid.es/site/homepage/v1/homepage-video-editor.png" height="100" data-preview-video="https://static.slid.es/site/homepage/v1/homepage-video-editor.mp4">
</div>
</div>
</section>
<section>
<p>Add the <code>r-fit-text</code> class to auto-size text</p>
<h2 class="r-fit-text">FIT TEXT</h2>
@@ -207,7 +295,10 @@
<h2>Fragments</h2>
<p>Hit the next arrow...</p>
<p class="fragment">... to step through ...</p>
<p><span class="fragment">... a</span> <span class="fragment">fragmented</span> <span class="fragment">slide.</span></p>
<p>
<span class="fragment">... a</span> <span class="fragment">fragmented</span>
<span class="fragment">slide.</span>
</p>
<aside class="notes">
This slide has fragments which are also stepped through in the notes window.
@@ -220,21 +311,25 @@
<p class="fragment shrink">shrink</p>
<p class="fragment fade-out">fade-out</p>
<p>
<span style="display: inline-block;" class="fragment fade-right">fade-right, </span>
<span style="display: inline-block;" class="fragment fade-up">up, </span>
<span style="display: inline-block;" class="fragment fade-down">down, </span>
<span style="display: inline-block;" class="fragment fade-left">left</span>
<span style="display: inline-block" class="fragment fade-right">fade-right, </span>
<span style="display: inline-block" class="fragment fade-up">up, </span>
<span style="display: inline-block" class="fragment fade-down">down, </span>
<span style="display: inline-block" class="fragment fade-left">left</span>
</p>
<p class="fragment fade-in-then-out">fade-in-then-out</p>
<p class="fragment fade-in-then-semi-out">fade-in-then-semi-out</p>
<p>Highlight <span class="fragment highlight-red">red</span> <span class="fragment highlight-blue">blue</span> <span class="fragment highlight-green">green</span></p>
<p>
Highlight <span class="fragment highlight-red">red</span>
<span class="fragment highlight-blue">blue</span>
<span class="fragment highlight-green">green</span>
</p>
</section>
</section>
<section id="transitions">
<h2>Transition Styles</h2>
<p>
You can select from different transitions, like: <br>
You can select from different transitions, like: <br />
<a href="?transition=none#/transitions">None</a> -
<a href="?transition=fade#/transitions">Fade</a> -
<a href="?transition=slide#/transitions">Slide</a> -
@@ -247,19 +342,73 @@
<section id="themes">
<h2>Themes</h2>
<p>
reveal.js comes with a few themes built in: <br>
reveal.js comes with a few themes built in: <br />
<!-- Hacks to swap themes after the page has loaded. Not flexible and only intended for the reveal.js demo deck. -->
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/black.css'); return false;">Black (default)</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/white.css'); return false;">White</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/league.css'); return false;">League</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/sky.css'); return false;">Sky</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/beige.css'); return false;">Beige</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/simple.css'); return false;">Simple</a> <br>
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/serif.css'); return false;">Serif</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/blood.css'); return false;">Blood</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/night.css'); return false;">Night</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/moon.css'); return false;">Moon</a> -
<a href="#" onclick="document.getElementById('theme').setAttribute('href','dist/theme/solarized.css'); return false;">Solarized</a>
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/black.css'); return false;"
>Black (default)</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/white.css'); return false;"
>White</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/league.css'); return false;"
>League</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/sky.css'); return false;"
>Sky</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/beige.css'); return false;"
>Beige</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/simple.css'); return false;"
>Simple</a
>
<br />
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/serif.css'); return false;"
>Serif</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/blood.css'); return false;"
>Blood</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/night.css'); return false;"
>Night</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/moon.css'); return false;"
>Moon</a
>
-
<a
href="#/themes"
onclick="document.getElementById('theme').setAttribute('href','dist/theme/solarized.css'); return false;"
>Solarized</a
>
</p>
</section>
@@ -267,22 +416,42 @@
<section data-background="#dddddd">
<h2>Slide Backgrounds</h2>
<p>
Set <code>data-background="#dddddd"</code> on a slide to change the background color. All CSS color formats are supported.
Set <code>data-background="#dddddd"</code> on a slide to change the background color.
All CSS color formats are supported.
</p>
<a href="#" class="navigate-down">
<img class="r-frame" style="background: rgba(255,255,255,0.1);" width="178" height="238" data-src="https://static.slid.es/reveal/arrow.png" alt="Down arrow">
<img
class="r-frame"
style="background: rgba(255, 255, 255, 0.1)"
width="178"
height="238"
data-src="https://static.slid.es/reveal/arrow.png"
alt="Down arrow"
/>
</a>
</section>
<section data-background-gradient="linear-gradient(to bottom, #283b95, #17b2c3)">
<h2>Gradient Backgrounds</h2>
<pre><code class="hljs html wrap">&lt;section data-background-gradient=
"linear-gradient(to bottom, #ddd, #191919)"&gt;</code></pre>
</section>
<section data-background="https://static.slid.es/reveal/image-placeholder.png">
<h2>Image Backgrounds</h2>
<pre><code class="hljs html">&lt;section data-background="image.png"&gt;</code></pre>
</section>
<section data-background="https://static.slid.es/reveal/image-placeholder.png" data-background-repeat="repeat" data-background-size="100px">
<section
data-background="https://static.slid.es/reveal/image-placeholder.png"
data-background-repeat="repeat"
data-background-size="100px"
>
<h2>Tiled Backgrounds</h2>
<pre><code class="hljs html" style="word-wrap: break-word;">&lt;section data-background="image.png" data-background-repeat="repeat" data-background-size="100px"&gt;</code></pre>
</section>
<section data-background-video="https://static.slid.es/site/homepage/v1/homepage-video-editor.mp4" data-background-color="#000000">
<div style="background-color: rgba(0, 0, 0, 0.9); color: #fff; padding: 20px;">
<section
data-background-video="https://static.slid.es/site/homepage/v1/homepage-video-editor.mp4"
data-background-color="#000000"
>
<div style="background-color: rgba(0, 0, 0, 0.9); color: #fff; padding: 20px">
<h2>Video Backgrounds</h2>
<pre><code class="hljs html" style="word-wrap: break-word;">&lt;section data-background-video="video.mp4,video.webm"&gt;</code></pre>
</div>
@@ -292,26 +461,48 @@
</section>
</section>
<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
<section
data-transition="slide"
data-background="#4d7e65"
data-background-transition="zoom"
>
<h2>Background Transitions</h2>
<p>
Different background transitions are available via the backgroundTransition option. This one's called "zoom".
Different background transitions are available via the backgroundTransition option. This
one's called "zoom".
</p>
<pre><code class="hljs javascript">Reveal.configure({ backgroundTransition: 'zoom' })</code></pre>
</section>
<section data-transition="slide" data-background="#b5533c" data-background-transition="zoom">
<section
data-transition="slide"
data-background="#b5533c"
data-background-transition="zoom"
>
<h2>Background Transitions</h2>
<p>
You can override background transitions per-slide.
</p>
<p>You can override background transitions per-slide.</p>
<pre><code class="hljs html" style="word-wrap: break-word;">&lt;section data-background-transition="zoom"&gt;</code></pre>
</section>
<section data-background-iframe="https://hakim.se" data-background-interactive>
<div style="position: absolute; width: 40%; right: 0; box-shadow: 0 1px 4px rgba(0,0,0,0.5), 0 5px 25px rgba(0,0,0,0.2); background-color: rgba(0, 0, 0, 0.9); color: #fff; padding: 20px; font-size: 20px; text-align: left;">
<div
style="
position: absolute;
width: 40%;
right: 0;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5), 0 5px 25px rgba(0, 0, 0, 0.2);
background-color: rgba(0, 0, 0, 0.9);
color: #fff;
padding: 20px;
font-size: 20px;
text-align: left;
"
>
<h2>Iframe Backgrounds</h2>
<p>Since reveal.js runs on the web, you can easily embed other web content. Try interacting with the page in the background.</p>
<p>
Since reveal.js runs on the web, you can easily embed other web content. Try
interacting with the page in the background.
</p>
</div>
</section>
@@ -367,11 +558,19 @@
<section>
<h2>Clever Quotes</h2>
<p>
These guys come in two forms, inline: <q cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">The nice thing about standards is that there are so many to choose from</q> and block:
These guys come in two forms, inline:
<q
cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations"
>The nice thing about standards is that there are so many to choose from</q
>
and block:
</p>
<blockquote cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">
&ldquo;For years there has been a theory that millions of monkeys typing at random on millions of typewriters would
reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.&rdquo;
<blockquote
cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations"
>
&ldquo;For years there has been a theory that millions of monkeys typing at random on
millions of typewriters would reproduce the entire works of Shakespeare. The Internet
has proven this theory to be untrue.&rdquo;
</blockquote>
</section>
@@ -385,18 +584,36 @@
<section>
<h2>Speaker View</h2>
<p>There's a <a href="https://revealjs.com/speaker-view/">speaker view</a>. It includes a timer, preview of the upcoming slide as well as your speaker notes.</p>
<p>
There's a <a href="https://revealjs.com/speaker-view/">speaker view</a>. It includes a
timer, preview of the upcoming slide as well as your speaker notes.
</p>
<p>Press the <em>S</em> key to try it out.</p>
<aside class="notes">
Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window (hit 's' on your keyboard).
Oh hey, these are some notes. They'll be hidden in your presentation, but you can see
them if you open the speaker notes window (hit 's' on your keyboard).
</aside>
</section>
<section>
<h2>Export to PDF</h2>
<p>Presentations can be <a href="https://revealjs.com/pdf-export/">exported to PDF</a>, here's an example:</p>
<iframe data-src="https://www.slideshare.net/slideshow/embed_code/42840540" width="445" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:3px solid #666; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<p>
Presentations can be <a href="https://revealjs.com/pdf-export/">exported to PDF</a>,
here's an example:
</p>
<iframe
data-src="https://www.slideshare.net/slideshow/embed_code/42840540"
width="445"
height="355"
frameborder="0"
marginwidth="0"
marginheight="0"
scrolling="no"
style="border: 3px solid #666; margin-bottom: 5px; max-width: 100%"
allowfullscreen
>
</iframe>
</section>
<section>
@@ -411,7 +628,8 @@
<section data-state="customevent">
<h2>State Events</h2>
<p>
Additionally custom events can be triggered on a per slide basis by binding to the <code>data-state</code> name.
Additionally custom events can be triggered on a per slide basis by binding to the
<code>data-state</code> name.
</p>
<pre><code class="javascript" data-trim contenteditable style="font-size: 18px;">
Reveal.on( 'customevent', function() {
@@ -423,7 +641,8 @@ Reveal.on( 'customevent', function() {
<section>
<h2>Take a Moment</h2>
<p>
Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.
Press B or . on your keyboard to pause the presentation. This is helpful when you're on
stage and want to take distracting slides off the screen.
</p>
</section>
@@ -433,30 +652,42 @@ Reveal.on( 'customevent', function() {
<li>Right-to-left support</li>
<li><a href="https://revealjs.com/api/">Extensive JavaScript API</a></li>
<li><a href="https://revealjs.com/auto-slide/">Auto-progression</a></li>
<li><a href="https://revealjs.com/backgrounds/#parallax-background">Parallax backgrounds</a></li>
<li>
<a href="https://revealjs.com/backgrounds/#parallax-background"
>Parallax backgrounds</a
>
</li>
<li><a href="https://revealjs.com/keyboard/">Custom keyboard bindings</a></li>
</ul>
</section>
<section style="text-align: left;">
<section style="text-align: left">
<h1>THE END</h1>
<p>
- <a href="https://slides.com">Try the online editor</a> <br>
- <a href="https://slides.com">Try the online editor</a> <br />
- <a href="https://github.com/hakimel/reveal.js">Source code &amp; documentation</a>
</p>
</section>
</div>
</div>
</div>
<!-- Use the built assets if you want to run reveal.js without a web server -->
<!--
<script src="dist/reveal.js"></script>
<script src="plugin/zoom/zoom.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/search/search.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
<script src="dist/plugin/zoom.js"></script>
<script src="dist/plugin/notes.js"></script>
<script src="dist/plugin/search.js"></script>
<script src="dist/plugin/markdown.js"></script>
<script src="dist/plugin/highlight.js"></script>
-->
<script type="module">
import Reveal from 'reveal.js';
import RevealZoom from 'reveal.js/plugin/zoom';
import RevealNotes from 'reveal.js/plugin/notes';
import RevealSearch from 'reveal.js/plugin/search';
import RevealMarkdown from 'reveal.js/plugin/markdown';
import RevealHighlight from 'reveal.js/plugin/highlight';
// Also available as an ES module, see:
// https://revealjs.com/initialization/
@@ -467,10 +698,8 @@ Reveal.on( 'customevent', function() {
hash: true,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealZoom, RevealNotes, RevealSearch, RevealMarkdown, RevealHighlight ]
plugins: [RevealZoom, RevealNotes, RevealSearch, RevealMarkdown, RevealHighlight],
});
</script>
</body>
</html>

18
dist/plugin/highlight.js vendored Normal file

File diff suppressed because one or more lines are too long

48754
dist/plugin/highlight.mjs vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -70,7 +70,6 @@ based on dark.css by Ivan Sagalaev
color: #7f9f7f;
}
.hljs-emphasis {
font-style: italic;
}

54
dist/plugin/markdown.js vendored Normal file

File diff suppressed because one or more lines are too long

1732
dist/plugin/markdown.mjs vendored Normal file

File diff suppressed because it is too large Load Diff

4
dist/plugin/math.js vendored Normal file
View File

@@ -0,0 +1,4 @@
(function(d,r){typeof exports=="object"&&typeof module<"u"?module.exports=r():typeof define=="function"&&define.amd?define(r):(d=typeof globalThis<"u"?globalThis:d||self,d.RevealMath=r())})(this,function(){"use strict";const d=()=>{let n,s={version:"latest",delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}],ignoredTags:["script","noscript","style","textarea","pre","code"]};const c=t=>{let e=document.createElement("link");e.rel="stylesheet",e.href=t,document.head.appendChild(e)},o=t=>new Promise((e,i)=>{const l=document.createElement("script");l.type="text/javascript",l.onload=e,l.onerror=i,l.src=t,document.head.append(l)});async function a(t){for(const e of t)await o(e)}return{id:"katex",init:function(t){n=t;let e=n.getConfig().katex||{},i={...s,...e};const{local:l,version:x,extensions:S,...g}=i;let p=i.local||"https://cdn.jsdelivr.net/npm/katex",u=i.local?"":"@"+i.version,j=p+u+"/dist/katex.min.css",M=p+u+"/dist/katex.min.js",v=p+u+"/dist/contrib/mhchem.min.js",J=p+u+"/dist/contrib/auto-render.min.js",h=[M];i.extensions&&i.extensions.includes("mhchem")&&h.push(v),h.push(J);const f=()=>{renderMathInElement(t.getSlidesElement(),g),n.layout()};c(j),a(h).then(()=>{n.isReady()?f():n.on("ready",f.bind(this))})}}},r=()=>{let n,s={messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],skipTags:["script","noscript","style","textarea","pre","code"]},skipStartupTypeset:!0};function c(o,a){let t=document.querySelector("head"),e=document.createElement("script");e.type="text/javascript",e.src=o;let i=()=>{typeof a=="function"&&(a.call(),a=null)};e.onload=i,e.onreadystatechange=()=>{this.readyState==="loaded"&&i()},t.appendChild(e)}return{id:"mathjax2",init:function(o){n=o;let a=n.getConfig().mathjax2||n.getConfig().math||{},t={...s,...a},e=t.mathjax||"https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js",i=t.config||"TeX-AMS_HTML-full",l=e+"?config="+i;t.tex2jax={...s.tex2jax,...a.tex2jax},t.mathjax=t.config=null,c(l,function(){MathJax.Hub.Config(t),MathJax.Hub.Queue(["Typeset",MathJax.Hub,n.getRevealElement()]),MathJax.Hub.Queue(n.layout),n.on("slidechanged",function(x){MathJax.Hub.Queue(["Typeset",MathJax.Hub,x.currentSlide])})})}}},m=()=>{let n,s={tex:{inlineMath:[["$","$"],["\\(","\\)"]]},options:{skipHtmlTags:["script","noscript","style","textarea","pre","code"]},startup:{ready:()=>{MathJax.startup.defaultReady(),MathJax.startup.promise.then(()=>{n.layout()})}}};function c(o,a){let t=document.createElement("script");t.type="text/javascript",t.id="MathJax-script",t.src=o,t.async=!0,t.onload=()=>{typeof a=="function"&&(a.call(),a=null)},document.head.appendChild(t)}return{id:"mathjax3",init:function(o){n=o;let a=n.getConfig().mathjax3||{},t={...s,...a};t.tex={...s.tex,...a.tex},t.options={...s.options,...a.options},t.startup={...s.startup,...a.startup};let e=t.mathjax||"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js";t.mathjax=null,window.MathJax=t,c(e,function(){n.addEventListener("slidechanged",function(i){MathJax.typeset()})})}}},y=r;/*!
* This plugin is a wrapper for the MathJax2,
* MathJax3 and KaTeX typesetter plugins.
*/return Plugin=Object.assign(y(),{KaTeX:d,MathJax2:r,MathJax3:m})});

119
dist/plugin/math.mjs vendored Normal file
View File

@@ -0,0 +1,119 @@
const M = () => {
let n, s = {
version: "latest",
delimiters: [
{ left: "$$", right: "$$", display: !0 },
// Note: $$ has to come before $
{ left: "$", right: "$", display: !1 },
{ left: "\\(", right: "\\)", display: !1 },
{ left: "\\[", right: "\\]", display: !0 }
],
ignoredTags: ["script", "noscript", "style", "textarea", "pre", "code"]
};
const r = (t) => {
let e = document.createElement("link");
e.rel = "stylesheet", e.href = t, document.head.appendChild(e);
}, l = (t) => new Promise((e, i) => {
const o = document.createElement("script");
o.type = "text/javascript", o.onload = e, o.onerror = i, o.src = t, document.head.append(o);
});
async function a(t) {
for (const e of t)
await l(e);
}
return {
id: "katex",
init: function(t) {
n = t;
let e = n.getConfig().katex || {}, i = { ...s, ...e };
const { local: o, version: u, extensions: k, ...m } = i;
let c = i.local || "https://cdn.jsdelivr.net/npm/katex", d = i.local ? "" : "@" + i.version, f = c + d + "/dist/katex.min.css", y = c + d + "/dist/katex.min.js", g = c + d + "/dist/contrib/mhchem.min.js", j = c + d + "/dist/contrib/auto-render.min.js", p = [y];
i.extensions && i.extensions.includes("mhchem") && p.push(g), p.push(j);
const h = () => {
renderMathInElement(t.getSlidesElement(), m), n.layout();
};
r(f), a(p).then(() => {
n.isReady() ? h() : n.on("ready", h.bind(this));
});
}
};
}, x = () => {
let n, s = {
messageStyle: "none",
tex2jax: {
inlineMath: [["$", "$"], ["\\(", "\\)"]],
skipTags: ["script", "noscript", "style", "textarea", "pre", "code"]
},
skipStartupTypeset: !0
};
function r(l, a) {
let t = document.querySelector("head"), e = document.createElement("script");
e.type = "text/javascript", e.src = l;
let i = () => {
typeof a == "function" && (a.call(), a = null);
};
e.onload = i, e.onreadystatechange = () => {
this.readyState === "loaded" && i();
}, t.appendChild(e);
}
return {
id: "mathjax2",
init: function(l) {
n = l;
let a = n.getConfig().mathjax2 || n.getConfig().math || {}, t = { ...s, ...a }, e = t.mathjax || "https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js", i = t.config || "TeX-AMS_HTML-full", o = e + "?config=" + i;
t.tex2jax = { ...s.tex2jax, ...a.tex2jax }, t.mathjax = t.config = null, r(o, function() {
MathJax.Hub.Config(t), MathJax.Hub.Queue(["Typeset", MathJax.Hub, n.getRevealElement()]), MathJax.Hub.Queue(n.layout), n.on("slidechanged", function(u) {
MathJax.Hub.Queue(["Typeset", MathJax.Hub, u.currentSlide]);
});
});
}
};
}, v = () => {
let n, s = {
tex: {
inlineMath: [["$", "$"], ["\\(", "\\)"]]
},
options: {
skipHtmlTags: ["script", "noscript", "style", "textarea", "pre", "code"]
},
startup: {
ready: () => {
MathJax.startup.defaultReady(), MathJax.startup.promise.then(() => {
n.layout();
});
}
}
};
function r(l, a) {
let t = document.createElement("script");
t.type = "text/javascript", t.id = "MathJax-script", t.src = l, t.async = !0, t.onload = () => {
typeof a == "function" && (a.call(), a = null);
}, document.head.appendChild(t);
}
return {
id: "mathjax3",
init: function(l) {
n = l;
let a = n.getConfig().mathjax3 || {}, t = { ...s, ...a };
t.tex = { ...s.tex, ...a.tex }, t.options = { ...s.options, ...a.options }, t.startup = { ...s.startup, ...a.startup };
let e = t.mathjax || "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js";
t.mathjax = null, window.MathJax = t, r(e, function() {
n.addEventListener("slidechanged", function(i) {
MathJax.typeset();
});
});
}
};
}, J = x;
/*!
* This plugin is a wrapper for the MathJax2,
* MathJax3 and KaTeX typesetter plugins.
*/
const S = Plugin = Object.assign(J(), {
KaTeX: M,
MathJax2: x,
MathJax3: v
});
export {
S as default
};

957
dist/plugin/notes.js vendored Normal file

File diff suppressed because one or more lines are too long

2555
dist/plugin/notes.mjs vendored Normal file

File diff suppressed because it is too large Load Diff

7
dist/plugin/search.js vendored Normal file
View File

@@ -0,0 +1,7 @@
(function(p,n){typeof exports=="object"&&typeof module<"u"?module.exports=n():typeof define=="function"&&define.amd?define(n):(p=typeof globalThis<"u"?globalThis:p||self,p.RevealSearch=n())})(this,function(){"use strict";/*!
* Handles finding a text string anywhere in the slides and showing the next occurrence to the user
* by navigatating to that slide and highlighting it.
*
* @author Jon Snyder <snyder.jon@gmail.com>, February 2013
*/return()=>{let n,t,i,o,a,g,f;function v(){t=document.createElement("div"),t.classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML=`<input type="search" class="searchinput" placeholder="Search..." style="vertical-align: top;"/>
</span>`,i=t.querySelector(".searchinput"),i.style.width="240px",i.style.fontSize="14px",i.style.padding="4px 6px",i.style.color="#000",i.style.background="#fff",i.style.borderRadius="2px",i.style.border="0",i.style.outline="0",i.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",i.style["-webkit-appearance"]="none",n.getRevealElement().appendChild(t),i.addEventListener("keyup",function(r){switch(r.keyCode){case 13:r.preventDefault(),k(),g=!1;break;default:g=!0}},!1),x()}function C(){t||v(),t.style.display="inline",i.focus(),i.select()}function x(){t||v(),t.style.display="none",f&&f.remove()}function E(){t||v(),t.style.display!=="inline"?C():x()}function k(){if(g){var r=i.value;r===""?(f&&f.remove(),o=null):(f=new L("slidecontent"),o=f.apply(r),a=0)}o&&(o.length&&o.length<=a&&(a=0),o.length>a&&(n.slide(o[a].h,o[a].v),a++))}function L(r,c){var I=document.getElementById(r)||document.body,m=c||"EM",M=new RegExp("^(?:"+m+"|SCRIPT|FORM)$"),N=["#ff6","#a0ffff","#9f9","#f99","#f6f"],S=[],B=0,y="",d=[];this.setRegex=function(e){e=e.trim(),y=new RegExp("("+e+")","i")},this.getRegex=function(){return y.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(e){if(!(e==null||!e)&&y&&!M.test(e.nodeName)){if(e.hasChildNodes())for(var l=0;l<e.childNodes.length;l++)this.hiliteWords(e.childNodes[l]);if(e.nodeType==3){var R,s;if((R=e.nodeValue)&&(s=y.exec(R))){for(var u=e;u!=null&&u.nodeName!="SECTION";)u=u.parentNode;for(var b=n.getIndices(u),D=d.length,T=!1,l=0;l<D;l++)d[l].h===b.h&&d[l].v===b.v&&(T=!0);T||d.push(b),S[s[0].toLowerCase()]||(S[s[0].toLowerCase()]=N[B++%N.length]);var h=document.createElement(m);h.appendChild(document.createTextNode(s[0])),h.style.backgroundColor=S[s[0].toLowerCase()],h.style.fontStyle="inherit",h.style.color="#000";var w=e.splitText(s.index);w.nodeValue=w.nodeValue.substring(s[0].length),e.parentNode.insertBefore(h,w)}}}},this.remove=function(){for(var e=document.getElementsByTagName(m),l;e.length&&(l=e[0]);)l.parentNode.replaceChild(l.firstChild,l)},this.apply=function(e){if(!(e==null||!e))return this.remove(),this.setRegex(e),this.hiliteWords(I),d}}return{id:"search",init:r=>{n=r,n.registerKeyboardShortcut("CTRL + Shift + F","Search"),document.addEventListener("keydown",function(c){c.key=="F"&&(c.ctrlKey||c.metaKey)&&(c.preventDefault(),E())},!1)},open:C,close:x,toggle:E}}});

85
dist/plugin/search.mjs vendored Normal file
View File

@@ -0,0 +1,85 @@
/*!
* Handles finding a text string anywhere in the slides and showing the next occurrence to the user
* by navigatating to that slide and highlighting it.
*
* @author Jon Snyder <snyder.jon@gmail.com>, February 2013
*/
const D = () => {
let c, t, l, n, a, y, s;
function g() {
t = document.createElement("div"), t.classList.add("searchbox"), t.style.position = "absolute", t.style.top = "10px", t.style.right = "10px", t.style.zIndex = 10, t.innerHTML = `<input type="search" class="searchinput" placeholder="Search..." style="vertical-align: top;"/>
</span>`, l = t.querySelector(".searchinput"), l.style.width = "240px", l.style.fontSize = "14px", l.style.padding = "4px 6px", l.style.color = "#000", l.style.background = "#fff", l.style.borderRadius = "2px", l.style.border = "0", l.style.outline = "0", l.style.boxShadow = "0 2px 18px rgba(0, 0, 0, 0.2)", l.style["-webkit-appearance"] = "none", c.getRevealElement().appendChild(t), l.addEventListener("keyup", function(r) {
switch (r.keyCode) {
case 13:
r.preventDefault(), k(), y = !1;
break;
default:
y = !0;
}
}, !1), v();
}
function w() {
t || g(), t.style.display = "inline", l.focus(), l.select();
}
function v() {
t || g(), t.style.display = "none", s && s.remove();
}
function C() {
t || g(), t.style.display !== "inline" ? w() : v();
}
function k() {
if (y) {
var r = l.value;
r === "" ? (s && s.remove(), n = null) : (s = new T("slidecontent"), n = s.apply(r), a = 0);
}
n && (n.length && n.length <= a && (a = 0), n.length > a && (c.slide(n[a].h, n[a].v), a++));
}
function T(r, f) {
var L = document.getElementById(r) || document.body, x = f || "EM", I = new RegExp("^(?:" + x + "|SCRIPT|FORM)$"), E = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"], m = [], M = 0, p = "", d = [];
this.setRegex = function(e) {
e = e.trim(), p = new RegExp("(" + e + ")", "i");
}, this.getRegex = function() {
return p.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
}, this.hiliteWords = function(e) {
if (!(e == null || !e) && p && !I.test(e.nodeName)) {
if (e.hasChildNodes())
for (var i = 0; i < e.childNodes.length; i++)
this.hiliteWords(e.childNodes[i]);
if (e.nodeType == 3) {
var N, o;
if ((N = e.nodeValue) && (o = p.exec(N))) {
for (var h = e; h != null && h.nodeName != "SECTION"; )
h = h.parentNode;
for (var S = c.getIndices(h), B = d.length, R = !1, i = 0; i < B; i++)
d[i].h === S.h && d[i].v === S.v && (R = !0);
R || d.push(S), m[o[0].toLowerCase()] || (m[o[0].toLowerCase()] = E[M++ % E.length]);
var u = document.createElement(x);
u.appendChild(document.createTextNode(o[0])), u.style.backgroundColor = m[o[0].toLowerCase()], u.style.fontStyle = "inherit", u.style.color = "#000";
var b = e.splitText(o.index);
b.nodeValue = b.nodeValue.substring(o[0].length), e.parentNode.insertBefore(u, b);
}
}
}
}, this.remove = function() {
for (var e = document.getElementsByTagName(x), i; e.length && (i = e[0]); )
i.parentNode.replaceChild(i.firstChild, i);
}, this.apply = function(e) {
if (!(e == null || !e))
return this.remove(), this.setRegex(e), this.hiliteWords(L), d;
};
}
return {
id: "search",
init: (r) => {
c = r, c.registerKeyboardShortcut("CTRL + Shift + F", "Search"), document.addEventListener("keydown", function(f) {
f.key == "F" && (f.ctrlKey || f.metaKey) && (f.preventDefault(), C());
}, !1);
},
open: w,
close: v,
toggle: C
};
};
export {
D as default
};

9
dist/plugin/zoom.js vendored Normal file
View File

@@ -0,0 +1,9 @@
(function(f,u){typeof exports=="object"&&typeof module<"u"?module.exports=u():typeof define=="function"&&define.amd?define(u):(f=typeof globalThis<"u"?globalThis:f||self,f.RevealZoom=u())})(this,function(){"use strict";/*!
* reveal.js Zoom plugin
*/const f={id:"zoom",init:function(n){n.getRevealElement().addEventListener("mousedown",function(o){var l=/Linux/.test(window.navigator.platform)?"ctrl":"alt",r=(n.getConfig().zoomKey?n.getConfig().zoomKey:l)+"Key",s=n.getConfig().zoomLevel?n.getConfig().zoomLevel:2;o[r]&&!n.isOverview()&&(o.preventDefault(),m.to({x:o.clientX,y:o.clientY,scale:s,pan:!1}))})},destroy:()=>{m.reset()}},u=()=>f;/*!
* zoom.js 0.3 (modified for use with reveal.js)
* http://lab.hakim.se/zoom-js
* MIT licensed
*
* Copyright (C) 2011-2014 Hakim El Hattab, http://hakim.se
*/var m=function(){var n=1,o=0,l=0,r=-1,s=-1,y="transform"in document.body.style;y&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",function(e){n!==1&&e.keyCode===27&&m.out()}),document.addEventListener("mousemove",function(e){n!==1&&(o=e.clientX,l=e.clientY)});function w(e,t){var i=c();if(e.width=e.width||1,e.height=e.height||1,e.x-=(window.innerWidth-e.width*t)/2,e.y-=(window.innerHeight-e.height*t)/2,y)if(t===1)document.body.style.transform="";else{var d=i.x+"px "+i.y+"px",h="translate("+-e.x+"px,"+-e.y+"px) scale("+t+")";document.body.style.transformOrigin=d,document.body.style.transform=h}else t===1?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(i.x+e.x)/t+"px",document.body.style.top=-(i.y+e.y)/t+"px",document.body.style.width=t*100+"%",document.body.style.height=t*100+"%",document.body.style.zoom=t);n=t,document.documentElement.classList&&(n!==1?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function a(){var e=.12,t=window.innerWidth*e,i=window.innerHeight*e,d=c();l<i?window.scroll(d.x,d.y-(1-l/i)*(14/n)):l>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-l)/i)*(14/n)),o<t?window.scroll(d.x-(1-o/t)*(14/n),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/n),d.y)}function c(){return{x:window.scrollX!==void 0?window.scrollX:window.pageXOffset,y:window.scrollY!==void 0?window.scrollY:window.pageYOffset}}return{to:function(e){if(n!==1)m.out();else{if(e.x=e.x||0,e.y=e.y||0,e.element){var t=20,i=e.element.getBoundingClientRect();e.x=i.left-t,e.y=i.top-t,e.width=i.width+t*2,e.height=i.height+t*2}e.width!==void 0&&e.height!==void 0&&(e.scale=Math.max(Math.min(window.innerWidth/e.width,window.innerHeight/e.height),1)),e.scale>1&&(e.x*=e.scale,e.y*=e.scale,w(e,e.scale),e.pan!==!1&&(r=setTimeout(function(){s=setInterval(a,1e3/60)},800)))}},out:function(){clearTimeout(r),clearInterval(s),w({x:0,y:0},1),n=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return n}}}();return u});

102
dist/plugin/zoom.mjs vendored Normal file
View File

@@ -0,0 +1,102 @@
/*!
* reveal.js Zoom plugin
*/
const c = {
id: "zoom",
init: function(n) {
n.getRevealElement().addEventListener("mousedown", function(o) {
var l = /Linux/.test(window.navigator.platform) ? "ctrl" : "alt", f = (n.getConfig().zoomKey ? n.getConfig().zoomKey : l) + "Key", m = n.getConfig().zoomLevel ? n.getConfig().zoomLevel : 2;
o[f] && !n.isOverview() && (o.preventDefault(), r.to({
x: o.clientX,
y: o.clientY,
scale: m,
pan: !1
}));
});
},
destroy: () => {
r.reset();
}
}, h = () => c;
/*!
* zoom.js 0.3 (modified for use with reveal.js)
* http://lab.hakim.se/zoom-js
* MIT licensed
*
* Copyright (C) 2011-2014 Hakim El Hattab, http://hakim.se
*/
var r = function() {
var n = 1, o = 0, l = 0, f = -1, m = -1, u = "transform" in document.body.style;
u && (document.body.style.transition = "transform 0.8s ease"), document.addEventListener("keyup", function(e) {
n !== 1 && e.keyCode === 27 && r.out();
}), document.addEventListener("mousemove", function(e) {
n !== 1 && (o = e.clientX, l = e.clientY);
});
function y(e, t) {
var i = s();
if (e.width = e.width || 1, e.height = e.height || 1, e.x -= (window.innerWidth - e.width * t) / 2, e.y -= (window.innerHeight - e.height * t) / 2, u)
if (t === 1)
document.body.style.transform = "";
else {
var d = i.x + "px " + i.y + "px", w = "translate(" + -e.x + "px," + -e.y + "px) scale(" + t + ")";
document.body.style.transformOrigin = d, document.body.style.transform = w;
}
else
t === 1 ? (document.body.style.position = "", document.body.style.left = "", document.body.style.top = "", document.body.style.width = "", document.body.style.height = "", document.body.style.zoom = "") : (document.body.style.position = "relative", document.body.style.left = -(i.x + e.x) / t + "px", document.body.style.top = -(i.y + e.y) / t + "px", document.body.style.width = t * 100 + "%", document.body.style.height = t * 100 + "%", document.body.style.zoom = t);
n = t, document.documentElement.classList && (n !== 1 ? document.documentElement.classList.add("zoomed") : document.documentElement.classList.remove("zoomed"));
}
function a() {
var e = 0.12, t = window.innerWidth * e, i = window.innerHeight * e, d = s();
l < i ? window.scroll(d.x, d.y - (1 - l / i) * (14 / n)) : l > window.innerHeight - i && window.scroll(d.x, d.y + (1 - (window.innerHeight - l) / i) * (14 / n)), o < t ? window.scroll(d.x - (1 - o / t) * (14 / n), d.y) : o > window.innerWidth - t && window.scroll(d.x + (1 - (window.innerWidth - o) / t) * (14 / n), d.y);
}
function s() {
return {
x: window.scrollX !== void 0 ? window.scrollX : window.pageXOffset,
y: window.scrollY !== void 0 ? window.scrollY : window.pageYOffset
};
}
return {
/**
* Zooms in on either a rectangle or HTML element.
*
* @param {Object} options
* - element: HTML element to zoom in on
* OR
* - x/y: coordinates in non-transformed space to zoom in on
* - width/height: the portion of the screen to zoom in on
* - scale: can be used instead of width/height to explicitly set scale
*/
to: function(e) {
if (n !== 1)
r.out();
else {
if (e.x = e.x || 0, e.y = e.y || 0, e.element) {
var t = 20, i = e.element.getBoundingClientRect();
e.x = i.left - t, e.y = i.top - t, e.width = i.width + t * 2, e.height = i.height + t * 2;
}
e.width !== void 0 && e.height !== void 0 && (e.scale = Math.max(Math.min(window.innerWidth / e.width, window.innerHeight / e.height), 1)), e.scale > 1 && (e.x *= e.scale, e.y *= e.scale, y(e, e.scale), e.pan !== !1 && (f = setTimeout(function() {
m = setInterval(a, 1e3 / 60);
}, 800)));
}
},
/**
* Resets the document zoom state to its default.
*/
out: function() {
clearTimeout(f), clearInterval(m), y({ x: 0, y: 0 }, 1), n = 1;
},
// Alias
magnify: function(e) {
this.to(e);
},
reset: function() {
this.out();
},
zoomLevel: function() {
return n;
}
};
}();
export {
h as default
};

31
dist/reset.css vendored
View File

@@ -1,30 +1 @@
/* http://meyerweb.com/eric/tools/css/reset/
v4.0 | 20180602
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
display: block;
}
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,main,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}

9
dist/reveal.css vendored

File diff suppressed because one or more lines are too long

571
dist/reveal.d.ts vendored Normal file
View File

@@ -0,0 +1,571 @@
declare interface Config {
/**
* The "normal" size of the presentation, aspect ratio will be preserved
* when the presentation is scaled to fit different resolutions
*
* @defaultValue 960
*/
width?: number | string;
/**
* The "normal" size of the presentation, aspect ratio will be preserved
* when the presentation is scaled to fit different resolutions
*
* @defaultValue 700
*/
height?: number | string;
/**
* Factor of the display size that should remain empty around the content
*
* @defaultValue 0.04
*/
margin?: number;
/**
* Bounds for smallest/largest possible scale to apply to content
*
* @defaultValue 0.2
*/
minScale?: number;
/**
*
* @defaultValue 2.0
*/
maxScale?: number;
/**
* Display presentation control arrows
* - true: Display controls in all views
* - false: Hide controls in all views
* - 'speaker-only': Display controls only in the speaker view
*
* @defaultValue true
*/
controls?: boolean | 'speaker-only';
/**
* Help the user learn the controls by providing hints, for example by
* bouncing the down arrow when they first encounter a vertical slide
*
* @defaultValue true
*/
controlsTutorial?: boolean;
/**
* Determines where controls appear, "edges" or "bottom-right"
*
* @defaultValue 'bottom-right'
*/
controlsLayout?: 'edges' | 'bottom-right';
/**
* Visibility rule for backwards navigation arrows; "faded", "hidden"
* or "visible"
*
* @defaultValue 'faded'
*/
controlsBackArrows?: 'faded' | 'hidden' | 'visible';
/**
* Display a presentation progress bar
*
* @defaultValue true
*/
progress?: boolean;
/**
* Display the page number of the current slide
* - true: Show slide number
* - false: Hide slide number
*
* Can optionally be set as a string that specifies the number formatting:
* - "h.v": Horizontal . vertical slide number (default)
* - "h/v": Horizontal / vertical slide number
* - "c": Flattened slide number
* - "c/t": Flattened slide number / total slides
*
* Alternatively, you can provide a function that returns the slide
* number for the current slide. The function should take in a slide
* object and return an array with one string [slideNumber] or
* three strings [n1,delimiter,n2]. See #formatSlideNumber().
*
* @defaultValue false
*/
slideNumber?: boolean | 'h.v' | 'h/v' | 'c' | 'c/t' | ((slide: any) => string | [string, string, string]);
/**
* Can be used to limit the contexts in which the slide number appears
* - "all": Always show the slide number
* - "print": Only when printing to PDF
* - "speaker": Only in the speaker view
*
* @defaultValue 'all'
*/
showSlideNumber?: 'all' | 'print' | 'speaker';
/**
* Use 1 based indexing for # links to match slide number (default is zero
* based)
*
* @defaultValue false
*/
hashOneBasedIndex?: boolean;
/**
* Add the current slide number to the URL hash so that reloading the
* page/copying the URL will return you to the same slide
*
* @defaultValue false
*/
hash?: boolean;
/**
* Flags if we should monitor the hash and change slides accordingly
*
* @defaultValue true
*/
respondToHashChanges?: boolean;
/**
* Enable support for jump-to-slide navigation shortcuts
*
* @defaultValue true
*/
jumpToSlide?: boolean;
/**
* Push each slide change to the browser history. Implies `hash: true`
*
* @defaultValue false
*/
history?: boolean;
/**
* Enable keyboard shortcuts for navigation
*
* @defaultValue true
*/
keyboard?: boolean;
/**
* Optional function that blocks keyboard events when returning false
*
* If you set this to 'focused', we will only capture keyboard events
* for embedded decks when they are in focus
*
* @defaultValue null
*/
keyboardCondition?: null | 'focused' | ((event: KeyboardEvent) => boolean);
/**
* Disables the default reveal.js slide layout (scaling and centering)
* so that you can use custom CSS layout
*
* @defaultValue false
*/
disableLayout?: boolean;
/**
* Enable the slide overview mode
*
* @defaultValue true
*/
overview?: boolean;
/**
* Vertical centering of slides
*
* @defaultValue true
*/
center?: boolean;
/**
* Enables touch navigation on devices with touch input
*
* @defaultValue true
*/
touch?: boolean;
/**
* Loop the presentation
*
* @defaultValue false
*/
loop?: boolean;
/**
* Change the presentation direction to be RTL
*
* @defaultValue false
*/
rtl?: boolean;
/**
* Changes the behavior of our navigation directions.
*
* "default"
* Left/right arrow keys step between horizontal slides, up/down
* arrow keys step between vertical slides. Space key steps through
* all slides (both horizontal and vertical).
*
* "linear"
* Removes the up/down arrows. Left/right arrows step through all
* slides (both horizontal and vertical).
*
* "grid"
* When this is enabled, stepping left/right from a vertical stack
* to an adjacent vertical stack will land you at the same vertical
* index.
*
* Consider a deck with six slides ordered in two vertical stacks:
* 1.1 2.1
* 1.2 2.2
* 1.3 2.3
*
* If you're on slide 1.3 and navigate right, you will normally move
* from 1.3 -> 2.1. If "grid" is used, the same navigation takes you
* from 1.3 -> 2.3.
*
* @defaultValue 'default'
*/
navigationMode?: 'default' | 'linear' | 'grid';
/**
* Randomizes the order of slides each time the presentation loads
*
* @defaultValue false
*/
shuffle?: boolean;
/**
* Turns fragments on and off globally
*
* @defaultValue true
*/
fragments?: boolean;
/**
* Flags whether to include the current fragment in the URL,
* so that reloading brings you to the same fragment position
*
* @defaultValue true
*/
fragmentInURL?: boolean;
/**
* Flags if the presentation is running in an embedded mode,
* i.e. contained within a limited portion of the screen
*
* @defaultValue false
*/
embedded?: boolean;
/**
* Flags if we should show a help overlay when the question-mark
* key is pressed
*
* @defaultValue true
*/
help?: boolean;
/**
* Flags if it should be possible to pause the presentation (blackout)
*
* @defaultValue true
*/
pause?: boolean;
/**
* Flags if speaker notes should be visible to all viewers
*
* @defaultValue false
*/
showNotes?: boolean;
/**
* Flags if slides with data-visibility="hidden" should be kept visible
*
* @defaultValue false
*/
showHiddenSlides?: boolean;
/**
* Global override for autoplaying embedded media (video/audio/iframe)
* - null: Media will only autoplay if data-autoplay is present
* - true: All media will autoplay, regardless of individual setting
* - false: No media will autoplay, regardless of individual setting
*
* @defaultValue null
*/
autoPlayMedia?: null | boolean;
/**
* Global override for preloading lazy-loaded iframes
* - null: Iframes with data-src AND data-preload will be loaded when within
* the viewDistance, iframes with only data-src will be loaded when visible
* - true: All iframes with data-src will be loaded when within the viewDistance
* - false: All iframes with data-src will be loaded only when visible
*
* @defaultValue null
*/
preloadIframes?: null | boolean;
/**
* Can be used to globally disable auto-animation
*
* @defaultValue true
*/
autoAnimate?: boolean;
/**
* Optionally provide a custom element matcher that will be
* used to dictate which elements we can animate between.
*
* @defaultValue null
*/
autoAnimateMatcher?: null | Function;
/**
* Default settings for our auto-animate transitions, can be
* overridden per-slide or per-element via data arguments
*
* @defaultValue 'ease'
*/
autoAnimateEasing?: 'ease' | string;
/**
* Number of seconds to animate each element.
*
* @defaultValue 1.0
*/
autoAnimateDuration?: number;
/**
* Should unmatched elements be faded in?
*
* @defaultValue true
*/
autoAnimateUnmatched?: boolean;
/**
* CSS properties that can be auto-animated. Position & scale
* is matched separately so there's no need to include styles
* like top/right/bottom/left, width/height or margin.
*
* @defaultValue ['opacity', 'color', 'background-color', 'padding', 'font-size', 'line-height', 'letter-spacing', 'border-width', 'border-color', 'border-radius', 'outline', 'outline-offset']
*/
autoAnimateStyles?: string[];
/**
* Controls automatic progression to the next slide
* - 0: Auto-sliding only happens if the data-autoslide HTML attribute
* is present on the current slide or fragment
* - 1+: All slides will progress automatically at the given interval
* - false: No auto-sliding, even if data-autoslide is present
*
* @defaultValue 0
*/
autoSlide?: number | false;
/**
* Stop auto-sliding after user input
*
* @defaultValue true
*/
autoSlideStoppable?: boolean;
/**
* Use this method for navigation when auto-sliding (defaults to navigateNext)
*
* @defaultValue null
*/
autoSlideMethod?: null | Function;
/**
* Specify the average time in seconds that you think you will spend
* presenting each slide. This is used to show a pacing timer in the
* speaker view
*
* @defaultValue null
*/
defaultTiming?: null;
/**
* Enable slide navigation via mouse wheel
*
* @defaultValue false
*/
mouseWheel?: boolean;
/**
* Opens links in an iframe preview overlay
* Add `data-preview-link` and `data-preview-link="false"` to customize each link
* individually
*
* @defaultValue false
*/
previewLinks?: boolean;
/**
* Exposes the reveal.js API through window.postMessage
*
* @defaultValue true
*/
postMessage?: boolean;
/**
* Dispatches all reveal.js events to the parent window through postMessage
*
* @defaultValue false
*/
postMessageEvents?: boolean;
/**
* Focuses body when page changes visibility to ensure keyboard shortcuts work
*
* @defaultValue true
*/
focusBodyOnPageVisibilityChange?: boolean;
/**
* Transition style
*
* @defaultValue 'slide'
*/
transition?: 'none' | 'fade' | 'slide' | 'convex' | 'concave' | 'zoom';
/**
* Transition speed
*
* @defaultValue 'default'
*/
transitionSpeed?: 'default' | 'fast' | 'slow';
/**
* Transition style for full page slide backgrounds
*
* @defaultValue 'fade'
*/
backgroundTransition?: 'fade' | 'none' | 'slide' | 'convex' | 'concave' | 'zoom';
/**
* Parallax background image
*
* @defaultValue ''
*/
parallaxBackgroundImage?: null | string;
/**
* Parallax background size
*
* @defaultValue ''
*/
parallaxBackgroundSize?: null | string;
/**
* Parallax background repeat
*
* @defaultValue ''
*/
parallaxBackgroundRepeat?: null | string;
/**
* Parallax background position
*
* @defaultValue ''
*/
parallaxBackgroundPosition?: null | string;
/**
* Amount of pixels to move the parallax background per slide step
*
* @defaultValue null
*/
parallaxBackgroundHorizontal?: null | number;
/**
*
* @defaultValue null
*/
parallaxBackgroundVertical?: null | number;
/**
* Can be used to initialize reveal.js in one of the following views:
* - print: Render the presentation so that it can be printed to PDF
* - scroll: Show the presentation as a tall scrollable page with scroll
* triggered animations
*
* @defaultValue null
*/
view?: null | 'print' | 'scroll';
/**
* Adjusts the height of each slide in the scroll view.
* - full: Each slide is as tall as the viewport
* - compact: Slides are as small as possible, allowing multiple slides
* to be visible in parallel on tall devices
*
* @defaultValue 'full'
*/
scrollLayout?: 'full' | 'compact';
/**
* Control how scroll snapping works in the scroll view.
* - false: No snapping, scrolling is continuous
* - proximity: Snap when close to a slide
* - mandatory: Always snap to the closest slide
*
* Only applies to presentations in scroll view.
*
* @defaultValue 'mandatory'
*/
scrollSnap?: false | 'proximity' | 'mandatory';
/**
* Enables and configures the scroll view progress bar.
* - 'auto': Show the scrollbar while scrolling, hide while idle
* - true: Always show the scrollbar
* - false: Never show the scrollbar
*
* @defaultValue 'auto'
*/
scrollProgress?: 'auto' | boolean;
/**
* Automatically activate the scroll view when we the viewport falls
* below the given width.
*
* @defaultValue 435
*/
scrollActivationWidth?: number;
/**
* The maximum number of pages a single slide can expand onto when printing
* to PDF, unlimited by default
*
* @defaultValue Number.POSITIVE_INFINITY
*/
pdfMaxPagesPerSlide?: number;
/**
* Prints each fragment on a separate slide
*
* @defaultValue true
*/
pdfSeparateFragments?: boolean;
/**
* Offset used to reduce the height of content within exported PDF pages.
* This exists to account for environment differences based on how you
* print to PDF. CLI printing options, like phantomjs and wkpdf, can end
* on precisely the total height of the document whereas in-browser
* printing has to end one pixel before.
*
* @defaultValue -1
*/
pdfPageHeightOffset?: number;
/**
* Number of slides away from the current that are visible
*
* @defaultValue 3
*/
viewDistance?: number;
/**
* Number of slides away from the current that are visible on mobile
* devices. It is advisable to set this to a lower number than
* viewDistance in order to save resources.
*
* @defaultValue 2
*/
mobileViewDistance?: number;
/**
* The display mode that will be used to show slides
*
* @defaultValue 'block'
*/
display?: string;
/**
* Hide cursor if inactive
*
* @defaultValue true
*/
hideInactiveCursor?: boolean;
/**
* Time before the cursor is hidden (in ms)
*
* @defaultValue 5000
*/
hideCursorTime?: number;
/**
* Should we automatically sort and set indices for fragments
* at each sync? (See Reveal.sync)
*
* @defaultValue true
*/
sortFragmentsOnSync?: boolean;
/**
* Script dependencies to load
*
* @defaultValue []
*/
dependencies?: any[];
/**
* Plugin objects to register and use for this presentation
*
* @defaultValue []
*/
plugins?: any[];
}
/**
* Expose the Reveal class to the window. To create a
* new instance:
* let deck = new Reveal( document.querySelector( '.reveal' ), {
* controls: false
* } );
* deck.initialize().then(() => {
* // reveal.js is ready
* });
*/
declare const Reveal: {
initialize: (options?: Config) => Promise<void>;
[key: string]: any;
};
export default Reveal;
export { }

9
dist/reveal.esm.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

42
dist/reveal.js vendored

File diff suppressed because one or more lines are too long

1
dist/reveal.js.map vendored

File diff suppressed because one or more lines are too long

3413
dist/reveal.mjs vendored Normal file

File diff suppressed because it is too large Load Diff

365
dist/theme/beige.css vendored

File diff suppressed because one or more lines are too long

1
dist/theme/black-contrast.css vendored Normal file

File diff suppressed because one or more lines are too long

358
dist/theme/black.css vendored

File diff suppressed because one or more lines are too long

391
dist/theme/blood.css vendored

File diff suppressed because one or more lines are too long

1
dist/theme/dracula.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +0,0 @@
@font-face {
font-family: 'League Gothic';
src: url('./league-gothic.eot');
src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
url('./league-gothic.woff') format('woff'),
url('./league-gothic.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}

Binary file not shown.

Binary file not shown.

View File

@@ -1,39 +0,0 @@
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-regular.eot');
src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
url('./source-sans-pro-regular.woff') format('woff'),
url('./source-sans-pro-regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-italic.eot');
src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
url('./source-sans-pro-italic.woff') format('woff'),
url('./source-sans-pro-italic.ttf') format('truetype');
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-semibold.eot');
src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
url('./source-sans-pro-semibold.woff') format('woff'),
url('./source-sans-pro-semibold.ttf') format('truetype');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('./source-sans-pro-semibolditalic.eot');
src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
url('./source-sans-pro-semibolditalic.woff') format('woff'),
url('./source-sans-pro-semibolditalic.ttf') format('truetype');
font-weight: 600;
font-style: italic;
}

367
dist/theme/league.css vendored

File diff suppressed because one or more lines are too long

366
dist/theme/moon.css vendored

File diff suppressed because one or more lines are too long

359
dist/theme/night.css vendored

File diff suppressed because one or more lines are too long

362
dist/theme/serif.css vendored

File diff suppressed because one or more lines are too long

361
dist/theme/simple.css vendored

File diff suppressed because one or more lines are too long

369
dist/theme/sky.css vendored

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More