@mumulinya167/ccm-pet-assets 2.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 +4 -0
- package/assets/calico/calico-collapsing.apng +0 -0
- package/assets/calico/calico-dozing.apng +0 -0
- package/assets/calico/calico-error.apng +0 -0
- package/assets/calico/calico-happy.apng +0 -0
- package/assets/calico/calico-idle-follow.svg +324 -0
- package/assets/calico/calico-idle.apng +0 -0
- package/assets/calico/calico-mini-alert.apng +0 -0
- package/assets/calico/calico-mini-crabwalk.apng +0 -0
- package/assets/calico/calico-mini-enter.apng +0 -0
- package/assets/calico/calico-mini-happy.apng +0 -0
- package/assets/calico/calico-mini-idle.apng +0 -0
- package/assets/calico/calico-mini-peek.apng +0 -0
- package/assets/calico/calico-mini-sleep.apng +0 -0
- package/assets/calico/calico-notification.apng +0 -0
- package/assets/calico/calico-react-drag.apng +0 -0
- package/assets/calico/calico-react-left.apng +0 -0
- package/assets/calico/calico-react-poke.apng +0 -0
- package/assets/calico/calico-sleeping.apng +0 -0
- package/assets/calico/calico-thinking.apng +0 -0
- package/assets/calico/calico-waking.apng +0 -0
- package/assets/calico/calico-working-building.apng +0 -0
- package/assets/calico/calico-working-carrying.apng +0 -0
- package/assets/calico/calico-working-conducting.apng +0 -0
- package/assets/calico/calico-working-juggling.apng +0 -0
- package/assets/calico/calico-working-sweeping.apng +0 -0
- package/assets/calico/calico-working-typing.apng +0 -0
- package/assets/calico/calico-yawning.apng +0 -0
- package/assets/calico.svg +324 -0
- package/assets/clawd/LICENSE +22 -0
- package/assets/clawd/clawd-about-hero.svg +202 -0
- package/assets/clawd/clawd-collapse-sleep.svg +247 -0
- package/assets/clawd/clawd-error.svg +94 -0
- package/assets/clawd/clawd-happy.svg +161 -0
- package/assets/clawd/clawd-headphones-groove.svg +194 -0
- package/assets/clawd/clawd-idle-bubble.svg +180 -0
- package/assets/clawd/clawd-idle-collapse.svg +101 -0
- package/assets/clawd/clawd-idle-doze.svg +72 -0
- package/assets/clawd/clawd-idle-follow.svg +64 -0
- package/assets/clawd/clawd-idle-living.svg +196 -0
- package/assets/clawd/clawd-idle-look.svg +115 -0
- package/assets/clawd/clawd-idle-reading.svg +252 -0
- package/assets/clawd/clawd-idle-yawn.svg +158 -0
- package/assets/clawd/clawd-mini-alert.svg +129 -0
- package/assets/clawd/clawd-mini-crabwalk.svg +76 -0
- package/assets/clawd/clawd-mini-enter-sleep.svg +64 -0
- package/assets/clawd/clawd-mini-enter.svg +114 -0
- package/assets/clawd/clawd-mini-happy.svg +124 -0
- package/assets/clawd/clawd-mini-idle.svg +83 -0
- package/assets/clawd/clawd-mini-peek.svg +82 -0
- package/assets/clawd/clawd-mini-sleep.svg +112 -0
- package/assets/clawd/clawd-mini-typing.svg +153 -0
- package/assets/clawd/clawd-notification.svg +438 -0
- package/assets/clawd/clawd-react-annoyed.svg +167 -0
- package/assets/clawd/clawd-react-double-jump.svg +229 -0
- package/assets/clawd/clawd-react-double.svg +108 -0
- package/assets/clawd/clawd-react-drag.svg +102 -0
- package/assets/clawd/clawd-react-left.svg +102 -0
- package/assets/clawd/clawd-react-right.svg +102 -0
- package/assets/clawd/clawd-sleeping.svg +118 -0
- package/assets/clawd/clawd-static-base.svg +21 -0
- package/assets/clawd/clawd-wake.svg +277 -0
- package/assets/clawd/clawd-working-building.svg +329 -0
- package/assets/clawd/clawd-working-carrying.svg +178 -0
- package/assets/clawd/clawd-working-debugger.svg +245 -0
- package/assets/clawd/clawd-working-juggling.svg +183 -0
- package/assets/clawd/clawd-working-sweeping.svg +248 -0
- package/assets/clawd/clawd-working-thinking.svg +501 -0
- package/assets/clawd/clawd-working-typing-boss.svg +307 -0
- package/assets/clawd/clawd-working-typing.svg +273 -0
- package/assets/clawd/clawd-working-ultrathink.svg +166 -0
- package/assets/clawd/clawd-working-wizard.svg +356 -0
- package/assets/clawd.svg +64 -0
- package/assets/cloudling/cloudling/cloudling-attention.svg +380 -0
- package/assets/cloudling/cloudling/cloudling-building.svg +667 -0
- package/assets/cloudling/cloudling/cloudling-carrying.svg +604 -0
- package/assets/cloudling/cloudling/cloudling-conducting.svg +616 -0
- package/assets/cloudling/cloudling/cloudling-dozing-to-sleeping.svg +578 -0
- package/assets/cloudling/cloudling/cloudling-dozing.svg +358 -0
- package/assets/cloudling/cloudling/cloudling-error.svg +428 -0
- package/assets/cloudling/cloudling/cloudling-idle-reading.svg +658 -0
- package/assets/cloudling/cloudling/cloudling-idle-to-dozing.svg +568 -0
- package/assets/cloudling/cloudling/cloudling-idle-to-sleeping.svg +811 -0
- package/assets/cloudling/cloudling/cloudling-idle.svg +255 -0
- package/assets/cloudling/cloudling/cloudling-juggling.svg +648 -0
- package/assets/cloudling/cloudling/cloudling-mini-alert.svg +390 -0
- package/assets/cloudling/cloudling/cloudling-mini-crabwalk.svg +335 -0
- package/assets/cloudling/cloudling/cloudling-mini-enter-roll-in.svg +226 -0
- package/assets/cloudling/cloudling/cloudling-mini-enter-sleep.svg +232 -0
- package/assets/cloudling/cloudling/cloudling-mini-happy.svg +371 -0
- package/assets/cloudling/cloudling/cloudling-mini-idle.svg +279 -0
- package/assets/cloudling/cloudling/cloudling-mini-peek.svg +328 -0
- package/assets/cloudling/cloudling/cloudling-mini-sleep.svg +260 -0
- package/assets/cloudling/cloudling/cloudling-mini-typing.svg +692 -0
- package/assets/cloudling/cloudling/cloudling-notification.svg +494 -0
- package/assets/cloudling/cloudling/cloudling-react-drag.svg +83 -0
- package/assets/cloudling/cloudling/cloudling-sleeping-to-idle.svg +555 -0
- package/assets/cloudling/cloudling/cloudling-sleeping.svg +500 -0
- package/assets/cloudling/cloudling/cloudling-sweeping.svg +292 -0
- package/assets/cloudling/cloudling/cloudling-thinking.svg +720 -0
- package/assets/cloudling/cloudling/cloudling-typing.svg +354 -0
- package/assets/cloudling/cloudling-attention.svg +380 -0
- package/assets/cloudling/cloudling-building.svg +667 -0
- package/assets/cloudling/cloudling-carrying.svg +604 -0
- package/assets/cloudling/cloudling-conducting.svg +616 -0
- package/assets/cloudling/cloudling-dozing-to-sleeping.svg +578 -0
- package/assets/cloudling/cloudling-dozing.svg +358 -0
- package/assets/cloudling/cloudling-error.svg +428 -0
- package/assets/cloudling/cloudling-idle-reading.svg +658 -0
- package/assets/cloudling/cloudling-idle-to-dozing.svg +568 -0
- package/assets/cloudling/cloudling-idle-to-sleeping.svg +811 -0
- package/assets/cloudling/cloudling-idle.svg +255 -0
- package/assets/cloudling/cloudling-juggling.svg +648 -0
- package/assets/cloudling/cloudling-mini-alert.svg +390 -0
- package/assets/cloudling/cloudling-mini-crabwalk.svg +335 -0
- package/assets/cloudling/cloudling-mini-enter-roll-in.svg +226 -0
- package/assets/cloudling/cloudling-mini-enter-sleep.svg +232 -0
- package/assets/cloudling/cloudling-mini-happy.svg +371 -0
- package/assets/cloudling/cloudling-mini-idle.svg +279 -0
- package/assets/cloudling/cloudling-mini-peek.svg +328 -0
- package/assets/cloudling/cloudling-mini-sleep.svg +260 -0
- package/assets/cloudling/cloudling-mini-typing.svg +692 -0
- package/assets/cloudling/cloudling-notification.svg +494 -0
- package/assets/cloudling/cloudling-react-drag.svg +83 -0
- package/assets/cloudling/cloudling-sleeping-to-idle.svg +555 -0
- package/assets/cloudling/cloudling-sleeping.svg +500 -0
- package/assets/cloudling/cloudling-sweeping.svg +292 -0
- package/assets/cloudling/cloudling-thinking.svg +720 -0
- package/assets/cloudling/cloudling-typing.svg +354 -0
- package/assets/cloudling.svg +255 -0
- package/assets/ghost-attention.svg +19 -0
- package/assets/ghost-carrying.svg +19 -0
- package/assets/ghost-collapsing.svg +19 -0
- package/assets/ghost-dozing.svg +23 -0
- package/assets/ghost-error.svg +19 -0
- package/assets/ghost-happy.svg +23 -0
- package/assets/ghost-idle-action1.svg +19 -0
- package/assets/ghost-idle-action2.svg +19 -0
- package/assets/ghost-idle-action3.svg +19 -0
- package/assets/ghost-idle.svg +11 -0
- package/assets/ghost-juggling.svg +19 -0
- package/assets/ghost-notification.svg +19 -0
- package/assets/ghost-react-double.svg +23 -0
- package/assets/ghost-react-drag.svg +23 -0
- package/assets/ghost-react-left.svg +19 -0
- package/assets/ghost-react-right.svg +19 -0
- package/assets/ghost-sleeping.svg +19 -0
- package/assets/ghost-sweeping.svg +19 -0
- package/assets/ghost-thinking.svg +19 -0
- package/assets/ghost-waking.svg +19 -0
- package/assets/ghost-working.svg +19 -0
- package/assets/ghost-yawning.svg +23 -0
- package/assets/ghost.svg +11 -0
- package/assets/robot-attention.svg +19 -0
- package/assets/robot-carrying.svg +19 -0
- package/assets/robot-collapsing.svg +19 -0
- package/assets/robot-dozing.svg +23 -0
- package/assets/robot-error.svg +19 -0
- package/assets/robot-happy.svg +23 -0
- package/assets/robot-idle-action1.svg +19 -0
- package/assets/robot-idle-action2.svg +19 -0
- package/assets/robot-idle-action3.svg +19 -0
- package/assets/robot-idle.svg +11 -0
- package/assets/robot-juggling.svg +19 -0
- package/assets/robot-notification.svg +19 -0
- package/assets/robot-react-double.svg +23 -0
- package/assets/robot-react-drag.svg +23 -0
- package/assets/robot-react-left.svg +19 -0
- package/assets/robot-react-right.svg +19 -0
- package/assets/robot-sleeping.svg +19 -0
- package/assets/robot-sweeping.svg +19 -0
- package/assets/robot-thinking.svg +19 -0
- package/assets/robot-waking.svg +19 -0
- package/assets/robot-working.svg +19 -0
- package/assets/robot-yawning.svg +23 -0
- package/assets/robot.svg +11 -0
- package/manifest.json +889 -0
- package/package.json +18 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500" shape-rendering="crispEdges">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
/* Collapse (0-1s) → Sleep breathing + Zzz (1s onwards, infinite) */
|
|
5
|
+
/* Start pose matches yawn end: body scale(1.05,0.95) translate(0,1px), eyes shut, arms down */
|
|
6
|
+
|
|
7
|
+
.rest-shadow-breathe {
|
|
8
|
+
transform-origin: 7.5px 15.5px;
|
|
9
|
+
animation: sleep-shadow 4.5s infinite ease-in-out 1s;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.rest-shadow-form {
|
|
13
|
+
transform-origin: 7.5px 15.5px;
|
|
14
|
+
animation: rest-shadow-form 1s linear forwards;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.rest-breathe {
|
|
18
|
+
transform-origin: 7.5px 15px;
|
|
19
|
+
animation: sleep-breathe 4.5s infinite ease-in-out 1s;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.rest-body-frame {
|
|
23
|
+
transform-origin: 7.5px 13px;
|
|
24
|
+
animation: rest-body-frame 1s linear forwards;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.rest-torso {
|
|
28
|
+
transform-origin: 2px 6px;
|
|
29
|
+
animation: rest-torso 1s linear forwards;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.rest-arm-l {
|
|
33
|
+
transform-origin: 1px 10px;
|
|
34
|
+
animation: rest-arm-l 1s linear forwards;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.rest-arm-r {
|
|
38
|
+
transform-origin: 14px 10px;
|
|
39
|
+
animation: rest-arm-r 1s linear forwards;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.rest-eye-l {
|
|
43
|
+
transform-origin: 4px 8px;
|
|
44
|
+
animation: rest-eye-l 1s linear forwards;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.rest-eye-r {
|
|
48
|
+
transform-origin: 10px 8px;
|
|
49
|
+
animation: rest-eye-r 1s linear forwards;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.rest-leg {
|
|
53
|
+
animation: rest-leg 1s linear forwards;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.rest-leg.left-outer { transform-origin: 3px 12px; }
|
|
57
|
+
.rest-leg.left-inner { transform-origin: 5px 12px; }
|
|
58
|
+
.rest-leg.right-inner { transform-origin: 9px 12px; }
|
|
59
|
+
.rest-leg.right-outer { transform-origin: 11px 12px; }
|
|
60
|
+
|
|
61
|
+
.z-particle { opacity: 0; }
|
|
62
|
+
.z1 { animation: float-1 6s infinite ease-in-out 1s; }
|
|
63
|
+
.z2 { animation: float-2 6s infinite ease-in-out 3s; }
|
|
64
|
+
.z3 { animation: float-3 6s infinite ease-in-out 5s; }
|
|
65
|
+
|
|
66
|
+
/* Shadow: narrow (matching yawn end) → wide (sleeping) */
|
|
67
|
+
@keyframes rest-shadow-form {
|
|
68
|
+
0% { transform: scaleX(0.556); opacity: 0.55; }
|
|
69
|
+
4% { transform: scaleX(0.574); opacity: 0.548; }
|
|
70
|
+
14% { transform: scaleX(0.61); opacity: 0.54; }
|
|
71
|
+
28% { transform: scaleX(0.665); opacity: 0.522; }
|
|
72
|
+
42% { transform: scaleX(0.74); opacity: 0.5; }
|
|
73
|
+
68% { transform: scaleX(0.9); opacity: 0.45; }
|
|
74
|
+
86% { transform: scaleX(1.02); opacity: 0.41; }
|
|
75
|
+
100% { transform: scaleX(1); opacity: 0.4; }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Body frame: yawn-end squash → neutral (sleeping base) */
|
|
79
|
+
@keyframes rest-body-frame {
|
|
80
|
+
0% { transform: scale(1.05, 0.95) translate(0, 1px); }
|
|
81
|
+
4% { transform: scale(1.058, 0.94) translate(0, 1.1px); }
|
|
82
|
+
14% { transform: scale(1.072, 0.915) translate(0, 1.32px); }
|
|
83
|
+
28% { transform: scale(1.09, 0.875) translate(0, 1.68px); }
|
|
84
|
+
40% { transform: scale(1.1, 0.84) translate(0, 1.95px); }
|
|
85
|
+
66% { transform: scale(1.05, 0.9) translate(0, 1.05px); }
|
|
86
|
+
84% { transform: scale(1.01, 0.98) translate(0, 0.22px); }
|
|
87
|
+
100% { transform: scale(1, 1) translate(0, 0); }
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Torso: standing → splooted flat */
|
|
91
|
+
@keyframes rest-torso {
|
|
92
|
+
0% { transform: translate(0, 0) scale(1, 1); }
|
|
93
|
+
4% { transform: translate(-0.02px, 0.08px) scale(1.004, 0.998); }
|
|
94
|
+
14% { transform: translate(-0.1px, 0.34px) scale(1.018, 0.985); }
|
|
95
|
+
28% { transform: translate(-0.26px, 1.02px) scale(1.045, 0.94); }
|
|
96
|
+
44% { transform: translate(-0.4px, 1.75px) scale(1.08, 0.9); }
|
|
97
|
+
68% { transform: translate(-0.8px, 3.1px) scale(1.14, 0.8); }
|
|
98
|
+
86% { transform: translate(-1.05px, 3.95px) scale(1.19, 0.72); }
|
|
99
|
+
100% { transform: translate(-1px, 4px) scale(1.1818, 0.7143); }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* Arms: relaxed down → flat on ground */
|
|
103
|
+
@keyframes rest-arm-l {
|
|
104
|
+
0% { transform: translate(0, 1px) rotate(-15deg); }
|
|
105
|
+
4% { transform: translate(-0.03px, 1.08px) rotate(-14.5deg); }
|
|
106
|
+
14% { transform: translate(-0.11px, 1.34px) rotate(-13deg); }
|
|
107
|
+
28% { transform: translate(-0.27px, 1.98px) rotate(-9deg); }
|
|
108
|
+
44% { transform: translate(-0.45px, 2.45px) rotate(-7deg); }
|
|
109
|
+
68% { transform: translate(-0.8px, 3.35px) rotate(-2deg); }
|
|
110
|
+
86% { transform: translate(-1.05px, 4.05px) rotate(0deg); }
|
|
111
|
+
100% { transform: translate(-1px, 4px) rotate(0deg); }
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@keyframes rest-arm-r {
|
|
115
|
+
0% { transform: translate(0, 1px) rotate(15deg); }
|
|
116
|
+
4% { transform: translate(0.03px, 1.08px) rotate(14.5deg); }
|
|
117
|
+
14% { transform: translate(0.11px, 1.34px) rotate(13deg); }
|
|
118
|
+
28% { transform: translate(0.27px, 1.98px) rotate(9deg); }
|
|
119
|
+
44% { transform: translate(0.45px, 2.45px) rotate(7deg); }
|
|
120
|
+
68% { transform: translate(0.8px, 3.35px) rotate(2deg); }
|
|
121
|
+
86% { transform: translate(1.05px, 4.05px) rotate(0deg); }
|
|
122
|
+
100% { transform: translate(1px, 4px) rotate(0deg); }
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* Eyes: shut (scaleY 0.1) → sleeping dashes */
|
|
126
|
+
@keyframes rest-eye-l {
|
|
127
|
+
0% { transform: scale(1, 0.1); }
|
|
128
|
+
4% { transform: translate(0, 0.06px) scale(1.015, 0.1); }
|
|
129
|
+
14% { transform: translate(0, 0.28px) scale(1.06, 0.1); }
|
|
130
|
+
24% { transform: translate(0, 0.6px) scale(1.12, 0.1); }
|
|
131
|
+
52% { transform: translate(-0.15px, 2.1px) scale(1.45, 0.12); }
|
|
132
|
+
78% { transform: translate(-0.35px, 3.8px) scale(1.82, 0.17); }
|
|
133
|
+
100% { transform: translate(-0.5px, 4.5px) scale(2, 0.2); }
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@keyframes rest-eye-r {
|
|
137
|
+
0% { transform: scale(1, 0.1); }
|
|
138
|
+
4% { transform: translate(0, 0.06px) scale(1.015, 0.1); }
|
|
139
|
+
14% { transform: translate(0, 0.28px) scale(1.06, 0.1); }
|
|
140
|
+
24% { transform: translate(0, 0.6px) scale(1.12, 0.1); }
|
|
141
|
+
52% { transform: translate(-0.15px, 2.1px) scale(1.45, 0.12); }
|
|
142
|
+
78% { transform: translate(-0.35px, 3.8px) scale(1.82, 0.17); }
|
|
143
|
+
100% { transform: translate(-0.5px, 4.5px) scale(2, 0.2); }
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Legs: standing → short stubs */
|
|
147
|
+
@keyframes rest-leg {
|
|
148
|
+
0% { transform: translate(0, 0) scale(1, 1); }
|
|
149
|
+
4% { transform: translate(0, -0.03px) scale(1, 0.985); }
|
|
150
|
+
14% { transform: translate(0, -0.14px) scale(1, 0.93); }
|
|
151
|
+
44% { transform: translate(0, -0.4px) scale(1, 0.82); }
|
|
152
|
+
68% { transform: translate(0, -1.4px) scale(1, 0.6); }
|
|
153
|
+
84% { transform: translate(0, -2.4px) scale(1, 0.42); }
|
|
154
|
+
100% { transform: translate(0, -3px) scale(1, 0.3333); }
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* Sleep breathing loop */
|
|
158
|
+
@keyframes sleep-breathe {
|
|
159
|
+
0%, 80%, 100% { transform: scale(1, 1); }
|
|
160
|
+
30%, 40% { transform: scale(1.02, 1.25); }
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@keyframes sleep-shadow {
|
|
164
|
+
0%, 80%, 100% { transform: scaleX(1); opacity: 0.4; }
|
|
165
|
+
30%, 40% { transform: scaleX(1.05); opacity: 0.5; }
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Zzz particle floats */
|
|
169
|
+
@keyframes float-1 {
|
|
170
|
+
0% { transform: translate(5px, 8px) scale(0.4); opacity: 0; }
|
|
171
|
+
10% { opacity: 1; }
|
|
172
|
+
30% { transform: translate(9px, 4px) scale(0.6); }
|
|
173
|
+
50% { transform: translate(4px, 0px) scale(0.8); }
|
|
174
|
+
70% { transform: translate(8px, -4px) scale(1); }
|
|
175
|
+
90% { opacity: 0.8; }
|
|
176
|
+
100% { transform: translate(6px, -8px) scale(1.1); opacity: 0; }
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@keyframes float-2 {
|
|
180
|
+
0% { transform: translate(8px, 9px) scale(0.3); opacity: 0; }
|
|
181
|
+
10% { opacity: 1; }
|
|
182
|
+
30% { transform: translate(5px, 5px) scale(0.5); }
|
|
183
|
+
50% { transform: translate(9px, 1px) scale(0.7); }
|
|
184
|
+
70% { transform: translate(6px, -3px) scale(0.9); }
|
|
185
|
+
90% { opacity: 0.8; }
|
|
186
|
+
100% { transform: translate(8px, -7px) scale(1); opacity: 0; }
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@keyframes float-3 {
|
|
190
|
+
0% { transform: translate(6px, 7px) scale(0.5); opacity: 0; }
|
|
191
|
+
10% { opacity: 1; }
|
|
192
|
+
30% { transform: translate(9px, 3px) scale(0.7); }
|
|
193
|
+
50% { transform: translate(4px, -1px) scale(0.9); }
|
|
194
|
+
70% { transform: translate(8px, -5px) scale(1.1); }
|
|
195
|
+
90% { opacity: 0.8; }
|
|
196
|
+
100% { transform: translate(5px, -9px) scale(1.2); opacity: 0; }
|
|
197
|
+
}
|
|
198
|
+
</style>
|
|
199
|
+
|
|
200
|
+
<g id="pixel-z">
|
|
201
|
+
<rect x="0" y="0" width="4" height="1"/>
|
|
202
|
+
<rect x="2" y="1" width="1" height="1"/>
|
|
203
|
+
<rect x="1" y="2" width="1" height="1"/>
|
|
204
|
+
<rect x="0" y="3" width="4" height="1"/>
|
|
205
|
+
</g>
|
|
206
|
+
|
|
207
|
+
<g id="pixel-z-small">
|
|
208
|
+
<rect x="0" y="0" width="3" height="1"/>
|
|
209
|
+
<rect x="1" y="1" width="1" height="1"/>
|
|
210
|
+
<rect x="0" y="2" width="3" height="1"/>
|
|
211
|
+
</g>
|
|
212
|
+
</defs>
|
|
213
|
+
|
|
214
|
+
<!-- Shadow -->
|
|
215
|
+
<g class="rest-shadow-breathe">
|
|
216
|
+
<rect class="rest-shadow-form" x="-1" y="15" width="17" height="1" fill="#000000" opacity="0.4"/>
|
|
217
|
+
</g>
|
|
218
|
+
|
|
219
|
+
<!-- Zzz particles -->
|
|
220
|
+
<use href="#pixel-z" class="z-particle z1" fill="#90A4AE"/>
|
|
221
|
+
<use href="#pixel-z-small" class="z-particle z2" fill="#B0BEC5"/>
|
|
222
|
+
<use href="#pixel-z" class="z-particle z3" fill="#CFD8DC"/>
|
|
223
|
+
|
|
224
|
+
<!-- Body -->
|
|
225
|
+
<g class="rest-breathe">
|
|
226
|
+
<g fill="#DE886D">
|
|
227
|
+
<rect class="rest-leg left-outer" x="3" y="12" width="1" height="3"/>
|
|
228
|
+
<rect class="rest-leg left-inner" x="5" y="12" width="1" height="3"/>
|
|
229
|
+
<rect class="rest-leg right-inner" x="9" y="12" width="1" height="3"/>
|
|
230
|
+
<rect class="rest-leg right-outer" x="11" y="12" width="1" height="3"/>
|
|
231
|
+
</g>
|
|
232
|
+
|
|
233
|
+
<g class="rest-body-frame">
|
|
234
|
+
<rect class="rest-torso" x="2" y="6" width="11" height="7" fill="#DE886D"/>
|
|
235
|
+
<g class="rest-arm-l">
|
|
236
|
+
<rect x="0" y="9" width="2" height="2" fill="#DE886D"/>
|
|
237
|
+
</g>
|
|
238
|
+
<g class="rest-arm-r">
|
|
239
|
+
<rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
|
|
240
|
+
</g>
|
|
241
|
+
<g fill="#000000">
|
|
242
|
+
<rect class="rest-eye-l" x="4" y="8" width="1" height="2"/>
|
|
243
|
+
<rect class="rest-eye-r" x="10" y="8" width="1" height="2"/>
|
|
244
|
+
</g>
|
|
245
|
+
</g>
|
|
246
|
+
</g>
|
|
247
|
+
</svg>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.body-exhausted {
|
|
5
|
+
transform-origin: 7.5px 15px;
|
|
6
|
+
animation: heavy-breathe 2.5s infinite ease-in-out;
|
|
7
|
+
}
|
|
8
|
+
.arm-fan {
|
|
9
|
+
transform-origin: 14px 10px;
|
|
10
|
+
animation: fan-self 0.4s infinite alternate ease-in-out;
|
|
11
|
+
}
|
|
12
|
+
.smoke {
|
|
13
|
+
opacity: 0;
|
|
14
|
+
animation: puff-smoke 3s infinite ease-out;
|
|
15
|
+
}
|
|
16
|
+
.sm1 { animation-delay: 0s; }
|
|
17
|
+
.sm2 { animation-delay: 1s; }
|
|
18
|
+
.sm3 { animation-delay: 2s; }
|
|
19
|
+
|
|
20
|
+
/* Error warning flash */
|
|
21
|
+
.error-warning {
|
|
22
|
+
animation: error-flash 0.8s infinite ease-in-out;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@keyframes heavy-breathe {
|
|
26
|
+
0%, 100% { transform: scale(1, 1) translateY(0); }
|
|
27
|
+
50% { transform: scale(1.05, 0.9) translateY(1.5px); }
|
|
28
|
+
}
|
|
29
|
+
@keyframes fan-self {
|
|
30
|
+
0% { transform: rotate(0deg); }
|
|
31
|
+
100% { transform: rotate(-60deg); }
|
|
32
|
+
}
|
|
33
|
+
@keyframes puff-smoke {
|
|
34
|
+
0% { transform: translate(7.5px, 6px) scale(0.5); opacity: 0; }
|
|
35
|
+
20% { opacity: 0.6; }
|
|
36
|
+
100% { transform: translate(7.5px, -15px) scale(2); opacity: 0; }
|
|
37
|
+
}
|
|
38
|
+
@keyframes error-flash {
|
|
39
|
+
0%, 100% { opacity: 1; }
|
|
40
|
+
50% { opacity: 0.15; }
|
|
41
|
+
}
|
|
42
|
+
</style>
|
|
43
|
+
<g id="smoke-puff">
|
|
44
|
+
<rect x="-1" y="-1" width="2" height="2" fill="#B0BEC5" rx="0.5"/>
|
|
45
|
+
<rect x="0" y="-2" width="2" height="2" fill="#CFD8DC" rx="0.5"/>
|
|
46
|
+
</g>
|
|
47
|
+
</defs>
|
|
48
|
+
|
|
49
|
+
<rect id="ground-shadow" x="-1" y="15" width="17" height="1" fill="#000000" opacity="0.5"/>
|
|
50
|
+
|
|
51
|
+
<!-- Smoke -->
|
|
52
|
+
<g>
|
|
53
|
+
<use href="#smoke-puff" class="smoke sm1"/>
|
|
54
|
+
<use href="#smoke-puff" class="smoke sm2" transform="translate(-2, 0)"/>
|
|
55
|
+
<use href="#smoke-puff" class="smoke sm3" transform="translate(2, 0)"/>
|
|
56
|
+
</g>
|
|
57
|
+
|
|
58
|
+
<g class="body-exhausted">
|
|
59
|
+
<!-- Sploot Legs -->
|
|
60
|
+
<g fill="#DE886D">
|
|
61
|
+
<rect x="3" y="9" width="1" height="1"/>
|
|
62
|
+
<rect x="5" y="9" width="1" height="1"/>
|
|
63
|
+
<rect x="9" y="9" width="1" height="1"/>
|
|
64
|
+
<rect x="11" y="9" width="1" height="1"/>
|
|
65
|
+
</g>
|
|
66
|
+
|
|
67
|
+
<!-- Torso Sploot -->
|
|
68
|
+
<g fill="#DE886D">
|
|
69
|
+
<rect x="1" y="10" width="13" height="5"/>
|
|
70
|
+
<rect x="-1" y="13" width="2" height="2"/>
|
|
71
|
+
</g>
|
|
72
|
+
|
|
73
|
+
<!-- Fanning Arm (closer to body) -->
|
|
74
|
+
<g class="arm-fan">
|
|
75
|
+
<rect x="13" y="11" width="2" height="2" fill="#DE886D"/>
|
|
76
|
+
</g>
|
|
77
|
+
|
|
78
|
+
<!-- XX Eyes -->
|
|
79
|
+
<g fill="#000000">
|
|
80
|
+
<!-- Left X -->
|
|
81
|
+
<rect x="3" y="12" width="0.6" height="2.2" transform="rotate(45 3.3 13.1)"/>
|
|
82
|
+
<rect x="3" y="12" width="0.6" height="2.2" transform="rotate(-45 3.3 13.1)"/>
|
|
83
|
+
<!-- Right X -->
|
|
84
|
+
<rect x="10" y="12" width="0.6" height="2.2" transform="rotate(45 10.3 13.1)"/>
|
|
85
|
+
<rect x="10" y="12" width="0.6" height="2.2" transform="rotate(-45 10.3 13.1)"/>
|
|
86
|
+
</g>
|
|
87
|
+
</g>
|
|
88
|
+
|
|
89
|
+
<!-- Error Warning (flashing) -->
|
|
90
|
+
<g class="error-warning">
|
|
91
|
+
<!-- Error text only -->
|
|
92
|
+
<text x="7.5" y="6" text-anchor="middle" font-family="'Söhne', 'Helvetica Neue', Arial, sans-serif" font-size="3.5" font-weight="700" fill="#FF3B30">ERROR</text>
|
|
93
|
+
</g>
|
|
94
|
+
</svg>
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
/* Bouncing Character Body */
|
|
5
|
+
.bounce-anim {
|
|
6
|
+
transform-box: fill-box;
|
|
7
|
+
transform-origin: 50% 100%; /* Base of the feet */
|
|
8
|
+
animation: bounce 1s infinite ease-in-out;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Ground Shadow Pulse */
|
|
12
|
+
.shadow-anim {
|
|
13
|
+
transform-box: fill-box;
|
|
14
|
+
transform-origin: 50% 50%;
|
|
15
|
+
animation: shadow 1s infinite ease-in-out;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Enthusiastic Waving Arms */
|
|
19
|
+
.arm-l {
|
|
20
|
+
transform-box: fill-box;
|
|
21
|
+
transform-origin: 100% 50%; /* Shoulder joint */
|
|
22
|
+
animation: wave-l 0.15s infinite alternate ease-in-out;
|
|
23
|
+
}
|
|
24
|
+
.arm-r {
|
|
25
|
+
transform-box: fill-box;
|
|
26
|
+
transform-origin: 0% 50%; /* Shoulder joint */
|
|
27
|
+
animation: wave-r 0.15s infinite alternate ease-in-out;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Happy Blinking Eyes */
|
|
31
|
+
.eyes-blink {
|
|
32
|
+
transform-box: fill-box;
|
|
33
|
+
transform-origin: 50% 50%;
|
|
34
|
+
animation: blink 2s infinite linear;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Pixel-Art Sparkle Animations (Frame-by-frame style) */
|
|
38
|
+
.spark-center {
|
|
39
|
+
opacity: 0;
|
|
40
|
+
animation: flash-center 1.5s infinite step-end;
|
|
41
|
+
animation-delay: var(--delay, 0s);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.spark-outer {
|
|
45
|
+
opacity: 0;
|
|
46
|
+
animation: flash-outer 1.5s infinite step-end;
|
|
47
|
+
animation-delay: var(--delay, 0s);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Character Keyframes */
|
|
51
|
+
@keyframes bounce {
|
|
52
|
+
0%, 15%, 100% { transform: translateY(0) scaleY(1); }
|
|
53
|
+
20% { transform: translateY(0) scaleY(0.85); } /* Anticipation squash */
|
|
54
|
+
40% { transform: translateY(-10px) scaleY(1.05); } /* Fast up + stretch */
|
|
55
|
+
50% { transform: translateY(-12px) scaleY(1); } /* Hangtime peak */
|
|
56
|
+
60% { transform: translateY(-10px) scaleY(1.05); } /* Fast fall + stretch */
|
|
57
|
+
80% { transform: translateY(0) scaleY(0.85); } /* Landing squash */
|
|
58
|
+
85% { transform: translateY(0) scaleY(1); } /* Recover */
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@keyframes shadow {
|
|
62
|
+
0%, 15%, 100% { transform: scale(1); opacity: 0.5; }
|
|
63
|
+
20% { transform: scale(1.1); opacity: 0.6; }
|
|
64
|
+
40% { transform: scale(0.6); opacity: 0.2; }
|
|
65
|
+
50% { transform: scale(0.5); opacity: 0.15; }
|
|
66
|
+
60% { transform: scale(0.6); opacity: 0.2; }
|
|
67
|
+
80% { transform: scale(1.1); opacity: 0.6; }
|
|
68
|
+
85% { transform: scale(1); opacity: 0.5; }
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@keyframes wave-l {
|
|
72
|
+
0% { transform: rotate(45deg); }
|
|
73
|
+
100% { transform: rotate(85deg); }
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@keyframes wave-r {
|
|
77
|
+
0% { transform: rotate(-45deg); }
|
|
78
|
+
100% { transform: rotate(-85deg); }
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@keyframes blink {
|
|
82
|
+
0%, 46%, 54%, 100% { transform: scaleY(1); }
|
|
83
|
+
50% { transform: scaleY(0.1); }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/*
|
|
87
|
+
True 8-Bit Sparkle Timeline:
|
|
88
|
+
1. Small center dot appears
|
|
89
|
+
2. Outer arms appear (Full Star)
|
|
90
|
+
3. Center dot disappears (Hollow Ring)
|
|
91
|
+
4. Everything disappears
|
|
92
|
+
*/
|
|
93
|
+
@keyframes flash-center {
|
|
94
|
+
0% { opacity: 0; }
|
|
95
|
+
10% { opacity: 1; } /* Small dot */
|
|
96
|
+
30% { opacity: 0; } /* Disappears, leaving hollow star */
|
|
97
|
+
100%{ opacity: 0; }
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@keyframes flash-outer {
|
|
101
|
+
0% { opacity: 0; }
|
|
102
|
+
20% { opacity: 1; } /* Outer arms appear to complete the star */
|
|
103
|
+
40% { opacity: 0; } /* Entire star disappears */
|
|
104
|
+
100%{ opacity: 0; }
|
|
105
|
+
}
|
|
106
|
+
</style>
|
|
107
|
+
|
|
108
|
+
<!-- Reusable Pixel Art Sparkle Definition -->
|
|
109
|
+
<g id="px-sparkle">
|
|
110
|
+
<!-- Center pixel -->
|
|
111
|
+
<rect class="spark-center" x="-0.5" y="-0.5" width="1" height="1" />
|
|
112
|
+
<!-- Outer 4 pixels forming the cross -->
|
|
113
|
+
<path class="spark-outer" d="M -0.5,-1.5 h1 v1 h-1 z
|
|
114
|
+
M -0.5,0.5 h1 v1 h-1 z
|
|
115
|
+
M -1.5,-0.5 h1 v1 h-1 z
|
|
116
|
+
M 0.5,-0.5 h1 v1 h-1 z" />
|
|
117
|
+
</g>
|
|
118
|
+
</defs>
|
|
119
|
+
|
|
120
|
+
<!-- Ground Shadow -->
|
|
121
|
+
<rect id="ground-shadow" class="shadow-anim" x="3" y="15" width="9" height="1" fill="#000000"/>
|
|
122
|
+
|
|
123
|
+
<!-- Pixel-Art Sparkle Particles Group -->
|
|
124
|
+
<g class="sparkles">
|
|
125
|
+
<use href="#px-sparkle" x="-4" y="-2" fill="#FFD700" style="--delay: 0.0s"/>
|
|
126
|
+
<use href="#px-sparkle" x="18" y="-4" fill="#FFA000" style="--delay: 0.3s"/>
|
|
127
|
+
<use href="#px-sparkle" x="20" y="10" fill="#FFF59D" style="--delay: 0.6s"/>
|
|
128
|
+
<use href="#px-sparkle" x="-6" y="12" fill="#FFC107" style="--delay: 0.9s"/>
|
|
129
|
+
<use href="#px-sparkle" x="7" y="-8" fill="#FFF59D" style="--delay: 1.2s"/>
|
|
130
|
+
<use href="#px-sparkle" x="-2" y="6" fill="#FFD700" style="--delay: 0.7s"/>
|
|
131
|
+
</g>
|
|
132
|
+
|
|
133
|
+
<!-- Main Animated Character -->
|
|
134
|
+
<g class="bounce-anim">
|
|
135
|
+
<!-- Body Color Group -->
|
|
136
|
+
<g id="body-color-group" fill="#DE886D">
|
|
137
|
+
<!-- Legs (Move and squash with the body naturally) -->
|
|
138
|
+
<rect id="outer-left-leg" x="3" y="13" width="1" height="2"/>
|
|
139
|
+
<rect id="inner-left-leg" x="5" y="13" width="1" height="2"/>
|
|
140
|
+
<rect id="inner-right-leg" x="9" y="13" width="1" height="2"/>
|
|
141
|
+
<rect id="outer-right-leg" x="11" y="13" width="1" height="2"/>
|
|
142
|
+
|
|
143
|
+
<!-- Main Torso -->
|
|
144
|
+
<rect id="torso" x="2" y="6" width="11" height="7"/>
|
|
145
|
+
|
|
146
|
+
<!-- Waving Arms -->
|
|
147
|
+
<g class="arm-l">
|
|
148
|
+
<rect id="left-arm" x="0" y="9" width="2" height="2"/>
|
|
149
|
+
</g>
|
|
150
|
+
<g class="arm-r">
|
|
151
|
+
<rect id="right-arm" x="13" y="9" width="2" height="2"/>
|
|
152
|
+
</g>
|
|
153
|
+
</g>
|
|
154
|
+
|
|
155
|
+
<!-- Eyes Color Group -->
|
|
156
|
+
<g class="eyes-blink" fill="#000000">
|
|
157
|
+
<rect id="left-eye" x="4" y="8" width="1" height="2"/>
|
|
158
|
+
<rect id="right-eye" x="10" y="8" width="1" height="2"/>
|
|
159
|
+
</g>
|
|
160
|
+
</g>
|
|
161
|
+
</svg>
|