@evatril/video-templates 2.0.10 → 2.0.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evatril/video-templates",
3
- "version": "2.0.10",
3
+ "version": "2.0.12",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "remotion": {
@@ -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",
@@ -31,7 +31,7 @@ export const SideTrees20012026 = ({ startAfter = 1 }) => {
31
31
  const leftTreeX = interpolate(
32
32
  frame,
33
33
  [delay, delay + duration],
34
- [-600, -380], // hidden → edge
34
+ [-600, -370],
35
35
  {
36
36
  extrapolateLeft: "clamp",
37
37
  extrapolateRight: "clamp",
@@ -42,7 +42,7 @@ export const SideTrees20012026 = ({ startAfter = 1 }) => {
42
42
  const rightTreeX = interpolate(
43
43
  frame,
44
44
  [delay, delay + duration],
45
- [600, 380], // hidden → edge
45
+ [600, 200],
46
46
  {
47
47
  extrapolateLeft: "clamp",
48
48
  extrapolateRight: "clamp",
@@ -50,53 +50,41 @@ export const SideTrees20012026 = ({ startAfter = 1 }) => {
50
50
  }
51
51
  );
52
52
 
53
- /* ---------------- 🌬️ TREE SWING (WIND) ---------------- */
54
- const swingSpeed = 20; // higher = slower swing
55
- const swingAngle = 2; // degrees (keep small)
56
-
57
- const swing =
53
+ /* ---------------- 🍃 LEAF SWAY ONLY ---------------- */
54
+ const leafSway =
58
55
  frame > delay
59
- ? Math.sin((frame - delay) / swingSpeed) * swingAngle
60
- : 0;
61
-
62
- const swayX =
63
- frame > delay
64
- ? Math.sin((frame - delay) / (swingSpeed * 1.3)) * 6
56
+ ? Math.sin((frame - delay) / 28) * 8 // adjust 8 for more/less sway
65
57
  : 0;
66
58
 
67
59
  return (
68
60
  <>
69
61
  {/* 🌳 LEFT TREE */}
70
62
  <Img
71
- src={staticFile("video-images/20012026-tree-left.webp")}
63
+ src={staticFile("video-images/20012026-tree-left1.webp")}
72
64
  style={{
73
65
  position: "absolute",
74
66
  left: 0,
75
67
  bottom: 0,
76
- height: "100%",
68
+ width: "100%",
77
69
  opacity,
78
70
  transform: `
79
- translateX(${leftTreeX + swayX}px)
80
- rotate(${swing}deg)
71
+ translateX(${leftTreeX + leafSway}px)
81
72
  `,
82
- transformOrigin: "bottom left", // 🌳 root fixed
83
73
  }}
84
74
  />
85
75
 
86
76
  {/* 🌳 RIGHT TREE */}
87
77
  <Img
88
- src={staticFile("video-images/20012026-tree-right.webp")}
78
+ src={staticFile("video-images/20012026-tree-right1.png")}
89
79
  style={{
90
80
  position: "absolute",
91
81
  right: 0,
92
- bottom: 0,
93
- height: "100%",
82
+ bottom: "-25%",
83
+ height: "80%",
94
84
  opacity,
95
85
  transform: `
96
- translateX(${rightTreeX - swayX}px)
97
- rotate(${-swing}deg)
86
+ translateX(${rightTreeX - leafSway}px)
98
87
  `,
99
- transformOrigin: "bottom right", // 🌳 root fixed
100
88
  }}
101
89
  />
102
90
  </>
@@ -2,7 +2,6 @@ import React from "react";
2
2
  import {
3
3
  AbsoluteFill,
4
4
  Img,
5
- staticFile,
6
5
  useCurrentFrame,
7
6
  useVideoConfig,
8
7
  interpolate,
@@ -64,7 +63,7 @@ export const F03022026_01 = () => {
64
63
  // Scene timing
65
64
  const sceneDuration = fps * 5;
66
65
 
67
- // Exit starts near end
66
+ // Exit starts near end
68
67
  const exitStart = sceneDuration - fps * 1;
69
68
 
70
69
  // Wedding exit
@@ -151,7 +150,7 @@ export const F03022026_01 = () => {
151
150
  }}
152
151
  >
153
152
  <Img
154
- src={staticFile("video-images/03022026-krishnaradha.webp")}
153
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha.webp"
155
154
  style={{
156
155
  position: "absolute",
157
156
  top: "40%",
@@ -211,4 +210,4 @@ export const F03022026_01 = () => {
211
210
 
212
211
  </AbsoluteFill>
213
212
  );
214
- };
213
+ };
@@ -6,7 +6,6 @@ import {
6
6
  useVideoConfig,
7
7
  interpolate,
8
8
  Easing,
9
- staticFile,
10
9
  } from "remotion";
11
10
  import { WordReveal28012026 } from "../Elements/WordReveal28012026";
12
11
 
@@ -153,7 +152,6 @@ export const F03022026_02 = ({
153
152
  overflow: "hidden",
154
153
  }}
155
154
  >
156
-
157
155
  <div
158
156
  style={{
159
157
  position: "absolute",
@@ -164,7 +162,7 @@ export const F03022026_02 = ({
164
162
  }}
165
163
  >
166
164
  <Img
167
- src={staticFile("video-images/03022026-krishnaradha-2.webp")}
165
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha-2.webp"
168
166
  style={{
169
167
  position: "absolute",
170
168
  bottom: "-15%",
@@ -202,7 +200,7 @@ export const F03022026_02 = ({
202
200
  overflowWrap: "break-word",
203
201
  lineHeight: "1.2",
204
202
  }}
205
- >
203
+ >
206
204
  <h1
207
205
  style={{
208
206
  fontFamily: "Dancing Script",
@@ -6,7 +6,6 @@ import {
6
6
  interpolate,
7
7
  Easing,
8
8
  Img,
9
- staticFile,
10
9
  } from "remotion";
11
10
 
12
11
  export const F03022026_03 = ({
@@ -254,11 +253,11 @@ export const F03022026_03 = ({
254
253
 
255
254
  {secondPhoto && (
256
255
  <div
257
- style={{
256
+ style={{
258
257
  position: "absolute",
259
258
  bottom: "10%",
260
259
  right: "8%",
261
- width: 420,
260
+ width: 420,
262
261
  height: 420,
263
262
  zIndex: 2,
264
263
  transform: `translateX(${secondPhotoX + exitRightX}px)`,
@@ -6,7 +6,6 @@ import {
6
6
  interpolate,
7
7
  Easing,
8
8
  Img,
9
- staticFile,
10
9
  } from "remotion";
11
10
 
12
11
  export const F03022026_04 = ({
@@ -171,12 +170,12 @@ export const F03022026_04 = ({
171
170
  }}
172
171
  >
173
172
  <Img
174
- src={staticFile("video-images/03022026-krishnaradha-41.webp")}
173
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha-4.webp"
175
174
  style={{
176
175
  position: "absolute",
177
176
  left: "50%",
178
177
  bottom: "-12%",
179
- width: "80%",
178
+ width: "80%",
180
179
  transform: `
181
180
  translate(-50%, ${translateY}px)
182
181
  translateX(${sway}px)
@@ -6,7 +6,6 @@ import {
6
6
  useVideoConfig,
7
7
  interpolate,
8
8
  Easing,
9
- staticFile,
10
9
  } from "remotion";
11
10
  import { WordReveal28012026 } from "../Elements/WordReveal28012026";
12
11
 
@@ -159,7 +158,7 @@ export const F03022026_05 = ({
159
158
  }}
160
159
  >
161
160
  <Img
162
- src={staticFile("video-images/03022026-krishnaradha-52.webp")}
161
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/03022026-krishnaradha-5.webp"
163
162
  style={{
164
163
  position: "absolute",
165
164
  top: "40%",
@@ -179,7 +178,7 @@ export const F03022026_05 = ({
179
178
  display: "flex",
180
179
  justifyContent: "center",
181
180
  alignItems: "center",
182
- opacity: msgOpacity * msgExitOpacity,
181
+ opacity: msgOpacity * msgExitOpacity,
183
182
  transform: `translateY(-20%) translateY(${msgY + msgExitY}px)`,
184
183
  }}
185
184
  >
@@ -78,7 +78,7 @@ export const F20012026_01 = ({
78
78
  easing: Easing.out(Easing.cubic),
79
79
  }
80
80
  ),
81
-
81
+
82
82
  translateY: interpolate(
83
83
  frame,
84
84
  [start, end],
@@ -58,6 +58,49 @@ export const F20012026_02 = ({
58
58
  { extrapolateRight: "clamp", easing: Easing.out(Easing.ease) }
59
59
  );
60
60
 
61
+ /* ================= PEACOCK ANIMATION ================= */
62
+
63
+ const peacockTranslateY = interpolate(
64
+ frame,
65
+ [showImageAfter, showImageAfter + fps],
66
+ [40, 0], // moves slightly upward while appearing
67
+ {
68
+ extrapolateRight: "clamp",
69
+ easing: Easing.out(Easing.ease),
70
+ }
71
+ );
72
+
73
+ /* ================= PEACOCK WALK ANIMATION ================= */
74
+
75
+ const walkStart = showImageAfter;
76
+ /* ================= PEACOCK HEAD + FEATHER SWING ================= */
77
+
78
+ // Head swing (faster small movement)
79
+ const headSwing = Math.sin(frame * 0.12) * 1;
80
+ // -4° to +4° rotation
81
+
82
+ // Feather sway (slow royal movement)
83
+ const featherSwing = Math.sin(frame * 0.06) * 6;
84
+ // -6px to +6px movement
85
+
86
+
87
+ // Small bounce for walking feel
88
+ const peacockBounce = interpolate(
89
+ frame,
90
+ [walkStart, walkStart + fps * 0.3, walkStart + fps * 0.6, walkStart + fps * 0.9],
91
+ [0, -6, 0, -6],
92
+ { extrapolateRight: "clamp" }
93
+ );
94
+
95
+ // Fade in same time as curtain
96
+ const peacockOpacity = interpolate(
97
+ frame,
98
+ [showImageAfter, showImageAfter + fps],
99
+ [0, 1],
100
+ { extrapolateRight: "clamp" }
101
+ );
102
+
103
+
61
104
  return (
62
105
  <AbsoluteFill
63
106
  style={{
@@ -67,20 +110,41 @@ export const F20012026_02 = ({
67
110
  >
68
111
  {/* Curtain */}
69
112
  <Img
70
- src={staticFile("video-images/20012026-curtain-floral.webp")}
113
+ src={staticFile("video-images/20012026-curtain-floral3.webp")}
71
114
  style={{
72
115
  position: "absolute",
116
+ top: "-14%",
73
117
  left: "50%",
74
118
  width: "100%",
119
+ height: "100%",
75
120
  opacity: imageOpacity,
76
121
  transform: `translateX(-50%) scale(${imageScale})`,
77
122
  willChange: "transform, opacity",
78
123
  }}
79
124
  />
80
125
 
126
+ {/* Peacock */}
127
+ <Img
128
+ src={staticFile("video-images/20012026-peacock2.png")}
129
+ style={{
130
+ position: "absolute",
131
+ bottom: "8%",
132
+ width: "100%",
133
+ opacity: peacockOpacity,
134
+ transform: `
135
+ translateY(${peacockBounce}px)
136
+ translateX(${featherSwing}px)
137
+ rotate(${headSwing}deg)
138
+ `,
139
+ transformOrigin: "bottom center",
140
+ willChange: "transform, opacity",
141
+ }}
142
+ />
143
+
144
+
81
145
  {/* Decorations */}
82
- <SideTrees20012026 startAfter={2} />
83
- <PeacockDance20012026 startAfter={3} />
146
+ {/* <SideTrees20012026 startAfter={2} />
147
+ <PeacockDance20012026 startAfter={3} /> */}
84
148
 
85
149
  {/* Content */}
86
150
  <div
@@ -127,11 +191,11 @@ export const F20012026_02 = ({
127
191
  fontFamily: "Dancing Script",
128
192
  color: "#B87A6A",
129
193
  fontSize: 35,
130
- maxWidth:"70%",
194
+ maxWidth: "70%",
131
195
  ...SmoothRevealFromTop20012026({ frame, startFrame: DETAILS_START, delay: 50 }),
132
196
  }}
133
197
  >
134
- {firstSideNote}
198
+ {firstSideNote}
135
199
  </div>
136
200
 
137
201
  <div
@@ -155,7 +219,7 @@ export const F20012026_02 = ({
155
219
  ...SmoothRevealFromTop20012026({ frame, startFrame: DETAILS_START, delay: 95 }),
156
220
  }}
157
221
  >
158
- {secondName}
222
+ {secondName}
159
223
  </h1>
160
224
 
161
225
  <div
@@ -163,11 +227,11 @@ export const F20012026_02 = ({
163
227
  fontFamily: "Dancing Script",
164
228
  color: "#B87A6A",
165
229
  fontSize: 35,
166
- maxWidth:"70%",
230
+ maxWidth: "70%",
167
231
  ...SmoothRevealFromTop20012026({ frame, startFrame: DETAILS_START, delay: 120 }),
168
232
  }}
169
233
  >
170
- {secondSideNote}
234
+ {secondSideNote}
171
235
  </div>
172
236
 
173
237
  <div
@@ -179,7 +243,7 @@ export const F20012026_02 = ({
179
243
  <div
180
244
  style={{
181
245
  fontSize: 40,
182
- fontWeight:"400",
246
+ fontWeight: "400",
183
247
  fontFamily: "Great Vibes",
184
248
  color: "#2F6B4F",
185
249
  }}