santycss 1.0.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/README.md +1 -0
- package/dist/santy-animations.css +519 -0
- package/dist/santy-components.css +680 -0
- package/dist/santy-core.css +11336 -0
- package/dist/santy.css +12538 -0
- package/dist/santy.min.css +1 -0
- package/index.js +50 -0
- package/lib/animations.js +539 -0
- package/lib/purge-core.js +223 -0
- package/package.json +65 -0
- package/postcss/index.js +79 -0
- package/purge.js +98 -0
- package/santy-jit.js +841 -0
- package/vite-plugin-santycss.js +128 -0
package/index.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SantyCSS — main entry point
|
|
3
|
+
*
|
|
4
|
+
* CSS path helpers:
|
|
5
|
+
* const santy = require('santycss');
|
|
6
|
+
* santy.css → absolute path to dist/santy.css
|
|
7
|
+
* santy.min → absolute path to dist/santy.min.css
|
|
8
|
+
* santy.core → absolute path to dist/santy-core.css
|
|
9
|
+
* santy.components → absolute path to dist/santy-components.css
|
|
10
|
+
* santy.animations → absolute path to dist/santy-animations.css
|
|
11
|
+
*
|
|
12
|
+
* Import CSS directly (React / Vue / Vite / Next.js):
|
|
13
|
+
* import 'santycss/css';
|
|
14
|
+
* import 'santycss/css/core';
|
|
15
|
+
* import 'santycss/css/components';
|
|
16
|
+
* import 'santycss/css/animations';
|
|
17
|
+
*
|
|
18
|
+
* Purge / tree-shake:
|
|
19
|
+
* const { purge, purgeFiles } = require('santycss');
|
|
20
|
+
*/
|
|
21
|
+
'use strict';
|
|
22
|
+
|
|
23
|
+
const path = require('path');
|
|
24
|
+
const dist = path.join(__dirname, 'dist');
|
|
25
|
+
|
|
26
|
+
// Path helpers (useful for webpack / rollup config)
|
|
27
|
+
const css = path.join(dist, 'santy.css');
|
|
28
|
+
const min = path.join(dist, 'santy.min.css');
|
|
29
|
+
const core = path.join(dist, 'santy-core.css');
|
|
30
|
+
const components = path.join(dist, 'santy-components.css');
|
|
31
|
+
const animations = path.join(dist, 'santy-animations.css');
|
|
32
|
+
|
|
33
|
+
// Purge API (tree-shaking)
|
|
34
|
+
const { purge, purgeFiles, extractClasses, minify, EXTS } = require('./lib/purge-core');
|
|
35
|
+
|
|
36
|
+
module.exports = {
|
|
37
|
+
// CSS paths
|
|
38
|
+
css,
|
|
39
|
+
min,
|
|
40
|
+
core,
|
|
41
|
+
components,
|
|
42
|
+
animations,
|
|
43
|
+
|
|
44
|
+
// Purge API
|
|
45
|
+
purge,
|
|
46
|
+
purgeFiles,
|
|
47
|
+
extractClasses,
|
|
48
|
+
minify,
|
|
49
|
+
EXTS,
|
|
50
|
+
};
|
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* SantyCSS Extended Animations
|
|
4
|
+
* Full animate.css set with plain-English SantyCSS naming convention.
|
|
5
|
+
*
|
|
6
|
+
* Naming rules:
|
|
7
|
+
* animate-{type} → basic animation
|
|
8
|
+
* animate-{type}-in / out → entrance / exit
|
|
9
|
+
* animate-{type}-in-from-{side} → directional entrance
|
|
10
|
+
* animate-{type}-out-to-{side} → directional exit
|
|
11
|
+
* animation-speed-{name} → duration helper
|
|
12
|
+
* animation-delay-{ms} → delay helper
|
|
13
|
+
* animation-loop-{n} / forever → iteration helper
|
|
14
|
+
* animation-fill-{mode} → fill-mode helper
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const ANIMATION_CSS = `
|
|
18
|
+
/* ═══════════════════════════════════════════════════════════════════════
|
|
19
|
+
SANTY ANIMATIONS — animate.css compatible · Plain-English naming
|
|
20
|
+
═══════════════════════════════════════════════════════════════════════ */
|
|
21
|
+
|
|
22
|
+
/* ── Speed helpers ── */
|
|
23
|
+
.animation-speed-fastest { animation-duration: 0.3s !important; }
|
|
24
|
+
.animation-speed-fast { animation-duration: 0.5s !important; }
|
|
25
|
+
.animation-speed-normal { animation-duration: 1s !important; }
|
|
26
|
+
.animation-speed-slow { animation-duration: 1.5s !important; }
|
|
27
|
+
.animation-speed-slowest { animation-duration: 2s !important; }
|
|
28
|
+
.animation-speed-glacial { animation-duration: 3s !important; }
|
|
29
|
+
|
|
30
|
+
/* ── Delay helpers ── */
|
|
31
|
+
.animation-delay-100 { animation-delay: 0.1s; }
|
|
32
|
+
.animation-delay-200 { animation-delay: 0.2s; }
|
|
33
|
+
.animation-delay-300 { animation-delay: 0.3s; }
|
|
34
|
+
.animation-delay-400 { animation-delay: 0.4s; }
|
|
35
|
+
.animation-delay-500 { animation-delay: 0.5s; }
|
|
36
|
+
.animation-delay-600 { animation-delay: 0.6s; }
|
|
37
|
+
.animation-delay-700 { animation-delay: 0.7s; }
|
|
38
|
+
.animation-delay-800 { animation-delay: 0.8s; }
|
|
39
|
+
.animation-delay-900 { animation-delay: 0.9s; }
|
|
40
|
+
.animation-delay-1000 { animation-delay: 1s; }
|
|
41
|
+
.animation-delay-1500 { animation-delay: 1.5s; }
|
|
42
|
+
.animation-delay-2000 { animation-delay: 2s; }
|
|
43
|
+
.animation-delay-3000 { animation-delay: 3s; }
|
|
44
|
+
|
|
45
|
+
/* ── Iteration helpers ── */
|
|
46
|
+
.animation-loop-1 { animation-iteration-count: 1; }
|
|
47
|
+
.animation-loop-2 { animation-iteration-count: 2; }
|
|
48
|
+
.animation-loop-3 { animation-iteration-count: 3; }
|
|
49
|
+
.animation-loop-4 { animation-iteration-count: 4; }
|
|
50
|
+
.animation-loop-5 { animation-iteration-count: 5; }
|
|
51
|
+
.animation-loop-forever { animation-iteration-count: infinite; }
|
|
52
|
+
|
|
53
|
+
/* ── Fill-mode helpers ── */
|
|
54
|
+
.animation-fill-none { animation-fill-mode: none; }
|
|
55
|
+
.animation-fill-forwards { animation-fill-mode: forwards; }
|
|
56
|
+
.animation-fill-backwards { animation-fill-mode: backwards; }
|
|
57
|
+
.animation-fill-both { animation-fill-mode: both; }
|
|
58
|
+
|
|
59
|
+
/* ── Timing-function helpers ── */
|
|
60
|
+
.animation-ease { animation-timing-function: ease; }
|
|
61
|
+
.animation-ease-in { animation-timing-function: ease-in; }
|
|
62
|
+
.animation-ease-out { animation-timing-function: ease-out; }
|
|
63
|
+
.animation-ease-in-out { animation-timing-function: ease-in-out; }
|
|
64
|
+
.animation-linear { animation-timing-function: linear; }
|
|
65
|
+
|
|
66
|
+
/* ── Pause / play ── */
|
|
67
|
+
.animation-paused { animation-play-state: paused; }
|
|
68
|
+
.animation-running{ animation-play-state: running; }
|
|
69
|
+
.animation-none { animation: none; }
|
|
70
|
+
|
|
71
|
+
/* ════════════════════════════════════════════════════
|
|
72
|
+
ATTENTION SEEKERS
|
|
73
|
+
Keep looping or use once (add animation-loop-1)
|
|
74
|
+
════════════════════════════════════════════════════ */
|
|
75
|
+
.animate-flash { animation: santy-flash 1s ease both; }
|
|
76
|
+
.animate-rubber-band { animation: santy-rubber-band 1s ease both; }
|
|
77
|
+
.animate-shake-x { animation: santy-shake-x 1s ease both; }
|
|
78
|
+
.animate-shake-y { animation: santy-shake-y 1s ease both; }
|
|
79
|
+
.animate-shake-head { animation: santy-shake-head 1s ease-in-out both; }
|
|
80
|
+
.animate-swing { animation: santy-swing 1s ease both; transform-origin: top center; }
|
|
81
|
+
.animate-tada { animation: santy-tada 1s ease both; }
|
|
82
|
+
.animate-wobble { animation: santy-wobble 1s ease both; }
|
|
83
|
+
.animate-jelly { animation: santy-jelly 1s ease both; }
|
|
84
|
+
.animate-heartbeat { animation: santy-heartbeat 1.3s ease-in-out both; }
|
|
85
|
+
|
|
86
|
+
/* ════════════════════════════════════════════════════
|
|
87
|
+
FADING ENTRANCES
|
|
88
|
+
════════════════════════════════════════════════════ */
|
|
89
|
+
.animate-fade-in { animation: santy-fade-in 0.5s ease both; }
|
|
90
|
+
.animate-fade-in-from-top { animation: santy-fade-in-from-top 0.5s ease both; }
|
|
91
|
+
.animate-fade-in-from-bottom { animation: santy-fade-in-from-bottom 0.5s ease both; }
|
|
92
|
+
.animate-fade-in-from-left { animation: santy-fade-in-from-left 0.5s ease both; }
|
|
93
|
+
.animate-fade-in-from-right { animation: santy-fade-in-from-right 0.5s ease both; }
|
|
94
|
+
.animate-fade-in-top-left { animation: santy-fade-in-top-left 0.5s ease both; }
|
|
95
|
+
.animate-fade-in-top-right { animation: santy-fade-in-top-right 0.5s ease both; }
|
|
96
|
+
.animate-fade-in-bottom-left { animation: santy-fade-in-bottom-left 0.5s ease both; }
|
|
97
|
+
.animate-fade-in-bottom-right { animation: santy-fade-in-bottom-right 0.5s ease both; }
|
|
98
|
+
|
|
99
|
+
/* ════════════════════════════════════════════════════
|
|
100
|
+
FADING EXITS
|
|
101
|
+
════════════════════════════════════════════════════ */
|
|
102
|
+
.animate-fade-out { animation: santy-fade-out 0.5s ease both; }
|
|
103
|
+
.animate-fade-out-to-top { animation: santy-fade-out-to-top 0.5s ease both; }
|
|
104
|
+
.animate-fade-out-to-bottom { animation: santy-fade-out-to-bottom 0.5s ease both; }
|
|
105
|
+
.animate-fade-out-to-left { animation: santy-fade-out-to-left 0.5s ease both; }
|
|
106
|
+
.animate-fade-out-to-right { animation: santy-fade-out-to-right 0.5s ease both; }
|
|
107
|
+
.animate-fade-out-top-left { animation: santy-fade-out-top-left 0.5s ease both; }
|
|
108
|
+
.animate-fade-out-top-right { animation: santy-fade-out-top-right 0.5s ease both; }
|
|
109
|
+
.animate-fade-out-bottom-left { animation: santy-fade-out-bottom-left 0.5s ease both; }
|
|
110
|
+
.animate-fade-out-bottom-right { animation: santy-fade-out-bottom-right 0.5s ease both; }
|
|
111
|
+
|
|
112
|
+
/* ════════════════════════════════════════════════════
|
|
113
|
+
BOUNCING ENTRANCES
|
|
114
|
+
════════════════════════════════════════════════════ */
|
|
115
|
+
.animate-bounce-in { animation: santy-bounce-in 0.75s ease both; }
|
|
116
|
+
.animate-bounce-in-from-top { animation: santy-bounce-in-from-top 0.75s ease both; }
|
|
117
|
+
.animate-bounce-in-from-bottom { animation: santy-bounce-in-from-bottom 0.75s ease both; }
|
|
118
|
+
.animate-bounce-in-from-left { animation: santy-bounce-in-from-left 0.75s ease both; }
|
|
119
|
+
.animate-bounce-in-from-right { animation: santy-bounce-in-from-right 0.75s ease both; }
|
|
120
|
+
|
|
121
|
+
/* ════════════════════════════════════════════════════
|
|
122
|
+
BOUNCING EXITS
|
|
123
|
+
════════════════════════════════════════════════════ */
|
|
124
|
+
.animate-bounce-out { animation: santy-bounce-out 0.75s ease both; }
|
|
125
|
+
.animate-bounce-out-to-top { animation: santy-bounce-out-to-top 0.75s ease both; }
|
|
126
|
+
.animate-bounce-out-to-bottom { animation: santy-bounce-out-to-bottom 0.75s ease both; }
|
|
127
|
+
.animate-bounce-out-to-left { animation: santy-bounce-out-to-left 0.75s ease both; }
|
|
128
|
+
.animate-bounce-out-to-right { animation: santy-bounce-out-to-right 0.75s ease both; }
|
|
129
|
+
|
|
130
|
+
/* ════════════════════════════════════════════════════
|
|
131
|
+
SLIDING ENTRANCES
|
|
132
|
+
════════════════════════════════════════════════════ */
|
|
133
|
+
.animate-slide-in-from-top { animation: santy-slide-in-from-top 0.4s ease both; }
|
|
134
|
+
.animate-slide-in-from-bottom { animation: santy-slide-in-from-bottom 0.4s ease both; }
|
|
135
|
+
.animate-slide-in-from-left { animation: santy-slide-in-from-left 0.4s ease both; }
|
|
136
|
+
.animate-slide-in-from-right { animation: santy-slide-in-from-right 0.4s ease both; }
|
|
137
|
+
|
|
138
|
+
/* ════════════════════════════════════════════════════
|
|
139
|
+
SLIDING EXITS
|
|
140
|
+
════════════════════════════════════════════════════ */
|
|
141
|
+
.animate-slide-out-to-top { animation: santy-slide-out-to-top 0.4s ease both; }
|
|
142
|
+
.animate-slide-out-to-bottom { animation: santy-slide-out-to-bottom 0.4s ease both; }
|
|
143
|
+
.animate-slide-out-to-left { animation: santy-slide-out-to-left 0.4s ease both; }
|
|
144
|
+
.animate-slide-out-to-right { animation: santy-slide-out-to-right 0.4s ease both; }
|
|
145
|
+
|
|
146
|
+
/* ════════════════════════════════════════════════════
|
|
147
|
+
ZOOMING ENTRANCES
|
|
148
|
+
════════════════════════════════════════════════════ */
|
|
149
|
+
.animate-zoom-in { animation: santy-zoom-in 0.3s ease both; }
|
|
150
|
+
.animate-zoom-in-from-top { animation: santy-zoom-in-from-top 0.5s ease both; }
|
|
151
|
+
.animate-zoom-in-from-bottom { animation: santy-zoom-in-from-bottom 0.5s ease both; }
|
|
152
|
+
.animate-zoom-in-from-left { animation: santy-zoom-in-from-left 0.5s ease both; }
|
|
153
|
+
.animate-zoom-in-from-right { animation: santy-zoom-in-from-right 0.5s ease both; }
|
|
154
|
+
|
|
155
|
+
/* ════════════════════════════════════════════════════
|
|
156
|
+
ZOOMING EXITS
|
|
157
|
+
════════════════════════════════════════════════════ */
|
|
158
|
+
.animate-zoom-out { animation: santy-zoom-out 0.3s ease both; }
|
|
159
|
+
.animate-zoom-out-to-top { animation: santy-zoom-out-to-top 0.5s ease both; }
|
|
160
|
+
.animate-zoom-out-to-bottom { animation: santy-zoom-out-to-bottom 0.5s ease both; }
|
|
161
|
+
.animate-zoom-out-to-left { animation: santy-zoom-out-to-left 0.5s ease both; }
|
|
162
|
+
.animate-zoom-out-to-right { animation: santy-zoom-out-to-right 0.5s ease both; }
|
|
163
|
+
|
|
164
|
+
/* ════════════════════════════════════════════════════
|
|
165
|
+
FLIPPING
|
|
166
|
+
════════════════════════════════════════════════════ */
|
|
167
|
+
.animate-flip { animation: santy-flip 1s ease both; backface-visibility: visible !important; }
|
|
168
|
+
.animate-flip-in-x { animation: santy-flip-in-x 0.75s ease both; backface-visibility: visible !important; }
|
|
169
|
+
.animate-flip-in-y { animation: santy-flip-in-y 0.75s ease both; backface-visibility: visible !important; }
|
|
170
|
+
.animate-flip-out-x { animation: santy-flip-out-x 0.75s ease both; backface-visibility: visible !important; }
|
|
171
|
+
.animate-flip-out-y { animation: santy-flip-out-y 0.75s ease both; backface-visibility: visible !important; }
|
|
172
|
+
|
|
173
|
+
/* ════════════════════════════════════════════════════
|
|
174
|
+
ROTATING ENTRANCES
|
|
175
|
+
════════════════════════════════════════════════════ */
|
|
176
|
+
.animate-rotate-in { animation: santy-rotate-in 0.6s ease both; }
|
|
177
|
+
.animate-rotate-in-from-top-left { animation: santy-rotate-in-from-top-left 0.6s ease both; transform-origin: left top; }
|
|
178
|
+
.animate-rotate-in-from-top-right { animation: santy-rotate-in-from-top-right 0.6s ease both; transform-origin: right top; }
|
|
179
|
+
.animate-rotate-in-from-bottom-left { animation: santy-rotate-in-from-bottom-left 0.6s ease both; transform-origin: left bottom; }
|
|
180
|
+
.animate-rotate-in-from-bottom-right { animation: santy-rotate-in-from-bottom-right 0.6s ease both; transform-origin: right bottom; }
|
|
181
|
+
|
|
182
|
+
/* ════════════════════════════════════════════════════
|
|
183
|
+
ROTATING EXITS
|
|
184
|
+
════════════════════════════════════════════════════ */
|
|
185
|
+
.animate-rotate-out { animation: santy-rotate-out 0.6s ease both; }
|
|
186
|
+
.animate-rotate-out-to-top-left { animation: santy-rotate-out-to-top-left 0.6s ease both; transform-origin: left top; }
|
|
187
|
+
.animate-rotate-out-to-top-right { animation: santy-rotate-out-to-top-right 0.6s ease both; transform-origin: right top; }
|
|
188
|
+
.animate-rotate-out-to-bottom-left { animation: santy-rotate-out-to-bottom-left 0.6s ease both; transform-origin: left bottom; }
|
|
189
|
+
.animate-rotate-out-to-bottom-right { animation: santy-rotate-out-to-bottom-right 0.6s ease both; transform-origin: right bottom; }
|
|
190
|
+
|
|
191
|
+
/* ════════════════════════════════════════════════════
|
|
192
|
+
BACK ENTRANCES (scale from afar)
|
|
193
|
+
════════════════════════════════════════════════════ */
|
|
194
|
+
.animate-back-in-from-top { animation: santy-back-in-from-top 0.7s ease both; }
|
|
195
|
+
.animate-back-in-from-bottom { animation: santy-back-in-from-bottom 0.7s ease both; }
|
|
196
|
+
.animate-back-in-from-left { animation: santy-back-in-from-left 0.7s ease both; }
|
|
197
|
+
.animate-back-in-from-right { animation: santy-back-in-from-right 0.7s ease both; }
|
|
198
|
+
|
|
199
|
+
/* ════════════════════════════════════════════════════
|
|
200
|
+
BACK EXITS
|
|
201
|
+
════════════════════════════════════════════════════ */
|
|
202
|
+
.animate-back-out-to-top { animation: santy-back-out-to-top 0.7s ease both; }
|
|
203
|
+
.animate-back-out-to-bottom { animation: santy-back-out-to-bottom 0.7s ease both; }
|
|
204
|
+
.animate-back-out-to-left { animation: santy-back-out-to-left 0.7s ease both; }
|
|
205
|
+
.animate-back-out-to-right { animation: santy-back-out-to-right 0.7s ease both; }
|
|
206
|
+
|
|
207
|
+
/* ════════════════════════════════════════════════════
|
|
208
|
+
LIGHT SPEED (skew + slide)
|
|
209
|
+
════════════════════════════════════════════════════ */
|
|
210
|
+
.animate-speed-in-from-left { animation: santy-speed-in-from-left 0.5s ease-out both; }
|
|
211
|
+
.animate-speed-in-from-right { animation: santy-speed-in-from-right 0.5s ease-out both; }
|
|
212
|
+
.animate-speed-out-to-left { animation: santy-speed-out-to-left 0.5s ease-in both; }
|
|
213
|
+
.animate-speed-out-to-right { animation: santy-speed-out-to-right 0.5s ease-in both; }
|
|
214
|
+
|
|
215
|
+
/* ════════════════════════════════════════════════════
|
|
216
|
+
SPECIALS
|
|
217
|
+
════════════════════════════════════════════════════ */
|
|
218
|
+
.animate-hinge { animation: santy-hinge 2s ease both; transform-origin: top left; }
|
|
219
|
+
.animate-jack-in-box { animation: santy-jack-in-box 1s ease both; transform-origin: center bottom; }
|
|
220
|
+
.animate-roll-in { animation: santy-roll-in 0.6s ease both; }
|
|
221
|
+
.animate-roll-out { animation: santy-roll-out 0.6s ease both; }
|
|
222
|
+
|
|
223
|
+
/* ── Original utilities (kept for backwards compat) ── */
|
|
224
|
+
.animate-spin { animation: santy-spin 1s linear infinite; }
|
|
225
|
+
.animate-ping { animation: santy-ping 1s cubic-bezier(0,0,.2,1) infinite; }
|
|
226
|
+
.animate-pulse { animation: santy-pulse 2s cubic-bezier(.4,0,.6,1) infinite; }
|
|
227
|
+
.animate-bounce { animation: santy-bounce 1s infinite; }
|
|
228
|
+
.animate-slide-up { animation: santy-slide-in-from-bottom 0.4s ease both; }
|
|
229
|
+
.animate-slide-down { animation: santy-slide-in-from-top 0.4s ease both; }
|
|
230
|
+
.animate-zoom-in { animation: santy-zoom-in 0.3s ease both; }
|
|
231
|
+
.animate-zoom-out { animation: santy-zoom-out 0.3s ease both; }
|
|
232
|
+
|
|
233
|
+
/* ═══════════════════════════════════════════════════════════════════════
|
|
234
|
+
KEYFRAMES
|
|
235
|
+
═══════════════════════════════════════════════════════════════════════ */
|
|
236
|
+
|
|
237
|
+
/* ── Core ── */
|
|
238
|
+
@keyframes santy-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
|
|
239
|
+
@keyframes santy-ping { 75%, 100% { transform: scale(2); opacity: 0; } }
|
|
240
|
+
@keyframes santy-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
|
|
241
|
+
@keyframes santy-bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8,0,1,1); } 50% { transform: translateY(0); animation-timing-function: cubic-bezier(0,0,.2,1); } }
|
|
242
|
+
@keyframes santy-skeleton{ 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
|
|
243
|
+
|
|
244
|
+
/* ── Attention Seekers ── */
|
|
245
|
+
@keyframes santy-flash {
|
|
246
|
+
from, 50%, to { opacity: 1; }
|
|
247
|
+
25%, 75% { opacity: 0; }
|
|
248
|
+
}
|
|
249
|
+
@keyframes santy-rubber-band {
|
|
250
|
+
from { transform: scale3d(1, 1, 1); }
|
|
251
|
+
30% { transform: scale3d(1.25, .75, 1); }
|
|
252
|
+
40% { transform: scale3d(.75, 1.25, 1); }
|
|
253
|
+
50% { transform: scale3d(1.15, .85, 1); }
|
|
254
|
+
65% { transform: scale3d(.95, 1.05, 1); }
|
|
255
|
+
75% { transform: scale3d(1.05, .95, 1); }
|
|
256
|
+
to { transform: scale3d(1, 1, 1); }
|
|
257
|
+
}
|
|
258
|
+
@keyframes santy-shake-x {
|
|
259
|
+
from, to { transform: translate3d(0, 0, 0); }
|
|
260
|
+
10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0, 0); }
|
|
261
|
+
20%, 40%, 60%, 80% { transform: translate3d(10px, 0, 0); }
|
|
262
|
+
}
|
|
263
|
+
@keyframes santy-shake-y {
|
|
264
|
+
from, to { transform: translate3d(0, 0, 0); }
|
|
265
|
+
10%, 30%, 50%, 70%, 90% { transform: translate3d(0, -10px, 0); }
|
|
266
|
+
20%, 40%, 60%, 80% { transform: translate3d(0, 10px, 0); }
|
|
267
|
+
}
|
|
268
|
+
@keyframes santy-shake-head {
|
|
269
|
+
0% { transform: rotateY(0deg); }
|
|
270
|
+
6.5% { transform: rotateY(-9deg); }
|
|
271
|
+
18.5% { transform: rotateY(7deg); }
|
|
272
|
+
31.5% { transform: rotateY(-5deg); }
|
|
273
|
+
43.5% { transform: rotateY(3deg); }
|
|
274
|
+
50% { transform: rotateY(0deg); }
|
|
275
|
+
}
|
|
276
|
+
@keyframes santy-swing {
|
|
277
|
+
20% { transform: rotate3d(0, 0, 1, 15deg); }
|
|
278
|
+
40% { transform: rotate3d(0, 0, 1, -10deg); }
|
|
279
|
+
60% { transform: rotate3d(0, 0, 1, 5deg); }
|
|
280
|
+
80% { transform: rotate3d(0, 0, 1, -5deg); }
|
|
281
|
+
to { transform: rotate3d(0, 0, 1, 0deg); }
|
|
282
|
+
}
|
|
283
|
+
@keyframes santy-tada {
|
|
284
|
+
from { transform: scale3d(1, 1, 1); }
|
|
285
|
+
10%, 20% { transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); }
|
|
286
|
+
30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
|
|
287
|
+
40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
|
|
288
|
+
to { transform: scale3d(1, 1, 1); }
|
|
289
|
+
}
|
|
290
|
+
@keyframes santy-wobble {
|
|
291
|
+
from { transform: translate3d(0, 0, 0); }
|
|
292
|
+
15% { transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
|
|
293
|
+
30% { transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
|
|
294
|
+
45% { transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
|
|
295
|
+
60% { transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
|
|
296
|
+
75% { transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
|
|
297
|
+
to { transform: translate3d(0, 0, 0); }
|
|
298
|
+
}
|
|
299
|
+
@keyframes santy-jelly {
|
|
300
|
+
from, 11.1%, to { transform: translate3d(0, 0, 0); }
|
|
301
|
+
22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); }
|
|
302
|
+
33.3% { transform: skewX(6.25deg) skewY(6.25deg); }
|
|
303
|
+
44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); }
|
|
304
|
+
55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); }
|
|
305
|
+
66.6% { transform: skewX(-.78125deg) skewY(-.78125deg); }
|
|
306
|
+
77.7% { transform: skewX(.390625deg) skewY(.390625deg); }
|
|
307
|
+
88.8% { transform: skewX(-.1953125deg) skewY(-.1953125deg); }
|
|
308
|
+
}
|
|
309
|
+
@keyframes santy-heartbeat {
|
|
310
|
+
from { transform: scale(1); animation-timing-function: ease-out; }
|
|
311
|
+
10% { transform: scale(1.12); animation-timing-function: ease-in; }
|
|
312
|
+
17% { transform: scale(1.08); animation-timing-function: ease-out; }
|
|
313
|
+
33% { transform: scale(1.18); animation-timing-function: ease-in; }
|
|
314
|
+
45% { transform: scale(1); animation-timing-function: ease-out; }
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/* ── Fade In ── */
|
|
318
|
+
@keyframes santy-fade-in { from { opacity: 0; } to { opacity: 1; } }
|
|
319
|
+
@keyframes santy-fade-in-from-top { from { opacity: 0; transform: translate3d(0, -30px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
320
|
+
@keyframes santy-fade-in-from-bottom { from { opacity: 0; transform: translate3d(0, 30px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
321
|
+
@keyframes santy-fade-in-from-left { from { opacity: 0; transform: translate3d(-30px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
322
|
+
@keyframes santy-fade-in-from-right { from { opacity: 0; transform: translate3d( 30px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
323
|
+
@keyframes santy-fade-in-top-left { from { opacity: 0; transform: translate3d(-30px, -30px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
324
|
+
@keyframes santy-fade-in-top-right { from { opacity: 0; transform: translate3d( 30px, -30px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
325
|
+
@keyframes santy-fade-in-bottom-left { from { opacity: 0; transform: translate3d(-30px, 30px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
326
|
+
@keyframes santy-fade-in-bottom-right { from { opacity: 0; transform: translate3d( 30px, 30px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
|
|
327
|
+
|
|
328
|
+
/* ── Fade Out ── */
|
|
329
|
+
@keyframes santy-fade-out { from { opacity: 1; } to { opacity: 0; } }
|
|
330
|
+
@keyframes santy-fade-out-to-top { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d(0, -30px, 0); } }
|
|
331
|
+
@keyframes santy-fade-out-to-bottom { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d(0, 30px, 0); } }
|
|
332
|
+
@keyframes santy-fade-out-to-left { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d(-30px, 0, 0); } }
|
|
333
|
+
@keyframes santy-fade-out-to-right { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d( 30px, 0, 0); } }
|
|
334
|
+
@keyframes santy-fade-out-top-left { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d(-30px, -30px, 0); } }
|
|
335
|
+
@keyframes santy-fade-out-top-right { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d( 30px, -30px, 0); } }
|
|
336
|
+
@keyframes santy-fade-out-bottom-left { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d(-30px, 30px, 0); } }
|
|
337
|
+
@keyframes santy-fade-out-bottom-right { from { opacity: 1; transform: translate3d(0, 0, 0); } to { opacity: 0; transform: translate3d( 30px, 30px, 0); } }
|
|
338
|
+
|
|
339
|
+
/* ── Bounce In ── */
|
|
340
|
+
@keyframes santy-bounce-in {
|
|
341
|
+
from,20%,40%,60%,80%,to { animation-timing-function: cubic-bezier(.215,.61,.355,1); }
|
|
342
|
+
0% { opacity: 0; transform: scale3d(.3, .3, .3); }
|
|
343
|
+
20% { transform: scale3d(1.1, 1.1, 1.1); }
|
|
344
|
+
40% { transform: scale3d(.9, .9, .9); }
|
|
345
|
+
60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
|
|
346
|
+
80% { transform: scale3d(.97, .97, .97); }
|
|
347
|
+
to { opacity: 1; transform: scale3d(1, 1, 1); }
|
|
348
|
+
}
|
|
349
|
+
@keyframes santy-bounce-in-from-top {
|
|
350
|
+
from,60%,75%,90%,to { animation-timing-function: cubic-bezier(.215,.61,.355,1); }
|
|
351
|
+
0% { opacity: 0; transform: translate3d(0, -3000px, 0) scaleY(3); }
|
|
352
|
+
60% { opacity: 1; transform: translate3d(0, 25px, 0) scaleY(.9); }
|
|
353
|
+
75% { transform: translate3d(0, -10px, 0) scaleY(.95); }
|
|
354
|
+
90% { transform: translate3d(0, 5px, 0) scaleY(.985); }
|
|
355
|
+
to { transform: translate3d(0, 0, 0); }
|
|
356
|
+
}
|
|
357
|
+
@keyframes santy-bounce-in-from-bottom {
|
|
358
|
+
from,60%,75%,90%,to { animation-timing-function: cubic-bezier(.215,.61,.355,1); }
|
|
359
|
+
0% { opacity: 0; transform: translate3d(0, 3000px, 0) scaleY(5); }
|
|
360
|
+
60% { opacity: 1; transform: translate3d(0, -20px, 0) scaleY(.9); }
|
|
361
|
+
75% { transform: translate3d(0, 10px, 0) scaleY(.95); }
|
|
362
|
+
90% { transform: translate3d(0, -5px, 0) scaleY(.985); }
|
|
363
|
+
to { transform: translate3d(0, 0, 0); }
|
|
364
|
+
}
|
|
365
|
+
@keyframes santy-bounce-in-from-left {
|
|
366
|
+
from,60%,75%,90%,to { animation-timing-function: cubic-bezier(.215,.61,.355,1); }
|
|
367
|
+
0% { opacity: 0; transform: translate3d(-3000px, 0, 0) scaleX(3); }
|
|
368
|
+
60% { opacity: 1; transform: translate3d(25px, 0, 0) scaleX(1); }
|
|
369
|
+
75% { transform: translate3d(-10px, 0, 0) scaleX(.98); }
|
|
370
|
+
90% { transform: translate3d(5px, 0, 0) scaleX(.995); }
|
|
371
|
+
to { transform: translate3d(0, 0, 0); }
|
|
372
|
+
}
|
|
373
|
+
@keyframes santy-bounce-in-from-right {
|
|
374
|
+
from,60%,75%,90%,to { animation-timing-function: cubic-bezier(.215,.61,.355,1); }
|
|
375
|
+
0% { opacity: 0; transform: translate3d(3000px, 0, 0) scaleX(3); }
|
|
376
|
+
60% { opacity: 1; transform: translate3d(-25px, 0, 0) scaleX(1); }
|
|
377
|
+
75% { transform: translate3d(10px, 0, 0) scaleX(.98); }
|
|
378
|
+
90% { transform: translate3d(-5px, 0, 0) scaleX(.995); }
|
|
379
|
+
to { transform: translate3d(0, 0, 0); }
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/* ── Bounce Out ── */
|
|
383
|
+
@keyframes santy-bounce-out {
|
|
384
|
+
20% { transform: scale3d(.9, .9, .9); }
|
|
385
|
+
50%,55% { opacity: 1; transform: scale3d(1.1, 1.1, 1.1); }
|
|
386
|
+
to { opacity: 0; transform: scale3d(.3, .3, .3); }
|
|
387
|
+
}
|
|
388
|
+
@keyframes santy-bounce-out-to-top {
|
|
389
|
+
20% { transform: translate3d(0, -10px, 0) scaleY(.985); }
|
|
390
|
+
40%,45% { opacity: 1; transform: translate3d(0, 20px, 0) scaleY(.9); }
|
|
391
|
+
to { opacity: 0; transform: translate3d(0, -2000px, 0) scaleY(3); }
|
|
392
|
+
}
|
|
393
|
+
@keyframes santy-bounce-out-to-bottom {
|
|
394
|
+
20% { transform: translate3d(0, 10px, 0) scaleY(.985); }
|
|
395
|
+
40%,45% { opacity: 1; transform: translate3d(0, -20px, 0) scaleY(.9); }
|
|
396
|
+
to { opacity: 0; transform: translate3d(0, 2000px, 0) scaleY(5); }
|
|
397
|
+
}
|
|
398
|
+
@keyframes santy-bounce-out-to-left {
|
|
399
|
+
20% { opacity: 1; transform: translate3d(20px, 0, 0) scaleX(.9); }
|
|
400
|
+
to { opacity: 0; transform: translate3d(-2000px, 0, 0) scaleX(2); }
|
|
401
|
+
}
|
|
402
|
+
@keyframes santy-bounce-out-to-right {
|
|
403
|
+
20% { opacity: 1; transform: translate3d(-20px, 0, 0) scaleX(.9); }
|
|
404
|
+
to { opacity: 0; transform: translate3d(2000px, 0, 0) scaleX(2); }
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/* ── Slide In ── */
|
|
408
|
+
@keyframes santy-slide-in-from-top { from { visibility: visible; transform: translate3d(0, -100%, 0); } to { transform: translate3d(0, 0, 0); } }
|
|
409
|
+
@keyframes santy-slide-in-from-bottom { from { visibility: visible; transform: translate3d(0, 100%, 0); } to { transform: translate3d(0, 0, 0); } }
|
|
410
|
+
@keyframes santy-slide-in-from-left { from { visibility: visible; transform: translate3d(-100%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
|
|
411
|
+
@keyframes santy-slide-in-from-right { from { visibility: visible; transform: translate3d( 100%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
|
|
412
|
+
|
|
413
|
+
/* ── Slide Out ── */
|
|
414
|
+
@keyframes santy-slide-out-to-top { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d(0, -100%, 0); } }
|
|
415
|
+
@keyframes santy-slide-out-to-bottom { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d(0, 100%, 0); } }
|
|
416
|
+
@keyframes santy-slide-out-to-left { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d(-100%, 0, 0); } }
|
|
417
|
+
@keyframes santy-slide-out-to-right { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d( 100%, 0, 0); } }
|
|
418
|
+
|
|
419
|
+
/* ── Zoom In ── */
|
|
420
|
+
@keyframes santy-zoom-in { from { opacity: 0; transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } }
|
|
421
|
+
@keyframes santy-zoom-in-from-top {
|
|
422
|
+
from { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
423
|
+
60% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(0,60px,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
424
|
+
}
|
|
425
|
+
@keyframes santy-zoom-in-from-bottom {
|
|
426
|
+
from { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(0,1000px,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
427
|
+
60% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(0,-60px,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
428
|
+
}
|
|
429
|
+
@keyframes santy-zoom-in-from-left {
|
|
430
|
+
from { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
431
|
+
60% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(10px,0,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
432
|
+
}
|
|
433
|
+
@keyframes santy-zoom-in-from-right {
|
|
434
|
+
from { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(1000px,0,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
435
|
+
60% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(-10px,0,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/* ── Zoom Out ── */
|
|
439
|
+
@keyframes santy-zoom-out { from { opacity: 1; } 50% { opacity: 0; transform: scale3d(.3,.3,.3); } to { opacity: 0; } }
|
|
440
|
+
@keyframes santy-zoom-out-to-top {
|
|
441
|
+
40% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(0,60px,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
442
|
+
to { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
443
|
+
}
|
|
444
|
+
@keyframes santy-zoom-out-to-bottom {
|
|
445
|
+
40% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(0,-60px,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
446
|
+
to { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(0,2000px,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
447
|
+
}
|
|
448
|
+
@keyframes santy-zoom-out-to-left {
|
|
449
|
+
40% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(42px,0,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
450
|
+
to { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(-2000px,0,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
451
|
+
}
|
|
452
|
+
@keyframes santy-zoom-out-to-right {
|
|
453
|
+
40% { opacity: 1; transform: scale3d(.475,.475,.475) translate3d(-42px,0,0); animation-timing-function: cubic-bezier(.175,.885,.32,1); }
|
|
454
|
+
to { opacity: 0; transform: scale3d(.1,.1,.1) translate3d(2000px,0,0); animation-timing-function: cubic-bezier(.55,.055,.675,.19); }
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/* ── Flip ── */
|
|
458
|
+
@keyframes santy-flip {
|
|
459
|
+
from { transform: perspective(400px) scale3d(1,1,1) rotate3d(0,1,0,-360deg); animation-timing-function: ease-out; }
|
|
460
|
+
40% { transform: perspective(400px) scale3d(1,1,.5) translate3d(0,0,150px) rotate3d(0,1,0,-190deg); animation-timing-function: ease-out; }
|
|
461
|
+
50% { transform: perspective(400px) scale3d(1,1,.5) translate3d(0,0,150px) rotate3d(0,1,0,-170deg); animation-timing-function: ease-in; }
|
|
462
|
+
80% { transform: perspective(400px) scale3d(.95,1,1) rotate3d(0,1,0,0deg); animation-timing-function: ease-in; }
|
|
463
|
+
to { transform: perspective(400px) scale3d(1,1,1) rotate3d(0,1,0,0deg); animation-timing-function: ease-in; }
|
|
464
|
+
}
|
|
465
|
+
@keyframes santy-flip-in-x {
|
|
466
|
+
from { transform: perspective(400px) rotate3d(1,0,0,90deg); animation-timing-function: ease-in; opacity: 0; }
|
|
467
|
+
40% { transform: perspective(400px) rotate3d(1,0,0,-20deg); animation-timing-function: ease-in; }
|
|
468
|
+
60% { transform: perspective(400px) rotate3d(1,0,0,10deg); opacity: 1; }
|
|
469
|
+
80% { transform: perspective(400px) rotate3d(1,0,0,-5deg); }
|
|
470
|
+
to { transform: perspective(400px); }
|
|
471
|
+
}
|
|
472
|
+
@keyframes santy-flip-in-y {
|
|
473
|
+
from { transform: perspective(400px) rotate3d(0,1,0,90deg); animation-timing-function: ease-in; opacity: 0; }
|
|
474
|
+
40% { transform: perspective(400px) rotate3d(0,1,0,-20deg); animation-timing-function: ease-in; }
|
|
475
|
+
60% { transform: perspective(400px) rotate3d(0,1,0,10deg); opacity: 1; }
|
|
476
|
+
80% { transform: perspective(400px) rotate3d(0,1,0,-5deg); }
|
|
477
|
+
to { transform: perspective(400px); }
|
|
478
|
+
}
|
|
479
|
+
@keyframes santy-flip-out-x {
|
|
480
|
+
from { transform: perspective(400px); }
|
|
481
|
+
30% { transform: perspective(400px) rotate3d(1,0,0,-20deg); opacity: 1; }
|
|
482
|
+
to { transform: perspective(400px) rotate3d(1,0,0,90deg); opacity: 0; }
|
|
483
|
+
}
|
|
484
|
+
@keyframes santy-flip-out-y {
|
|
485
|
+
from { transform: perspective(400px); }
|
|
486
|
+
30% { transform: perspective(400px) rotate3d(0,1,0,-15deg); opacity: 1; }
|
|
487
|
+
to { transform: perspective(400px) rotate3d(0,1,0,90deg); opacity: 0; }
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
/* ── Rotate In ── */
|
|
491
|
+
@keyframes santy-rotate-in { from { transform: rotate3d(0,0,1,-200deg); opacity: 0; } to { transform: translate3d(0,0,0); opacity: 1; } }
|
|
492
|
+
@keyframes santy-rotate-in-from-top-left { from { transform: rotate3d(0,0,1,-45deg); opacity: 0; } to { transform: translate3d(0,0,0); opacity: 1; } }
|
|
493
|
+
@keyframes santy-rotate-in-from-top-right { from { transform: rotate3d(0,0,1,45deg); opacity: 0; } to { transform: translate3d(0,0,0); opacity: 1; } }
|
|
494
|
+
@keyframes santy-rotate-in-from-bottom-left { from { transform: rotate3d(0,0,1,45deg); opacity: 0; } to { transform: translate3d(0,0,0); opacity: 1; } }
|
|
495
|
+
@keyframes santy-rotate-in-from-bottom-right { from { transform: rotate3d(0,0,1,-90deg); opacity: 0; } to { transform: translate3d(0,0,0); opacity: 1; } }
|
|
496
|
+
|
|
497
|
+
/* ── Rotate Out ── */
|
|
498
|
+
@keyframes santy-rotate-out { from { opacity: 1; } to { transform: rotate3d(0,0,1,200deg); opacity: 0; } }
|
|
499
|
+
@keyframes santy-rotate-out-to-top-left { from { opacity: 1; } to { transform: rotate3d(0,0,1,-45deg); opacity: 0; } }
|
|
500
|
+
@keyframes santy-rotate-out-to-top-right { from { opacity: 1; } to { transform: rotate3d(0,0,1,90deg); opacity: 0; } }
|
|
501
|
+
@keyframes santy-rotate-out-to-bottom-left { from { opacity: 1; } to { transform: rotate3d(0,0,1,45deg); opacity: 0; } }
|
|
502
|
+
@keyframes santy-rotate-out-to-bottom-right { from { opacity: 1; } to { transform: rotate3d(0,0,1,-45deg); opacity: 0; } }
|
|
503
|
+
|
|
504
|
+
/* ── Back Entrances ── */
|
|
505
|
+
@keyframes santy-back-in-from-top { 0% { transform: translateY(-1200px) scale(.7); opacity: .7; } 80% { transform: translateY(0) scale(.7); opacity: .7; } 100% { transform: scale(1); opacity: 1; } }
|
|
506
|
+
@keyframes santy-back-in-from-bottom { 0% { transform: translateY( 1200px) scale(.7); opacity: .7; } 80% { transform: translateY(0) scale(.7); opacity: .7; } 100% { transform: scale(1); opacity: 1; } }
|
|
507
|
+
@keyframes santy-back-in-from-left { 0% { transform: translateX(-2000px) scale(.7); opacity: .7; } 80% { transform: translateX(0) scale(.7); opacity: .7; } 100% { transform: scale(1); opacity: 1; } }
|
|
508
|
+
@keyframes santy-back-in-from-right { 0% { transform: translateX( 2000px) scale(.7); opacity: .7; } 80% { transform: translateX(0) scale(.7); opacity: .7; } 100% { transform: scale(1); opacity: 1; } }
|
|
509
|
+
|
|
510
|
+
/* ── Back Exits ── */
|
|
511
|
+
@keyframes santy-back-out-to-top { 0% { transform: scale(1); opacity: 1; } 20% { transform: translateY(0) scale(.7); opacity: .7; } 100% { transform: translateY(-700px) scale(.7); opacity: .7; } }
|
|
512
|
+
@keyframes santy-back-out-to-bottom { 0% { transform: scale(1); opacity: 1; } 20% { transform: translateY(0) scale(.7); opacity: .7; } 100% { transform: translateY( 700px) scale(.7); opacity: .7; } }
|
|
513
|
+
@keyframes santy-back-out-to-left { 0% { transform: scale(1); opacity: 1; } 20% { transform: translateX(0) scale(.7); opacity: .7; } 100% { transform: translateX(-2000px) scale(.7); opacity: .7; } }
|
|
514
|
+
@keyframes santy-back-out-to-right { 0% { transform: scale(1); opacity: 1; } 20% { transform: translateX(0) scale(.7); opacity: .7; } 100% { transform: translateX( 2000px) scale(.7); opacity: .7; } }
|
|
515
|
+
|
|
516
|
+
/* ── Light Speed ── */
|
|
517
|
+
@keyframes santy-speed-in-from-left { from { transform: translate3d(-100%,0,0) skewX(30deg); opacity: 0; } 60% { transform: skewX(-20deg); opacity: 1; } 80% { transform: skewX(5deg); } to { transform: translate3d(0,0,0); } }
|
|
518
|
+
@keyframes santy-speed-in-from-right { from { transform: translate3d(100%,0,0) skewX(-30deg); opacity: 0; } 60% { transform: skewX(20deg); opacity: 1; } 80% { transform: skewX(-5deg); } to { transform: translate3d(0,0,0); } }
|
|
519
|
+
@keyframes santy-speed-out-to-left { from { opacity: 1; } to { transform: translate3d(-100%,0,0) skewX(-30deg); opacity: 0; } }
|
|
520
|
+
@keyframes santy-speed-out-to-right { from { opacity: 1; } to { transform: translate3d(100%,0,0) skewX(30deg); opacity: 0; } }
|
|
521
|
+
|
|
522
|
+
/* ── Specials ── */
|
|
523
|
+
@keyframes santy-hinge {
|
|
524
|
+
0% { animation-timing-function: ease-in-out; }
|
|
525
|
+
20%,60% { transform: rotate3d(0,0,1,80deg); animation-timing-function: ease-in-out; }
|
|
526
|
+
40%,80% { transform: rotate3d(0,0,1,60deg); animation-timing-function: ease-in-out; opacity: 1; }
|
|
527
|
+
to { transform: translate3d(0,700px,0); opacity: 0; }
|
|
528
|
+
}
|
|
529
|
+
@keyframes santy-jack-in-box {
|
|
530
|
+
from { opacity: 0; transform: scale(.1) rotate(30deg); }
|
|
531
|
+
50% { transform: rotate(-10deg); }
|
|
532
|
+
70% { transform: rotate(3deg); }
|
|
533
|
+
to { opacity: 1; transform: scale(1); }
|
|
534
|
+
}
|
|
535
|
+
@keyframes santy-roll-in { from { opacity: 0; transform: translate3d(-100%,0,0) rotate3d(0,0,1,-120deg); } to { opacity: 1; transform: translate3d(0,0,0); } }
|
|
536
|
+
@keyframes santy-roll-out { from { opacity: 1; } to { opacity: 0; transform: translate3d(100%,0,0) rotate3d(0,0,1,120deg); } }
|
|
537
|
+
`;
|
|
538
|
+
|
|
539
|
+
module.exports = { ANIMATION_CSS };
|