@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
@@ -6,8 +6,11 @@ import {
6
6
  interpolate,
7
7
  Easing,
8
8
  Img,
9
- staticFile,
10
9
  } from "remotion";
10
+ import { BottomSideFrames } from "../Elements/BottomSideFrames20012026";
11
+ import { LetterReveal28012026 } from "../Elements/LetterReveal28012026";
12
+ import { HeartDraw28012026 } from "../Elements/HeartDraw28012026";
13
+ import { HangingJumar05022026 } from "../Elements/HangingJumar05022026";
11
14
 
12
15
  export const F20012026_03 = ({
13
16
  firstName,
@@ -16,133 +19,41 @@ export const F20012026_03 = ({
16
19
  secondPhoto,
17
20
  }) => {
18
21
  const frame = useCurrentFrame();
19
- const { fps } = useVideoConfig();
20
- const opacity = interpolate(frame, [0, 25], [0, 1], {
21
- extrapolateRight: "clamp",
22
- });
22
+ const { fps, durationInFrames } = useVideoConfig();
23
23
 
24
- const translateY = interpolate(frame, [0, 25], [-40, 0], {
25
- extrapolateRight: "clamp",
26
- easing: Easing.out(Easing.ease),
27
- });
24
+ const DETAILS_START = fps * 1;
25
+ const NAME_GAP = fps * 1.2;
28
26
 
29
- // timing (30fps based)
30
- const firstPhotoStart = fps * 1; // 1 second
31
- const firstTextStart = fps * 1.5; // +0.5s
32
- const secondPhotoStart = fps * 2; // +1s after first
33
- const secondTextStart = fps * 2.5; // +0.5s
27
+ const showStart = fps * 2; // show after 2 sec
28
+ const showDuration = fps * 0.6; // fade in duration
29
+ const exitStart = durationInFrames - fps * 1; // last 1 sec
34
30
 
35
- // FIRST PHOTO (from left)
36
- const firstPhotoX = interpolate(
31
+ const entryOpacity = interpolate(
37
32
  frame,
38
- [firstPhotoStart, firstPhotoStart + fps * 2],
39
- [-200, 0],
40
- {
41
- extrapolateRight: "clamp",
42
- easing: Easing.out(Easing.cubic),
43
- }
44
- );
45
-
46
- const firstPhotoOpacity = interpolate(
47
- frame,
48
- [firstPhotoStart, firstPhotoStart + 10],
49
- [0, 1],
50
- { extrapolateRight: "clamp" }
51
- );
52
-
53
- // FIRST TEXT
54
- const firstTextX = interpolate(
55
- frame,
56
- [firstTextStart, firstTextStart + 20],
57
- [-30, 0],
58
- {
59
- extrapolateRight: "clamp",
60
- easing: Easing.out(Easing.ease),
61
- }
62
- );
63
-
64
- const firstTextOpacity = interpolate(
65
- frame,
66
- [firstTextStart, firstTextStart + 10],
67
- [0, 1],
68
- { extrapolateRight: "clamp" }
69
- );
70
-
71
- // SECOND PHOTO (from right)
72
- const secondPhotoX = interpolate(
73
- frame,
74
- [secondPhotoStart, secondPhotoStart + fps * 2],
75
- [200, 0],
76
- {
77
- extrapolateRight: "clamp",
78
- easing: Easing.out(Easing.cubic),
79
- }
80
- );
81
-
82
- const secondPhotoOpacity = interpolate(
83
- frame,
84
- [secondPhotoStart, secondPhotoStart + 10],
33
+ [showStart, showStart + showDuration],
85
34
  [0, 1],
86
35
  { extrapolateRight: "clamp" }
87
36
  );
88
37
 
89
- // SECOND TEXT
90
- const secondTextX = interpolate(
91
- frame,
92
- [secondTextStart, secondTextStart + 20],
93
- [60, 0], // 👉 from RIGHT to center
94
- {
95
- extrapolateRight: "clamp",
96
- easing: Easing.out(Easing.ease),
97
- }
98
- );
99
-
100
- const secondTextOpacity = interpolate(
38
+ const entryY = interpolate(
101
39
  frame,
102
- [secondTextStart, secondTextStart + 10],
103
- [0, 1],
40
+ [showStart, showStart + showDuration],
41
+ [40, 0],
104
42
  { extrapolateRight: "clamp" }
105
43
  );
106
44
 
107
- const totalFrames = fps * 7;
108
-
109
- const exitStart = totalFrames - fps * 2; // last 1 second
110
-
111
45
  const exitOpacity = interpolate(
112
46
  frame,
113
- [exitStart, totalFrames],
47
+ [exitStart, durationInFrames],
114
48
  [1, 0],
115
- { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
116
- );
117
- const exitTopY = interpolate(
118
- frame,
119
- [exitStart, totalFrames],
120
- [0, -40],
121
- {
122
- extrapolateLeft: "clamp",
123
- extrapolateRight: "clamp",
124
- easing: Easing.in(Easing.ease),
125
- }
126
- );
127
- const exitLeftX = interpolate(
128
- frame,
129
- [exitStart, totalFrames],
130
- [0, -60],
131
- {
132
- extrapolateLeft: "clamp",
133
- extrapolateRight: "clamp",
134
- easing: Easing.in(Easing.ease),
135
- }
49
+ { extrapolateLeft: "clamp" }
136
50
  );
137
- const exitRightX = interpolate(
51
+
52
+ const exitY = interpolate(
138
53
  frame,
139
- [exitStart, totalFrames],
140
- [0, 60],
141
- {
142
- extrapolateLeft: "clamp",
143
- extrapolateRight: "clamp",
144
- easing: Easing.in(Easing.ease),
145
- }
54
+ [exitStart, durationInFrames],
55
+ [0, -80],
56
+ { extrapolateLeft: "clamp" }
146
57
  );
147
58
 
148
59
  return (
@@ -151,113 +62,83 @@ export const F20012026_03 = ({
151
62
  overflow: "hidden",
152
63
  }}
153
64
  >
65
+ <BottomSideFrames firstPhoto={firstPhoto} secondPhoto={secondPhoto} />
66
+ <HangingJumar05022026 side="left" offset={-40} />
67
+ <HangingJumar05022026 side="right" offset={-40} />
154
68
 
155
- {firstPhoto && (
156
- <div
157
- style={{
158
- position: "absolute",
159
- top: "28%",
160
- left: "8%",
161
- width: 420,
162
- height: 420,
163
- zIndex: 2,
164
- transform: `translateX(${firstPhotoX + exitLeftX}px)`,
165
- opacity: firstPhotoOpacity * exitOpacity,
166
- }}
167
- >
168
- <Img
169
- src={firstPhoto}
170
- style={{
171
- width: "100%",
172
- height: "100%",
173
- objectFit: "cover",
174
- border: "4px solid #C65A7A",
175
- borderRadius: "50%",
176
- }}
177
- />
178
- </div>
179
- )}
180
-
181
- {/* FIRST NAME + SIDE NOTE */}
69
+ {/* CENTER NAMES */}
182
70
  <div
183
71
  style={{
184
72
  position: "absolute",
185
- top: "35%",
186
- left: "35%",
187
- lineHeight: 1.2,
73
+ top: "30%",
74
+ left: "50%",
75
+ transform: "translate(-50%, -50%)",
188
76
  display: "flex",
189
77
  flexDirection: "column",
190
78
  alignItems: "center",
191
- transform: `translateX(${firstTextX + exitLeftX}px)`,
192
- opacity: firstTextOpacity * exitOpacity,
193
-
79
+ justifyContent: "center",
80
+ width: "100%",
81
+ zIndex: 10,
194
82
  }}
195
83
  >
84
+ <div
85
+ style={{
86
+ position: "absolute",
87
+ left: "50%",
88
+ top: "50%",
89
+ transform: `translate(-50%, -50%) translateY(${entryY + exitY}px)`,
90
+ fontSize: 240,
91
+ fontFamily: "Dancing Script",
92
+ color: "#D4A24C",
93
+ opacity: entryOpacity * exitOpacity * 0.15,
94
+ zIndex: 1, // Behind names
95
+ pointerEvents: "none",
96
+ }}
97
+ >
98
+ &
99
+ </div>
100
+ <HeartDraw28012026 startAfter={DETAILS_START + fps * 0.5} />
101
+ {/* FIRST NAME */}
196
102
  <h1
197
103
  style={{
198
104
  fontFamily: "Dancing Script",
199
- color: "#C65A7A",
105
+ color: "#B76E79",
200
106
  fontSize: 80,
201
- maxWidth: "70%",
107
+ fontWeight: "600",
108
+ letterSpacing: "2px",
202
109
  textAlign: "center",
203
- wordWrap: "break-word",
204
- }}
205
- >
206
- {firstName}
207
- </h1>
208
- </div>
209
-
210
- {secondPhoto && (
211
- <div
212
- style={{
213
- position: "absolute",
214
- bottom: "10%",
215
- right: "8%",
216
- width: 420,
217
- height: 420,
218
- zIndex: 2,
219
- transform: `translateX(${secondPhotoX + exitRightX}px)`,
220
- opacity: secondPhotoOpacity * exitOpacity,
110
+ marginBottom: 20,
111
+ maxWidth: "80%",
112
+ wordBreak: "break-word",
113
+ zIndex: 10
221
114
  }}
222
115
  >
223
- <Img
224
- src={secondPhoto}
225
- style={{
226
- width: "100%",
227
- height: "100%",
228
- objectFit: "cover",
229
- border: "4px solid #C65A7A",
230
- borderRadius: "50%",
231
- }}
116
+ <LetterReveal28012026
117
+ text={firstName}
118
+ start={DETAILS_START}
119
+ exitDirection="left"
232
120
  />
233
- </div>
234
- )}
121
+ </h1>
235
122
 
236
- {/* SECOND NAME + SIDE NOTE */}
237
- <div
238
- style={{
239
- position: "absolute",
240
- bottom: "23%",
241
- right: "30%",
242
- lineHeight: 1.2,
243
- display: "flex",
244
- flexDirection: "column",
245
- alignItems: "center",
246
- transform: `translateX(${secondTextX + exitRightX}px)`,
247
- opacity: secondTextOpacity * exitOpacity,
248
- }}
249
- >
123
+ {/* SECOND NAME */}
250
124
  <h1
251
125
  style={{
252
126
  fontFamily: "Dancing Script",
253
- color: "#C65A7A",
127
+ color: "#B76E79",
254
128
  fontSize: 80,
255
- maxWidth: "90%",
129
+ fontWeight: "600",
130
+ letterSpacing: "2px",
256
131
  textAlign: "center",
257
- wordWrap: "break-word",
132
+ maxWidth: "80%",
133
+ wordBreak: "break-word",
134
+ zIndex: 10
258
135
  }}
259
136
  >
260
- {secondName}
137
+ <LetterReveal28012026
138
+ text={secondName}
139
+ start={DETAILS_START + NAME_GAP}
140
+ exitDirection="right"
141
+ />
261
142
  </h1>
262
143
  </div>
263
144
 
@@ -3,24 +3,19 @@ import {
3
3
  AbsoluteFill,
4
4
  useCurrentFrame,
5
5
  useVideoConfig,
6
- interpolate,
7
- Easing,
8
- Img,
9
- staticFile,
10
6
  } from "remotion";
11
7
 
12
8
  import { GroomBrideLoveScene20012026 } from "../Elements/GroomBrideLoveScene20012026.jsx";
13
- import { SmoothRevealFromTop20012026 } from "../Elements/SmoothRevealFromTop20012026.jsx"
9
+ import { SmoothReveal20012026 } from "../Elements/SmoothReveal20012026.jsx"
14
10
 
15
11
  export const F20012026_04 = ({
16
12
  eventDateTime,
17
13
  venueName,
18
14
  venueAddress,
19
15
  familyMember,
20
- fadeInDuration = 30,
21
16
  }) => {
22
17
  const frame = useCurrentFrame();
23
- const { fps } = useVideoConfig();
18
+ const { fps, durationInFrames } = useVideoConfig();
24
19
 
25
20
  /* ---------------- DATE UTILS ---------------- */
26
21
  const getDateParts = (iso) => {
@@ -45,143 +40,95 @@ export const F20012026_04 = ({
45
40
 
46
41
  const { day, month, year, time } = getDateParts(eventDateTime);
47
42
 
48
- const DETAILS_START = fps * 4;
43
+ const DETAILS_START = fps * 1;
49
44
 
50
- /* ================= IMAGE ANIMATION ================= */
51
- const showImageAfter = fadeInDuration * 2;
52
-
53
- const imageOpacity = interpolate(
54
- frame,
55
- [showImageAfter, showImageAfter + fps * 1.2],
56
- [0, 1],
57
- {
58
- extrapolateRight: "clamp",
59
- easing: Easing.out(Easing.ease),
60
- }
61
- );
62
-
63
- const imageScale = interpolate(
64
- frame,
65
- [showImageAfter, showImageAfter + fps * 1.2],
66
- [0.95, 1],
67
- {
68
- extrapolateRight: "clamp",
69
- easing: Easing.out(Easing.cubic),
70
- }
71
- );
72
- const imageTranslateY = interpolate(
73
- frame,
74
- [showImageAfter, showImageAfter + fps * 1.2],
75
- [-200, 0], // 🔥 starts above and comes down
76
- {
77
- extrapolateRight: "clamp",
78
- easing: Easing.out(Easing.ease),
79
- }
80
- );
81
-
82
- return (
45
+ return (
83
46
  <AbsoluteFill
84
47
  style={{
85
48
  transformOrigin: "center center",
86
49
  overflow: "hidden",
87
50
  }}
88
- >
89
- <Img
90
- src={staticFile("video-images/20012026-wedding-gate.webp")}
91
- style={{
92
- position: "absolute",
93
- top: 0,
94
- left: "50%",
95
- width: "100%",
96
- height: "100%",
97
- opacity: imageOpacity,
98
- transform: `
99
- translateX(-50%)
100
- translateY(${imageTranslateY}px)
101
- scale(${imageScale})
102
- `,
103
- }}
104
- />
105
-
106
- <GroomBrideLoveScene20012026 startAfter={3.5} />
51
+ >
52
+ <GroomBrideLoveScene20012026 startAfter={2} />
107
53
 
108
54
  <div
109
55
  style={{
110
56
  position: "absolute",
111
- top: "24%",
57
+ top: "30%",
112
58
  width: "100%",
113
59
  display: "flex",
114
60
  flexDirection: "column",
115
61
  alignItems: "center",
116
62
  textAlign: "center",
117
63
  zIndex: 5,
118
- gap: "30px"
64
+ gap: "15px"
119
65
  }}
120
66
  >
121
67
  <div
122
68
  style={{
123
- maxWidth: "50%",
124
- fontFamily: "Playfair Display",
69
+ maxWidth: "60%",
70
+ fontFamily: "Dancing Script",
125
71
  fontSize: 55,
126
72
  fontWeight: "600",
127
- color: "#3B2F2F",
73
+ color: "#4A3A32",
128
74
  lineHeight: 1.2,
129
75
  letterSpacing: "2px",
130
76
  whiteSpace: "normal",
131
77
  wordBreak: "break-word",
132
78
  overflowWrap: "break-word",
133
- ...SmoothRevealFromTop20012026({
134
- frame,
135
- startFrame: DETAILS_START,
136
- delay: 0,
79
+ ...SmoothReveal20012026({
80
+ frame, startFrame: DETAILS_START, delay: 0, direction: "top", durationInFrames, fps, exitDurationSec: 1.5
137
81
  })
138
82
  }}
139
83
  >
140
- {venueName}
84
+ {venueName}
141
85
  </div>
142
86
 
143
87
  <div
144
88
  style={{
145
- maxWidth: "80%",
146
- fontFamily: "Playfair Display",
89
+ maxWidth: "60%",
90
+ fontFamily: "Dancing Script",
147
91
  fontSize: 50,
148
92
  fontWeight: "600",
149
- color: "#5A4A42",
93
+ color: "#4A3A32",
150
94
  lineHeight: 1.2,
151
95
  letterSpacing: "2px",
152
96
  whiteSpace: "normal",
153
97
  wordBreak: "break-word",
154
98
  overflowWrap: "break-word",
155
- ...SmoothRevealFromTop20012026({
99
+ ...SmoothReveal20012026({
156
100
  frame,
157
101
  startFrame: DETAILS_START,
158
- delay: 25,
102
+ delay: 10, direction: "top", durationInFrames,
103
+ fps, exitDurationSec: 1.5
159
104
  })
160
105
 
161
106
  }}
162
107
  >
163
- {venueAddress}
108
+ {venueAddress}
164
109
  </div>
165
110
  <div
166
111
  style={{
167
112
  fontFamily: "Great Vibes",
168
- fontSize: 55,
113
+ fontSize: 50,
169
114
  fontWeight: "600",
170
- color: "#6B1E2E",
115
+ color: "#8C6A2A",
171
116
  lineHeight: 1.2,
172
- letterSpacing: "3px",
117
+ marginTop: "10px",
118
+ letterSpacing: "2px",
173
119
  whiteSpace: "normal",
174
120
  wordBreak: "break-word",
175
121
  overflowWrap: "break-word",
176
- ...SmoothRevealFromTop20012026({
122
+ ...SmoothReveal20012026({
177
123
  frame,
178
124
  startFrame: DETAILS_START,
179
- delay: 50,
125
+ delay: 30, direction: "left", durationInFrames,
126
+ fps, exitDurationSec: 1.5
180
127
  })
181
128
 
182
129
  }}
183
130
  >
184
- On the joyous occasion
131
+ - On the joyous occasion -
185
132
  </div>
186
133
  <div
187
134
  style={{
@@ -191,16 +138,17 @@ export const F20012026_04 = ({
191
138
  fontFamily: "Playfair Display",
192
139
  fontSize: 50,
193
140
  fontWeight: "600",
194
- color: "#6B1E2E",
141
+ color: "#7A2E3A",
195
142
  lineHeight: 1.2,
196
143
  letterSpacing: "2px",
197
144
  whiteSpace: "normal",
198
145
  wordBreak: "break-word",
199
146
  overflowWrap: "break-word",
200
- ...SmoothRevealFromTop20012026({
147
+ ...SmoothReveal20012026({
201
148
  frame,
202
149
  startFrame: DETAILS_START,
203
- delay: 70,
150
+ delay: 40, direction: "left", durationInFrames,
151
+ fps, exitDurationSec: 1.5
204
152
  })
205
153
 
206
154
  }}
@@ -209,71 +157,55 @@ export const F20012026_04 = ({
209
157
  <span>{month}</span>
210
158
  <span>{year}</span>
211
159
  </div>
212
- <div
213
- style={{
214
- fontFamily: "Great Vibes",
215
- fontSize: 55,
216
- fontWeight: "600",
217
- color: "#4B3A28",
218
- lineHeight: 1.2,
219
- letterSpacing: "2px",
220
- whiteSpace: "normal",
221
- wordBreak: "break-word",
222
- overflowWrap: "break-word",
223
- ...SmoothRevealFromTop20012026({
224
- frame,
225
- startFrame: DETAILS_START,
226
- delay: 95,
227
- })
228
160
 
229
- }}
230
- >
231
- Wedding Time
232
- </div>
233
161
  <div
234
162
  style={{
235
- fontSize: 50,
236
- fontWeight: "600",
237
- color: "#4B3A28",
238
163
  fontFamily: "Playfair Display",
164
+ fontSize: 55,
165
+ fontWeight: "600",
239
166
  lineHeight: 1.2,
240
167
  letterSpacing: "2px",
241
- whiteSpace: "normal",
242
- wordBreak: "break-word",
243
- overflowWrap: "break-word",
244
- ...SmoothRevealFromTop20012026({
168
+ ...SmoothReveal20012026({
245
169
  frame,
246
170
  startFrame: DETAILS_START,
247
- delay: 115,
171
+ delay: 60,
172
+ direction: "right",
173
+ durationInFrames,
174
+ fps,
175
+ exitDurationSec: 1.5
248
176
  })
249
-
250
177
  }}
251
178
  >
252
- {time}
179
+ <span style={{ color: "#8C6A2A", marginRight: 15 , fontFamily:"Great Vibes", fontSize:50 }}>
180
+ Wedding Time
181
+ </span>
182
+ <span style={{ color: "#7A2E3A" }}>
183
+ {time}
184
+ </span>
253
185
  </div>
254
186
 
255
187
  <div
256
188
  style={{
257
189
  maxWidth: "70%",
258
- fontFamily: "Playfair Display",
259
- fontSize: 40,
190
+ fontFamily: "Dancing Script",
191
+ fontSize: 50,
260
192
  fontWeight: "600",
261
193
  lineHeight: 1.2,
262
- color: "#7A5C3E",
263
- lineHeight: 1.2,
194
+ color: "#4A3A32",
264
195
  letterSpacing: "2px",
265
196
  whiteSpace: "normal",
266
197
  wordBreak: "break-word",
267
198
  overflowWrap: "break-word",
268
- ...SmoothRevealFromTop20012026({
199
+ ...SmoothReveal20012026({
269
200
  frame,
270
201
  startFrame: DETAILS_START,
271
- delay: 125,
202
+ delay: 80, direction: "bottom", durationInFrames,
203
+ fps, exitDurationSec: 1.5
272
204
  })
273
205
 
274
206
  }}
275
207
  >
276
- {familyMember}
208
+ {familyMember}
277
209
  </div>
278
210
  </div>
279
211
 
@@ -13,7 +13,7 @@ export const F28012026_01 = ({
13
13
  return (
14
14
  <AbsoluteFill style={{ overflow: "hidden" }}>
15
15
  <FlowerReveal_TR_BL_28012026 />
16
- <GaneshBorder28012026 />
16
+ <GaneshBorder28012026 />
17
17
  <BlowingLeaves28012026 startAfter={2} />
18
18
 
19
19
  <div
@@ -27,10 +27,6 @@ export const F28012026_01 = ({
27
27
  >
28
28
  <h1
29
29
  style={{
30
- fontFamily: "Dancing Script",
31
- letterSpacing: 3,
32
- lineHeight: 1.3,
33
- fontWeight: 600,
34
30
  margin: 0,
35
31
  whiteSpace: "normal",
36
32
  wordBreak: "break-word",
@@ -38,14 +34,17 @@ export const F28012026_01 = ({
38
34
  >
39
35
  <WordReveal28012026
40
36
  text={welcomeMessage}
41
- start={50}
37
+ start={40}
42
38
  fontSize={70}
43
39
  color="#D4A24C"
40
+ fontFamily="Dancing Script"
41
+ letterSpacing={3}
42
+ lineHeight={1.3}
43
+ fontWeight={600}
44
+ exitDurationSec={2}
44
45
  />
45
46
  </h1>
46
47
  </div>
47
-
48
-
49
48
  </AbsoluteFill>
50
49
  );
51
50
  };