@evatril/video-templates 2.0.11 → 2.0.14

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 (112) hide show
  1. package/package.json +1 -1
  2. package/src/Invitations/Elements/BlowingLeaves28012026.jsx +2 -2
  3. package/src/Invitations/Elements/BottomSideFrames20012026.jsx +122 -0
  4. package/src/Invitations/Elements/Butterflies20012026.jsx +4 -4
  5. package/src/Invitations/Elements/CoupleWalk20012026.jsx +2 -3
  6. package/src/Invitations/Elements/CurtainTransition20012026.jsx +79 -0
  7. package/src/Invitations/Elements/DucksFrame05022026.jsx +1 -2
  8. package/src/Invitations/Elements/{FloatingFlowersBottom.jsx → FloatingFlowersBottom05022026.jsx} +2 -3
  9. package/src/Invitations/Elements/FlowerReveal_TR_BL_28012026.jsx +2 -3
  10. package/src/Invitations/Elements/FlowersSide20012026.jsx +3 -72
  11. package/src/Invitations/Elements/GaneshBorder28012026.jsx +2 -4
  12. package/src/Invitations/Elements/GroomBrideLoveScene20012026.jsx +6 -7
  13. package/src/Invitations/Elements/HangingJumar05022026.jsx +1 -2
  14. package/src/Invitations/Elements/HangingLamp05022026.jsx +1 -2
  15. package/src/Invitations/Elements/HeartFlight28012026.jsx +1 -78
  16. package/src/Invitations/Elements/{HoldSlide.jsx → HoldSlide03022026.jsx} +1 -1
  17. package/src/Invitations/Elements/LetterReveal28012026.jsx +102 -14
  18. package/src/Invitations/Elements/OpeningGate20012026.jsx +3 -3
  19. package/src/Invitations/Elements/PageFlipTransition28012026.jsx +84 -0
  20. package/src/Invitations/Elements/SmoothReveal20012026.jsx +62 -0
  21. package/src/Invitations/Elements/WordReveal28012026.jsx +45 -7
  22. package/src/Invitations/Frames/F03022026_01.jsx +1 -1
  23. package/src/Invitations/Frames/F03022026_02.jsx +9 -10
  24. package/src/Invitations/Frames/F03022026_03.jsx +1 -1
  25. package/src/Invitations/Frames/F03022026_04.jsx +1 -1
  26. package/src/Invitations/Frames/F03022026_05.jsx +11 -8
  27. package/src/Invitations/Frames/F05022026_01.jsx +1 -2
  28. package/src/Invitations/Frames/F05022026_02.jsx +7 -14
  29. package/src/Invitations/Frames/F05022026_03.jsx +4 -5
  30. package/src/Invitations/Frames/F05022026_04.jsx +10 -14
  31. package/src/Invitations/Frames/F20012026_01.jsx +29 -136
  32. package/src/Invitations/Frames/F20012026_02.jsx +148 -75
  33. package/src/Invitations/Frames/F20012026_03.jsx +74 -193
  34. package/src/Invitations/Frames/F20012026_04.jsx +54 -122
  35. package/src/Invitations/Frames/F28012026_01.jsx +7 -8
  36. package/src/Invitations/Frames/F28012026_02.jsx +51 -53
  37. package/src/Invitations/Frames/F28012026_03.jsx +60 -61
  38. package/src/Invitations/Frames/F28012026_04.jsx +65 -70
  39. package/src/Invitations/Frames/F28012026_05.jsx +40 -11
  40. package/src/Invitations/Themes/T03022026_01.jsx +12 -17
  41. package/src/Invitations/Themes/T05022026_01.jsx +23 -19
  42. package/src/Invitations/Themes/T20012026_01.jsx +79 -66
  43. package/src/Invitations/Themes/T28012026_01.jsx +32 -25
  44. package/src/compositions.jsx +8 -8
  45. package/public/Fonts/DancingScript-VariableFont_wght.ttf +0 -0
  46. package/public/Fonts/GreatVibes-Regular.ttf +0 -0
  47. package/public/Fonts/PlayfairDisplay-Italic-VariableFont_wght.ttf +0 -0
  48. package/public/video-images/03022026-bg-2.webp +0 -0
  49. package/public/video-images/03022026-bg-3.webp +0 -0
  50. package/public/video-images/03022026-bg-4.webp +0 -0
  51. package/public/video-images/03022026-bg-5.webp +0 -0
  52. package/public/video-images/03022026-bg.webp +0 -0
  53. package/public/video-images/03022026-krishnaradha-2.webp +0 -0
  54. package/public/video-images/03022026-krishnaradha-4.webp +0 -0
  55. package/public/video-images/03022026-krishnaradha-5.webp +0 -0
  56. package/public/video-images/03022026-krishnaradha.webp +0 -0
  57. package/public/video-images/05022026-Duck.webp +0 -0
  58. package/public/video-images/05022026-Flower.webp +0 -0
  59. package/public/video-images/05022026-Ganesh.webp +0 -0
  60. package/public/video-images/05022026-HangingJumar.webp +0 -0
  61. package/public/video-images/05022026-HangingLamps.webp +0 -0
  62. package/public/video-images/05022026-LeftPeacock.webp +0 -0
  63. package/public/video-images/05022026-Nameplate.webp +0 -0
  64. package/public/video-images/05022026-bg-2.webp +0 -0
  65. package/public/video-images/05022026-bg-3.webp +0 -0
  66. package/public/video-images/05022026-bg-4.webp +0 -0
  67. package/public/video-images/05022026-bg.webp +0 -0
  68. package/public/video-images/20012026-bg.png +0 -0
  69. package/public/video-images/20012026-bg.webp +0 -0
  70. package/public/video-images/20012026-bride.png +0 -0
  71. package/public/video-images/20012026-bride.webp +0 -0
  72. package/public/video-images/20012026-butterfly.png +0 -0
  73. package/public/video-images/20012026-butterfly.webp +0 -0
  74. package/public/video-images/20012026-couple-walk.png +0 -0
  75. package/public/video-images/20012026-couple-walk.webp +0 -0
  76. package/public/video-images/20012026-curtain-floral.png +0 -0
  77. package/public/video-images/20012026-curtain-floral.webp +0 -0
  78. package/public/video-images/20012026-floral-left.png +0 -0
  79. package/public/video-images/20012026-floral-left.webp +0 -0
  80. package/public/video-images/20012026-floral-right.png +0 -0
  81. package/public/video-images/20012026-floral-right.webp +0 -0
  82. package/public/video-images/20012026-groom.png +0 -0
  83. package/public/video-images/20012026-groom.webp +0 -0
  84. package/public/video-images/20012026-opening-gate.png +0 -0
  85. package/public/video-images/20012026-opening-gate.webp +0 -0
  86. package/public/video-images/20012026-peacock.png +0 -0
  87. package/public/video-images/20012026-peacock.webp +0 -0
  88. package/public/video-images/20012026-tree-left.png +0 -0
  89. package/public/video-images/20012026-tree-left.webp +0 -0
  90. package/public/video-images/20012026-tree-right.png +0 -0
  91. package/public/video-images/20012026-tree-right.webp +0 -0
  92. package/public/video-images/20012026-wedding-gate.png +0 -0
  93. package/public/video-images/20012026-wedding-gate.webp +0 -0
  94. package/public/video-images/28012026-BottomLeftFlower.webp +0 -0
  95. package/public/video-images/28012026-BottomRightFlower.webp +0 -0
  96. package/public/video-images/28012026-FlowerBorder.webp +0 -0
  97. package/public/video-images/28012026-Ganesh.webp +0 -0
  98. package/public/video-images/28012026-Heart.webp +0 -0
  99. package/public/video-images/28012026-PinkLeaf.webp +0 -0
  100. package/public/video-images/28012026-TopBorder.webp +0 -0
  101. package/public/video-images/28012026-TopLeftFlower.webp +0 -0
  102. package/public/video-images/28012026-TopRightFlower.webp +0 -0
  103. package/public/video-images/28012026-bg.webp +0 -0
  104. package/public/video-images/28012026-border.webp +0 -0
  105. package/public/video-images/28012026-frame.webp +0 -0
  106. package/public/video-images/wedding.mp3 +0 -0
  107. package/public/video-images/wedding2.mp3 +0 -0
  108. package/src/Invitations/Elements/GaneshGoldenHalo.jsx +0 -90
  109. package/src/Invitations/Elements/PageFlipTransition.jsx +0 -180
  110. package/src/Invitations/Elements/PeacockDance20012026.jsx +0 -68
  111. package/src/Invitations/Elements/SideTrees20012026.jsx +0 -92
  112. package/src/Invitations/Elements/SmoothRevealFromTop20012026.jsx +0 -32
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { AbsoluteFill, Img, useCurrentFrame, interpolate } from "remotion";
3
3
 
4
- export const HoldSlide = ({
4
+ export const HoldSlide03022026 = ({
5
5
  children,
6
6
  nextBg,
7
7
  contentDuration,
@@ -1,41 +1,127 @@
1
+ // import React from "react";
2
+ // import { useCurrentFrame, interpolate } from "remotion";
3
+
4
+ // export const LetterReveal28012026 = ({
5
+ // text = "",
6
+ // start = 0,
7
+ // stagger = 4, // frames between letters
8
+ // }) => {
9
+ // const frame = useCurrentFrame();
10
+
11
+ // return (
12
+ // <>
13
+ // {text.split("").map((char, i) => {
14
+ // const appear = interpolate(
15
+ // frame,
16
+ // [start + i * stagger, start + i * stagger + 10],
17
+ // [0, 1],
18
+ // {
19
+ // extrapolateRight: "clamp",
20
+ // }
21
+ // );
22
+
23
+ // const y = interpolate(
24
+ // frame,
25
+ // [start + i * stagger, start + i * stagger + 10],
26
+ // [15, 0],
27
+ // {
28
+ // extrapolateRight: "clamp",
29
+ // }
30
+ // );
31
+
32
+ // return (
33
+ // <span
34
+ // key={i}
35
+ // style={{
36
+ // display: "inline-block",
37
+ // opacity: appear,
38
+ // transform: `translateY(${y}px)`,
39
+ // }}
40
+ // >
41
+ // {char === " " ? "\u00A0" : char}
42
+ // </span>
43
+ // );
44
+ // })}
45
+ // </>
46
+ // );
47
+ // };
48
+
1
49
  import React from "react";
2
- import { useCurrentFrame, interpolate } from "remotion";
50
+ import { useCurrentFrame, useVideoConfig, interpolate } from "remotion";
3
51
 
4
52
  export const LetterReveal28012026 = ({
5
53
  text = "",
6
54
  start = 0,
7
- stagger = 4, // frames between letters
55
+ stagger = 4,
56
+ exitDirection = "left", // left OR right
8
57
  }) => {
9
58
  const frame = useCurrentFrame();
59
+ const { fps, durationInFrames } = useVideoConfig();
60
+
61
+ const letters = text.split("");
62
+
63
+ const letterAnimDuration = 10;
64
+
65
+ /* ENTRY END */
66
+ const lastEntryEnd =
67
+ start + letters.length * stagger + letterAnimDuration;
68
+
69
+ /* FIXED EXIT SETTINGS */
70
+ const EXIT_TOTAL_FRAMES = Math.floor(fps * 1.5); // last 1.5 sec
71
+
72
+ const exitStart = Math.max(
73
+ durationInFrames - EXIT_TOTAL_FRAMES,
74
+ lastEntryEnd + fps * 0.3
75
+ );
10
76
 
11
77
  return (
12
78
  <>
13
- {text.split("").map((char, i) => {
79
+ {letters.map((char, i) => {
80
+
81
+ /* ENTRY */
82
+ const entryDelay = start + i * stagger;
83
+
14
84
  const appear = interpolate(
15
85
  frame,
16
- [start + i * stagger, start + i * stagger + 10],
86
+ [entryDelay, entryDelay + letterAnimDuration],
17
87
  [0, 1],
18
- {
19
- extrapolateRight: "clamp",
20
- }
88
+ { extrapolateRight: "clamp" }
21
89
  );
22
90
 
23
- const y = interpolate(
91
+ const entryY = interpolate(
24
92
  frame,
25
- [start + i * stagger, start + i * stagger + 10],
93
+ [entryDelay, entryDelay + letterAnimDuration],
26
94
  [15, 0],
27
- {
28
- extrapolateRight: "clamp",
29
- }
95
+ { extrapolateRight: "clamp" }
96
+ );
97
+
98
+ /* EXIT */
99
+ const exitOpacity = interpolate(
100
+ frame,
101
+ [exitStart, durationInFrames],
102
+ [1, 0],
103
+ { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
30
104
  );
31
105
 
106
+ const exitX = interpolate(
107
+ frame,
108
+ [exitStart, durationInFrames],
109
+ [
110
+ 0,
111
+ exitDirection === "left" ? -140 : 140
112
+ ],
113
+ { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
114
+ );
115
+
116
+ const finalOpacity = appear * exitOpacity;
117
+
32
118
  return (
33
119
  <span
34
120
  key={i}
35
121
  style={{
36
122
  display: "inline-block",
37
- opacity: appear,
38
- transform: `translateY(${y}px)`,
123
+ opacity: finalOpacity,
124
+ transform: `translate(${exitX}px, ${entryY}px)`,
39
125
  }}
40
126
  >
41
127
  {char === " " ? "\u00A0" : char}
@@ -45,3 +131,5 @@ export const LetterReveal28012026 = ({
45
131
  </>
46
132
  );
47
133
  };
134
+
135
+
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Img, interpolate, Easing, staticFile } from "remotion";
2
+ import { Img, interpolate, Easing } from "remotion";
3
3
 
4
4
  export const OpeningGate20012026 = ({ frame, fps }) => {
5
5
  // ⏱ 1 second gate opening
@@ -31,7 +31,7 @@ export const OpeningGate20012026 = ({ frame, fps }) => {
31
31
  >
32
32
  {/* 🚪 LEFT DOOR */}
33
33
  <Img
34
- src={staticFile("video-images/20012026-opening-gate.webp")}
34
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/20012026-opening-gate.webp"
35
35
  style={{
36
36
  position: "absolute",
37
37
  bottom: 0,
@@ -44,7 +44,7 @@ export const OpeningGate20012026 = ({ frame, fps }) => {
44
44
 
45
45
  {/* 🚪 RIGHT DOOR */}
46
46
  <Img
47
- src={staticFile("video-images/20012026-opening-gate.webp")}
47
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/20012026-opening-gate.webp"
48
48
  style={{
49
49
  position: "absolute",
50
50
  bottom: 0,
@@ -0,0 +1,84 @@
1
+ import React from "react";
2
+ import {
3
+ AbsoluteFill,
4
+ useCurrentFrame,
5
+ interpolate,
6
+ Easing,
7
+ } from "remotion";
8
+
9
+ export const PageFlipTransition28012026 = ({
10
+ children,
11
+ background,
12
+ sceneDuration = 192,
13
+ flipDuration = 30,
14
+ direction = "left", // "left" | "right"
15
+ }) => {
16
+ const frame = useCurrentFrame();
17
+
18
+ const flipStart = sceneDuration - flipDuration;
19
+
20
+ const rotate = interpolate(
21
+ frame,
22
+ [flipStart, sceneDuration],
23
+ [0, 80],
24
+ {
25
+ extrapolateLeft: "clamp",
26
+ extrapolateRight: "clamp",
27
+ easing: Easing.inOut(Easing.cubic),
28
+ }
29
+ );
30
+
31
+ const signedRotate = direction === "left" ? -rotate : rotate;
32
+
33
+ const bgOpacity = interpolate(
34
+ frame,
35
+ [flipStart + flipDuration * 0.5, sceneDuration],
36
+ [0, 1],
37
+ {
38
+ extrapolateLeft: "clamp",
39
+ extrapolateRight: "clamp",
40
+ }
41
+ );
42
+
43
+ return (
44
+ <AbsoluteFill style={{ perspective: 2500 }}>
45
+
46
+ {/* Fake back of page */}
47
+ <AbsoluteFill>
48
+ <img
49
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/28012026-bg.webp"
50
+ style={{
51
+ position: "absolute",
52
+ inset: 0,
53
+ width: "100%",
54
+ height: "100%",
55
+ objectFit: "cover",
56
+ }}
57
+ />
58
+ </AbsoluteFill>
59
+
60
+ {/* Next page */}
61
+ <AbsoluteFill style={{ opacity: bgOpacity }}>
62
+ {background}
63
+ </AbsoluteFill>
64
+
65
+ {/* Current page */}
66
+ <AbsoluteFill
67
+ style={{
68
+ transformOrigin:
69
+ direction === "left" ? "left center" : "right center",
70
+ transformStyle: "preserve-3d",
71
+ backfaceVisibility: "hidden",
72
+ transform: `rotateY(${signedRotate}deg)`,
73
+ boxShadow:
74
+ direction === "left"
75
+ ? "20px 0 40px rgba(0,0,0,0.25)"
76
+ : "-20px 0 40px rgba(0,0,0,0.25)",
77
+ }}
78
+ >
79
+ {children}
80
+ </AbsoluteFill>
81
+
82
+ </AbsoluteFill>
83
+ );
84
+ };
@@ -0,0 +1,62 @@
1
+ import { interpolate } from "remotion";
2
+
3
+ export const SmoothReveal20012026 = ({
4
+ frame,
5
+ startFrame,
6
+ delay = 0,
7
+ duration = 20,
8
+ distance = 40,
9
+ direction = "top",
10
+
11
+ // EXIT CONFIG
12
+ durationInFrames,
13
+ fps,
14
+ exitDurationSec = 1.5,
15
+ }) => {
16
+
17
+ /* ---------------- ENTRY ---------------- */
18
+ const entry = interpolate(
19
+ frame,
20
+ [startFrame + delay, startFrame + delay + duration],
21
+ [0, 1],
22
+ { extrapolateRight: "clamp" }
23
+ );
24
+
25
+ /* ---------------- EXIT ---------------- */
26
+ let exit = 1;
27
+
28
+ if (durationInFrames && fps) {
29
+ const exitStart = durationInFrames - fps * exitDurationSec;
30
+
31
+ exit = interpolate(
32
+ frame,
33
+ [exitStart, durationInFrames],
34
+ [1, 0],
35
+ { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
36
+ );
37
+ }
38
+
39
+ /* ---------------- OPACITY ---------------- */
40
+ const opacity = entry * exit;
41
+
42
+ /* ---------------- MOVEMENT ---------------- */
43
+ let x = 0;
44
+ let y = 0;
45
+
46
+ // ENTRY MOVEMENT
47
+ if (direction === "top") y = -distance * (1 - entry);
48
+ if (direction === "bottom") y = distance * (1 - entry);
49
+ if (direction === "left") x = -distance * (1 - entry);
50
+ if (direction === "right") x = distance * (1 - entry);
51
+
52
+ // EXIT MOVEMENT (SAFE — NO INTERPOLATE REVERSE)
53
+ if (direction === "top") y += -distance * (1 - exit);
54
+ if (direction === "bottom") y += distance * (1 - exit);
55
+ if (direction === "left") x += -distance * (1 - exit);
56
+ if (direction === "right") x += distance * (1 - exit);
57
+
58
+ return {
59
+ opacity,
60
+ transform: `translate(${x}px, ${y}px)`,
61
+ };
62
+ };
@@ -14,15 +14,26 @@ export const WordReveal28012026 = ({
14
14
  fontFamily = "Dancing Script",
15
15
  letterSpacing = 2,
16
16
  lineHeight = 1.2,
17
- fontWeight =600
17
+ fontWeight = 600,
18
+ exitDurationSec = 1.5,
18
19
  }) => {
19
20
  const frame = useCurrentFrame();
20
- const { fps } = useVideoConfig();
21
+ const { fps, durationInFrames } = useVideoConfig();
21
22
 
22
23
  const words = text.split(" ");
23
24
 
24
- const wordDelay = fps * 0.15; // ⏱ 150ms between words
25
- const animDuration = fps * 0.4; // ⏱ 400ms animation
25
+ const wordDelay = fps * 0.15;
26
+ const animDuration = fps * 0.4;
27
+
28
+ /* ---------------- LAST WORD END FRAME ---------------- */
29
+ const lastWordEnd =
30
+ start + words.length * wordDelay + animDuration;
31
+
32
+ /* ---------------- SAFE EXIT START ---------------- */
33
+ const exitStartBase = Math.max(
34
+ durationInFrames - fps * exitDurationSec,
35
+ lastWordEnd + fps * 0.3
36
+ );
26
37
 
27
38
  return (
28
39
  <div
@@ -37,7 +48,8 @@ export const WordReveal28012026 = ({
37
48
  {words.map((word, i) => {
38
49
  const delay = start + i * wordDelay;
39
50
 
40
- const opacity = interpolate(
51
+ /* ---------------- ENTRY ---------------- */
52
+ const entryOpacity = interpolate(
41
53
  frame,
42
54
  [delay, delay + animDuration],
43
55
  [0, 1],
@@ -69,12 +81,38 @@ export const WordReveal28012026 = ({
69
81
  }
70
82
  );
71
83
 
84
+ /* ---------------- EXIT (Reverse Order) ---------------- */
85
+
86
+ const reverseIndex = words.length - 1 - i;
87
+ const exitDelay = exitStartBase + reverseIndex * wordDelay;
88
+
89
+ const exitProgress = interpolate(
90
+ frame,
91
+ [exitDelay, exitDelay + animDuration],
92
+ [0, 1],
93
+ {
94
+ extrapolateLeft: "clamp",
95
+ extrapolateRight: "clamp",
96
+ easing: Easing.in(Easing.cubic),
97
+ }
98
+ );
99
+
100
+ const exitOpacity = 1 - exitProgress;
101
+ const exitTranslateY = exitProgress * 30;
102
+ const exitScale = 1 - exitProgress * 0.05;
103
+
104
+ /* ---------------- FINAL VALUES ---------------- */
105
+
106
+ const finalOpacity = entryOpacity * exitOpacity;
107
+ const finalTranslateY = translateY + exitTranslateY;
108
+ const finalScale = scale * exitScale;
109
+
72
110
  return (
73
111
  <span
74
112
  key={i}
75
113
  style={{
76
- opacity,
77
- transform: `translateY(${translateY}px) scale(${scale})`,
114
+ opacity: finalOpacity,
115
+ transform: `translateY(${finalTranslateY}px) scale(${finalScale})`,
78
116
  margin: "0 12px 8px 0",
79
117
  fontSize,
80
118
  color,
@@ -188,7 +188,7 @@ export const F03022026_01 = () => {
188
188
  }}
189
189
  >
190
190
  Wedding
191
- </h1>
191
+ </h1>
192
192
 
193
193
  <h1
194
194
  style={{
@@ -200,13 +200,9 @@ export const F03022026_02 = ({
200
200
  overflowWrap: "break-word",
201
201
  lineHeight: "1.2",
202
202
  }}
203
- >
203
+ >
204
204
  <h1
205
205
  style={{
206
- fontFamily: "Dancing Script",
207
- letterSpacing: 3,
208
- lineHeight: 1.3,
209
- fontWeight: 600,
210
206
  maxWidth: "80%",
211
207
  opacity: welcomeExitOpacity,
212
208
  transform: `translateX(${welcomeExitX}px)`
@@ -217,6 +213,10 @@ export const F03022026_02 = ({
217
213
  start={20}
218
214
  fontSize={60}
219
215
  color="#B45A6A"
216
+ fontFamily="Dancing Script"
217
+ letterSpacing={3}
218
+ lineHeight={1.3}
219
+ fontWeight={600}
220
220
  />
221
221
  </h1>
222
222
 
@@ -284,12 +284,7 @@ export const F03022026_02 = ({
284
284
 
285
285
  <div
286
286
  style={{
287
- fontSize: 65,
288
- fontWeight: "600",
289
- color: "#B76E79",
290
- lineHeight: 1.2,
291
287
  marginTop: "15px",
292
- letterSpacing: "4px",
293
288
  whiteSpace: "nowrap",
294
289
  opacity: dateExitOpacity,
295
290
  transform: `translateX(${dateExitX}px)`
@@ -300,6 +295,10 @@ export const F03022026_02 = ({
300
295
  start={50}
301
296
  fontSize={65}
302
297
  color="#6B4A3A"
298
+ fontFamily="Dancing Script"
299
+ letterSpacing={4}
300
+ lineHeight={1.3}
301
+ fontWeight={600}
303
302
  />
304
303
 
305
304
  </div>
@@ -328,4 +328,4 @@ export const F03022026_03 = ({
328
328
 
329
329
  </AbsoluteFill>
330
330
  );
331
- };
331
+ };
@@ -29,7 +29,7 @@ export const F03022026_04 = ({
29
29
  hour12: true,
30
30
  }),
31
31
  };
32
- };
32
+ };
33
33
 
34
34
  const { day, month, year, time } = getDateParts(eventDateTime);
35
35
 
@@ -163,7 +163,7 @@ export const F03022026_05 = ({
163
163
  position: "absolute",
164
164
  top: "40%",
165
165
  left: "50%",
166
- width:"80%",
166
+ width: "80%",
167
167
  objectFit: "cover",
168
168
  opacity: imageOpacity * imageExitOpacity,
169
169
  transform: `translateX(-50%) translateX(${moveX}px) translateY(${imageExitY}px)`
@@ -178,7 +178,7 @@ export const F03022026_05 = ({
178
178
  display: "flex",
179
179
  justifyContent: "center",
180
180
  alignItems: "center",
181
- opacity: msgOpacity * msgExitOpacity,
181
+ opacity: msgOpacity * msgExitOpacity,
182
182
  transform: `translateY(-20%) translateY(${msgY + msgExitY}px)`,
183
183
  }}
184
184
  >
@@ -186,15 +186,18 @@ export const F03022026_05 = ({
186
186
  style={{
187
187
  maxWidth: "70%",
188
188
  textAlign: "center",
189
- lineHeight: 1.3,
190
189
  }}
191
190
  >
192
191
  <WordReveal28012026
193
192
  text={familyMember}
194
- start={20}
195
- fontSize={60}
196
- color= "#F4A261"
193
+ start={10}
194
+ fontSize={60}
195
+ color="#F4A261"
197
196
  fontFamily="Playfair Display"
197
+ letterSpacing={3}
198
+ lineHeight={1.3}
199
+ fontWeight={600}
200
+ exitDurationSec={6}
198
201
  />
199
202
  </div>
200
203
  </div>
@@ -221,10 +224,10 @@ export const F03022026_05 = ({
221
224
  style={{
222
225
  fontFamily: "Dancing Script",
223
226
  fontSize: 180,
224
- color:"#D94A5C"
227
+ color: "#D94A5C"
225
228
  }}
226
229
  >
227
- Thank You
230
+ Thank You
228
231
  </h1>
229
232
  </div>
230
233
  </div>
@@ -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,
@@ -106,7 +105,7 @@ export const F05022026_01 = () => {
106
105
  }}
107
106
  >
108
107
  <Img
109
- src={staticFile("video-images/05022026-Ganesh.webp")}
108
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/05022026-Ganesh.webp"
110
109
  style={{
111
110
  width: "50%",
112
111
  objectFit: "contain",
@@ -6,7 +6,6 @@ import {
6
6
  interpolate,
7
7
  Easing,
8
8
  Img,
9
- staticFile,
10
9
  } from "remotion";
11
10
  import { HangingLamp05022026 } from "../Elements/HangingLamp05022026";
12
11
  import { DucksFrame05022026 } from "../Elements/DucksFrame05022026";
@@ -23,9 +22,9 @@ export const F05022026_02 = ({
23
22
  }) => {
24
23
  const frame = useCurrentFrame();
25
24
  const { fps } = useVideoConfig();
26
- const opacity = interpolate(frame, [0, 25], [0, 1], {
27
- extrapolateRight: "clamp",
28
- });
25
+ // const opacity = interpolate(frame, [0, 25], [0, 1], {
26
+ // extrapolateRight: "clamp",
27
+ // });
29
28
 
30
29
  const translateY = interpolate(frame, [0, 25], [-40, 0], {
31
30
  extrapolateRight: "clamp",
@@ -61,12 +60,6 @@ export const F05022026_02 = ({
61
60
  month: "long",
62
61
  });
63
62
  const year = d.getFullYear();
64
-
65
- // return d.toLocaleDateString("en-IN", {
66
- // day: "numeric",
67
- // month: "long",
68
- // year: "numeric",
69
- // });
70
63
  return {
71
64
  datemonth: dayMonth,
72
65
  year: year.toString(),
@@ -217,8 +210,8 @@ export const F05022026_02 = ({
217
210
  style={{
218
211
  maxWidth: "60%",
219
212
  textAlign: "center",
220
- opacity: opacity * exitOpacity,
221
- transform: `translateY(${translateY + exitTopY}px)`,
213
+ opacity: exitOpacity,
214
+ transform: `translateY(${translateY + exitTopY}px)`,
222
215
  }}
223
216
  >
224
217
  <WordReveal28012026
@@ -354,8 +347,6 @@ export const F05022026_02 = ({
354
347
  left: "13%",
355
348
  lineHeight: 1.2,
356
349
  whiteSpace: "nowrap",
357
- // opacity: exitOpacity,
358
- // transform: `translateY(${exitTopY}px)`,
359
350
  }}
360
351
  >
361
352
  <WordReveal28012026
@@ -367,6 +358,7 @@ export const F05022026_02 = ({
367
358
  letterSpacing="2px"
368
359
  lineHeight="1.2"
369
360
  fontWeight="600"
361
+ exitDurationSec={1.5}
370
362
  />
371
363
  <WordReveal28012026
372
364
  text={dateParts.year}
@@ -377,6 +369,7 @@ export const F05022026_02 = ({
377
369
  letterSpacing="4px"
378
370
  lineHeight="1"
379
371
  fontWeight="600"
372
+ exitDurationSec={1.5}
380
373
  />
381
374
  </div>
382
375
 
@@ -1,15 +1,14 @@
1
1
  import React from "react";
2
- import {
2
+ import {
3
3
  AbsoluteFill,
4
4
  useCurrentFrame,
5
5
  useVideoConfig,
6
6
  interpolate,
7
7
  Easing,
8
8
  Img,
9
- staticFile,
10
9
  } from "remotion";
11
10
  import { HangingJumar05022026 } from "../Elements/HangingJumar05022026";
12
- import { FloatingFlowersBottom } from "../Elements/FloatingFlowersBottom";
11
+ import { FloatingFlowersBottom05022026 } from "../Elements/FloatingFlowersBottom05022026";
13
12
 
14
13
  export const F05022026_03 = ({
15
14
  eventDateTime, venueName, venueAddress
@@ -183,10 +182,10 @@ export const F05022026_03 = ({
183
182
  overflow: "hidden",
184
183
  }}
185
184
  >
186
- <FloatingFlowersBottom/>
185
+ <FloatingFlowersBottom05022026/>
187
186
 
188
187
  <Img
189
- src={staticFile("video-images/20012026-couple-walk.webp")}
188
+ src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/20012026-couple-walk.webp"
190
189
  style={{
191
190
  position: "absolute",
192
191
  left: "50%",