@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.
Files changed (141) hide show
  1. package/assets/calico/calico-idle-follow.svg +324 -324
  2. package/assets/calico.svg +324 -324
  3. package/assets/clawd/LICENSE +22 -22
  4. package/assets/clawd/clawd-about-hero.svg +202 -202
  5. package/assets/clawd/clawd-collapse-sleep.svg +247 -247
  6. package/assets/clawd/clawd-error.svg +94 -94
  7. package/assets/clawd/clawd-happy.svg +160 -160
  8. package/assets/clawd/clawd-headphones-groove.svg +194 -194
  9. package/assets/clawd/clawd-idle-bubble.svg +180 -180
  10. package/assets/clawd/clawd-idle-collapse.svg +101 -101
  11. package/assets/clawd/clawd-idle-doze.svg +72 -72
  12. package/assets/clawd/clawd-idle-follow.svg +64 -64
  13. package/assets/clawd/clawd-idle-living.svg +195 -195
  14. package/assets/clawd/clawd-idle-look.svg +115 -115
  15. package/assets/clawd/clawd-idle-reading.svg +252 -252
  16. package/assets/clawd/clawd-idle-yawn.svg +158 -158
  17. package/assets/clawd/clawd-mini-alert.svg +129 -129
  18. package/assets/clawd/clawd-mini-crabwalk.svg +76 -76
  19. package/assets/clawd/clawd-mini-enter-sleep.svg +64 -64
  20. package/assets/clawd/clawd-mini-enter.svg +114 -114
  21. package/assets/clawd/clawd-mini-happy.svg +124 -124
  22. package/assets/clawd/clawd-mini-idle.svg +83 -83
  23. package/assets/clawd/clawd-mini-peek.svg +82 -82
  24. package/assets/clawd/clawd-mini-sleep.svg +112 -112
  25. package/assets/clawd/clawd-mini-typing.svg +153 -153
  26. package/assets/clawd/clawd-notification.svg +438 -438
  27. package/assets/clawd/clawd-react-annoyed.svg +167 -167
  28. package/assets/clawd/clawd-react-double-jump.svg +229 -229
  29. package/assets/clawd/clawd-react-double.svg +108 -108
  30. package/assets/clawd/clawd-react-drag.svg +102 -102
  31. package/assets/clawd/clawd-react-left.svg +102 -102
  32. package/assets/clawd/clawd-react-right.svg +102 -102
  33. package/assets/clawd/clawd-sleeping.svg +117 -117
  34. package/assets/clawd/clawd-static-base.svg +20 -20
  35. package/assets/clawd/clawd-wake.svg +277 -277
  36. package/assets/clawd/clawd-working-building.svg +329 -329
  37. package/assets/clawd/clawd-working-carrying.svg +178 -178
  38. package/assets/clawd/clawd-working-debugger.svg +245 -245
  39. package/assets/clawd/clawd-working-juggling.svg +183 -183
  40. package/assets/clawd/clawd-working-sweeping.svg +248 -248
  41. package/assets/clawd/clawd-working-thinking.svg +501 -501
  42. package/assets/clawd/clawd-working-typing-boss.svg +307 -307
  43. package/assets/clawd/clawd-working-typing.svg +273 -273
  44. package/assets/clawd/clawd-working-ultrathink.svg +166 -166
  45. package/assets/clawd/clawd-working-wizard.svg +356 -356
  46. package/assets/clawd.svg +64 -64
  47. package/assets/cloudling/cloudling/cloudling-attention.svg +379 -379
  48. package/assets/cloudling/cloudling/cloudling-building.svg +667 -667
  49. package/assets/cloudling/cloudling/cloudling-carrying.svg +604 -604
  50. package/assets/cloudling/cloudling/cloudling-conducting.svg +616 -616
  51. package/assets/cloudling/cloudling/cloudling-dozing-to-sleeping.svg +578 -578
  52. package/assets/cloudling/cloudling/cloudling-dozing.svg +358 -358
  53. package/assets/cloudling/cloudling/cloudling-error.svg +428 -428
  54. package/assets/cloudling/cloudling/cloudling-idle-reading.svg +658 -658
  55. package/assets/cloudling/cloudling/cloudling-idle-to-dozing.svg +568 -568
  56. package/assets/cloudling/cloudling/cloudling-idle-to-sleeping.svg +811 -811
  57. package/assets/cloudling/cloudling/cloudling-idle.svg +255 -255
  58. package/assets/cloudling/cloudling/cloudling-juggling.svg +648 -648
  59. package/assets/cloudling/cloudling/cloudling-mini-alert.svg +389 -389
  60. package/assets/cloudling/cloudling/cloudling-mini-crabwalk.svg +335 -335
  61. package/assets/cloudling/cloudling/cloudling-mini-enter-roll-in.svg +225 -225
  62. package/assets/cloudling/cloudling/cloudling-mini-enter-sleep.svg +231 -231
  63. package/assets/cloudling/cloudling/cloudling-mini-happy.svg +370 -370
  64. package/assets/cloudling/cloudling/cloudling-mini-idle.svg +279 -279
  65. package/assets/cloudling/cloudling/cloudling-mini-peek.svg +327 -327
  66. package/assets/cloudling/cloudling/cloudling-mini-sleep.svg +260 -260
  67. package/assets/cloudling/cloudling/cloudling-mini-typing.svg +691 -691
  68. package/assets/cloudling/cloudling/cloudling-notification.svg +493 -493
  69. package/assets/cloudling/cloudling/cloudling-react-drag.svg +83 -83
  70. package/assets/cloudling/cloudling/cloudling-sleeping-to-idle.svg +555 -555
  71. package/assets/cloudling/cloudling/cloudling-sleeping.svg +500 -500
  72. package/assets/cloudling/cloudling/cloudling-sweeping.svg +292 -292
  73. package/assets/cloudling/cloudling/cloudling-thinking.svg +719 -719
  74. package/assets/cloudling/cloudling/cloudling-typing.svg +354 -354
  75. package/assets/cloudling/cloudling-attention.svg +379 -379
  76. package/assets/cloudling/cloudling-building.svg +667 -667
  77. package/assets/cloudling/cloudling-carrying.svg +604 -604
  78. package/assets/cloudling/cloudling-conducting.svg +616 -616
  79. package/assets/cloudling/cloudling-dozing-to-sleeping.svg +578 -578
  80. package/assets/cloudling/cloudling-dozing.svg +358 -358
  81. package/assets/cloudling/cloudling-error.svg +428 -428
  82. package/assets/cloudling/cloudling-idle-reading.svg +658 -658
  83. package/assets/cloudling/cloudling-idle-to-dozing.svg +568 -568
  84. package/assets/cloudling/cloudling-idle-to-sleeping.svg +811 -811
  85. package/assets/cloudling/cloudling-idle.svg +255 -255
  86. package/assets/cloudling/cloudling-juggling.svg +648 -648
  87. package/assets/cloudling/cloudling-mini-alert.svg +389 -389
  88. package/assets/cloudling/cloudling-mini-crabwalk.svg +335 -335
  89. package/assets/cloudling/cloudling-mini-enter-roll-in.svg +225 -225
  90. package/assets/cloudling/cloudling-mini-enter-sleep.svg +231 -231
  91. package/assets/cloudling/cloudling-mini-happy.svg +370 -370
  92. package/assets/cloudling/cloudling-mini-idle.svg +279 -279
  93. package/assets/cloudling/cloudling-mini-peek.svg +327 -327
  94. package/assets/cloudling/cloudling-mini-sleep.svg +260 -260
  95. package/assets/cloudling/cloudling-mini-typing.svg +691 -691
  96. package/assets/cloudling/cloudling-notification.svg +493 -493
  97. package/assets/cloudling/cloudling-react-drag.svg +83 -83
  98. package/assets/cloudling/cloudling-sleeping-to-idle.svg +555 -555
  99. package/assets/cloudling/cloudling-sleeping.svg +500 -500
  100. package/assets/cloudling/cloudling-sweeping.svg +292 -292
  101. package/assets/cloudling/cloudling-thinking.svg +719 -719
  102. package/assets/cloudling/cloudling-typing.svg +354 -354
  103. package/assets/cloudling.svg +255 -255
  104. package/assets/ghost-attention.svg +19 -19
  105. package/assets/ghost-carrying.svg +19 -19
  106. package/assets/ghost-collapsing.svg +19 -19
  107. package/assets/ghost-dozing.svg +23 -23
  108. package/assets/ghost-error.svg +19 -19
  109. package/assets/ghost-happy.svg +23 -23
  110. package/assets/ghost-idle.svg +11 -11
  111. package/assets/ghost-juggling.svg +19 -19
  112. package/assets/ghost-notification.svg +19 -19
  113. package/assets/ghost-react-double.svg +23 -23
  114. package/assets/ghost-react-drag.svg +23 -23
  115. package/assets/ghost-react-left.svg +19 -19
  116. package/assets/ghost-react-right.svg +19 -19
  117. package/assets/ghost-sleeping.svg +19 -19
  118. package/assets/ghost-sweeping.svg +19 -19
  119. package/assets/ghost-waking.svg +19 -19
  120. package/assets/ghost-yawning.svg +23 -23
  121. package/assets/ghost.svg +11 -11
  122. package/assets/robot-attention.svg +19 -19
  123. package/assets/robot-carrying.svg +19 -19
  124. package/assets/robot-collapsing.svg +19 -19
  125. package/assets/robot-dozing.svg +23 -23
  126. package/assets/robot-error.svg +19 -19
  127. package/assets/robot-happy.svg +23 -23
  128. package/assets/robot-idle.svg +11 -11
  129. package/assets/robot-juggling.svg +19 -19
  130. package/assets/robot-notification.svg +19 -19
  131. package/assets/robot-react-double.svg +23 -23
  132. package/assets/robot-react-drag.svg +23 -23
  133. package/assets/robot-react-left.svg +19 -19
  134. package/assets/robot-react-right.svg +19 -19
  135. package/assets/robot-sleeping.svg +19 -19
  136. package/assets/robot-sweeping.svg +19 -19
  137. package/assets/robot-waking.svg +19 -19
  138. package/assets/robot-yawning.svg +23 -23
  139. package/assets/robot.svg +11 -11
  140. package/manifest.json +280 -280
  141. package/package.json +1 -1
@@ -1,196 +1,196 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
- <defs>
3
- <style>
4
- /* 16-Second Master Sequence for Idle Actions */
5
- .action-body {
6
- transform-origin: 7.5px 13px; /* Pivot at the base of the torso */
7
- animation: action-body 16s infinite ease-in-out;
8
- }
9
-
10
- /* Continuous Subtle Breathing (Syncs exactly 5 times per 16s loop) */
11
- .breathe-anim {
12
- transform-origin: 7.5px 13px;
13
- animation: breathe 3.2s infinite ease-in-out;
14
- }
15
-
16
- /* Shadow shrinking and shifting matching actions */
17
- .shadow-anim {
18
- transform-origin: 7.5px 15.5px;
19
- animation: shadow-action 16s infinite ease-in-out;
20
- }
21
-
22
- /* Left Arm (Scratching and Yawn Stretching) */
23
- .arm-l {
24
- transform-origin: 1px 10px;
25
- animation: arm-l-idle 16s infinite ease-in-out;
26
- }
27
-
28
- /* Right Arm (Yawn Stretching) */
29
- .arm-r {
30
- transform-origin: 14px 10px;
31
- animation: arm-r-idle 16s infinite ease-in-out;
32
- }
33
-
34
- /* Eye Tracking (Looking around) */
35
- .eyes-look {
36
- animation: eye-track 16s infinite ease-in-out;
37
- }
38
-
39
- /* Occasional Blinks and shutting during Yawn */
40
- .eyes-blink {
41
- transform-origin: 7.5px 9px;
42
- animation: eye-blink 16s infinite linear;
43
- }
44
-
45
- /* Yawn Mouth Appearance */
46
- .yawn-mouth {
47
- transform-origin: 7.5px 11px;
48
- animation: yawn-mouth-anim 16s infinite ease-in-out;
49
- opacity: 0;
50
- }
51
-
52
- /* Tiny tear that appears during the big yawn */
53
- .yawn-tear {
54
- animation: tear-fall 16s infinite ease-in-out;
55
- opacity: 0;
56
- }
57
-
58
- /* --- Keyframes --- */
59
-
60
- @keyframes breathe {
61
- 0%, 100% { transform: scale(1, 1) translate(0, 0); }
62
- 50% { transform: scale(1.02, 0.98) translate(0, 0.5px); }
63
- }
64
-
65
- @keyframes action-body {
66
- 0%, 8%, 26%, 38%, 55%, 80%, 100% { transform: scale(1, 1) translate(0, 0); }
67
- /* Look Right Tilt */
68
- 12%, 22% { transform: scale(1, 1) translate(1px, 0); }
69
- /* Look Left Tilt */
70
- 42%, 50% { transform: scale(1, 1) translate(-1px, 0); }
71
- /* Scratching Lean */
72
- 30%, 36% { transform: scale(1, 1) translate(0.5px, 0); }
73
- /* Deep Yawn Stretch */
74
- 60% { transform: scale(0.95, 1.05) translate(0px, -1px); } /* Stretch up */
75
- 65% { transform: scale(0.9, 1.1) translate(0px, -2px); } /* Peak stretch */
76
- 72% { transform: scale(1.05, 0.95) translate(0px, 1px); } /* Heavy sigh / squash down */
77
- 76% { transform: scale(1, 1) translate(0px, 0px); } /* Recover */
78
- }
79
-
80
- @keyframes shadow-action {
81
- 0%, 8%, 26%, 38%, 55%, 80%, 100% { transform: scaleX(1) translate(0, 0); opacity: 0.5; }
82
- 12%, 22% { transform: scaleX(1) translate(1px, 0); opacity: 0.5; }
83
- 42%, 50% { transform: scaleX(1) translate(-1px, 0); opacity: 0.5; }
84
- 30%, 36% { transform: scaleX(1) translate(0.5px, 0); opacity: 0.5; }
85
- 60% { transform: scaleX(0.95) translate(0, 0); opacity: 0.45; }
86
- 65% { transform: scaleX(0.9) translate(0, 0); opacity: 0.4; }
87
- 72% { transform: scaleX(1.05) translate(0, 0); opacity: 0.55; }
88
- 76% { transform: scaleX(1) translate(0, 0); opacity: 0.5; }
89
- }
90
-
91
- @keyframes eye-track {
92
- 0%, 10%, 25%, 38%, 52%, 58%, 80%, 100% { transform: translate(0px, 0px); }
93
- 12%, 22% { transform: translate(3px, 0px); } /* Look Right */
94
- 42%, 50% { transform: translate(-3px, 0px); } /* Look Left */
95
- 60%, 75% { transform: translate(0px, -1px); } /* Look slightly up during yawn */
96
- }
97
-
98
- @keyframes eye-blink {
99
- 0%, 3%, 7%, 18%, 22%, 43%, 47%, 56%, 83%, 87%, 100% { transform: scaleY(1); }
100
- 5%, 20%, 45%, 85% { transform: scaleY(0.1); } /* Quick Blinks */
101
- /* Yawn Closed Eyes */
102
- 60% { transform: scaleY(1); }
103
- 62%, 72% { transform: scaleY(0.1); } /* Eyes completely shut */
104
- 75% { transform: scaleY(1); }
105
- }
106
-
107
- @keyframes arm-l-idle {
108
- 0%, 28% { transform: translate(0, 0) rotate(0deg); }
109
-
110
- /* Occasional Scratching Sequence (Left Arm) */
111
- 30% { transform: translate(1px, -3px) rotate(15deg); }
112
- 31% { transform: translate(1.5px, -4px) rotate(35deg); } /* Up */
113
- 32% { transform: translate(0.5px, -2.5px) rotate(0deg); } /* Down */
114
- 33% { transform: translate(1.5px, -4px) rotate(35deg); }
115
- 34% { transform: translate(0.5px, -2.5px) rotate(0deg); }
116
- 35% { transform: translate(1.5px, -4px) rotate(35deg); }
117
- 36% { transform: translate(0.5px, -2.5px) rotate(0deg); }
118
-
119
- 38%, 58% { transform: translate(0, 0) rotate(0deg); }
120
-
121
- /* Yawn Stretch */
122
- 62% { transform: translate(-1px, -2px) rotate(45deg); }
123
- 65% { transform: translate(-2px, -3px) rotate(80deg); } /* Full outward stretch */
124
- 72% { transform: translate(0px, 1px) rotate(-15deg); } /* Relax down */
125
- 76%, 100% { transform: translate(0, 0) rotate(0deg); }
126
- }
127
-
128
- @keyframes arm-r-idle {
129
- 0%, 58% { transform: translate(0, 0) rotate(0deg); }
130
- /* Yawn Stretch */
131
- 62% { transform: translate(1px, -2px) rotate(-45deg); }
132
- 65% { transform: translate(2px, -3px) rotate(-80deg); } /* Full outward stretch */
133
- 72% { transform: translate(0px, 1px) rotate(15deg); } /* Relax down */
134
- 76%, 100% { transform: translate(0, 0) rotate(0deg); }
135
- }
136
-
137
- @keyframes yawn-mouth-anim {
138
- 0%, 58%, 76%, 100% { opacity: 0; transform: scale(0.1); }
139
- 60% { opacity: 1; transform: scale(0.5, 0.2); }
140
- 65% { opacity: 1; transform: scale(1.1, 1.4); } /* Wide Open */
141
- 72% { opacity: 1; transform: scale(0.6, 0.4); } /* Shrinking */
142
- 75% { opacity: 0; transform: scale(0.1); }
143
- }
144
-
145
- @keyframes tear-fall {
146
- 0%, 64%, 80%, 100% { opacity: 0; transform: translateY(0); }
147
- 66% { opacity: 1; transform: translateY(0); } /* Appears at corner of eye */
148
- 72% { opacity: 1; transform: translateY(2.5px); } /* Slides down cheek */
149
- 75% { opacity: 0; transform: translateY(3px); } /* Fades out */
150
- }
151
- </style>
152
- </defs>
153
-
154
- <!-- Ground Shadow -->
155
- <rect id="ground-shadow" class="shadow-anim" x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
156
-
157
- <!-- Static Character Legs (extended up to stay connected during yawn stretch) -->
158
- <g id="legs" fill="#DE886D">
159
- <rect id="outer-left-leg" x="3" y="12" width="1" height="3"/>
160
- <rect id="inner-left-leg" x="5" y="12" width="1" height="3"/>
161
- <rect id="inner-right-leg" x="9" y="12" width="1" height="3"/>
162
- <rect id="outer-right-leg" x="11" y="12" width="1" height="3"/>
163
- </g>
164
-
165
- <!-- Animated Upper Body (Combines occasional actions + continuous breathing) -->
166
- <g class="action-body">
167
- <g class="breathe-anim">
168
-
169
- <!-- Torso -->
170
- <rect id="torso" x="2" y="6" width="11" height="7" fill="#DE886D"/>
171
-
172
- <!-- Arms -->
173
- <g class="arm-l">
174
- <rect id="left-arm" x="0" y="9" width="2" height="2" fill="#DE886D"/>
175
- </g>
176
- <g class="arm-r">
177
- <rect id="right-arm" x="13" y="9" width="2" height="2" fill="#DE886D"/>
178
- </g>
179
-
180
- <!-- Yawning Mouth (Hidden usually) -->
181
- <rect class="yawn-mouth" x="6" y="10" width="3" height="2" fill="#000000"/>
182
-
183
- <!-- Eyes Group -->
184
- <g class="eyes-look" fill="#000000">
185
- <g class="eyes-blink">
186
- <rect id="left-eye" x="4" y="8" width="1" height="2"/>
187
- <rect id="right-eye" x="10" y="8" width="1" height="2"/>
188
- </g>
189
- </g>
190
-
191
- <!-- Yawn Tear Drop (A tiny detail for the big stretch) -->
192
- <rect class="yawn-tear" x="3.5" y="10" width="1" height="1" fill="#40C4FF"/>
193
-
194
- </g>
195
- </g>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
+ <defs>
3
+ <style>
4
+ /* 16-Second Master Sequence for Idle Actions */
5
+ .action-body {
6
+ transform-origin: 7.5px 13px; /* Pivot at the base of the torso */
7
+ animation: action-body 16s infinite ease-in-out;
8
+ }
9
+
10
+ /* Continuous Subtle Breathing (Syncs exactly 5 times per 16s loop) */
11
+ .breathe-anim {
12
+ transform-origin: 7.5px 13px;
13
+ animation: breathe 3.2s infinite ease-in-out;
14
+ }
15
+
16
+ /* Shadow shrinking and shifting matching actions */
17
+ .shadow-anim {
18
+ transform-origin: 7.5px 15.5px;
19
+ animation: shadow-action 16s infinite ease-in-out;
20
+ }
21
+
22
+ /* Left Arm (Scratching and Yawn Stretching) */
23
+ .arm-l {
24
+ transform-origin: 1px 10px;
25
+ animation: arm-l-idle 16s infinite ease-in-out;
26
+ }
27
+
28
+ /* Right Arm (Yawn Stretching) */
29
+ .arm-r {
30
+ transform-origin: 14px 10px;
31
+ animation: arm-r-idle 16s infinite ease-in-out;
32
+ }
33
+
34
+ /* Eye Tracking (Looking around) */
35
+ .eyes-look {
36
+ animation: eye-track 16s infinite ease-in-out;
37
+ }
38
+
39
+ /* Occasional Blinks and shutting during Yawn */
40
+ .eyes-blink {
41
+ transform-origin: 7.5px 9px;
42
+ animation: eye-blink 16s infinite linear;
43
+ }
44
+
45
+ /* Yawn Mouth Appearance */
46
+ .yawn-mouth {
47
+ transform-origin: 7.5px 11px;
48
+ animation: yawn-mouth-anim 16s infinite ease-in-out;
49
+ opacity: 0;
50
+ }
51
+
52
+ /* Tiny tear that appears during the big yawn */
53
+ .yawn-tear {
54
+ animation: tear-fall 16s infinite ease-in-out;
55
+ opacity: 0;
56
+ }
57
+
58
+ /* --- Keyframes --- */
59
+
60
+ @keyframes breathe {
61
+ 0%, 100% { transform: scale(1, 1) translate(0, 0); }
62
+ 50% { transform: scale(1.02, 0.98) translate(0, 0.5px); }
63
+ }
64
+
65
+ @keyframes action-body {
66
+ 0%, 8%, 26%, 38%, 55%, 80%, 100% { transform: scale(1, 1) translate(0, 0); }
67
+ /* Look Right Tilt */
68
+ 12%, 22% { transform: scale(1, 1) translate(1px, 0); }
69
+ /* Look Left Tilt */
70
+ 42%, 50% { transform: scale(1, 1) translate(-1px, 0); }
71
+ /* Scratching Lean */
72
+ 30%, 36% { transform: scale(1, 1) translate(0.5px, 0); }
73
+ /* Deep Yawn Stretch */
74
+ 60% { transform: scale(0.95, 1.05) translate(0px, -1px); } /* Stretch up */
75
+ 65% { transform: scale(0.9, 1.1) translate(0px, -2px); } /* Peak stretch */
76
+ 72% { transform: scale(1.05, 0.95) translate(0px, 1px); } /* Heavy sigh / squash down */
77
+ 76% { transform: scale(1, 1) translate(0px, 0px); } /* Recover */
78
+ }
79
+
80
+ @keyframes shadow-action {
81
+ 0%, 8%, 26%, 38%, 55%, 80%, 100% { transform: scaleX(1) translate(0, 0); opacity: 0.5; }
82
+ 12%, 22% { transform: scaleX(1) translate(1px, 0); opacity: 0.5; }
83
+ 42%, 50% { transform: scaleX(1) translate(-1px, 0); opacity: 0.5; }
84
+ 30%, 36% { transform: scaleX(1) translate(0.5px, 0); opacity: 0.5; }
85
+ 60% { transform: scaleX(0.95) translate(0, 0); opacity: 0.45; }
86
+ 65% { transform: scaleX(0.9) translate(0, 0); opacity: 0.4; }
87
+ 72% { transform: scaleX(1.05) translate(0, 0); opacity: 0.55; }
88
+ 76% { transform: scaleX(1) translate(0, 0); opacity: 0.5; }
89
+ }
90
+
91
+ @keyframes eye-track {
92
+ 0%, 10%, 25%, 38%, 52%, 58%, 80%, 100% { transform: translate(0px, 0px); }
93
+ 12%, 22% { transform: translate(3px, 0px); } /* Look Right */
94
+ 42%, 50% { transform: translate(-3px, 0px); } /* Look Left */
95
+ 60%, 75% { transform: translate(0px, -1px); } /* Look slightly up during yawn */
96
+ }
97
+
98
+ @keyframes eye-blink {
99
+ 0%, 3%, 7%, 18%, 22%, 43%, 47%, 56%, 83%, 87%, 100% { transform: scaleY(1); }
100
+ 5%, 20%, 45%, 85% { transform: scaleY(0.1); } /* Quick Blinks */
101
+ /* Yawn Closed Eyes */
102
+ 60% { transform: scaleY(1); }
103
+ 62%, 72% { transform: scaleY(0.1); } /* Eyes completely shut */
104
+ 75% { transform: scaleY(1); }
105
+ }
106
+
107
+ @keyframes arm-l-idle {
108
+ 0%, 28% { transform: translate(0, 0) rotate(0deg); }
109
+
110
+ /* Occasional Scratching Sequence (Left Arm) */
111
+ 30% { transform: translate(1px, -3px) rotate(15deg); }
112
+ 31% { transform: translate(1.5px, -4px) rotate(35deg); } /* Up */
113
+ 32% { transform: translate(0.5px, -2.5px) rotate(0deg); } /* Down */
114
+ 33% { transform: translate(1.5px, -4px) rotate(35deg); }
115
+ 34% { transform: translate(0.5px, -2.5px) rotate(0deg); }
116
+ 35% { transform: translate(1.5px, -4px) rotate(35deg); }
117
+ 36% { transform: translate(0.5px, -2.5px) rotate(0deg); }
118
+
119
+ 38%, 58% { transform: translate(0, 0) rotate(0deg); }
120
+
121
+ /* Yawn Stretch */
122
+ 62% { transform: translate(-1px, -2px) rotate(45deg); }
123
+ 65% { transform: translate(-2px, -3px) rotate(80deg); } /* Full outward stretch */
124
+ 72% { transform: translate(0px, 1px) rotate(-15deg); } /* Relax down */
125
+ 76%, 100% { transform: translate(0, 0) rotate(0deg); }
126
+ }
127
+
128
+ @keyframes arm-r-idle {
129
+ 0%, 58% { transform: translate(0, 0) rotate(0deg); }
130
+ /* Yawn Stretch */
131
+ 62% { transform: translate(1px, -2px) rotate(-45deg); }
132
+ 65% { transform: translate(2px, -3px) rotate(-80deg); } /* Full outward stretch */
133
+ 72% { transform: translate(0px, 1px) rotate(15deg); } /* Relax down */
134
+ 76%, 100% { transform: translate(0, 0) rotate(0deg); }
135
+ }
136
+
137
+ @keyframes yawn-mouth-anim {
138
+ 0%, 58%, 76%, 100% { opacity: 0; transform: scale(0.1); }
139
+ 60% { opacity: 1; transform: scale(0.5, 0.2); }
140
+ 65% { opacity: 1; transform: scale(1.1, 1.4); } /* Wide Open */
141
+ 72% { opacity: 1; transform: scale(0.6, 0.4); } /* Shrinking */
142
+ 75% { opacity: 0; transform: scale(0.1); }
143
+ }
144
+
145
+ @keyframes tear-fall {
146
+ 0%, 64%, 80%, 100% { opacity: 0; transform: translateY(0); }
147
+ 66% { opacity: 1; transform: translateY(0); } /* Appears at corner of eye */
148
+ 72% { opacity: 1; transform: translateY(2.5px); } /* Slides down cheek */
149
+ 75% { opacity: 0; transform: translateY(3px); } /* Fades out */
150
+ }
151
+ </style>
152
+ </defs>
153
+
154
+ <!-- Ground Shadow -->
155
+ <rect id="ground-shadow" class="shadow-anim" x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
156
+
157
+ <!-- Static Character Legs (extended up to stay connected during yawn stretch) -->
158
+ <g id="legs" fill="#DE886D">
159
+ <rect id="outer-left-leg" x="3" y="12" width="1" height="3"/>
160
+ <rect id="inner-left-leg" x="5" y="12" width="1" height="3"/>
161
+ <rect id="inner-right-leg" x="9" y="12" width="1" height="3"/>
162
+ <rect id="outer-right-leg" x="11" y="12" width="1" height="3"/>
163
+ </g>
164
+
165
+ <!-- Animated Upper Body (Combines occasional actions + continuous breathing) -->
166
+ <g class="action-body">
167
+ <g class="breathe-anim">
168
+
169
+ <!-- Torso -->
170
+ <rect id="torso" x="2" y="6" width="11" height="7" fill="#DE886D"/>
171
+
172
+ <!-- Arms -->
173
+ <g class="arm-l">
174
+ <rect id="left-arm" x="0" y="9" width="2" height="2" fill="#DE886D"/>
175
+ </g>
176
+ <g class="arm-r">
177
+ <rect id="right-arm" x="13" y="9" width="2" height="2" fill="#DE886D"/>
178
+ </g>
179
+
180
+ <!-- Yawning Mouth (Hidden usually) -->
181
+ <rect class="yawn-mouth" x="6" y="10" width="3" height="2" fill="#000000"/>
182
+
183
+ <!-- Eyes Group -->
184
+ <g class="eyes-look" fill="#000000">
185
+ <g class="eyes-blink">
186
+ <rect id="left-eye" x="4" y="8" width="1" height="2"/>
187
+ <rect id="right-eye" x="10" y="8" width="1" height="2"/>
188
+ </g>
189
+ </g>
190
+
191
+ <!-- Yawn Tear Drop (A tiny detail for the big stretch) -->
192
+ <rect class="yawn-tear" x="3.5" y="10" width="1" height="1" fill="#40C4FF"/>
193
+
194
+ </g>
195
+ </g>
196
196
  </svg>
@@ -1,115 +1,115 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
- <defs>
3
- <style>
4
- /* 10-Second Idle Loop — Looking Around + Scratching (no yawn) */
5
- .action-body {
6
- transform-origin: 7.5px 13px;
7
- animation: action-body 10s infinite ease-in-out;
8
- }
9
-
10
- .breathe-anim {
11
- transform-origin: 7.5px 13px;
12
- animation: breathe 3.2s infinite ease-in-out;
13
- }
14
-
15
- .shadow-anim {
16
- transform-origin: 7.5px 15.5px;
17
- animation: shadow-action 10s infinite ease-in-out;
18
- }
19
-
20
- .arm-l {
21
- transform-origin: 1px 10px;
22
- animation: arm-l-idle 10s infinite ease-in-out;
23
- }
24
-
25
- .eyes-look {
26
- animation: eye-track 10s infinite ease-in-out;
27
- }
28
-
29
- .eyes-blink {
30
- transform-origin: 7.5px 9px;
31
- animation: eye-blink 10s infinite linear;
32
- }
33
-
34
- /* --- Keyframes --- */
35
-
36
- @keyframes breathe {
37
- 0%, 100% { transform: scale(1, 1) translate(0, 0); }
38
- 50% { transform: scale(1.02, 0.98) translate(0, 0.5px); }
39
- }
40
-
41
- @keyframes action-body {
42
- 0%, 8%, 25%, 30%, 40%, 45%, 60%, 100% { transform: scale(1,1) translate(0,0); }
43
- /* Look Right */
44
- 12%, 22% { transform: scale(1,1) translate(1px, 0); }
45
- /* Look Left */
46
- 48%, 57% { transform: scale(1,1) translate(-1px, 0); }
47
- /* Scratch Lean */
48
- 33%, 38% { transform: scale(1,1) translate(0.5px, 0); }
49
- }
50
-
51
- @keyframes shadow-action {
52
- 0%, 8%, 25%, 30%, 40%, 45%, 60%, 100% { transform: scaleX(1) translate(0,0); opacity: 0.5; }
53
- 12%, 22% { transform: scaleX(1) translate(1px, 0); opacity: 0.5; }
54
- 48%, 57% { transform: scaleX(1) translate(-1px, 0); opacity: 0.5; }
55
- 33%, 38% { transform: scaleX(1) translate(0.5px, 0); opacity: 0.5; }
56
- }
57
-
58
- @keyframes eye-track {
59
- 0%, 10%, 25%, 43%, 60%, 100% { transform: translate(0, 0); }
60
- 12%, 22% { transform: translate(3px, 0); } /* Look Right */
61
- 48%, 57% { transform: translate(-3px, 0); } /* Look Left */
62
- }
63
-
64
- @keyframes eye-blink {
65
- 0%, 3%, 7%, 18%, 22%, 47%, 51%, 78%, 82%, 100% { transform: scaleY(1); }
66
- 5%, 20%, 49%, 80% { transform: scaleY(0.1); }
67
- }
68
-
69
- @keyframes arm-l-idle {
70
- 0%, 30% { transform: translate(0,0) rotate(0deg); }
71
- /* Scratching Sequence */
72
- 33% { transform: translate(1px, -3px) rotate(15deg); }
73
- 34% { transform: translate(1.5px, -4px) rotate(35deg); }
74
- 35% { transform: translate(0.5px, -2.5px) rotate(0deg); }
75
- 36% { transform: translate(1.5px, -4px) rotate(35deg); }
76
- 37% { transform: translate(0.5px, -2.5px) rotate(0deg); }
77
- 38% { transform: translate(1.5px, -4px) rotate(35deg); }
78
- 39% { transform: translate(0.5px, -2.5px) rotate(0deg); }
79
- 42%, 100% { transform: translate(0,0) rotate(0deg); }
80
- }
81
- </style>
82
- </defs>
83
-
84
- <!-- Ground Shadow -->
85
- <rect id="ground-shadow" class="shadow-anim" x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
86
-
87
- <!-- Static Legs -->
88
- <g id="legs" fill="#DE886D">
89
- <rect x="3" y="12" width="1" height="3"/>
90
- <rect x="5" y="12" width="1" height="3"/>
91
- <rect x="9" y="12" width="1" height="3"/>
92
- <rect x="11" y="12" width="1" height="3"/>
93
- </g>
94
-
95
- <!-- Animated Upper Body -->
96
- <g class="action-body">
97
- <g class="breathe-anim">
98
- <!-- Torso -->
99
- <rect id="torso" x="2" y="6" width="11" height="7" fill="#DE886D"/>
100
- <!-- Left Arm (scratches) -->
101
- <g class="arm-l">
102
- <rect x="0" y="9" width="2" height="2" fill="#DE886D"/>
103
- </g>
104
- <!-- Right Arm (static) -->
105
- <rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
106
- <!-- Eyes -->
107
- <g class="eyes-look" fill="#000000">
108
- <g class="eyes-blink">
109
- <rect x="4" y="8" width="1" height="2"/>
110
- <rect x="10" y="8" width="1" height="2"/>
111
- </g>
112
- </g>
113
- </g>
114
- </g>
115
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-15 -25 45 45" width="500" height="500">
2
+ <defs>
3
+ <style>
4
+ /* 10-Second Idle Loop — Looking Around + Scratching (no yawn) */
5
+ .action-body {
6
+ transform-origin: 7.5px 13px;
7
+ animation: action-body 10s infinite ease-in-out;
8
+ }
9
+
10
+ .breathe-anim {
11
+ transform-origin: 7.5px 13px;
12
+ animation: breathe 3.2s infinite ease-in-out;
13
+ }
14
+
15
+ .shadow-anim {
16
+ transform-origin: 7.5px 15.5px;
17
+ animation: shadow-action 10s infinite ease-in-out;
18
+ }
19
+
20
+ .arm-l {
21
+ transform-origin: 1px 10px;
22
+ animation: arm-l-idle 10s infinite ease-in-out;
23
+ }
24
+
25
+ .eyes-look {
26
+ animation: eye-track 10s infinite ease-in-out;
27
+ }
28
+
29
+ .eyes-blink {
30
+ transform-origin: 7.5px 9px;
31
+ animation: eye-blink 10s infinite linear;
32
+ }
33
+
34
+ /* --- Keyframes --- */
35
+
36
+ @keyframes breathe {
37
+ 0%, 100% { transform: scale(1, 1) translate(0, 0); }
38
+ 50% { transform: scale(1.02, 0.98) translate(0, 0.5px); }
39
+ }
40
+
41
+ @keyframes action-body {
42
+ 0%, 8%, 25%, 30%, 40%, 45%, 60%, 100% { transform: scale(1,1) translate(0,0); }
43
+ /* Look Right */
44
+ 12%, 22% { transform: scale(1,1) translate(1px, 0); }
45
+ /* Look Left */
46
+ 48%, 57% { transform: scale(1,1) translate(-1px, 0); }
47
+ /* Scratch Lean */
48
+ 33%, 38% { transform: scale(1,1) translate(0.5px, 0); }
49
+ }
50
+
51
+ @keyframes shadow-action {
52
+ 0%, 8%, 25%, 30%, 40%, 45%, 60%, 100% { transform: scaleX(1) translate(0,0); opacity: 0.5; }
53
+ 12%, 22% { transform: scaleX(1) translate(1px, 0); opacity: 0.5; }
54
+ 48%, 57% { transform: scaleX(1) translate(-1px, 0); opacity: 0.5; }
55
+ 33%, 38% { transform: scaleX(1) translate(0.5px, 0); opacity: 0.5; }
56
+ }
57
+
58
+ @keyframes eye-track {
59
+ 0%, 10%, 25%, 43%, 60%, 100% { transform: translate(0, 0); }
60
+ 12%, 22% { transform: translate(3px, 0); } /* Look Right */
61
+ 48%, 57% { transform: translate(-3px, 0); } /* Look Left */
62
+ }
63
+
64
+ @keyframes eye-blink {
65
+ 0%, 3%, 7%, 18%, 22%, 47%, 51%, 78%, 82%, 100% { transform: scaleY(1); }
66
+ 5%, 20%, 49%, 80% { transform: scaleY(0.1); }
67
+ }
68
+
69
+ @keyframes arm-l-idle {
70
+ 0%, 30% { transform: translate(0,0) rotate(0deg); }
71
+ /* Scratching Sequence */
72
+ 33% { transform: translate(1px, -3px) rotate(15deg); }
73
+ 34% { transform: translate(1.5px, -4px) rotate(35deg); }
74
+ 35% { transform: translate(0.5px, -2.5px) rotate(0deg); }
75
+ 36% { transform: translate(1.5px, -4px) rotate(35deg); }
76
+ 37% { transform: translate(0.5px, -2.5px) rotate(0deg); }
77
+ 38% { transform: translate(1.5px, -4px) rotate(35deg); }
78
+ 39% { transform: translate(0.5px, -2.5px) rotate(0deg); }
79
+ 42%, 100% { transform: translate(0,0) rotate(0deg); }
80
+ }
81
+ </style>
82
+ </defs>
83
+
84
+ <!-- Ground Shadow -->
85
+ <rect id="ground-shadow" class="shadow-anim" x="3" y="15" width="9" height="1" fill="#000000" opacity="0.5"/>
86
+
87
+ <!-- Static Legs -->
88
+ <g id="legs" fill="#DE886D">
89
+ <rect x="3" y="12" width="1" height="3"/>
90
+ <rect x="5" y="12" width="1" height="3"/>
91
+ <rect x="9" y="12" width="1" height="3"/>
92
+ <rect x="11" y="12" width="1" height="3"/>
93
+ </g>
94
+
95
+ <!-- Animated Upper Body -->
96
+ <g class="action-body">
97
+ <g class="breathe-anim">
98
+ <!-- Torso -->
99
+ <rect id="torso" x="2" y="6" width="11" height="7" fill="#DE886D"/>
100
+ <!-- Left Arm (scratches) -->
101
+ <g class="arm-l">
102
+ <rect x="0" y="9" width="2" height="2" fill="#DE886D"/>
103
+ </g>
104
+ <!-- Right Arm (static) -->
105
+ <rect x="13" y="9" width="2" height="2" fill="#DE886D"/>
106
+ <!-- Eyes -->
107
+ <g class="eyes-look" fill="#000000">
108
+ <g class="eyes-blink">
109
+ <rect x="4" y="8" width="1" height="2"/>
110
+ <rect x="10" y="8" width="1" height="2"/>
111
+ </g>
112
+ </g>
113
+ </g>
114
+ </g>
115
+ </svg>