reveal.js-appearance 1.2.1 → 1.3.1

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,15 @@
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
+
3
13
  ## [1.2.1] - 2023-07-22
4
14
  ### Added
5
15
  - Fix for hidden items in print and speaker view
package/README.md CHANGED
@@ -4,18 +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)
12
- * [Markdown demo](https://martinomagnifico.github.io/reveal.js-appearance/demo-markdown.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)
13
13
 
14
14
  The animations will start automatically after or at each slide or fragment change if the HTML is set up to use Appearance.
15
15
 
16
- 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.
17
-
18
- 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.
19
17
 
20
18
 
21
19
  ## Basics
@@ -79,7 +77,7 @@ If you're using ES modules, you can add it like this:
79
77
  ```
80
78
 
81
79
  ### Styling
82
- 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.
83
81
 
84
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.
85
83
 
@@ -99,6 +97,15 @@ It is easy to set up your HTML structure for Appearance. Each element that you w
99
97
 
100
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.
101
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
+
102
109
 
103
110
  ## Now change it
104
111
 
@@ -125,6 +132,21 @@ You can change the speed of each animation, using the tempo classes from Animate
125
132
  <img class="animate__fadeInDown animate__faster" data-src="4.jpg">
126
133
  ```
127
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
+
128
150
  ### Changing the 'appearevent'
129
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.
130
152
 
@@ -174,9 +196,17 @@ Reveal.initialize({
174
196
  });
175
197
  ```
176
198
 
177
- 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
178
206
 
179
- 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:
180
210
 
181
211
  ```html
182
212
  <ul>
@@ -227,10 +257,13 @@ Reveal.initialize({
227
257
 
228
258
  ### Local auto-appear, specified
229
259
 
230
- 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.
231
263
 
232
264
  ```html
233
- <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"}}'>
234
267
  <h3>Local auto-appear, specified</h3>
235
268
  <ul>
236
269
  <li>This is list item 1</li>
@@ -278,7 +311,7 @@ Reveal.initialize({
278
311
 
279
312
 
280
313
  ## Migration guide
281
- 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.
282
315
 
283
316
  You have two options to migrate to the new version:
284
317
 
package/package.json CHANGED
@@ -1,21 +1,65 @@
1
1
  {
2
- "name": "reveal.js-appearance",
3
- "version": "1.2.1",
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
- "dependencies": {
19
- "animate.css": "^4.1.1"
20
- }
21
- }
2
+ "name": "reveal.js-appearance",
3
+ "version": "1.3.1",
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.23.2",
41
+ "@rollup/plugin-babel": "^6.0.4",
42
+ "@rollup/plugin-commonjs": "^25.0.7",
43
+ "@rollup/plugin-node-resolve": "^15.2.3",
44
+ "@rollup/plugin-terser": "^0.4.4",
45
+ "browser-sync": "^2.29.3",
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": "^4.2.0",
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,307 +1,221 @@
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.1
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);
36
+ transform: translate3d(-100%, 0, 0) skewX(0deg);
106
37
  opacity: 0;
107
38
  }
108
39
  50% {
109
- -webkit-transform: translate3d(2%, 0, 0) skewX(-10deg);
110
- transform: translate3d(2%, 0, 0) skewX(-10deg);
40
+ transform: translate3d(2%, 0, 0) skewX(-10deg);
111
41
  opacity: 1;
112
42
  }
113
43
  75% {
114
- -webkit-transform: translate3d(-1%, 0, 0) skewX(10deg);
115
- transform: translate3d(-1%, 0, 0) skewX(10deg);
44
+ transform: translate3d(-1%, 0, 0) skewX(10deg);
116
45
  }
117
46
  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);
126
- opacity: 0;
127
- }
128
- 50% {
129
- -webkit-transform: translate3d(-2%, 0, 0) skewX(10deg);
130
- transform: translate3d(-2%, 0, 0) skewX(10deg);
131
- opacity: 1;
132
- }
133
- 75% {
134
- -webkit-transform: translate3d(1%, 0, 0) skewX(-10deg);
135
- transform: translate3d(1%, 0, 0) skewX(-10deg);
136
- }
137
- 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);
196
- }
197
- 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;
76
+ transform: translate3d(1%, 0, 0) skewX(-10deg);
207
77
  }
208
78
  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, section:not(.stack):not([data-appearance-can-start]) .animated {
152
+ opacity: 0;
153
+ animation: none;
154
+ }
155
+
156
+ section:not(.stack)[data-appearance-can-start] .animate__animated:not(.fragment), section:not(.stack)[data-appearance-can-start] .animated:not(.fragment) {
157
+ opacity: 1;
158
+ }
159
+
160
+ /* Animations inside fragments */
161
+ section:not(.stack):not([data-appearance-can-start]) .animate__animated,
162
+ section:not(.stack):not([data-appearance-can-start]) .animated,
163
+ .fragment:not(.visible) .animate__animated,
164
+ .fragment:not(.visible) .animated {
165
+ opacity: 0;
166
+ animation: none;
167
+ will-change: animation;
168
+ }
169
+ .reveal.overview section:not(.stack):not([data-appearance-can-start]) .animated,
170
+ .reveal.overview section:not(.stack):not([data-appearance-can-start]) .animate__animated,
171
+ .reveal.overview .fragment:not(.visible) .animated,
172
+ .reveal.overview .fragment:not(.visible) .animate__animated {
173
+ visibility: visible;
174
+ animation: none;
175
+ opacity: 1;
176
+ }
177
+
178
+ /* Animations which are also fragments */
179
+ .reveal .fragment.animate__animated:not(.visible), .reveal .fragment.animated:not(.visible) {
180
+ transition: all 0.2s ease;
181
+ opacity: 0;
182
+ animation: none;
183
+ will-change: animation;
184
+ }
185
+ .reveal .fragment.animate__animated.visible:not(.animationended), .reveal .fragment.animated.visible:not(.animationended) {
186
+ transition: none;
187
+ }
188
+ .reveal .fragment.animate__animated.visible.animationended, .reveal .fragment.animated.visible.animationended {
189
+ animation: none;
190
+ transition: all 0.2s ease;
191
+ }
192
+
193
+ i.animate__animated, i.animated, span.animate__animated, span.animated {
194
+ display: inline-block;
195
+ }
196
+
197
+ .animate__animated[data-auto-animate-target]:not([data-auto-animate-target=unmatched]) {
198
+ animation: none;
199
+ }
200
+
201
+ [data-auto-animate=running] .animate__animated[data-auto-animate-target]:not([data-auto-animate-target=unmatched]) {
202
+ opacity: 1 !important;
285
203
  }
286
204
 
287
205
  .fast, .animate__fast {
288
- -webkit-animation-duration: calc(var(--animate-duration) * 0.8);
289
- animation-duration: calc(var(--animate-duration) * 0.8);
206
+ animation-duration: calc(var(--animate-duration) * 0.8);
290
207
  }
291
208
 
292
209
  .faster, .animate__faster {
293
- -webkit-animation-duration: calc(var(--animate-duration) / 2);
294
- animation-duration: calc(var(--animate-duration) / 2);
210
+ animation-duration: calc(var(--animate-duration) / 2);
295
211
  }
296
212
 
297
213
  .slow, .animate__slow {
298
- -webkit-animation-duration: calc(var(--animate-duration) * 2);
299
- animation-duration: calc(var(--animate-duration) * 2);
214
+ animation-duration: calc(var(--animate-duration) * 2);
300
215
  }
301
216
 
302
217
  .slower, .animate__slower {
303
- -webkit-animation-duration: calc(var(--animate-duration) * 3);
304
- animation-duration: calc(var(--animate-duration) * 3);
218
+ animation-duration: calc(var(--animate-duration) * 3);
305
219
  }
306
220
 
307
221
  .print-pdf .animated, .print-pdf .animate__animated,
@@ -309,18 +223,22 @@ span.animate__animated, span.animated {
309
223
  .print-pdf section:not(.stack):not([data-appearance-can-start]) .animate__animated {
310
224
  opacity: 1;
311
225
  visibility: visible;
312
- -webkit-animation: none;
313
- animation: none;
226
+ animation: none;
314
227
  }
315
228
  .print-pdf .reveal .fragment {
316
229
  opacity: 1;
317
230
  }
318
231
 
319
232
  .reveal.sv .animated, .reveal.sv .animate__animated,
320
- .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animated,
321
- .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated {
233
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animated:not(.fragment),
234
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated:not(.fragment),
235
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animated.fragment.visible,
236
+ .reveal.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated.fragment.visible, .reveal-viewport.sv .animated, .reveal-viewport.sv .animate__animated,
237
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animated:not(.fragment),
238
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated:not(.fragment),
239
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animated.fragment.visible,
240
+ .reveal-viewport.sv section:not(.stack):not([data-appearance-can-start]) .animate__animated.fragment.visible {
322
241
  opacity: 1;
323
242
  visibility: visible;
324
- -webkit-animation: none;
325
- animation: none;
243
+ animation: none;
326
244
  }