reveal.js-appearance 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.0] - 2023-10-25
4
+ ### Added
5
+ - Added word and character appearances
6
+
7
+ ### Changed
8
+ - The plugin is totally refactored and uses a promise.
9
+ - Fix for fragments as Appearance items
10
+ - Another fix for hidden items in speaker view
11
+
12
+
13
+ ## [1.2.1] - 2023-07-22
14
+ ### Added
15
+ - Fix for hidden items in print and speaker view
16
+
17
+
3
18
  ## [1.2.0] - 2023-05-05
4
19
  ### Added
5
20
  - Added local, specified, auto-appear
package/README.md CHANGED
@@ -4,17 +4,16 @@
4
4
 
5
5
  An animation plugin for [Reveal.js](https://revealjs.com) that animates elements sequentially like in Powerpoint. Perfect for online portfolios or other presentations with images.
6
6
 
7
- [<img src="https://martinomagnifico.github.io/reveal.js-appearance/screenshot.png" width="100%">](https://martinomagnifico.github.io/reveal.js-appearance/demo.html)
7
+ [<img src="https://martinomagnifico.github.io/reveal.js-appearance/screenshot.png" width="100%">](https://martinomagnifico.github.io/reveal.js-appearance/demo/demo.html)
8
8
 
9
9
  In Powerpoint you can make slides with items that appear automatically with effects. This plugin for Reveal.js tries to achieve the same result. It's easy to set up. It uses Animate.css by Daniel Eden for the animations, with some changes to allow for a non-animated state.
10
10
 
11
- [Demo](https://martinomagnifico.github.io/reveal.js-appearance/demo.html)
11
+ * [Demo](https://martinomagnifico.github.io/reveal.js-appearance/demo/demo.html)
12
+ * [Markdown demo](https://martinomagnifico.github.io/reveal.js-appearance/demo/demo-markdown.html)
12
13
 
13
14
  The animations will start automatically after or at each slide or fragment change if the HTML is set up to use Appearance.
14
15
 
15
- Version 1.1.1 adds an `autoappear` mode for use in cases where adding animation classes is too much of a hassle, like inside Markdown.
16
-
17
- Appearance v1.1.2 brought some **breaking changes**, please refer to the [migration guide](#migration-guide) before updating from v1.1.1 and under. It also changed the internal delay mechanism to use CSS animation delay in combination to adding the trigger on the parent, not each animated element. This will improve the performance.
16
+ Version 1.3.0 adds an option to animate the words in a sentence, or the letters in a word.
18
17
 
19
18
 
20
19
  ## Basics
@@ -78,7 +77,7 @@ If you're using ES modules, you can add it like this:
78
77
  ```
79
78
 
80
79
  ### Styling
81
- Since version 1.1.2, the styling of Appearance is automatically inserted, either loaded through NPM or from the plugin folder. Two files are inserted: The first one is Animate.css by Daniel Eden for the basic animations, we add it through a CDN. The second file adds to the first stylesheet to allow for a non-animated state.
80
+ The styling of Appearance is automatically inserted, either loaded through NPM or from the plugin folder. Two files are inserted: The first one is Animate.css by Daniel Eden for the basic animations, we add it through a CDN. The second file adds to the first stylesheet to allow for a non-animated state.
82
81
 
83
82
  If you want to change the Appearance style, you can simply make your own style and use that stylesheet instead. Linking to your custom styles can be managed through the `csspath` option of Appearance.
84
83
 
@@ -98,6 +97,15 @@ It is easy to set up your HTML structure for Appearance. Each element that you w
98
97
 
99
98
  When you are working with Markdown (or in any other case), this can be a chore **so if you do not want to add all these classes**, you can set the option `autoappear` to `true` (see [Autoappear](#autoappear) below) and let Appearance do the heavy work.
100
99
 
100
+ #### Animating words and letters
101
+
102
+ To nicely animate the words in a heading, or the letters of a word, add an animation class to it, and add a data-attribute for the kind of split you want:
103
+
104
+ ```html
105
+ <h3 class="animate__fadeInDown" data-split="words">Let words apear and appear</h3>
106
+ <h3 class="animate__fadeInDown" data-split="letters">Let letters apear and appear</h3>
107
+ ```
108
+
101
109
 
102
110
  ## Now change it
103
111
 
@@ -124,6 +132,21 @@ You can change the speed of each animation, using the tempo classes from Animate
124
132
  <img class="animate__fadeInDown animate__faster" data-src="4.jpg">
125
133
  ```
126
134
 
135
+
136
+ ### Changing word and letter animations
137
+
138
+ For words and letters, the same techniques can be used.
139
+
140
+ Note that the data-delay also gets copied to the smaller elements in it, which means that there is no more 'whole sentence' or 'whole word' to delay. By default, the whole element then gets the delay (depending on if it is following other animations) as defined in the `delay` option in the Configuration, but it can be overriden by an optional `data-container-delay`.
141
+
142
+ ```html
143
+ <h3 class="animate__fadeInDown animate__faster"
144
+ data-split="words"
145
+ data-delay="80"
146
+ data-container-delay="600">Let words apear and appear</h3>
147
+ ```
148
+
149
+
127
150
  ### Changing the 'appearevent'
128
151
  When you navigate from slide to slide, you can set transition effects in Reveal. These effects take some time. That's why, by default, Appearance only starts when the slide transition has ended.
129
152
 
@@ -173,9 +196,17 @@ Reveal.initialize({
173
196
  });
174
197
  ```
175
198
 
176
- You can add any selector and animation class to this object.
199
+ You can add any selector and animation class to this object. You can use a simple JSON object, or more elaborate like this (you can also mix them): `{"ul li": {"animation":"animate__fadeInLeft", "speed":"slow", "delay":"100"}}`. An object like that can contain the following keys:
200
+
201
+ * animation
202
+ * speed
203
+ * delay
204
+ * split
205
+ * container-delay
177
206
 
178
- Now you do not need to add any classes to the markup and it will stay like this:
207
+ where the last two keys are specific for word- and letter-animations.
208
+
209
+ If you choose to write all your animation selectors and properties globally, you no longer need to add any classes to the markup and it can stay like this:
179
210
 
180
211
  ```html
181
212
  <ul>
@@ -226,10 +257,13 @@ Reveal.initialize({
226
257
 
227
258
  ### Local auto-appear, specified
228
259
 
229
- You can also add a JSON object to the slide’s `data-autoappear`, with specific elements, their animations class as a string or an array with animations class, optional speed class and delay.
260
+ You can also add a JSON object to the slide’s `data-autoappear`, with specific elements, their animations class(es) as a string or an object with animations class(es), optional speed and optional delay.
261
+
262
+ In the example below you can see that mixing strings and objects is perfectly fine. The `ul li` has a simple string for only the animation class(es) while the `h3` uses an object with keys.
230
263
 
231
264
  ```html
232
- <section data-autoappear='{"ul li":"animate__fadeInRight","h3":["animate__fadeInDown, animate__slow","100ms"]}'>
265
+ <section data-autoappear='{"ul li":"animate__fadeInRight",
266
+ "h3": {"animation":"animate__fadeInDown", "speed":"slow", "delay":"100"}}'>
233
267
  <h3>Local auto-appear, specified</h3>
234
268
  <ul>
235
269
  <li>This is list item 1</li>
@@ -277,7 +311,7 @@ Reveal.initialize({
277
311
 
278
312
 
279
313
  ## Migration guide
280
- Appearance v1.1.2 is an update to stay current with the latest version of Animate.css, which itself brought breaking changes in version 4. Animate.css v4 added a prefix for all of the Animate.css classes, defaulting to `animate__` . Appearance will now automatically add the Animate.css base class (`animate__animated`) to any element with a Animate.css animation class.
314
+ Appearance v1.1.2 was an update to stay current with the latest version of Animate.css, which itself brought breaking changes in version 4. Animate.css v4 added a prefix for all of the Animate.css classes, defaulting to `animate__` . Appearance will now automatically add the Animate.css base class (`animate__animated`) to any element with a Animate.css animation class.
281
315
 
282
316
  You have two options to migrate to the new version:
283
317
 
package/package.json CHANGED
@@ -1,18 +1,65 @@
1
1
  {
2
- "name": "reveal.js-appearance",
3
- "version": "1.2.0",
4
- "main": "plugin/appearance/appearance.js",
5
- "module": "plugin/appearance/appearance.esm.js",
6
- "description": "An animation plugin for Reveal.js that animates elements sequentially like in Powerpoint. Perfect for online portfolios or other presentations with images.",
7
- "keywords": "reveal, reveal.js, reveal-plugin, plugin, text effects, powerpoint",
8
- "homepage": "https://github.com/Martinomagnifico/reveal.js-appearance",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/Martinomagnifico/reveal.js-appearance.git"
12
- },
13
- "author": "Martijn De Jongh",
14
- "license": "MIT, Copyright (C) 2023 Martijn De Jongh",
15
- "peerDependencies": {
16
- "reveal.js": "^4.2"
17
- }
18
- }
2
+ "name": "reveal.js-appearance",
3
+ "version": "1.3.0",
4
+ "description": "An animation plugin for Reveal.js that animates elements sequentially like in Powerpoint. Perfect for online portfolios or other presentations with images.",
5
+ "keywords": [
6
+ "reveal",
7
+ "reveal.js",
8
+ "reveal-plugin",
9
+ "plugin",
10
+ "text effects",
11
+ "powerpoint"
12
+ ],
13
+ "main": "plugin/appearance/appearance.js",
14
+ "module": "plugin/appearance/appearance.esm.js",
15
+ "browser": "plugin/appearance/appearance.js",
16
+ "author": {
17
+ "name": "Martijn De Jongh (Martino)",
18
+ "email": "martijn.de.jongh@gmail.com",
19
+ "web": "https://martinomagnifico.github.io",
20
+ "url": "https://martinomagnifico.github.io",
21
+ "username": "martinomagnifico"
22
+ },
23
+ "homepage": "https://github.com/Martinomagnifico/reveal.js-appearance",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git://github.com/martinomagnifico/reveal.js-appearance.git"
27
+ },
28
+ "functionname": "Appearance",
29
+ "license": "MIT",
30
+ "scripts": {
31
+ "start": "gulp demo",
32
+ "build": "NODE_ENV=prod gulp build"
33
+ },
34
+ "overrides": {
35
+ "chokidar": "3.5.3",
36
+ "glob-parent": "6.0.2"
37
+ },
38
+ "browserslist": "> 2%, not dead",
39
+ "devDependencies": {
40
+ "@babel/preset-env": "^7.22.5",
41
+ "@rollup/plugin-babel": "^6.0.3",
42
+ "@rollup/plugin-commonjs": "^25.0.2",
43
+ "@rollup/plugin-node-resolve": "^15.1.0",
44
+ "browser-sync": "^2.29.3",
45
+ "core-js": "^3.31.0",
46
+ "del": "^5.1.0",
47
+ "gulp": "^4.0.2",
48
+ "gulp-autoprefixer": "^8.0.0",
49
+ "gulp-header": "^2.0.9",
50
+ "gulp-plumber": "^1.2.1",
51
+ "gulp-pug": "^5.0.0",
52
+ "gulp-rename": "^2.0.0",
53
+ "gulp-sass": "^5.1.0",
54
+ "merge-stream": "^2.0.0",
55
+ "rollup": "^2.79.1",
56
+ "sass": "^1.63.6"
57
+ },
58
+ "dependencies": {
59
+ "animate.css": "^4.1.1",
60
+ "reveal.js": "^4.6.0"
61
+ },
62
+ "copydependencies": [
63
+ "reveal.js"
64
+ ]
65
+ }
@@ -1,314 +1,226 @@
1
- /*
2
- ****************************************************************
3
- * @author: Martijn De Jongh (Martino), martijn.de.jongh@gmail.com
4
- * https://github.com/Martinomagnifico
1
+
2
+ /*****************************************************************
5
3
  *
6
- * Appearance.js for Reveal.js
7
- * Version 1.2.0
4
+ * Appearance for Reveal.js
5
+ * Version 1.3.0
8
6
  *
7
+ * @author: Martijn De Jongh (Martino), martijn.de.jongh@gmail.com
8
+ * https://github.com/martinomagnifico
9
+ *
9
10
  * @license
10
11
  * MIT licensed
12
+ *
13
+ * Copyright (C) 2023 Martijn De Jongh (Martino)
11
14
  *
12
- * Thanks to:
13
- * - Hakim El Hattab, Reveal.js
14
- * - Daniel Eden, Animate.css
15
- *****************************************************************
16
- */
17
- /* Animate.css overrides */
18
- section:not(.stack):not([data-appearance-can-start]) .animate__animated, section:not(.stack):not([data-appearance-can-start]) .animated {
19
- opacity: 0;
20
- -webkit-animation: none;
21
- animation: none;
22
- }
23
- .reveal.overview section:not(.stack):not([data-appearance-can-start]) .animated, .reveal.overview section:not(.stack):not([data-appearance-can-start]) .animate__animated {
24
- visibility: visible;
25
- -webkit-animation: none;
26
- animation: none;
27
- opacity: 1;
28
- }
29
-
30
- .fragment:not(.visible) .animate__animated, .fragment:not(.visible) .animated, .fragment:not(.visible).animate__animated, .fragment:not(.visible).animated {
31
- opacity: 0;
32
- -webkit-animation: none;
33
- animation: none;
34
- }
35
-
36
- i.animate__animated, i.animated,
37
- span.animate__animated, span.animated {
38
- display: inline-block;
39
- }
15
+ ******************************************************************/
40
16
 
41
17
  /* Custom Appearance animation keyframes */
42
- @-webkit-keyframes skidLeft {
43
- from {
44
- -webkit-transform: translate3d(-20%, 0, 0) skewX(0deg);
45
- transform: translate3d(-20%, 0, 0) skewX(0deg);
46
- opacity: 0;
47
- }
48
- 50% {
49
- -webkit-transform: translate3d(2%, 0, 0) skewX(-10deg);
50
- transform: translate3d(2%, 0, 0) skewX(-10deg);
51
- opacity: 1;
52
- }
53
- 75% {
54
- -webkit-transform: translate3d(-1%, 0, 0) skewX(10deg);
55
- transform: translate3d(-1%, 0, 0) skewX(10deg);
56
- }
57
- to {
58
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
59
- transform: translate3d(0, 0, 0) skewX(0deg);
60
- }
61
- }
62
18
  @keyframes skidLeft {
63
19
  from {
64
- -webkit-transform: translate3d(-20%, 0, 0) skewX(0deg);
65
- transform: translate3d(-20%, 0, 0) skewX(0deg);
66
- opacity: 0;
67
- }
68
- 50% {
69
- -webkit-transform: translate3d(2%, 0, 0) skewX(-10deg);
70
- transform: translate3d(2%, 0, 0) skewX(-10deg);
71
- opacity: 1;
72
- }
73
- 75% {
74
- -webkit-transform: translate3d(-1%, 0, 0) skewX(10deg);
75
- transform: translate3d(-1%, 0, 0) skewX(10deg);
76
- }
77
- to {
78
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
79
- transform: translate3d(0, 0, 0) skewX(0deg);
80
- }
81
- }
82
- @-webkit-keyframes skidLeftBig {
83
- from {
84
- -webkit-transform: translate3d(-100%, 0, 0) skewX(0deg);
85
- transform: translate3d(-100%, 0, 0) skewX(0deg);
20
+ transform: translate3d(-20%, 0, 0) skewX(0deg);
86
21
  opacity: 0;
87
22
  }
88
23
  50% {
89
- -webkit-transform: translate3d(2%, 0, 0) skewX(-10deg);
90
- transform: translate3d(2%, 0, 0) skewX(-10deg);
24
+ transform: translate3d(2%, 0, 0) skewX(-10deg);
91
25
  opacity: 1;
92
26
  }
93
27
  75% {
94
- -webkit-transform: translate3d(-1%, 0, 0) skewX(10deg);
95
- transform: translate3d(-1%, 0, 0) skewX(10deg);
28
+ transform: translate3d(-1%, 0, 0) skewX(10deg);
96
29
  }
97
30
  to {
98
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
99
- transform: translate3d(0, 0, 0) skewX(0deg);
31
+ transform: translate3d(0, 0, 0) skewX(0deg);
100
32
  }
101
33
  }
102
34
  @keyframes skidLeftBig {
103
35
  from {
104
- -webkit-transform: translate3d(-100%, 0, 0) skewX(0deg);
105
- transform: translate3d(-100%, 0, 0) skewX(0deg);
106
- opacity: 0;
107
- }
108
- 50% {
109
- -webkit-transform: translate3d(2%, 0, 0) skewX(-10deg);
110
- transform: translate3d(2%, 0, 0) skewX(-10deg);
111
- opacity: 1;
112
- }
113
- 75% {
114
- -webkit-transform: translate3d(-1%, 0, 0) skewX(10deg);
115
- transform: translate3d(-1%, 0, 0) skewX(10deg);
116
- }
117
- to {
118
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
119
- transform: translate3d(0, 0, 0) skewX(0deg);
120
- }
121
- }
122
- @-webkit-keyframes skidRight {
123
- from {
124
- -webkit-transform: translate3d(20%, 0, 0) skewX(0deg);
125
- transform: translate3d(20%, 0, 0) skewX(0deg);
36
+ transform: translate3d(-100%, 0, 0) skewX(0deg);
126
37
  opacity: 0;
127
38
  }
128
39
  50% {
129
- -webkit-transform: translate3d(-2%, 0, 0) skewX(10deg);
130
- transform: translate3d(-2%, 0, 0) skewX(10deg);
40
+ transform: translate3d(2%, 0, 0) skewX(-10deg);
131
41
  opacity: 1;
132
42
  }
133
43
  75% {
134
- -webkit-transform: translate3d(1%, 0, 0) skewX(-10deg);
135
- transform: translate3d(1%, 0, 0) skewX(-10deg);
44
+ transform: translate3d(-1%, 0, 0) skewX(10deg);
136
45
  }
137
46
  to {
138
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
139
- transform: translate3d(0, 0, 0) skewX(0deg);
47
+ transform: translate3d(0, 0, 0) skewX(0deg);
140
48
  }
141
49
  }
142
50
  @keyframes skidRight {
143
51
  from {
144
- -webkit-transform: translate3d(20%, 0, 0) skewX(0deg);
145
- transform: translate3d(20%, 0, 0) skewX(0deg);
52
+ transform: translate3d(20%, 0, 0) skewX(0deg);
146
53
  opacity: 0;
147
54
  }
148
55
  50% {
149
- -webkit-transform: translate3d(-2%, 0, 0) skewX(10deg);
150
- transform: translate3d(-2%, 0, 0) skewX(10deg);
56
+ transform: translate3d(-2%, 0, 0) skewX(10deg);
151
57
  opacity: 1;
152
58
  }
153
59
  75% {
154
- -webkit-transform: translate3d(1%, 0, 0) skewX(-10deg);
155
- transform: translate3d(1%, 0, 0) skewX(-10deg);
60
+ transform: translate3d(1%, 0, 0) skewX(-10deg);
156
61
  }
157
62
  to {
158
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
159
- transform: translate3d(0, 0, 0) skewX(0deg);
160
- }
161
- }
162
- @-webkit-keyframes skidRightBig {
163
- from {
164
- -webkit-transform: translate3d(100%, 0, 0) skewX(0deg);
165
- transform: translate3d(100%, 0, 0) skewX(0deg);
166
- opacity: 0;
167
- }
168
- 50% {
169
- -webkit-transform: translate3d(-2%, 0, 0) skewX(10deg);
170
- transform: translate3d(-2%, 0, 0) skewX(10deg);
171
- opacity: 1;
172
- }
173
- 75% {
174
- -webkit-transform: translate3d(1%, 0, 0) skewX(-10deg);
175
- transform: translate3d(1%, 0, 0) skewX(-10deg);
176
- }
177
- to {
178
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
179
- transform: translate3d(0, 0, 0) skewX(0deg);
63
+ transform: translate3d(0, 0, 0) skewX(0deg);
180
64
  }
181
65
  }
182
66
  @keyframes skidRightBig {
183
67
  from {
184
- -webkit-transform: translate3d(100%, 0, 0) skewX(0deg);
185
- transform: translate3d(100%, 0, 0) skewX(0deg);
68
+ transform: translate3d(100%, 0, 0) skewX(0deg);
186
69
  opacity: 0;
187
70
  }
188
71
  50% {
189
- -webkit-transform: translate3d(-2%, 0, 0) skewX(10deg);
190
- transform: translate3d(-2%, 0, 0) skewX(10deg);
72
+ transform: translate3d(-2%, 0, 0) skewX(10deg);
191
73
  opacity: 1;
192
74
  }
193
75
  75% {
194
- -webkit-transform: translate3d(1%, 0, 0) skewX(-10deg);
195
- transform: translate3d(1%, 0, 0) skewX(-10deg);
76
+ transform: translate3d(1%, 0, 0) skewX(-10deg);
196
77
  }
197
78
  to {
198
- -webkit-transform: translate3d(0, 0, 0) skewX(0deg);
199
- transform: translate3d(0, 0, 0) skewX(0deg);
200
- }
201
- }
202
- @-webkit-keyframes shrinkIn {
203
- from {
204
- -webkit-transform: scale3d(1.3, 1.3, 1.3);
205
- transform: scale3d(1.3, 1.3, 1.3);
206
- opacity: 0;
207
- }
208
- to {
209
- opacity: 1;
79
+ transform: translate3d(0, 0, 0) skewX(0deg);
210
80
  }
211
81
  }
212
82
  @keyframes shrinkIn {
213
83
  from {
214
- -webkit-transform: scale3d(1.3, 1.3, 1.3);
215
- transform: scale3d(1.3, 1.3, 1.3);
84
+ transform: scale3d(1.3, 1.3, 1.3);
216
85
  opacity: 0;
217
86
  }
218
87
  to {
219
88
  opacity: 1;
220
89
  }
221
90
  }
222
- @-webkit-keyframes shrinkInBlur {
91
+ @keyframes shrinkInBig {
223
92
  from {
224
- -webkit-transform: scale3d(1.3, 1.3, 1.3);
225
- transform: scale3d(1.3, 1.3, 1.3);
93
+ transform: scale3d(1.6, 1.6, 1.6);
226
94
  opacity: 0;
227
- -webkit-filter: blur(5px);
228
- filter: blur(5px);
229
95
  }
230
- 75% {
96
+ to {
231
97
  opacity: 1;
232
- -webkit-filter: blur(0px);
233
- }
234
- 100% {
235
- -webkit-transform: scale3d(1, 1, 1);
236
- transform: scale3d(1, 1, 1);
237
98
  }
238
99
  }
239
100
  @keyframes shrinkInBlur {
240
101
  from {
241
- -webkit-transform: scale3d(1.3, 1.3, 1.3);
242
- transform: scale3d(1.3, 1.3, 1.3);
102
+ transform: scale3d(1.3, 1.3, 1.3);
243
103
  opacity: 0;
244
- -webkit-filter: blur(5px);
245
- filter: blur(5px);
104
+ filter: blur(5px);
246
105
  }
247
106
  75% {
248
107
  opacity: 1;
249
- -webkit-filter: blur(0px);
108
+ filter: blur(0.5px);
250
109
  }
251
110
  100% {
252
- -webkit-transform: scale3d(1, 1, 1);
253
- transform: scale3d(1, 1, 1);
111
+ transform: scale3d(1, 1, 1);
254
112
  }
255
113
  }
256
114
  /* Custom Appearance animation classes */
257
115
  .skidRight, .animate__skidRight {
258
- -webkit-animation-name: skidRight;
259
- animation-name: skidRight;
116
+ animation-name: skidRight;
260
117
  }
261
118
 
262
119
  .skidRightBig, .animate__skidRightBig {
263
- -webkit-animation-name: skidRightBig;
264
- animation-name: skidRightBig;
120
+ animation-name: skidRightBig;
265
121
  }
266
122
 
267
123
  .skidLeft, .animate__skidLeft {
268
- -webkit-animation-name: skidLeft;
269
- animation-name: skidLeft;
124
+ animation-name: skidLeft;
270
125
  }
271
126
 
272
127
  .skidLeftBig, .animate__skidLeftBig {
273
- -webkit-animation-name: skidLeftBig;
274
- animation-name: skidLeftBig;
128
+ animation-name: skidLeftBig;
275
129
  }
276
130
 
277
131
  .shrinkIn, .animate__shrinkIn {
278
- -webkit-animation-name: shrinkIn;
279
- animation-name: shrinkIn;
132
+ animation-name: shrinkIn;
133
+ }
134
+
135
+ .shrinkInBig, .animate__shrinkInBig {
136
+ animation-name: shrinkInBig;
280
137
  }
281
138
 
282
139
  .shrinkInBlur, .animate__shrinkInBlur {
283
- -webkit-animation-name: shrinkInBlur;
284
- animation-name: shrinkInBlur;
140
+ animation-name: shrinkIn;
141
+ }
142
+
143
+ .shrinkInBlurAnyway, .animate__shrinkInBlurAnyway {
144
+ backface-visibility: hidden;
145
+ perspective: 1000;
146
+ transform: translate3d(0, 0, 0) translateZ(0);
147
+ animation-name: shrinkInBlur;
148
+ }
149
+
150
+ /* Animate.css overrides */
151
+ section:not(.stack):not([data-appearance-can-start]) .animate__animated,
152
+ section:not(.stack):not([data-appearance-can-start]) .animated,
153
+ .fragment:not(.visible) .animate__animated,
154
+ .fragment:not(.visible) .animated {
155
+ opacity: 0;
156
+ animation: none;
157
+ will-change: animation;
158
+ }
159
+ .reveal.overview section:not(.stack):not([data-appearance-can-start]) .animated,
160
+ .reveal.overview section:not(.stack):not([data-appearance-can-start]) .animate__animated,
161
+ .reveal.overview .fragment:not(.visible) .animated,
162
+ .reveal.overview .fragment:not(.visible) .animate__animated {
163
+ visibility: visible;
164
+ animation: none;
165
+ opacity: 1;
166
+ }
167
+
168
+ .fragment.animate__animated:not(.visible), .fragment.animated:not(.visible) {
169
+ transition: opacity 0.3s ease-in-out !important;
170
+ opacity: 0;
171
+ animation: none;
172
+ will-change: animation;
173
+ }
174
+ .fragment.animate__animated.visible.animate__animated, .fragment.animate__animated.visible.animated, .fragment.animated.visible.animate__animated, .fragment.animated.visible.animated {
175
+ transition: none;
176
+ }
177
+
178
+ i.animate__animated, i.animated, span.animate__animated, span.animated {
179
+ display: inline-block;
180
+ }
181
+
182
+ .animate__animated.animationended,
183
+ .animated.animationended {
184
+ animation: none;
285
185
  }
286
186
 
287
187
  .fast, .animate__fast {
288
- -webkit-animation-duration: calc(var(--animate-duration) * 0.8);
289
- animation-duration: calc(var(--animate-duration) * 0.8);
188
+ animation-duration: calc(var(--animate-duration) * 0.8);
290
189
  }
291
190
 
292
191
  .faster, .animate__faster {
293
- -webkit-animation-duration: calc(var(--animate-duration) / 2);
294
- animation-duration: calc(var(--animate-duration) / 2);
192
+ animation-duration: calc(var(--animate-duration) / 2);
295
193
  }
296
194
 
297
195
  .slow, .animate__slow {
298
- -webkit-animation-duration: calc(var(--animate-duration) * 2);
299
- animation-duration: calc(var(--animate-duration) * 2);
196
+ animation-duration: calc(var(--animate-duration) * 2);
300
197
  }
301
198
 
302
199
  .slower, .animate__slower {
303
- -webkit-animation-duration: calc(var(--animate-duration) * 3);
304
- animation-duration: calc(var(--animate-duration) * 3);
200
+ animation-duration: calc(var(--animate-duration) * 3);
305
201
  }
306
202
 
307
- .print-pdf {
308
- color: black;
203
+ .print-pdf .animated, .print-pdf .animate__animated,
204
+ .print-pdf section:not(.stack):not([data-appearance-can-start]) .animated,
205
+ .print-pdf section:not(.stack):not([data-appearance-can-start]) .animate__animated {
206
+ opacity: 1;
207
+ visibility: visible;
208
+ animation: none;
209
+ }
210
+ .print-pdf .reveal .fragment {
211
+ opacity: 1;
309
212
  }
310
- .print-pdf .animated, .print-pdf .animate__animated {
213
+
214
+ .reveal.sv .animated, .reveal.sv .animate__animated,
215
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animated:not(.fragment),
216
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated:not(.fragment),
217
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animated.fragment.visible,
218
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated.fragment.visible, .reveal-viewport.sv .animated, .reveal-viewport.sv .animate__animated,
219
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animated:not(.fragment),
220
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated:not(.fragment),
221
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animated.fragment.visible,
222
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated.fragment.visible {
223
+ opacity: 1;
311
224
  visibility: visible;
312
- -webkit-animation: none;
313
- animation: none;
225
+ animation: none;
314
226
  }