@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
package/assets/clawd/LICENSE
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
All Rights Reserved
|
|
2
|
-
|
|
3
|
-
The artwork files in this directory and its subdirectories (including but not
|
|
4
|
-
limited to SVG, PNG, GIF, and ICO files) are NOT covered by the project's
|
|
5
|
-
source-code license. All rights are reserved by their respective copyright
|
|
6
|
-
holders.
|
|
7
|
-
|
|
8
|
-
Clawd character artwork:
|
|
9
|
-
The Clawd character is the property of Anthropic (https://www.anthropic.com).
|
|
10
|
-
Clawd pixel art in this project is fan-created and may not be used for
|
|
11
|
-
commercial purposes.
|
|
12
|
-
|
|
13
|
-
Calico cat (三花猫) artwork:
|
|
14
|
-
Copyright (c) 2026 鹿鹿 (rullerzhou-afk). All rights reserved.
|
|
15
|
-
|
|
16
|
-
Third-party artist contributions:
|
|
17
|
-
Copyright is retained by the respective artists. See individual file headers
|
|
18
|
-
or the project README for attribution details.
|
|
19
|
-
|
|
20
|
-
You may NOT copy, modify, distribute, or use any artwork from this directory
|
|
21
|
-
without explicit written permission from the copyright holder(s), except for
|
|
22
|
-
personal use of the Clawd on Desk application as distributed by this project.
|
|
1
|
+
All Rights Reserved
|
|
2
|
+
|
|
3
|
+
The artwork files in this directory and its subdirectories (including but not
|
|
4
|
+
limited to SVG, PNG, GIF, and ICO files) are NOT covered by the project's
|
|
5
|
+
source-code license. All rights are reserved by their respective copyright
|
|
6
|
+
holders.
|
|
7
|
+
|
|
8
|
+
Clawd character artwork:
|
|
9
|
+
The Clawd character is the property of Anthropic (https://www.anthropic.com).
|
|
10
|
+
Clawd pixel art in this project is fan-created and may not be used for
|
|
11
|
+
commercial purposes.
|
|
12
|
+
|
|
13
|
+
Calico cat (三花猫) artwork:
|
|
14
|
+
Copyright (c) 2026 鹿鹿 (rullerzhou-afk). All rights reserved.
|
|
15
|
+
|
|
16
|
+
Third-party artist contributions:
|
|
17
|
+
Copyright is retained by the respective artists. See individual file headers
|
|
18
|
+
or the project README for attribution details.
|
|
19
|
+
|
|
20
|
+
You may NOT copy, modify, distribute, or use any artwork from this directory
|
|
21
|
+
without explicit written permission from the copyright holder(s), except for
|
|
22
|
+
personal use of the Clawd on Desk application as distributed by this project.
|
|
@@ -1,202 +1,202 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 2 20 16" width="500" height="400">
|
|
2
|
-
<!-- Clawd About hero: "Deal with it" intro → freeze at 55% (cool pose, post-second-sparkle, hands not yet returning).
|
|
3
|
-
Adapted from themes/clawd/assets/source/clawd-experiment-put-on-v4.svg:
|
|
4
|
-
- 8s infinite → 4.4s forwards (plays once, freezes at terminal keyframe)
|
|
5
|
-
- Keyframes past 55% removed; remaining remapped from 0-55% → 0-100%
|
|
6
|
-
- Wrapped in <g class="breath-wrap"> for subtle breathing after intro
|
|
7
|
-
- Wrapped in <g id="shake-slot"> outermost — JS adds .shake class on click
|
|
8
|
-
-->
|
|
9
|
-
|
|
10
|
-
<defs>
|
|
11
|
-
<style>
|
|
12
|
-
.arm-right-motion {
|
|
13
|
-
transform-origin: 13px 10px;
|
|
14
|
-
animation: arm-right 4.4s ease-in-out forwards;
|
|
15
|
-
}
|
|
16
|
-
.arm-left-motion {
|
|
17
|
-
transform-origin: 2px 10px;
|
|
18
|
-
animation: arm-left 4.4s ease-in-out forwards;
|
|
19
|
-
}
|
|
20
|
-
.glasses-fly {
|
|
21
|
-
transform-origin: 0 0;
|
|
22
|
-
animation: glasses-fly 4.4s ease-in-out forwards;
|
|
23
|
-
}
|
|
24
|
-
.mood {
|
|
25
|
-
transform-origin: 7.5px 13px;
|
|
26
|
-
animation: mood 4.4s ease-in-out forwards;
|
|
27
|
-
}
|
|
28
|
-
.shadow-fade {
|
|
29
|
-
animation: shadow-fade 4.4s ease-in-out forwards;
|
|
30
|
-
}
|
|
31
|
-
.sparkle-near {
|
|
32
|
-
transform-origin: 2.5px 6.5px;
|
|
33
|
-
animation: sparkle-near 4.4s ease-in-out forwards;
|
|
34
|
-
}
|
|
35
|
-
.sparkle-far {
|
|
36
|
-
transform-origin: 3.5px 4.5px;
|
|
37
|
-
animation: sparkle-far 4.4s ease-in-out forwards;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/* Breath: kick in after intro completes; gentle infinite up-down */
|
|
41
|
-
.breath-wrap {
|
|
42
|
-
animation: breath 4s infinite ease-in-out;
|
|
43
|
-
animation-delay: 4.4s;
|
|
44
|
-
}
|
|
45
|
-
@keyframes breath {
|
|
46
|
-
0%, 100% { transform: translateY(0); }
|
|
47
|
-
50% { transform: translateY(-0.3px); }
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/* Shake: JS toggles .shake on click; animationend removes the class */
|
|
51
|
-
.shake-slot {
|
|
52
|
-
transform-origin: 7.5px 10px;
|
|
53
|
-
}
|
|
54
|
-
.shake-slot.shake {
|
|
55
|
-
animation: shake 0.4s ease-in-out;
|
|
56
|
-
}
|
|
57
|
-
@keyframes shake {
|
|
58
|
-
0%, 100% { transform: rotate(0); }
|
|
59
|
-
20% { transform: rotate(-3deg); }
|
|
60
|
-
60% { transform: rotate(3deg); }
|
|
61
|
-
80% { transform: rotate(-2deg); }
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/* Right arm: idle → raise → hold → cool pose (freeze at translate(0.5,1)) */
|
|
65
|
-
@keyframes arm-right {
|
|
66
|
-
0%, 9% { transform: none; }
|
|
67
|
-
15%, 33% { transform: translateY(-3px) rotate(-90deg); }
|
|
68
|
-
45%, 73% { transform: translate(-1px, -1px); }
|
|
69
|
-
82%, 100% { transform: translate(0.5px, 1px); }
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/* Left arm: idle → hold → cool pose (freeze at translate(-0.5,1)) */
|
|
73
|
-
@keyframes arm-left {
|
|
74
|
-
0%, 27% { transform: none; }
|
|
75
|
-
45%, 73% { transform: translate(1px, -1px); }
|
|
76
|
-
82%, 100% { transform: translate(-0.5px, 1px); }
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/* Glasses: invisible → summon → fly to face → display (freeze at translate(1.325,7.375) scale(0.65)) */
|
|
80
|
-
@keyframes glasses-fly {
|
|
81
|
-
0%, 15% { transform: translate(10.15px, 3.25px) scale(0.3); opacity: 0; }
|
|
82
|
-
22%, 33% { transform: translate(10.15px, 3.25px) scale(0.3); opacity: 1; }
|
|
83
|
-
55%, 100% { transform: translate(1.325px, 7.375px) scale(0.65); opacity: 1; }
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/* Mood: single head shake mid-intro → cool pose tilt (freeze at +1deg) */
|
|
87
|
-
@keyframes mood {
|
|
88
|
-
0%, 55% { transform: rotate(0deg); }
|
|
89
|
-
60% { transform: rotate(1deg); }
|
|
90
|
-
65% { transform: rotate(-1deg); }
|
|
91
|
-
73% { transform: rotate(0deg); }
|
|
92
|
-
82%, 100% { transform: rotate(1deg); }
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/* Hand shadows: visible only during hold periods */
|
|
96
|
-
@keyframes shadow-fade {
|
|
97
|
-
0%, 40% { opacity: 0; }
|
|
98
|
-
51%, 76% { opacity: 1; }
|
|
99
|
-
87%, 100% { opacity: 0; }
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/* Sparkle near (small, glasses corner): flashes mid-pose then fades */
|
|
103
|
-
@keyframes sparkle-near {
|
|
104
|
-
0%, 73% { opacity: 0; transform: scale(0.4); }
|
|
105
|
-
75% { opacity: 1; transform: scale(0.7); }
|
|
106
|
-
78% { opacity: 0.7; transform: scale(0.5); }
|
|
107
|
-
80%, 100% { opacity: 0; transform: scale(0.4); }
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/* Sparkle far (big, upper-left void): peaks late, faded before freeze */
|
|
111
|
-
@keyframes sparkle-far {
|
|
112
|
-
0%, 84% { opacity: 0; transform: scale(0.5); }
|
|
113
|
-
87% { opacity: 1; transform: scale(1.4); }
|
|
114
|
-
91% { opacity: 0.9; transform: scale(1.2); }
|
|
115
|
-
96%, 100% { opacity: 0; transform: scale(0.6); }
|
|
116
|
-
}
|
|
117
|
-
</style>
|
|
118
|
-
|
|
119
|
-
<clipPath id="inside-torso">
|
|
120
|
-
<rect x="2" y="6" width="11" height="7"/>
|
|
121
|
-
</clipPath>
|
|
122
|
-
</defs>
|
|
123
|
-
|
|
124
|
-
<g class="shake-slot" id="shake-slot">
|
|
125
|
-
<rect id="ground-shadow" x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
|
|
126
|
-
|
|
127
|
-
<g class="breath-wrap">
|
|
128
|
-
<g class="mood">
|
|
129
|
-
<g id="master-group">
|
|
130
|
-
|
|
131
|
-
<g id="legs" fill="#DE886D">
|
|
132
|
-
<rect x="3" y="13" width="1" height="2"/>
|
|
133
|
-
<rect x="5" y="13" width="1" height="2"/>
|
|
134
|
-
<rect x="9" y="13" width="1" height="2"/>
|
|
135
|
-
<rect x="11" y="13" width="1" height="2"/>
|
|
136
|
-
</g>
|
|
137
|
-
|
|
138
|
-
<rect x="2" y="6" width="11" height="7" fill="#DE886D"/>
|
|
139
|
-
|
|
140
|
-
<g clip-path="url(#inside-torso)" class="shadow-fade">
|
|
141
|
-
<g class="arm-left-motion">
|
|
142
|
-
<rect x="0" y="9" width="2.4" height="2.4" fill="#A85A3A"/>
|
|
143
|
-
</g>
|
|
144
|
-
<g class="arm-right-motion">
|
|
145
|
-
<rect x="12.6" y="9" width="2.4" height="2.4" fill="#A85A3A"/>
|
|
146
|
-
</g>
|
|
147
|
-
</g>
|
|
148
|
-
|
|
149
|
-
<g fill="#000000">
|
|
150
|
-
<rect x="4" y="8" width="1" height="2"/>
|
|
151
|
-
<rect x="10" y="8" width="1" height="2"/>
|
|
152
|
-
</g>
|
|
153
|
-
|
|
154
|
-
<g class="glasses-fly">
|
|
155
|
-
<g fill="#000000">
|
|
156
|
-
<rect x="0" y="0" width="19" height="1"/>
|
|
157
|
-
<rect x="0" y="1" width="8" height="1"/>
|
|
158
|
-
<rect x="11" y="1" width="8" height="1"/>
|
|
159
|
-
<rect x="0" y="2" width="8" height="1"/>
|
|
160
|
-
<rect x="11" y="2" width="8" height="1"/>
|
|
161
|
-
<rect x="1" y="3" width="6" height="1"/>
|
|
162
|
-
<rect x="12" y="3" width="6" height="1"/>
|
|
163
|
-
<rect x="2" y="4" width="4" height="1"/>
|
|
164
|
-
<rect x="13" y="4" width="4" height="1"/>
|
|
165
|
-
</g>
|
|
166
|
-
<g fill="#FFFFFF">
|
|
167
|
-
<rect x="5" y="1" width="1" height="1"/>
|
|
168
|
-
<rect x="4" y="2" width="1" height="1"/>
|
|
169
|
-
<rect x="16" y="1" width="1" height="1"/>
|
|
170
|
-
<rect x="15" y="2" width="1" height="1"/>
|
|
171
|
-
</g>
|
|
172
|
-
</g>
|
|
173
|
-
|
|
174
|
-
<g class="arm-left-motion">
|
|
175
|
-
<rect x="0" y="9" width="2" height="2" fill="#DE886D"/>
|
|
176
|
-
</g>
|
|
177
|
-
|
|
178
|
-
<g class="arm-right-motion">
|
|
179
|
-
<rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
|
|
180
|
-
</g>
|
|
181
|
-
|
|
182
|
-
<g class="sparkle-near" fill="#FFFFFF">
|
|
183
|
-
<rect x="2" y="6" width="1" height="1"/>
|
|
184
|
-
<rect x="2" y="5" width="1" height="1"/>
|
|
185
|
-
<rect x="2" y="7" width="1" height="1"/>
|
|
186
|
-
<rect x="1" y="6" width="1" height="1"/>
|
|
187
|
-
<rect x="3" y="6" width="1" height="1"/>
|
|
188
|
-
</g>
|
|
189
|
-
|
|
190
|
-
<g class="sparkle-far" fill="#FFFFFF">
|
|
191
|
-
<rect x="3" y="4" width="1" height="1"/>
|
|
192
|
-
<rect x="3" y="3" width="1" height="1"/>
|
|
193
|
-
<rect x="3" y="5" width="1" height="1"/>
|
|
194
|
-
<rect x="2" y="4" width="1" height="1"/>
|
|
195
|
-
<rect x="4" y="4" width="1" height="1"/>
|
|
196
|
-
</g>
|
|
197
|
-
|
|
198
|
-
</g>
|
|
199
|
-
</g>
|
|
200
|
-
</g>
|
|
201
|
-
</g>
|
|
202
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 2 20 16" width="500" height="400">
|
|
2
|
+
<!-- Clawd About hero: "Deal with it" intro → freeze at 55% (cool pose, post-second-sparkle, hands not yet returning).
|
|
3
|
+
Adapted from themes/clawd/assets/source/clawd-experiment-put-on-v4.svg:
|
|
4
|
+
- 8s infinite → 4.4s forwards (plays once, freezes at terminal keyframe)
|
|
5
|
+
- Keyframes past 55% removed; remaining remapped from 0-55% → 0-100%
|
|
6
|
+
- Wrapped in <g class="breath-wrap"> for subtle breathing after intro
|
|
7
|
+
- Wrapped in <g id="shake-slot"> outermost — JS adds .shake class on click
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<defs>
|
|
11
|
+
<style>
|
|
12
|
+
.arm-right-motion {
|
|
13
|
+
transform-origin: 13px 10px;
|
|
14
|
+
animation: arm-right 4.4s ease-in-out forwards;
|
|
15
|
+
}
|
|
16
|
+
.arm-left-motion {
|
|
17
|
+
transform-origin: 2px 10px;
|
|
18
|
+
animation: arm-left 4.4s ease-in-out forwards;
|
|
19
|
+
}
|
|
20
|
+
.glasses-fly {
|
|
21
|
+
transform-origin: 0 0;
|
|
22
|
+
animation: glasses-fly 4.4s ease-in-out forwards;
|
|
23
|
+
}
|
|
24
|
+
.mood {
|
|
25
|
+
transform-origin: 7.5px 13px;
|
|
26
|
+
animation: mood 4.4s ease-in-out forwards;
|
|
27
|
+
}
|
|
28
|
+
.shadow-fade {
|
|
29
|
+
animation: shadow-fade 4.4s ease-in-out forwards;
|
|
30
|
+
}
|
|
31
|
+
.sparkle-near {
|
|
32
|
+
transform-origin: 2.5px 6.5px;
|
|
33
|
+
animation: sparkle-near 4.4s ease-in-out forwards;
|
|
34
|
+
}
|
|
35
|
+
.sparkle-far {
|
|
36
|
+
transform-origin: 3.5px 4.5px;
|
|
37
|
+
animation: sparkle-far 4.4s ease-in-out forwards;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Breath: kick in after intro completes; gentle infinite up-down */
|
|
41
|
+
.breath-wrap {
|
|
42
|
+
animation: breath 4s infinite ease-in-out;
|
|
43
|
+
animation-delay: 4.4s;
|
|
44
|
+
}
|
|
45
|
+
@keyframes breath {
|
|
46
|
+
0%, 100% { transform: translateY(0); }
|
|
47
|
+
50% { transform: translateY(-0.3px); }
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Shake: JS toggles .shake on click; animationend removes the class */
|
|
51
|
+
.shake-slot {
|
|
52
|
+
transform-origin: 7.5px 10px;
|
|
53
|
+
}
|
|
54
|
+
.shake-slot.shake {
|
|
55
|
+
animation: shake 0.4s ease-in-out;
|
|
56
|
+
}
|
|
57
|
+
@keyframes shake {
|
|
58
|
+
0%, 100% { transform: rotate(0); }
|
|
59
|
+
20% { transform: rotate(-3deg); }
|
|
60
|
+
60% { transform: rotate(3deg); }
|
|
61
|
+
80% { transform: rotate(-2deg); }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Right arm: idle → raise → hold → cool pose (freeze at translate(0.5,1)) */
|
|
65
|
+
@keyframes arm-right {
|
|
66
|
+
0%, 9% { transform: none; }
|
|
67
|
+
15%, 33% { transform: translateY(-3px) rotate(-90deg); }
|
|
68
|
+
45%, 73% { transform: translate(-1px, -1px); }
|
|
69
|
+
82%, 100% { transform: translate(0.5px, 1px); }
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Left arm: idle → hold → cool pose (freeze at translate(-0.5,1)) */
|
|
73
|
+
@keyframes arm-left {
|
|
74
|
+
0%, 27% { transform: none; }
|
|
75
|
+
45%, 73% { transform: translate(1px, -1px); }
|
|
76
|
+
82%, 100% { transform: translate(-0.5px, 1px); }
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Glasses: invisible → summon → fly to face → display (freeze at translate(1.325,7.375) scale(0.65)) */
|
|
80
|
+
@keyframes glasses-fly {
|
|
81
|
+
0%, 15% { transform: translate(10.15px, 3.25px) scale(0.3); opacity: 0; }
|
|
82
|
+
22%, 33% { transform: translate(10.15px, 3.25px) scale(0.3); opacity: 1; }
|
|
83
|
+
55%, 100% { transform: translate(1.325px, 7.375px) scale(0.65); opacity: 1; }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Mood: single head shake mid-intro → cool pose tilt (freeze at +1deg) */
|
|
87
|
+
@keyframes mood {
|
|
88
|
+
0%, 55% { transform: rotate(0deg); }
|
|
89
|
+
60% { transform: rotate(1deg); }
|
|
90
|
+
65% { transform: rotate(-1deg); }
|
|
91
|
+
73% { transform: rotate(0deg); }
|
|
92
|
+
82%, 100% { transform: rotate(1deg); }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Hand shadows: visible only during hold periods */
|
|
96
|
+
@keyframes shadow-fade {
|
|
97
|
+
0%, 40% { opacity: 0; }
|
|
98
|
+
51%, 76% { opacity: 1; }
|
|
99
|
+
87%, 100% { opacity: 0; }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* Sparkle near (small, glasses corner): flashes mid-pose then fades */
|
|
103
|
+
@keyframes sparkle-near {
|
|
104
|
+
0%, 73% { opacity: 0; transform: scale(0.4); }
|
|
105
|
+
75% { opacity: 1; transform: scale(0.7); }
|
|
106
|
+
78% { opacity: 0.7; transform: scale(0.5); }
|
|
107
|
+
80%, 100% { opacity: 0; transform: scale(0.4); }
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Sparkle far (big, upper-left void): peaks late, faded before freeze */
|
|
111
|
+
@keyframes sparkle-far {
|
|
112
|
+
0%, 84% { opacity: 0; transform: scale(0.5); }
|
|
113
|
+
87% { opacity: 1; transform: scale(1.4); }
|
|
114
|
+
91% { opacity: 0.9; transform: scale(1.2); }
|
|
115
|
+
96%, 100% { opacity: 0; transform: scale(0.6); }
|
|
116
|
+
}
|
|
117
|
+
</style>
|
|
118
|
+
|
|
119
|
+
<clipPath id="inside-torso">
|
|
120
|
+
<rect x="2" y="6" width="11" height="7"/>
|
|
121
|
+
</clipPath>
|
|
122
|
+
</defs>
|
|
123
|
+
|
|
124
|
+
<g class="shake-slot" id="shake-slot">
|
|
125
|
+
<rect id="ground-shadow" x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
|
|
126
|
+
|
|
127
|
+
<g class="breath-wrap">
|
|
128
|
+
<g class="mood">
|
|
129
|
+
<g id="master-group">
|
|
130
|
+
|
|
131
|
+
<g id="legs" fill="#DE886D">
|
|
132
|
+
<rect x="3" y="13" width="1" height="2"/>
|
|
133
|
+
<rect x="5" y="13" width="1" height="2"/>
|
|
134
|
+
<rect x="9" y="13" width="1" height="2"/>
|
|
135
|
+
<rect x="11" y="13" width="1" height="2"/>
|
|
136
|
+
</g>
|
|
137
|
+
|
|
138
|
+
<rect x="2" y="6" width="11" height="7" fill="#DE886D"/>
|
|
139
|
+
|
|
140
|
+
<g clip-path="url(#inside-torso)" class="shadow-fade">
|
|
141
|
+
<g class="arm-left-motion">
|
|
142
|
+
<rect x="0" y="9" width="2.4" height="2.4" fill="#A85A3A"/>
|
|
143
|
+
</g>
|
|
144
|
+
<g class="arm-right-motion">
|
|
145
|
+
<rect x="12.6" y="9" width="2.4" height="2.4" fill="#A85A3A"/>
|
|
146
|
+
</g>
|
|
147
|
+
</g>
|
|
148
|
+
|
|
149
|
+
<g fill="#000000">
|
|
150
|
+
<rect x="4" y="8" width="1" height="2"/>
|
|
151
|
+
<rect x="10" y="8" width="1" height="2"/>
|
|
152
|
+
</g>
|
|
153
|
+
|
|
154
|
+
<g class="glasses-fly">
|
|
155
|
+
<g fill="#000000">
|
|
156
|
+
<rect x="0" y="0" width="19" height="1"/>
|
|
157
|
+
<rect x="0" y="1" width="8" height="1"/>
|
|
158
|
+
<rect x="11" y="1" width="8" height="1"/>
|
|
159
|
+
<rect x="0" y="2" width="8" height="1"/>
|
|
160
|
+
<rect x="11" y="2" width="8" height="1"/>
|
|
161
|
+
<rect x="1" y="3" width="6" height="1"/>
|
|
162
|
+
<rect x="12" y="3" width="6" height="1"/>
|
|
163
|
+
<rect x="2" y="4" width="4" height="1"/>
|
|
164
|
+
<rect x="13" y="4" width="4" height="1"/>
|
|
165
|
+
</g>
|
|
166
|
+
<g fill="#FFFFFF">
|
|
167
|
+
<rect x="5" y="1" width="1" height="1"/>
|
|
168
|
+
<rect x="4" y="2" width="1" height="1"/>
|
|
169
|
+
<rect x="16" y="1" width="1" height="1"/>
|
|
170
|
+
<rect x="15" y="2" width="1" height="1"/>
|
|
171
|
+
</g>
|
|
172
|
+
</g>
|
|
173
|
+
|
|
174
|
+
<g class="arm-left-motion">
|
|
175
|
+
<rect x="0" y="9" width="2" height="2" fill="#DE886D"/>
|
|
176
|
+
</g>
|
|
177
|
+
|
|
178
|
+
<g class="arm-right-motion">
|
|
179
|
+
<rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
|
|
180
|
+
</g>
|
|
181
|
+
|
|
182
|
+
<g class="sparkle-near" fill="#FFFFFF">
|
|
183
|
+
<rect x="2" y="6" width="1" height="1"/>
|
|
184
|
+
<rect x="2" y="5" width="1" height="1"/>
|
|
185
|
+
<rect x="2" y="7" width="1" height="1"/>
|
|
186
|
+
<rect x="1" y="6" width="1" height="1"/>
|
|
187
|
+
<rect x="3" y="6" width="1" height="1"/>
|
|
188
|
+
</g>
|
|
189
|
+
|
|
190
|
+
<g class="sparkle-far" fill="#FFFFFF">
|
|
191
|
+
<rect x="3" y="4" width="1" height="1"/>
|
|
192
|
+
<rect x="3" y="3" width="1" height="1"/>
|
|
193
|
+
<rect x="3" y="5" width="1" height="1"/>
|
|
194
|
+
<rect x="2" y="4" width="1" height="1"/>
|
|
195
|
+
<rect x="4" y="4" width="1" height="1"/>
|
|
196
|
+
</g>
|
|
197
|
+
|
|
198
|
+
</g>
|
|
199
|
+
</g>
|
|
200
|
+
</g>
|
|
201
|
+
</g>
|
|
202
|
+
</svg>
|