@evatril/video-templates 2.0.9 → 2.0.11

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 (58) hide show
  1. package/package.json +1 -1
  2. package/public/video-images/03022026-bg.webp +0 -0
  3. package/public/video-images/03022026-krishnaradha-2.webp +0 -0
  4. package/public/video-images/03022026-krishnaradha-4.webp +0 -0
  5. package/public/video-images/03022026-krishnaradha-5.webp +0 -0
  6. package/public/video-images/03022026-krishnaradha.webp +0 -0
  7. package/public/video-images/05022026-Duck.webp +0 -0
  8. package/public/video-images/05022026-Flower.webp +0 -0
  9. package/public/video-images/05022026-Ganesh.webp +0 -0
  10. package/public/video-images/05022026-HangingJumar.webp +0 -0
  11. package/public/video-images/05022026-HangingLamps.webp +0 -0
  12. package/public/video-images/05022026-LeftPeacock.webp +0 -0
  13. package/public/video-images/05022026-Nameplate.webp +0 -0
  14. package/public/video-images/05022026-bg-2.webp +0 -0
  15. package/public/video-images/05022026-bg-3.webp +0 -0
  16. package/public/video-images/05022026-bg-4.webp +0 -0
  17. package/public/video-images/05022026-bg.webp +0 -0
  18. package/public/video-images/20012026-bg.webp +0 -0
  19. package/public/video-images/20012026-bride.webp +0 -0
  20. package/public/video-images/20012026-butterfly.webp +0 -0
  21. package/public/video-images/20012026-couple-walk.webp +0 -0
  22. package/public/video-images/20012026-curtain-floral.webp +0 -0
  23. package/public/video-images/20012026-floral-left.webp +0 -0
  24. package/public/video-images/20012026-floral-right.webp +0 -0
  25. package/public/video-images/20012026-groom.webp +0 -0
  26. package/public/video-images/20012026-opening-gate.webp +0 -0
  27. package/public/video-images/20012026-peacock.webp +0 -0
  28. package/public/video-images/20012026-tree-left.webp +0 -0
  29. package/public/video-images/20012026-tree-right.webp +0 -0
  30. package/public/video-images/20012026-wedding-gate.webp +0 -0
  31. package/public/video-images/28012026-Heart.webp +0 -0
  32. package/public/video-images/28012026-PinkLeaf.webp +0 -0
  33. package/src/Invitations/Elements/BlowingLeaves28012026.jsx +28 -22
  34. package/src/Invitations/Elements/CoupleWalk20012026.jsx +2 -2
  35. package/src/Invitations/Elements/FlowerReveal_TL_BR_28012026.jsx +2 -3
  36. package/src/Invitations/Elements/FlowersSide20012026.jsx +45 -52
  37. package/src/Invitations/Elements/GroomBrideLoveScene20012026.jsx +27 -28
  38. package/src/Invitations/Elements/HeartFlight28012026.jsx +91 -4
  39. package/src/Invitations/Elements/PeacockDance20012026.jsx +1 -1
  40. package/src/Invitations/Elements/SideTrees20012026.jsx +11 -23
  41. package/src/Invitations/Frames/F03022026_01.jsx +4 -5
  42. package/src/Invitations/Frames/F03022026_02.jsx +2 -4
  43. package/src/Invitations/Frames/F03022026_03.jsx +2 -3
  44. package/src/Invitations/Frames/F03022026_04.jsx +2 -3
  45. package/src/Invitations/Frames/F03022026_05.jsx +5 -5
  46. package/src/Invitations/Frames/F05022026_01.jsx +2 -2
  47. package/src/Invitations/Frames/F20012026_01.jsx +58 -8
  48. package/src/Invitations/Frames/F20012026_02.jsx +3 -2
  49. package/src/Invitations/Frames/F20012026_03.jsx +191 -207
  50. package/src/Invitations/Frames/F20012026_04.jsx +282 -0
  51. package/src/Invitations/Frames/F28012026_03.jsx +1 -1
  52. package/src/Invitations/Frames/F28012026_04.jsx +1 -2
  53. package/src/Invitations/Themes/T03022026_01.jsx +21 -20
  54. package/src/Invitations/Themes/T05022026_01.jsx +3 -3
  55. package/src/Invitations/Themes/T20012026_01.jsx +70 -42
  56. package/src/Invitations/Themes/T28012026_01.jsx +4 -3
  57. package/src/compositions.jsx +8 -8
  58. package/src/fonts/registerFonts.js +3 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evatril/video-templates",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "remotion": {
@@ -1,22 +1,24 @@
1
1
  import React, { useMemo } from "react";
2
- import { useCurrentFrame, useVideoConfig, interpolate } from "remotion";
2
+ import { useCurrentFrame, useVideoConfig, interpolate, Img, staticFile } from "remotion";
3
3
 
4
- export const BlowingLeaves28012026 = ({ startAfter = 2, count = 30 }) => {
4
+ export const BlowingLeaves28012026 = ({ startAfter = 2, count = 5 }) => {
5
5
  const frame = useCurrentFrame();
6
6
  const { fps = 30 } = useVideoConfig();
7
7
 
8
8
  const delayFrames = fps * startAfter;
9
+ const leafSrc = staticFile("video-images/28012026-PinkLeaf.webp");
9
10
 
10
- // 🍃 Generate leaves once
11
+ // 🍃 Generate leaves once (ULTRA SLOW SETTINGS)
11
12
  const leaves = useMemo(() => {
12
13
  return Array.from({ length: count }).map(() => ({
13
14
  x: Math.random() * 100,
14
15
  y: Math.random() * 100,
15
- size: 20 + Math.random() * 25,
16
- speedX: 0.3 + Math.random() * 0.8,
17
- speedY: 0.1 + Math.random() * 0.4,
18
- drift: 40 + Math.random() * 80,
19
- rotateSpeed: 0.3 + Math.random() * 1,
16
+ size: 40 + Math.random() * 25,
17
+
18
+ // 🌿 VERY slow speeds
19
+ speedX: 1 + Math.random() * 1, // % per second
20
+ speedY: 0.1 + Math.random() * 0.1, // % per second
21
+
20
22
  phase: Math.random() * 200,
21
23
  }));
22
24
  }, [count]);
@@ -24,33 +26,39 @@ export const BlowingLeaves28012026 = ({ startAfter = 2, count = 30 }) => {
24
26
  return (
25
27
  <>
26
28
  {leaves.map((l, i) => {
27
- const local = frame - delayFrames;
29
+ const local = Math.max(0, frame - delayFrames);
30
+
31
+ // ⭐ Convert frame → seconds (IMPORTANT)
32
+ const time = local / fps;
28
33
 
29
- const appear = interpolate(local, [0, fps], [0, 1], {
34
+ const appear = interpolate(local, [0, fps * 2], [0, 1], {
30
35
  extrapolateLeft: "clamp",
31
36
  extrapolateRight: "clamp",
32
37
  });
33
38
 
34
- // Horizontal flow
35
- const moveX = ((local * l.speedX + l.phase) % 120) - 10;
39
+ // 🌿 Slow horizontal blowing
40
+ const moveX = ((l.x + time * l.speedX + l.phase) % 120) - 10;
36
41
 
37
- // Gentle vertical float
42
+ // 🌿 Gentle floating vertical
38
43
  const moveY =
39
44
  l.y +
40
- Math.sin((local + l.phase) / 40) * 20 +
41
- local * l.speedY;
45
+ Math.sin((time * 2 + l.phase) / 2) * 10 +
46
+ time * l.speedY;
42
47
 
43
- // Rotation
44
- const rotate = Math.sin((local + l.phase) / 30) * 25;
48
+ // 🌿 Super slow rotation
49
+ const rotate =
50
+ Math.sin((time + l.phase) / 2) * 15;
45
51
 
46
52
  return (
47
- <div
53
+ <Img
48
54
  key={i}
55
+ src={leafSrc}
49
56
  style={{
50
57
  position: "absolute",
51
58
  left: `${moveX}%`,
52
59
  top: `${moveY % 110}%`,
53
- fontSize: l.size,
60
+ width: l.size,
61
+ height: "auto",
54
62
  opacity: appear,
55
63
  transform: `
56
64
  translate(-50%, -50%)
@@ -58,9 +66,7 @@ export const BlowingLeaves28012026 = ({ startAfter = 2, count = 30 }) => {
58
66
  `,
59
67
  pointerEvents: "none",
60
68
  }}
61
- >
62
- 🍁
63
- </div>
69
+ />
64
70
  );
65
71
  })}
66
72
  </>
@@ -13,7 +13,7 @@ export const CoupleWalk20012026 = () => {
13
13
  const { fps, height } = useVideoConfig();
14
14
 
15
15
  /* -----------------------------⏳ WALK SETTINGS ------------------------------*/
16
- const delaySeconds = 0.5;
16
+ const delaySeconds = 0;
17
17
  const walkDurationSeconds = 5;
18
18
  const delayFrames = fps * delaySeconds;
19
19
  const walkFrames = fps * walkDurationSeconds;
@@ -56,7 +56,7 @@ export const CoupleWalk20012026 = () => {
56
56
 
57
57
  {/* 👰🤵 COUPLE (BOTTOM-CENTER) */}
58
58
  <Img
59
- src={staticFile("video-images/20012026-couple-walk.png")}
59
+ src={staticFile("video-images/20012026-couple-walk.webp")}
60
60
  style={{
61
61
  position: "absolute",
62
62
  left: "50%",
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import {
3
3
  Img,
4
- staticFile,
5
4
  useCurrentFrame,
6
5
  useVideoConfig,
7
6
  interpolate,
@@ -74,7 +73,7 @@ export const FlowerReveal_TL_BR_28012026 = ({ startAfter = 0 }) => {
74
73
  <>
75
74
  {/* 🌸 TOP LEFT */}
76
75
  <Img
77
- src={staticFile("video-images/28012026-TopLeftFlower.webp")}
76
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/28012026-TopLeftFlower.webp"
78
77
  style={{
79
78
  position: "absolute",
80
79
  top: "-170px",
@@ -93,7 +92,7 @@ export const FlowerReveal_TL_BR_28012026 = ({ startAfter = 0 }) => {
93
92
 
94
93
  {/* 🌸 BOTTOM RIGHT */}
95
94
  <Img
96
- src={staticFile("video-images/28012026-BottomRightFlower.webp")}
95
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/28012026-BottomRightFlower.webp"
97
96
  style={{
98
97
  position: "absolute",
99
98
  bottom: "-300px",
@@ -9,7 +9,7 @@ import {
9
9
  } from "remotion";
10
10
 
11
11
  /* 🌸 FALLING EMOJI FLOWER – MULTI LINE */
12
- const FallingEmojiFlower = ({ index, row = 0, startAfter = 6 }) => {
12
+ const FallingEmojiFlower = ({ index, row = 0, startAfter = 0 }) => {
13
13
  const frame = useCurrentFrame();
14
14
  const { height, width, fps } = useVideoConfig();
15
15
 
@@ -20,7 +20,7 @@ const FallingEmojiFlower = ({ index, row = 0, startAfter = 6 }) => {
20
20
  const baseX =
21
21
  width / 2 - stripWidth / 2 + ((index * 50) % stripWidth);
22
22
 
23
- /* 🌸 ROW OFFSET (2–3 LINES) */
23
+ /* 🌸 ROW OFFSET */
24
24
  const rowOffsetY = row * 60;
25
25
 
26
26
  const individualDelay = index * 10 + row * 15;
@@ -28,15 +28,10 @@ const FallingEmojiFlower = ({ index, row = 0, startAfter = 6 }) => {
28
28
 
29
29
  const localFrame = frame - delayFrames - individualDelay;
30
30
 
31
- const progress = interpolate(
32
- localFrame,
33
- [0, duration],
34
- [0, 1],
35
- {
36
- extrapolateLeft: "clamp",
37
- extrapolateRight: "clamp",
38
- }
39
- );
31
+ const progress = interpolate(localFrame, [0, duration], [0, 1], {
32
+ extrapolateLeft: "clamp",
33
+ extrapolateRight: "clamp",
34
+ });
40
35
 
41
36
  const translateY = interpolate(
42
37
  progress,
@@ -51,24 +46,22 @@ const FallingEmojiFlower = ({ index, row = 0, startAfter = 6 }) => {
51
46
 
52
47
  const rotate = progress * 360;
53
48
 
54
- // ❌ Do not render before start or after finish
55
49
  if (localFrame < 0 || localFrame > duration) return null;
56
50
 
57
51
  return (
58
- <div
52
+ <Img
53
+ src={staticFile("video-images/05022026-Flower.webp")}
59
54
  style={{
60
55
  position: "absolute",
61
56
  left: baseX,
62
57
  top: translateY,
63
- fontSize: 44,
64
- opacity: 0.85,
58
+ width: "10%",
59
+ opacity: 0.9,
65
60
  transform: `translateX(${sway}px) rotate(${rotate}deg)`,
66
61
  pointerEvents: "none",
67
62
  userSelect: "none",
68
63
  }}
69
- >
70
- {["🌸", "🌺"][index % 2]}
71
- </div>
64
+ />
72
65
  );
73
66
  };
74
67
 
@@ -77,18 +70,18 @@ export const FlowersSide20012026 = ({ startAfter = 1 }) => {
77
70
  const { fps } = useVideoConfig();
78
71
 
79
72
  const delayFrames = fps * startAfter;
80
- const revealDuration = fps * 2.5; // ⏱ 2 seconds
73
+ const revealDuration = fps * 2.5; // ⏱ 2 seconds
81
74
 
82
- const revealProgress = interpolate(
83
- frame - delayFrames,
84
- [0, revealDuration],
85
- [0, 1],
86
- {
87
- extrapolateLeft: "clamp",
88
- extrapolateRight: "clamp",
89
- easing: Easing.out(Easing.cubic),
90
- }
91
- );
75
+ const revealProgress = interpolate(
76
+ frame - delayFrames,
77
+ [0, revealDuration],
78
+ [0, 1],
79
+ {
80
+ extrapolateLeft: "clamp",
81
+ extrapolateRight: "clamp",
82
+ easing: Easing.out(Easing.cubic),
83
+ }
84
+ );
92
85
 
93
86
  return (
94
87
  <>
@@ -105,36 +98,36 @@ const revealProgress = interpolate(
105
98
  )}
106
99
  {/* 🌸 LEFT FLOWER DECOR */}
107
100
  <Img
108
- src={staticFile("video-images/20012026-floral-left.png")}
109
- style={{
110
- position: "absolute",
111
- left: 0,
112
- bottom: 370,
113
- width: "100%",
114
- opacity: revealProgress,
115
- transform: `
101
+ src={staticFile("video-images/20012026-floral-left.webp")}
102
+ style={{
103
+ position: "absolute",
104
+ left: 0,
105
+ bottom: 370,
106
+ width: "100%",
107
+ opacity: revealProgress,
108
+ transform: `
116
109
  translateX(${interpolate(revealProgress, [0, 1], [-120, -30])}px)
117
110
  scale(${interpolate(revealProgress, [0, 1], [0.96, 1])})
118
111
  `,
119
- pointerEvents: "none",
120
- }}
121
- />
112
+ pointerEvents: "none",
113
+ }}
114
+ />
122
115
  {/* 🌸 RIGHT FLOWER DECOR */}
123
- <Img
124
- src={staticFile("video-images/20012026-floral-right.png")}
125
- style={{
126
- position: "absolute",
127
- right: 0,
128
- bottom: 370,
129
- width: "100%",
130
- opacity: revealProgress,
131
- transform: `
116
+ <Img
117
+ src={staticFile("video-images/20012026-floral-right.webp")}
118
+ style={{
119
+ position: "absolute",
120
+ right: 0,
121
+ bottom: 370,
122
+ width: "100%",
123
+ opacity: revealProgress,
124
+ transform: `
132
125
  translateX(${interpolate(revealProgress, [0, 1], [120, 30])}px)
133
126
  scale(${interpolate(revealProgress, [0, 1], [0.96, 1])})
134
127
  `,
135
- pointerEvents: "none",
136
- }}
137
- />
128
+ pointerEvents: "none",
129
+ }}
130
+ />
138
131
 
139
132
  </>
140
133
  );
@@ -8,7 +8,7 @@ import {
8
8
  Easing,
9
9
  } from "remotion";
10
10
 
11
- export const GroomBrideLoveScene20012026 = ({ startAfter = 3.5}) => {
11
+ export const GroomBrideLoveScene20012026 = ({ startAfter = 3.5 }) => {
12
12
  const frame = useCurrentFrame();
13
13
  const { fps, width } = useVideoConfig();
14
14
 
@@ -60,10 +60,10 @@ export const GroomBrideLoveScene20012026 = ({ startAfter = 3.5}) => {
60
60
  const depthScale = 1 + Math.sin(walkFrame / 18) * 0.03;
61
61
  const rotateZ = Math.sin(walkFrame / 30) * 1.2;
62
62
 
63
- /* ---------------- BRIDE TURN (SAFE FLIP) ---------------- */
64
- const meetFrame = walkDelay + walkDuration;
65
- const brideTurnDuration = fps * 0.6;
66
- const brideFlip = interpolate(
63
+ /* ---------------- BRIDE TURN (SAFE FLIP) ---------------- */
64
+ const meetFrame = walkDelay + walkDuration;
65
+ const brideTurnDuration = fps * 0.6;
66
+ const brideFlip = interpolate(
67
67
  frame,
68
68
  [meetFrame, meetFrame + brideTurnDuration],
69
69
  [1, -1], // RIGHT → LEFT
@@ -75,12 +75,12 @@ const brideFlip = interpolate(
75
75
  );
76
76
 
77
77
  /* ---------------- LOVE EMOJI ---------------- */
78
- const loveStart = meetFrame + brideTurnDuration;
78
+ const loveStart = meetFrame + brideTurnDuration;
79
79
  return (
80
80
  <>
81
81
  {/* 🤵 GROOM (SHOW → PAUSE → WALK) */}
82
82
  <Img
83
- src={staticFile("video-images/20012026-groom.png")}
83
+ src={staticFile("video-images/20012026-groom.webp")}
84
84
  style={{
85
85
  position: "absolute",
86
86
  bottom: 0,
@@ -97,20 +97,20 @@ const brideFlip = interpolate(
97
97
  />
98
98
 
99
99
  {/* 👰 BRIDE (FIXED, SHOWS SAME TIME) */}
100
- <Img
101
- src={staticFile("video-images/20012026-bride.png")}
102
- style={{
103
- position: "absolute",
104
- bottom: 0,
105
- width: "40%",
106
- opacity,
107
- transform: `
100
+ <Img
101
+ src={staticFile("video-images/20012026-bride.webp")}
102
+ style={{
103
+ position: "absolute",
104
+ bottom: 0,
105
+ width: "40%",
106
+ opacity,
107
+ transform: `
108
108
  translateX(${brideX}px)
109
109
  scaleX(${brideFlip})
110
110
  `,
111
- transformOrigin: "bottom center",
112
- }}
113
- />
111
+ transformOrigin: "bottom center",
112
+ }}
113
+ />
114
114
  {/* ❤️ MULTIPLE FLOATING LOVE EMOJIS */}
115
115
  {frame > loveStart &&
116
116
  Array.from({ length: 16 }).map((_, i) => {
@@ -134,28 +134,27 @@ const brideFlip = interpolate(
134
134
  );
135
135
 
136
136
  const spreadX =
137
- brideX + 60 + Math.sin(i * 35) * 100;
137
+ brideX + 60 + Math.sin(i * 35) * 100;
138
138
 
139
139
  const scale = 0.7 + (i % 5) * 0.12;
140
140
 
141
141
  return (
142
- <div
143
- key={i}
142
+ <Img
143
+ key={i}
144
+ src={staticFile("video-images/28012026-Heart.webp")}
144
145
  style={{
145
146
  position: "absolute",
146
147
  bottom: "30%",
147
148
  left: spreadX,
148
- fontSize: 66,
149
+ width: 60,
149
150
  opacity: emojiOpacity,
150
151
  transform: `
151
- translateY(${floatY}px)
152
- scale(${scale})
153
- `,
152
+ translateY(${floatY}px)
153
+ scale(${scale})
154
+ `,
154
155
  pointerEvents: "none",
155
156
  }}
156
- >
157
- 💖
158
- </div>
157
+ />
159
158
  );
160
159
  })}
161
160
  </>
@@ -1,9 +1,91 @@
1
+ // import React from "react";
2
+ // import { useCurrentFrame, useVideoConfig, interpolate, Easing } from "remotion";
3
+
4
+ // export const HeartFlight28012026 = ({
5
+ // emoji = "💖",
6
+ // startAfter = 3,
7
+ // }) => {
8
+ // const frame = useCurrentFrame();
9
+ // const { fps, width, height } = useVideoConfig();
10
+
11
+ // const GLOBAL_DELAY = fps * startAfter;
12
+
13
+ // const hearts = [
14
+ // { sx: 0.1, sy: 0.9, ex: 0.8, ey: 0.2, delay: 0 },
15
+ // { sx: 0.9, sy: 0.85, ex: 0.2, ey: 0.1, delay: 20 },
16
+ // { sx: 0.3, sy: 1.0, ex: 0.7, ey: 0.3, delay: 40 },
17
+ // { sx: 0.4, sy: 0.9, ex: 0.8, ey: 0.2, delay: 10 },
18
+ // { sx: 0.5, sy: 0.85, ex: 0.2, ey: 0.1, delay: 30 },
19
+ // { sx: 0.8, sy: 1.0, ex: 0.7, ey: 0.3, delay: 50 },
20
+ // ];
21
+
22
+ // return (
23
+ // <>
24
+ // {hearts.map((h, i) => {
25
+ // const localFrame = frame - GLOBAL_DELAY - h.delay;
26
+
27
+ // const progress = interpolate(localFrame, [0, fps * 6], [0, 1], {
28
+ // extrapolateLeft: "clamp",
29
+ // extrapolateRight: "clamp",
30
+ // easing: Easing.inOut(Easing.ease),
31
+ // });
32
+
33
+ // const x = interpolate(progress, [0, 1], [
34
+ // h.sx * width,
35
+ // h.ex * width,
36
+ // ]);
37
+
38
+ // const y =
39
+ // interpolate(progress, [0, 1], [
40
+ // h.sy * height,
41
+ // h.ey * height,
42
+ // ]) +
43
+ // Math.sin(frame / 10 + i * 20) * 25;
44
+
45
+ // const scale = interpolate(progress, [0, 0.1, 0.9, 1], [0, 1, 1, 0.6]);
46
+
47
+ // const opacity = progress > 0.05 && progress < 0.95 ? 1 : 0;
48
+
49
+ // return (
50
+ // <div
51
+ // key={i}
52
+ // style={{
53
+ // position: "absolute",
54
+ // left: x,
55
+ // top: y,
56
+ // fontSize: 70,
57
+ // opacity,
58
+ // transform: `
59
+ // translate(-50%, -50%)
60
+ // scale(${scale})
61
+ // rotate(${Math.sin(localFrame / 15 + i) * 15}deg)
62
+ // `,
63
+ // pointerEvents: "none",
64
+ // }}
65
+ // >
66
+ // {emoji}
67
+ // </div>
68
+ // );
69
+ // })}
70
+ // </>
71
+ // );
72
+ // };
73
+
74
+
75
+
1
76
  import React from "react";
2
- import { useCurrentFrame, useVideoConfig, interpolate, Easing } from "remotion";
77
+ import {
78
+ useCurrentFrame,
79
+ useVideoConfig,
80
+ interpolate,
81
+ Easing,
82
+ Img,
83
+ staticFile,
84
+ } from "remotion";
3
85
 
4
86
  export const HeartFlight28012026 = ({
5
- emoji = "💖",
6
87
  startAfter = 3,
88
+ heartImage = "heart.png", // image file name from public folder
7
89
  }) => {
8
90
  const frame = useCurrentFrame();
9
91
  const { fps, width, height } = useVideoConfig();
@@ -53,7 +135,6 @@ export const HeartFlight28012026 = ({
53
135
  position: "absolute",
54
136
  left: x,
55
137
  top: y,
56
- fontSize: 70,
57
138
  opacity,
58
139
  transform: `
59
140
  translate(-50%, -50%)
@@ -63,7 +144,13 @@ export const HeartFlight28012026 = ({
63
144
  pointerEvents: "none",
64
145
  }}
65
146
  >
66
- {emoji}
147
+ <Img
148
+ src={staticFile("video-images/28012026-Heart.webp")}
149
+ style={{
150
+ width: 70,
151
+ height: 70,
152
+ }}
153
+ />
67
154
  </div>
68
155
  );
69
156
  })}
@@ -51,7 +51,7 @@ export const PeacockDance20012026 = ({
51
51
 
52
52
  return (
53
53
  <Img
54
- src={staticFile("video-images/20012026-peacock.png")}
54
+ src={staticFile("video-images/20012026-peacock.webp")}
55
55
  style={{
56
56
  position: "absolute",
57
57
  top: "55%",