@mumulinya167/ccm-pet-assets 2.0.0 → 2.0.2
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/assets/calico/calico-idle-follow.svg +324 -324
- package/assets/calico.svg +324 -324
- package/assets/clawd/LICENSE +22 -22
- package/assets/clawd/clawd-about-hero.svg +202 -202
- package/assets/clawd/clawd-collapse-sleep.svg +247 -247
- package/assets/clawd/clawd-error.svg +94 -94
- package/assets/clawd/clawd-happy.svg +160 -160
- package/assets/clawd/clawd-headphones-groove.svg +194 -194
- package/assets/clawd/clawd-idle-bubble.svg +180 -180
- package/assets/clawd/clawd-idle-collapse.svg +101 -101
- package/assets/clawd/clawd-idle-doze.svg +72 -72
- package/assets/clawd/clawd-idle-follow.svg +64 -64
- package/assets/clawd/clawd-idle-living.svg +195 -195
- package/assets/clawd/clawd-idle-look.svg +115 -115
- package/assets/clawd/clawd-idle-reading.svg +252 -252
- package/assets/clawd/clawd-idle-yawn.svg +158 -158
- package/assets/clawd/clawd-mini-alert.svg +129 -129
- package/assets/clawd/clawd-mini-crabwalk.svg +76 -76
- package/assets/clawd/clawd-mini-enter-sleep.svg +64 -64
- package/assets/clawd/clawd-mini-enter.svg +114 -114
- package/assets/clawd/clawd-mini-happy.svg +124 -124
- package/assets/clawd/clawd-mini-idle.svg +83 -83
- package/assets/clawd/clawd-mini-peek.svg +82 -82
- package/assets/clawd/clawd-mini-sleep.svg +112 -112
- package/assets/clawd/clawd-mini-typing.svg +153 -153
- package/assets/clawd/clawd-notification.svg +438 -438
- package/assets/clawd/clawd-react-annoyed.svg +167 -167
- package/assets/clawd/clawd-react-double-jump.svg +229 -229
- package/assets/clawd/clawd-react-double.svg +108 -108
- package/assets/clawd/clawd-react-drag.svg +102 -102
- package/assets/clawd/clawd-react-left.svg +102 -102
- package/assets/clawd/clawd-react-right.svg +102 -102
- package/assets/clawd/clawd-sleeping.svg +117 -117
- package/assets/clawd/clawd-static-base.svg +20 -20
- package/assets/clawd/clawd-wake.svg +277 -277
- package/assets/clawd/clawd-working-building.svg +329 -329
- package/assets/clawd/clawd-working-carrying.svg +178 -178
- package/assets/clawd/clawd-working-debugger.svg +245 -245
- package/assets/clawd/clawd-working-juggling.svg +183 -183
- package/assets/clawd/clawd-working-sweeping.svg +248 -248
- package/assets/clawd/clawd-working-thinking.svg +501 -501
- package/assets/clawd/clawd-working-typing-boss.svg +307 -307
- package/assets/clawd/clawd-working-typing.svg +273 -273
- package/assets/clawd/clawd-working-ultrathink.svg +166 -166
- package/assets/clawd/clawd-working-wizard.svg +356 -356
- package/assets/clawd.svg +64 -64
- package/assets/cloudling/cloudling/cloudling-attention.svg +379 -379
- package/assets/cloudling/cloudling/cloudling-building.svg +667 -667
- package/assets/cloudling/cloudling/cloudling-carrying.svg +604 -604
- package/assets/cloudling/cloudling/cloudling-conducting.svg +616 -616
- package/assets/cloudling/cloudling/cloudling-dozing-to-sleeping.svg +578 -578
- package/assets/cloudling/cloudling/cloudling-dozing.svg +358 -358
- package/assets/cloudling/cloudling/cloudling-error.svg +428 -428
- package/assets/cloudling/cloudling/cloudling-idle-reading.svg +658 -658
- package/assets/cloudling/cloudling/cloudling-idle-to-dozing.svg +568 -568
- package/assets/cloudling/cloudling/cloudling-idle-to-sleeping.svg +811 -811
- package/assets/cloudling/cloudling/cloudling-idle.svg +255 -255
- package/assets/cloudling/cloudling/cloudling-juggling.svg +648 -648
- package/assets/cloudling/cloudling/cloudling-mini-alert.svg +389 -389
- package/assets/cloudling/cloudling/cloudling-mini-crabwalk.svg +335 -335
- package/assets/cloudling/cloudling/cloudling-mini-enter-roll-in.svg +225 -225
- package/assets/cloudling/cloudling/cloudling-mini-enter-sleep.svg +231 -231
- package/assets/cloudling/cloudling/cloudling-mini-happy.svg +370 -370
- package/assets/cloudling/cloudling/cloudling-mini-idle.svg +279 -279
- package/assets/cloudling/cloudling/cloudling-mini-peek.svg +327 -327
- package/assets/cloudling/cloudling/cloudling-mini-sleep.svg +260 -260
- package/assets/cloudling/cloudling/cloudling-mini-typing.svg +691 -691
- package/assets/cloudling/cloudling/cloudling-notification.svg +493 -493
- package/assets/cloudling/cloudling/cloudling-react-drag.svg +83 -83
- package/assets/cloudling/cloudling/cloudling-sleeping-to-idle.svg +555 -555
- package/assets/cloudling/cloudling/cloudling-sleeping.svg +500 -500
- package/assets/cloudling/cloudling/cloudling-sweeping.svg +292 -292
- package/assets/cloudling/cloudling/cloudling-thinking.svg +719 -719
- package/assets/cloudling/cloudling/cloudling-typing.svg +354 -354
- package/assets/cloudling/cloudling-attention.svg +379 -379
- package/assets/cloudling/cloudling-building.svg +667 -667
- package/assets/cloudling/cloudling-carrying.svg +604 -604
- package/assets/cloudling/cloudling-conducting.svg +616 -616
- package/assets/cloudling/cloudling-dozing-to-sleeping.svg +578 -578
- package/assets/cloudling/cloudling-dozing.svg +358 -358
- package/assets/cloudling/cloudling-error.svg +428 -428
- package/assets/cloudling/cloudling-idle-reading.svg +658 -658
- package/assets/cloudling/cloudling-idle-to-dozing.svg +568 -568
- package/assets/cloudling/cloudling-idle-to-sleeping.svg +811 -811
- package/assets/cloudling/cloudling-idle.svg +255 -255
- package/assets/cloudling/cloudling-juggling.svg +648 -648
- package/assets/cloudling/cloudling-mini-alert.svg +389 -389
- package/assets/cloudling/cloudling-mini-crabwalk.svg +335 -335
- package/assets/cloudling/cloudling-mini-enter-roll-in.svg +225 -225
- package/assets/cloudling/cloudling-mini-enter-sleep.svg +231 -231
- package/assets/cloudling/cloudling-mini-happy.svg +370 -370
- package/assets/cloudling/cloudling-mini-idle.svg +279 -279
- package/assets/cloudling/cloudling-mini-peek.svg +327 -327
- package/assets/cloudling/cloudling-mini-sleep.svg +260 -260
- package/assets/cloudling/cloudling-mini-typing.svg +691 -691
- package/assets/cloudling/cloudling-notification.svg +493 -493
- package/assets/cloudling/cloudling-react-drag.svg +83 -83
- package/assets/cloudling/cloudling-sleeping-to-idle.svg +555 -555
- package/assets/cloudling/cloudling-sleeping.svg +500 -500
- package/assets/cloudling/cloudling-sweeping.svg +292 -292
- package/assets/cloudling/cloudling-thinking.svg +719 -719
- package/assets/cloudling/cloudling-typing.svg +354 -354
- package/assets/cloudling.svg +255 -255
- package/assets/ghost-attention.svg +19 -19
- package/assets/ghost-carrying.svg +19 -19
- package/assets/ghost-collapsing.svg +19 -19
- package/assets/ghost-dozing.svg +23 -23
- package/assets/ghost-error.svg +19 -19
- package/assets/ghost-happy.svg +23 -23
- package/assets/ghost-idle.svg +11 -11
- package/assets/ghost-juggling.svg +19 -19
- package/assets/ghost-notification.svg +19 -19
- package/assets/ghost-react-double.svg +23 -23
- package/assets/ghost-react-drag.svg +23 -23
- package/assets/ghost-react-left.svg +19 -19
- package/assets/ghost-react-right.svg +19 -19
- package/assets/ghost-sleeping.svg +19 -19
- package/assets/ghost-sweeping.svg +19 -19
- package/assets/ghost-waking.svg +19 -19
- package/assets/ghost-yawning.svg +23 -23
- package/assets/ghost.svg +11 -11
- package/assets/robot-attention.svg +19 -19
- package/assets/robot-carrying.svg +19 -19
- package/assets/robot-collapsing.svg +19 -19
- package/assets/robot-dozing.svg +23 -23
- package/assets/robot-error.svg +19 -19
- package/assets/robot-happy.svg +23 -23
- package/assets/robot-idle.svg +11 -11
- package/assets/robot-juggling.svg +19 -19
- package/assets/robot-notification.svg +19 -19
- package/assets/robot-react-double.svg +23 -23
- package/assets/robot-react-drag.svg +23 -23
- package/assets/robot-react-left.svg +19 -19
- package/assets/robot-react-right.svg +19 -19
- package/assets/robot-sleeping.svg +19 -19
- package/assets/robot-sweeping.svg +19 -19
- package/assets/robot-waking.svg +19 -19
- package/assets/robot-yawning.svg +23 -23
- package/assets/robot.svg +11 -11
- package/manifest.json +280 -280
- package/package.json +1 -1
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
-
<defs>
|
|
3
|
-
<style>
|
|
4
|
-
.body-react {
|
|
5
|
-
animation: body-panic 3.5s 1 ease-in-out forwards;
|
|
6
|
-
}
|
|
7
|
-
.eyes-react {
|
|
8
|
-
animation: eyes-panic 3.5s 1 ease-in-out forwards;
|
|
9
|
-
}
|
|
10
|
-
.eyes-blink {
|
|
11
|
-
transform-origin: 7.5px 9px;
|
|
12
|
-
animation: blink 3s infinite linear;
|
|
13
|
-
}
|
|
14
|
-
.question-pop {
|
|
15
|
-
transform-origin: center;
|
|
16
|
-
animation: question-fade 3.5s 1 ease-in-out forwards;
|
|
17
|
-
opacity: 0;
|
|
18
|
-
}
|
|
19
|
-
.exclamation-pop {
|
|
20
|
-
transform-origin: center;
|
|
21
|
-
animation: excl-fade 3.5s 1 ease-in-out forwards;
|
|
22
|
-
opacity: 0;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/* Frantic left-right looking */
|
|
26
|
-
@keyframes body-panic {
|
|
27
|
-
0%, 4% { transform: translate(0px, 0px); }
|
|
28
|
-
10%, 18% { transform: translate(-1px, 0px); }
|
|
29
|
-
24%, 32% { transform: translate(1px, 0px); }
|
|
30
|
-
36% { transform: translate(-1px, 0px); }
|
|
31
|
-
40% { transform: translate(1px, 0px); }
|
|
32
|
-
46%, 72% { transform: translate(1px, -1px); }
|
|
33
|
-
82%, 100%{ transform: translate(0px, 0px); }
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@keyframes eyes-panic {
|
|
37
|
-
0%, 4% { transform: translate(0px, 0px); }
|
|
38
|
-
10%, 18% { transform: translate(-2px, 0px); }
|
|
39
|
-
24%, 32% { transform: translate(2px, 0px); }
|
|
40
|
-
36% { transform: translate(-2px, 0px); }
|
|
41
|
-
40% { transform: translate(2px, 0px); }
|
|
42
|
-
46%, 72% { transform: translate(3px, -2px); }
|
|
43
|
-
82%, 100%{ transform: translate(0px, 0px); }
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@keyframes blink {
|
|
47
|
-
0%, 20%, 24%, 60%, 64%, 80%, 84%, 100% { transform: scaleY(1); }
|
|
48
|
-
22%, 62%, 82% { transform: scaleY(0.1); }
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/* Question mark appears early (while looking left) */
|
|
52
|
-
@keyframes question-fade {
|
|
53
|
-
0%, 6% { opacity: 0; transform: translate(-4px, 4px) scale(0.5); }
|
|
54
|
-
12%, 38% { opacity: 1; transform: translate(-4px, 0px) scale(1); }
|
|
55
|
-
44%, 100%{ opacity: 0; transform: translate(-4px, -4px) scale(1.2); }
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/* Exclamation appears later (while staring up-right) */
|
|
59
|
-
@keyframes excl-fade {
|
|
60
|
-
0%, 42% { opacity: 0; transform: translate(6px, 0px) scale(0.5); }
|
|
61
|
-
48%, 72% { opacity: 1; transform: translate(6px, -4px) scale(1); }
|
|
62
|
-
80%, 100%{ opacity: 0; transform: translate(6px, -8px) scale(1.2); }
|
|
63
|
-
}
|
|
64
|
-
</style>
|
|
65
|
-
</defs>
|
|
66
|
-
|
|
67
|
-
<!-- Ground Shadow -->
|
|
68
|
-
<rect x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
|
|
69
|
-
|
|
70
|
-
<!-- Static Legs (extended upward to prevent gap when body shifts up) -->
|
|
71
|
-
<g fill="#DE886D">
|
|
72
|
-
<rect x="3" y="11" width="1" height="4"/>
|
|
73
|
-
<rect x="5" y="11" width="1" height="4"/>
|
|
74
|
-
<rect x="9" y="11" width="1" height="4"/>
|
|
75
|
-
<rect x="11" y="11" width="1" height="4"/>
|
|
76
|
-
</g>
|
|
77
|
-
|
|
78
|
-
<!-- Animated Upper Body -->
|
|
79
|
-
<g class="body-react">
|
|
80
|
-
<g fill="#DE886D">
|
|
81
|
-
<rect x="2" y="6" width="11" height="7"/>
|
|
82
|
-
<rect x="0" y="9" width="2" height="2"/>
|
|
83
|
-
<rect x="13" y="9" width="2" height="2"/>
|
|
84
|
-
</g>
|
|
85
|
-
<g class="eyes-react">
|
|
86
|
-
<g class="eyes-blink" fill="#000000">
|
|
87
|
-
<rect x="4" y="8" width="1" height="2"/>
|
|
88
|
-
<rect x="10" y="8" width="1" height="2"/>
|
|
89
|
-
</g>
|
|
90
|
-
</g>
|
|
91
|
-
</g>
|
|
92
|
-
|
|
93
|
-
<!-- Question Mark (left side) -->
|
|
94
|
-
<g class="question-pop" fill="#FFFFFF">
|
|
95
|
-
<rect x="1" y="0" width="2" height="1"/>
|
|
96
|
-
<rect x="0" y="1" width="1" height="1"/>
|
|
97
|
-
<rect x="3" y="1" width="1" height="2"/>
|
|
98
|
-
<rect x="2" y="3" width="1" height="1"/>
|
|
99
|
-
<rect x="1" y="4" width="1" height="1"/>
|
|
100
|
-
<rect x="1" y="6" width="1" height="1"/>
|
|
101
|
-
</g>
|
|
102
|
-
|
|
103
|
-
<!-- Exclamation Mark (right side) -->
|
|
104
|
-
<g class="exclamation-pop" fill="#0082FC">
|
|
105
|
-
<rect x="1" y="0" width="1" height="4"/>
|
|
106
|
-
<rect x="1" y="5" width="1" height="1"/>
|
|
107
|
-
</g>
|
|
108
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.body-react {
|
|
5
|
+
animation: body-panic 3.5s 1 ease-in-out forwards;
|
|
6
|
+
}
|
|
7
|
+
.eyes-react {
|
|
8
|
+
animation: eyes-panic 3.5s 1 ease-in-out forwards;
|
|
9
|
+
}
|
|
10
|
+
.eyes-blink {
|
|
11
|
+
transform-origin: 7.5px 9px;
|
|
12
|
+
animation: blink 3s infinite linear;
|
|
13
|
+
}
|
|
14
|
+
.question-pop {
|
|
15
|
+
transform-origin: center;
|
|
16
|
+
animation: question-fade 3.5s 1 ease-in-out forwards;
|
|
17
|
+
opacity: 0;
|
|
18
|
+
}
|
|
19
|
+
.exclamation-pop {
|
|
20
|
+
transform-origin: center;
|
|
21
|
+
animation: excl-fade 3.5s 1 ease-in-out forwards;
|
|
22
|
+
opacity: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Frantic left-right looking */
|
|
26
|
+
@keyframes body-panic {
|
|
27
|
+
0%, 4% { transform: translate(0px, 0px); }
|
|
28
|
+
10%, 18% { transform: translate(-1px, 0px); }
|
|
29
|
+
24%, 32% { transform: translate(1px, 0px); }
|
|
30
|
+
36% { transform: translate(-1px, 0px); }
|
|
31
|
+
40% { transform: translate(1px, 0px); }
|
|
32
|
+
46%, 72% { transform: translate(1px, -1px); }
|
|
33
|
+
82%, 100%{ transform: translate(0px, 0px); }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@keyframes eyes-panic {
|
|
37
|
+
0%, 4% { transform: translate(0px, 0px); }
|
|
38
|
+
10%, 18% { transform: translate(-2px, 0px); }
|
|
39
|
+
24%, 32% { transform: translate(2px, 0px); }
|
|
40
|
+
36% { transform: translate(-2px, 0px); }
|
|
41
|
+
40% { transform: translate(2px, 0px); }
|
|
42
|
+
46%, 72% { transform: translate(3px, -2px); }
|
|
43
|
+
82%, 100%{ transform: translate(0px, 0px); }
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@keyframes blink {
|
|
47
|
+
0%, 20%, 24%, 60%, 64%, 80%, 84%, 100% { transform: scaleY(1); }
|
|
48
|
+
22%, 62%, 82% { transform: scaleY(0.1); }
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Question mark appears early (while looking left) */
|
|
52
|
+
@keyframes question-fade {
|
|
53
|
+
0%, 6% { opacity: 0; transform: translate(-4px, 4px) scale(0.5); }
|
|
54
|
+
12%, 38% { opacity: 1; transform: translate(-4px, 0px) scale(1); }
|
|
55
|
+
44%, 100%{ opacity: 0; transform: translate(-4px, -4px) scale(1.2); }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Exclamation appears later (while staring up-right) */
|
|
59
|
+
@keyframes excl-fade {
|
|
60
|
+
0%, 42% { opacity: 0; transform: translate(6px, 0px) scale(0.5); }
|
|
61
|
+
48%, 72% { opacity: 1; transform: translate(6px, -4px) scale(1); }
|
|
62
|
+
80%, 100%{ opacity: 0; transform: translate(6px, -8px) scale(1.2); }
|
|
63
|
+
}
|
|
64
|
+
</style>
|
|
65
|
+
</defs>
|
|
66
|
+
|
|
67
|
+
<!-- Ground Shadow -->
|
|
68
|
+
<rect x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
|
|
69
|
+
|
|
70
|
+
<!-- Static Legs (extended upward to prevent gap when body shifts up) -->
|
|
71
|
+
<g fill="#DE886D">
|
|
72
|
+
<rect x="3" y="11" width="1" height="4"/>
|
|
73
|
+
<rect x="5" y="11" width="1" height="4"/>
|
|
74
|
+
<rect x="9" y="11" width="1" height="4"/>
|
|
75
|
+
<rect x="11" y="11" width="1" height="4"/>
|
|
76
|
+
</g>
|
|
77
|
+
|
|
78
|
+
<!-- Animated Upper Body -->
|
|
79
|
+
<g class="body-react">
|
|
80
|
+
<g fill="#DE886D">
|
|
81
|
+
<rect x="2" y="6" width="11" height="7"/>
|
|
82
|
+
<rect x="0" y="9" width="2" height="2"/>
|
|
83
|
+
<rect x="13" y="9" width="2" height="2"/>
|
|
84
|
+
</g>
|
|
85
|
+
<g class="eyes-react">
|
|
86
|
+
<g class="eyes-blink" fill="#000000">
|
|
87
|
+
<rect x="4" y="8" width="1" height="2"/>
|
|
88
|
+
<rect x="10" y="8" width="1" height="2"/>
|
|
89
|
+
</g>
|
|
90
|
+
</g>
|
|
91
|
+
</g>
|
|
92
|
+
|
|
93
|
+
<!-- Question Mark (left side) -->
|
|
94
|
+
<g class="question-pop" fill="#FFFFFF">
|
|
95
|
+
<rect x="1" y="0" width="2" height="1"/>
|
|
96
|
+
<rect x="0" y="1" width="1" height="1"/>
|
|
97
|
+
<rect x="3" y="1" width="1" height="2"/>
|
|
98
|
+
<rect x="2" y="3" width="1" height="1"/>
|
|
99
|
+
<rect x="1" y="4" width="1" height="1"/>
|
|
100
|
+
<rect x="1" y="6" width="1" height="1"/>
|
|
101
|
+
</g>
|
|
102
|
+
|
|
103
|
+
<!-- Exclamation Mark (right side) -->
|
|
104
|
+
<g class="exclamation-pop" fill="#0082FC">
|
|
105
|
+
<rect x="1" y="0" width="1" height="4"/>
|
|
106
|
+
<rect x="1" y="5" width="1" height="1"/>
|
|
107
|
+
</g>
|
|
108
|
+
</svg>
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
-
<defs>
|
|
3
|
-
<style>
|
|
4
|
-
/* Body sways side to side (held from above) */
|
|
5
|
-
.body-sway {
|
|
6
|
-
transform-origin: 7.5px 6px;
|
|
7
|
-
animation: sway 1.2s infinite alternate ease-in-out;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/* Leg dangling (from debugger sneak) */
|
|
11
|
-
.leg-dangle-1 {
|
|
12
|
-
animation: dangle-1 0.5s infinite linear;
|
|
13
|
-
transform-origin: top center;
|
|
14
|
-
transform-box: fill-box;
|
|
15
|
-
}
|
|
16
|
-
.leg-dangle-2 {
|
|
17
|
-
animation: dangle-2 0.5s infinite linear;
|
|
18
|
-
transform-origin: top center;
|
|
19
|
-
transform-box: fill-box;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/* Arm flailing (from happy wave, slightly slower) */
|
|
23
|
-
.arm-flail-l {
|
|
24
|
-
transform-box: fill-box;
|
|
25
|
-
transform-origin: 100% 50%;
|
|
26
|
-
animation: flail-l 0.2s infinite alternate ease-in-out;
|
|
27
|
-
}
|
|
28
|
-
.arm-flail-r {
|
|
29
|
-
transform-box: fill-box;
|
|
30
|
-
transform-origin: 0% 50%;
|
|
31
|
-
animation: flail-r 0.2s infinite alternate ease-in-out;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/* Shadow shrinks when lifted */
|
|
35
|
-
.shadow-lift {
|
|
36
|
-
transform-origin: 7.5px 15.5px;
|
|
37
|
-
animation: shadow-pulse 1.2s infinite alternate ease-in-out;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@keyframes sway {
|
|
41
|
-
0% { transform: rotate(-3deg) translate(-1px, 0); }
|
|
42
|
-
100% { transform: rotate(3deg) translate(1px, 0); }
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@keyframes dangle-1 {
|
|
46
|
-
0%, 100% { transform: rotate(0deg) scaleY(1); }
|
|
47
|
-
50% { transform: rotate(-25deg) scaleY(0.7); }
|
|
48
|
-
}
|
|
49
|
-
@keyframes dangle-2 {
|
|
50
|
-
0%, 100% { transform: rotate(-25deg) scaleY(0.7); }
|
|
51
|
-
50% { transform: rotate(0deg) scaleY(1); }
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@keyframes flail-l {
|
|
55
|
-
0% { transform: rotate(45deg); }
|
|
56
|
-
100% { transform: rotate(85deg); }
|
|
57
|
-
}
|
|
58
|
-
@keyframes flail-r {
|
|
59
|
-
0% { transform: rotate(-45deg); }
|
|
60
|
-
100% { transform: rotate(-85deg); }
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@keyframes shadow-pulse {
|
|
64
|
-
0% { transform: scale(0.7); opacity: 0.2; }
|
|
65
|
-
100% { transform: scale(0.8); opacity: 0.3; }
|
|
66
|
-
}
|
|
67
|
-
</style>
|
|
68
|
-
</defs>
|
|
69
|
-
|
|
70
|
-
<!-- Ground Shadow (small + faint = lifted off ground) -->
|
|
71
|
-
<rect class="shadow-lift" x="3" y="15" width="9" height="1" fill="#000000"/>
|
|
72
|
-
|
|
73
|
-
<!-- Swaying body -->
|
|
74
|
-
<g class="body-sway">
|
|
75
|
-
<!-- Dangling legs -->
|
|
76
|
-
<g fill="#DE886D">
|
|
77
|
-
<rect class="leg-dangle-1" x="3" y="13" width="1" height="2"/>
|
|
78
|
-
<rect class="leg-dangle-2" x="5" y="13" width="1" height="2"/>
|
|
79
|
-
<rect class="leg-dangle-1" x="9" y="13" width="1" height="2"/>
|
|
80
|
-
<rect class="leg-dangle-2" x="11" y="13" width="1" height="2"/>
|
|
81
|
-
</g>
|
|
82
|
-
|
|
83
|
-
<!-- Torso + flailing arms -->
|
|
84
|
-
<g fill="#DE886D">
|
|
85
|
-
<rect x="2" y="6" width="11" height="7"/>
|
|
86
|
-
<g class="arm-flail-l">
|
|
87
|
-
<rect x="0" y="9" width="2" height="2"/>
|
|
88
|
-
</g>
|
|
89
|
-
<g class="arm-flail-r">
|
|
90
|
-
<rect x="13" y="9" width="2" height="2"/>
|
|
91
|
-
</g>
|
|
92
|
-
</g>
|
|
93
|
-
|
|
94
|
-
<!-- >< Eyes (anime squint, drawn with thin lines) -->
|
|
95
|
-
<g fill="none" stroke="#000000" stroke-width="0.7" stroke-linecap="round" stroke-linejoin="round">
|
|
96
|
-
<!-- Left eye: > -->
|
|
97
|
-
<polyline points="4,8 5.5,9 4,10"/>
|
|
98
|
-
<!-- Right eye: < -->
|
|
99
|
-
<polyline points="11,8 9.5,9 11,10"/>
|
|
100
|
-
</g>
|
|
101
|
-
</g>
|
|
102
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
/* Body sways side to side (held from above) */
|
|
5
|
+
.body-sway {
|
|
6
|
+
transform-origin: 7.5px 6px;
|
|
7
|
+
animation: sway 1.2s infinite alternate ease-in-out;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Leg dangling (from debugger sneak) */
|
|
11
|
+
.leg-dangle-1 {
|
|
12
|
+
animation: dangle-1 0.5s infinite linear;
|
|
13
|
+
transform-origin: top center;
|
|
14
|
+
transform-box: fill-box;
|
|
15
|
+
}
|
|
16
|
+
.leg-dangle-2 {
|
|
17
|
+
animation: dangle-2 0.5s infinite linear;
|
|
18
|
+
transform-origin: top center;
|
|
19
|
+
transform-box: fill-box;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Arm flailing (from happy wave, slightly slower) */
|
|
23
|
+
.arm-flail-l {
|
|
24
|
+
transform-box: fill-box;
|
|
25
|
+
transform-origin: 100% 50%;
|
|
26
|
+
animation: flail-l 0.2s infinite alternate ease-in-out;
|
|
27
|
+
}
|
|
28
|
+
.arm-flail-r {
|
|
29
|
+
transform-box: fill-box;
|
|
30
|
+
transform-origin: 0% 50%;
|
|
31
|
+
animation: flail-r 0.2s infinite alternate ease-in-out;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Shadow shrinks when lifted */
|
|
35
|
+
.shadow-lift {
|
|
36
|
+
transform-origin: 7.5px 15.5px;
|
|
37
|
+
animation: shadow-pulse 1.2s infinite alternate ease-in-out;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@keyframes sway {
|
|
41
|
+
0% { transform: rotate(-3deg) translate(-1px, 0); }
|
|
42
|
+
100% { transform: rotate(3deg) translate(1px, 0); }
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@keyframes dangle-1 {
|
|
46
|
+
0%, 100% { transform: rotate(0deg) scaleY(1); }
|
|
47
|
+
50% { transform: rotate(-25deg) scaleY(0.7); }
|
|
48
|
+
}
|
|
49
|
+
@keyframes dangle-2 {
|
|
50
|
+
0%, 100% { transform: rotate(-25deg) scaleY(0.7); }
|
|
51
|
+
50% { transform: rotate(0deg) scaleY(1); }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@keyframes flail-l {
|
|
55
|
+
0% { transform: rotate(45deg); }
|
|
56
|
+
100% { transform: rotate(85deg); }
|
|
57
|
+
}
|
|
58
|
+
@keyframes flail-r {
|
|
59
|
+
0% { transform: rotate(-45deg); }
|
|
60
|
+
100% { transform: rotate(-85deg); }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@keyframes shadow-pulse {
|
|
64
|
+
0% { transform: scale(0.7); opacity: 0.2; }
|
|
65
|
+
100% { transform: scale(0.8); opacity: 0.3; }
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
68
|
+
</defs>
|
|
69
|
+
|
|
70
|
+
<!-- Ground Shadow (small + faint = lifted off ground) -->
|
|
71
|
+
<rect class="shadow-lift" x="3" y="15" width="9" height="1" fill="#000000"/>
|
|
72
|
+
|
|
73
|
+
<!-- Swaying body -->
|
|
74
|
+
<g class="body-sway">
|
|
75
|
+
<!-- Dangling legs -->
|
|
76
|
+
<g fill="#DE886D">
|
|
77
|
+
<rect class="leg-dangle-1" x="3" y="13" width="1" height="2"/>
|
|
78
|
+
<rect class="leg-dangle-2" x="5" y="13" width="1" height="2"/>
|
|
79
|
+
<rect class="leg-dangle-1" x="9" y="13" width="1" height="2"/>
|
|
80
|
+
<rect class="leg-dangle-2" x="11" y="13" width="1" height="2"/>
|
|
81
|
+
</g>
|
|
82
|
+
|
|
83
|
+
<!-- Torso + flailing arms -->
|
|
84
|
+
<g fill="#DE886D">
|
|
85
|
+
<rect x="2" y="6" width="11" height="7"/>
|
|
86
|
+
<g class="arm-flail-l">
|
|
87
|
+
<rect x="0" y="9" width="2" height="2"/>
|
|
88
|
+
</g>
|
|
89
|
+
<g class="arm-flail-r">
|
|
90
|
+
<rect x="13" y="9" width="2" height="2"/>
|
|
91
|
+
</g>
|
|
92
|
+
</g>
|
|
93
|
+
|
|
94
|
+
<!-- >< Eyes (anime squint, drawn with thin lines) -->
|
|
95
|
+
<g fill="none" stroke="#000000" stroke-width="0.7" stroke-linecap="round" stroke-linejoin="round">
|
|
96
|
+
<!-- Left eye: > -->
|
|
97
|
+
<polyline points="4,8 5.5,9 4,10"/>
|
|
98
|
+
<!-- Right eye: < -->
|
|
99
|
+
<polyline points="11,8 9.5,9 11,10"/>
|
|
100
|
+
</g>
|
|
101
|
+
</g>
|
|
102
|
+
</svg>
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
-
<defs>
|
|
3
|
-
<style>
|
|
4
|
-
.body-react {
|
|
5
|
-
transform-origin: 7.5px 15px;
|
|
6
|
-
animation: body-look-l 2.5s 1 ease-in-out forwards;
|
|
7
|
-
}
|
|
8
|
-
.eyes-react {
|
|
9
|
-
animation: eyes-look-l 2.5s 1 ease-in-out forwards;
|
|
10
|
-
}
|
|
11
|
-
.eyes-blink {
|
|
12
|
-
transform-origin: 7.5px 9px;
|
|
13
|
-
animation: blink 3s infinite linear;
|
|
14
|
-
}
|
|
15
|
-
.question-pop {
|
|
16
|
-
transform-origin: center;
|
|
17
|
-
animation: question-l 2.5s 1 ease-in-out forwards;
|
|
18
|
-
opacity: 0;
|
|
19
|
-
}
|
|
20
|
-
.arm-l-react {
|
|
21
|
-
animation: arm-l-return 2.5s 1 ease-in-out forwards;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/* Left arm: starts at idle-follow position (0,9), raises up then returns */
|
|
25
|
-
@keyframes arm-l-return {
|
|
26
|
-
0%, 8% { transform: none; }
|
|
27
|
-
16%, 56% { transform: translate(-1px, -2px) rotate(15deg); }
|
|
28
|
-
84%, 100%{ transform: none; }
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/* Body turns left then returns */
|
|
32
|
-
@keyframes body-look-l {
|
|
33
|
-
0%, 8% { transform: translate(0px, 0px); }
|
|
34
|
-
16%, 56% { transform: translate(-2px, 0px) rotate(-2deg); }
|
|
35
|
-
84%, 100%{ transform: translate(0px, 0px); }
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/* Eyes lead the body (larger offset) */
|
|
39
|
-
@keyframes eyes-look-l {
|
|
40
|
-
0%, 8% { transform: translate(0px, 0px); }
|
|
41
|
-
16%, 56% { transform: translate(-3px, 0px); }
|
|
42
|
-
84%, 100%{ transform: translate(0px, 0px); }
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/* Blinking (looping, keeps character alive) */
|
|
46
|
-
@keyframes blink {
|
|
47
|
-
0%, 13%, 17%, 80%, 84%, 100% { transform: scaleY(1); }
|
|
48
|
-
15%, 82% { transform: scaleY(0.1); }
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/* Question mark: pop up, hold, float away */
|
|
52
|
-
@keyframes question-l {
|
|
53
|
-
0%, 12% { opacity: 0; transform: translate(-6px, 6px) scale(0.5); }
|
|
54
|
-
22%, 48% { opacity: 1; transform: translate(-8px, -2px) scale(1); }
|
|
55
|
-
64%, 100%{ opacity: 0; transform: translate(-8px, -8px) scale(1.2); }
|
|
56
|
-
}
|
|
57
|
-
</style>
|
|
58
|
-
|
|
59
|
-
<g id="pixel-question">
|
|
60
|
-
<rect x="1" y="0" width="2" height="1"/>
|
|
61
|
-
<rect x="0" y="1" width="1" height="1"/>
|
|
62
|
-
<rect x="3" y="1" width="1" height="2"/>
|
|
63
|
-
<rect x="2" y="3" width="1" height="1"/>
|
|
64
|
-
<rect x="1" y="4" width="1" height="1"/>
|
|
65
|
-
<rect x="1" y="6" width="1" height="1"/>
|
|
66
|
-
</g>
|
|
67
|
-
</defs>
|
|
68
|
-
|
|
69
|
-
<!-- Ground Shadow -->
|
|
70
|
-
<rect x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
|
|
71
|
-
|
|
72
|
-
<!-- Static Legs -->
|
|
73
|
-
<g fill="#DE886D">
|
|
74
|
-
<rect x="3" y="13" width="1" height="2"/>
|
|
75
|
-
<rect x="5" y="13" width="1" height="2"/>
|
|
76
|
-
<rect x="9" y="13" width="1" height="2"/>
|
|
77
|
-
<rect x="11" y="13" width="1" height="2"/>
|
|
78
|
-
</g>
|
|
79
|
-
|
|
80
|
-
<!-- Animated Upper Body -->
|
|
81
|
-
<g class="body-react">
|
|
82
|
-
<g fill="#DE886D">
|
|
83
|
-
<rect x="2" y="6" width="11" height="7"/>
|
|
84
|
-
<!-- Left arm: base position matches idle-follow (0,9), CSS animates raise+return -->
|
|
85
|
-
<g class="arm-l-react">
|
|
86
|
-
<rect x="0" y="9" width="2" height="2"/>
|
|
87
|
-
</g>
|
|
88
|
-
<rect x="13" y="9" width="2" height="2"/>
|
|
89
|
-
</g>
|
|
90
|
-
<g class="eyes-react">
|
|
91
|
-
<g class="eyes-blink" fill="#000000">
|
|
92
|
-
<rect x="4" y="8" width="1" height="2"/>
|
|
93
|
-
<rect x="10" y="8" width="1" height="2"/>
|
|
94
|
-
</g>
|
|
95
|
-
</g>
|
|
96
|
-
</g>
|
|
97
|
-
|
|
98
|
-
<!-- Left Question Mark -->
|
|
99
|
-
<g class="question-pop" fill="#40C4FF">
|
|
100
|
-
<use href="#pixel-question" />
|
|
101
|
-
</g>
|
|
102
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.body-react {
|
|
5
|
+
transform-origin: 7.5px 15px;
|
|
6
|
+
animation: body-look-l 2.5s 1 ease-in-out forwards;
|
|
7
|
+
}
|
|
8
|
+
.eyes-react {
|
|
9
|
+
animation: eyes-look-l 2.5s 1 ease-in-out forwards;
|
|
10
|
+
}
|
|
11
|
+
.eyes-blink {
|
|
12
|
+
transform-origin: 7.5px 9px;
|
|
13
|
+
animation: blink 3s infinite linear;
|
|
14
|
+
}
|
|
15
|
+
.question-pop {
|
|
16
|
+
transform-origin: center;
|
|
17
|
+
animation: question-l 2.5s 1 ease-in-out forwards;
|
|
18
|
+
opacity: 0;
|
|
19
|
+
}
|
|
20
|
+
.arm-l-react {
|
|
21
|
+
animation: arm-l-return 2.5s 1 ease-in-out forwards;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Left arm: starts at idle-follow position (0,9), raises up then returns */
|
|
25
|
+
@keyframes arm-l-return {
|
|
26
|
+
0%, 8% { transform: none; }
|
|
27
|
+
16%, 56% { transform: translate(-1px, -2px) rotate(15deg); }
|
|
28
|
+
84%, 100%{ transform: none; }
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* Body turns left then returns */
|
|
32
|
+
@keyframes body-look-l {
|
|
33
|
+
0%, 8% { transform: translate(0px, 0px); }
|
|
34
|
+
16%, 56% { transform: translate(-2px, 0px) rotate(-2deg); }
|
|
35
|
+
84%, 100%{ transform: translate(0px, 0px); }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Eyes lead the body (larger offset) */
|
|
39
|
+
@keyframes eyes-look-l {
|
|
40
|
+
0%, 8% { transform: translate(0px, 0px); }
|
|
41
|
+
16%, 56% { transform: translate(-3px, 0px); }
|
|
42
|
+
84%, 100%{ transform: translate(0px, 0px); }
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* Blinking (looping, keeps character alive) */
|
|
46
|
+
@keyframes blink {
|
|
47
|
+
0%, 13%, 17%, 80%, 84%, 100% { transform: scaleY(1); }
|
|
48
|
+
15%, 82% { transform: scaleY(0.1); }
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Question mark: pop up, hold, float away */
|
|
52
|
+
@keyframes question-l {
|
|
53
|
+
0%, 12% { opacity: 0; transform: translate(-6px, 6px) scale(0.5); }
|
|
54
|
+
22%, 48% { opacity: 1; transform: translate(-8px, -2px) scale(1); }
|
|
55
|
+
64%, 100%{ opacity: 0; transform: translate(-8px, -8px) scale(1.2); }
|
|
56
|
+
}
|
|
57
|
+
</style>
|
|
58
|
+
|
|
59
|
+
<g id="pixel-question">
|
|
60
|
+
<rect x="1" y="0" width="2" height="1"/>
|
|
61
|
+
<rect x="0" y="1" width="1" height="1"/>
|
|
62
|
+
<rect x="3" y="1" width="1" height="2"/>
|
|
63
|
+
<rect x="2" y="3" width="1" height="1"/>
|
|
64
|
+
<rect x="1" y="4" width="1" height="1"/>
|
|
65
|
+
<rect x="1" y="6" width="1" height="1"/>
|
|
66
|
+
</g>
|
|
67
|
+
</defs>
|
|
68
|
+
|
|
69
|
+
<!-- Ground Shadow -->
|
|
70
|
+
<rect x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
|
|
71
|
+
|
|
72
|
+
<!-- Static Legs -->
|
|
73
|
+
<g fill="#DE886D">
|
|
74
|
+
<rect x="3" y="13" width="1" height="2"/>
|
|
75
|
+
<rect x="5" y="13" width="1" height="2"/>
|
|
76
|
+
<rect x="9" y="13" width="1" height="2"/>
|
|
77
|
+
<rect x="11" y="13" width="1" height="2"/>
|
|
78
|
+
</g>
|
|
79
|
+
|
|
80
|
+
<!-- Animated Upper Body -->
|
|
81
|
+
<g class="body-react">
|
|
82
|
+
<g fill="#DE886D">
|
|
83
|
+
<rect x="2" y="6" width="11" height="7"/>
|
|
84
|
+
<!-- Left arm: base position matches idle-follow (0,9), CSS animates raise+return -->
|
|
85
|
+
<g class="arm-l-react">
|
|
86
|
+
<rect x="0" y="9" width="2" height="2"/>
|
|
87
|
+
</g>
|
|
88
|
+
<rect x="13" y="9" width="2" height="2"/>
|
|
89
|
+
</g>
|
|
90
|
+
<g class="eyes-react">
|
|
91
|
+
<g class="eyes-blink" fill="#000000">
|
|
92
|
+
<rect x="4" y="8" width="1" height="2"/>
|
|
93
|
+
<rect x="10" y="8" width="1" height="2"/>
|
|
94
|
+
</g>
|
|
95
|
+
</g>
|
|
96
|
+
</g>
|
|
97
|
+
|
|
98
|
+
<!-- Left Question Mark -->
|
|
99
|
+
<g class="question-pop" fill="#40C4FF">
|
|
100
|
+
<use href="#pixel-question" />
|
|
101
|
+
</g>
|
|
102
|
+
</svg>
|