@evatril/video-templates 2.0.6 → 2.0.7
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 +1 -1
- package/public/video-images/20012026-bg.png +0 -0
- package/public/video-images/20012026-bride.png +0 -0
- package/public/video-images/20012026-butterfly.png +0 -0
- package/public/video-images/20012026-couple-walk.png +0 -0
- package/public/video-images/20012026-floral-left.png +0 -0
- package/public/video-images/20012026-groom.png +0 -0
- package/public/video-images/20012026-peacock.png +0 -0
- package/public/video-images/20012026-wedding-gate.png +0 -0
- package/src/Invitations/Frames/F20012026_01.jsx +0 -12
- package/src/Invitations/Frames/F20012026_02.jsx +123 -222
- package/src/Invitations/Frames/F20012026_03.jsx +23 -51
- package/src/Invitations/Themes/T20012026_01.jsx +56 -32
- package/src/compositions.jsx +4 -5
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -58,18 +58,6 @@ export const F20012026_01 = ({
|
|
|
58
58
|
const groomAnim = reveal(groomStart);
|
|
59
59
|
return (
|
|
60
60
|
<AbsoluteFill style={{ overflow: "hidden" }}>
|
|
61
|
-
|
|
62
|
-
<AbsoluteFill style={{ backgroundColor: "#1a1a1a" }} />
|
|
63
|
-
{/* ================= BACKGROUND ================= */}
|
|
64
|
-
<Img
|
|
65
|
-
src={staticFile("video-images/20012026-bg.png")}
|
|
66
|
-
style={{
|
|
67
|
-
position: "absolute",
|
|
68
|
-
width: "100%",
|
|
69
|
-
height: "100%",
|
|
70
|
-
objectFit: "cover",
|
|
71
|
-
}}
|
|
72
|
-
/>
|
|
73
61
|
|
|
74
62
|
{/* ================= VISUAL LAYERS ================= */}
|
|
75
63
|
<Butterflies20012026 frame={frame} fps={fps} width={width} height={height} />
|
|
@@ -13,24 +13,19 @@ import { SideTrees20012026 } from "../Elements/SideTrees20012026.jsx";
|
|
|
13
13
|
import { PeacockDance20012026 } from "../Elements/PeacockDance20012026.jsx";
|
|
14
14
|
import { SmoothRevealFromTop } from "../Elements/SmoothRevealFromTop.jsx";
|
|
15
15
|
|
|
16
|
-
export const F20012026_02 = ({
|
|
16
|
+
export const F20012026_02 = ({
|
|
17
|
+
firstName,
|
|
18
|
+
secondName,
|
|
19
|
+
firstSideNote,
|
|
20
|
+
secondSideNote,
|
|
21
|
+
invitationMessage,
|
|
22
|
+
occasionDate,
|
|
23
|
+
fadeInDuration = 30,
|
|
17
24
|
}) => {
|
|
18
25
|
const frame = useCurrentFrame();
|
|
19
26
|
const { fps } = useVideoConfig();
|
|
20
27
|
|
|
21
|
-
/* =================
|
|
22
|
-
// 🎥 VERY SMOOTH CINEMATIC ZOOM
|
|
23
|
-
const sceneScale = interpolate(
|
|
24
|
-
frame,
|
|
25
|
-
[0, fadeInDuration * 2],
|
|
26
|
-
[1.20, 1],
|
|
27
|
-
{
|
|
28
|
-
extrapolateRight: "clamp",
|
|
29
|
-
easing: Easing.out(Easing.cubic),
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
/* ================= SAFE DATE FORMAT ================= */
|
|
28
|
+
/* ================= DATE FORMAT ================= */
|
|
34
29
|
const formatDate = (date) => {
|
|
35
30
|
if (!date) return "";
|
|
36
31
|
const d = new Date(date);
|
|
@@ -43,261 +38,167 @@ export const F20012026_02 = ({ firstName, secondName, firstSideNote, secondSideN
|
|
|
43
38
|
});
|
|
44
39
|
};
|
|
45
40
|
|
|
46
|
-
|
|
47
41
|
const DETAILS_START = fps * 3;
|
|
48
42
|
|
|
49
|
-
/* =================
|
|
50
|
-
|
|
43
|
+
/* ================= CURTAIN ANIMATION ================= */
|
|
44
|
+
|
|
45
|
+
const showImageAfter = fadeInDuration;
|
|
51
46
|
|
|
52
47
|
const imageOpacity = interpolate(
|
|
53
48
|
frame,
|
|
54
49
|
[showImageAfter, showImageAfter + fps],
|
|
55
50
|
[0, 1],
|
|
56
|
-
{
|
|
57
|
-
extrapolateRight: "clamp",
|
|
58
|
-
easing: Easing.out(Easing.ease),
|
|
59
|
-
}
|
|
51
|
+
{ extrapolateRight: "clamp", easing: Easing.out(Easing.ease) }
|
|
60
52
|
);
|
|
61
53
|
|
|
62
54
|
const imageScale = interpolate(
|
|
63
55
|
frame,
|
|
64
56
|
[showImageAfter, showImageAfter + fps],
|
|
65
57
|
[0.92, 1],
|
|
66
|
-
{
|
|
67
|
-
extrapolateRight: "clamp",
|
|
68
|
-
easing: Easing.out(Easing.ease),
|
|
69
|
-
}
|
|
58
|
+
{ extrapolateRight: "clamp", easing: Easing.out(Easing.ease) }
|
|
70
59
|
);
|
|
71
60
|
|
|
72
61
|
return (
|
|
73
|
-
<AbsoluteFill
|
|
74
|
-
|
|
75
|
-
|
|
62
|
+
<AbsoluteFill
|
|
63
|
+
style={{
|
|
64
|
+
overflow: "hidden",
|
|
65
|
+
willChange: "transform",
|
|
66
|
+
}}
|
|
67
|
+
>
|
|
68
|
+
{/* Curtain */}
|
|
69
|
+
<Img
|
|
70
|
+
src={staticFile("video-images/20012026-curtain-floral.png")}
|
|
76
71
|
style={{
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
position: "absolute",
|
|
73
|
+
left: "50%",
|
|
74
|
+
width: "100%",
|
|
75
|
+
opacity: imageOpacity,
|
|
76
|
+
transform: `translateX(-50%) scale(${imageScale})`,
|
|
77
|
+
willChange: "transform, opacity",
|
|
78
|
+
}}
|
|
79
|
+
/>
|
|
80
|
+
|
|
81
|
+
{/* Decorations */}
|
|
82
|
+
<SideTrees20012026 startAfter={2} />
|
|
83
|
+
<PeacockDance20012026 startAfter={3} />
|
|
80
84
|
|
|
85
|
+
{/* Content */}
|
|
86
|
+
<div
|
|
87
|
+
style={{
|
|
88
|
+
position: "relative",
|
|
89
|
+
top: "26%",
|
|
90
|
+
width: "100%",
|
|
91
|
+
display: "flex",
|
|
92
|
+
flexDirection: "column",
|
|
93
|
+
alignItems: "center",
|
|
94
|
+
textAlign: "center",
|
|
95
|
+
gap: 15,
|
|
81
96
|
}}
|
|
82
97
|
>
|
|
83
|
-
{/*
|
|
84
|
-
<
|
|
85
|
-
src={staticFile("video-images/20012026-bg.png")}
|
|
98
|
+
{/* Invitation */}
|
|
99
|
+
<div
|
|
86
100
|
style={{
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
101
|
+
maxWidth: "50%",
|
|
102
|
+
fontFamily: "Dancing Script",
|
|
103
|
+
color: "#4A3A2A",
|
|
104
|
+
fontSize: 40,
|
|
105
|
+
letterSpacing: 2,
|
|
106
|
+
...SmoothRevealFromTop({ frame, startFrame: DETAILS_START, delay: 0 }),
|
|
91
107
|
}}
|
|
92
|
-
|
|
108
|
+
>
|
|
109
|
+
{invitationMessage}
|
|
110
|
+
</div>
|
|
93
111
|
|
|
94
|
-
<
|
|
95
|
-
src={staticFile("video-images/20012026-curtain-floral.png")}
|
|
112
|
+
<h1
|
|
96
113
|
style={{
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
maxWidth: "70%",
|
|
115
|
+
fontFamily: "Playfair Display",
|
|
116
|
+
color: "#7A1E2E",
|
|
117
|
+
fontSize: 60,
|
|
118
|
+
letterSpacing: 3,
|
|
119
|
+
...SmoothRevealFromTop({ frame, startFrame: DETAILS_START, delay: 25 }),
|
|
102
120
|
}}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
<SideTrees20012026 startAfter={2} />
|
|
107
|
-
<PeacockDance20012026 startAfter={3} />
|
|
121
|
+
>
|
|
122
|
+
{firstName}
|
|
123
|
+
</h1>
|
|
108
124
|
|
|
109
125
|
<div
|
|
110
126
|
style={{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
alignItems: "center",
|
|
117
|
-
textAlign: "center",
|
|
118
|
-
gap: "15px"
|
|
127
|
+
fontFamily: "Dancing Script",
|
|
128
|
+
color: "#B87A6A",
|
|
129
|
+
fontSize: 35,
|
|
130
|
+
maxWidth:"70%",
|
|
131
|
+
...SmoothRevealFromTop({ frame, startFrame: DETAILS_START, delay: 50 }),
|
|
119
132
|
}}
|
|
120
133
|
>
|
|
121
|
-
{
|
|
122
|
-
|
|
123
|
-
style={{
|
|
124
|
-
maxWidth: "50%",
|
|
125
|
-
fontFamily: "Dancing Script",
|
|
126
|
-
color: "#4A3A2A",
|
|
127
|
-
fontSize: 40,
|
|
128
|
-
fontWeight: "500",
|
|
129
|
-
lineHeight: 1.2,
|
|
130
|
-
letterSpacing: "2px",
|
|
131
|
-
...SmoothRevealFromTop({
|
|
132
|
-
frame,
|
|
133
|
-
startFrame: DETAILS_START,
|
|
134
|
-
delay: 0,
|
|
135
|
-
})
|
|
136
|
-
}}
|
|
137
|
-
>
|
|
138
|
-
{invitationMessage}
|
|
139
|
-
</div>
|
|
140
|
-
|
|
141
|
-
{/* Bride Name */}
|
|
142
|
-
<h1
|
|
143
|
-
style={{
|
|
144
|
-
maxWidth: "70%",
|
|
145
|
-
fontFamily: "Playfair Display",
|
|
146
|
-
color: "#7A1E2E",
|
|
147
|
-
fontSize: 60,
|
|
148
|
-
fontWeight: "600",
|
|
149
|
-
lineHeight: 1.2,
|
|
150
|
-
letterSpacing: "3px",
|
|
151
|
-
whiteSpace: "normal",
|
|
152
|
-
wordBreak: "break-word",
|
|
153
|
-
overflowWrap: "break-word",
|
|
154
|
-
...SmoothRevealFromTop({
|
|
155
|
-
frame,
|
|
156
|
-
startFrame: DETAILS_START,
|
|
157
|
-
delay: 25,
|
|
158
|
-
})
|
|
159
|
-
}}
|
|
160
|
-
>
|
|
161
|
-
{firstName}
|
|
162
|
-
</h1>
|
|
163
|
-
|
|
164
|
-
{/* Bride Side Note */}
|
|
165
|
-
<div
|
|
166
|
-
style={{
|
|
167
|
-
maxWidth: "60%",
|
|
168
|
-
fontFamily: "Dancing Script",
|
|
169
|
-
color: "#B87A6A",
|
|
170
|
-
fontSize: 40,
|
|
171
|
-
fontWeight: "600",
|
|
172
|
-
lineHeight: 1.2,
|
|
173
|
-
letterSpacing: "2px",
|
|
174
|
-
whiteSpace: "normal",
|
|
175
|
-
wordBreak: "break-word",
|
|
176
|
-
overflowWrap: "break-word",
|
|
177
|
-
...SmoothRevealFromTop({
|
|
178
|
-
frame,
|
|
179
|
-
startFrame: DETAILS_START,
|
|
180
|
-
delay: 50,
|
|
181
|
-
})
|
|
182
|
-
}}
|
|
183
|
-
>
|
|
184
|
-
{firstSideNote}
|
|
185
|
-
</div>
|
|
134
|
+
{firstSideNote}
|
|
135
|
+
</div>
|
|
186
136
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
})
|
|
198
|
-
}}
|
|
199
|
-
>
|
|
200
|
-
❁ ❁ ❁
|
|
201
|
-
</div>
|
|
137
|
+
<div
|
|
138
|
+
style={{
|
|
139
|
+
fontSize: 40,
|
|
140
|
+
color: "#C9A24D",
|
|
141
|
+
letterSpacing: 6,
|
|
142
|
+
...SmoothRevealFromTop({ frame, startFrame: DETAILS_START, delay: 70 }),
|
|
143
|
+
}}
|
|
144
|
+
>
|
|
145
|
+
❁ ❁ ❁
|
|
146
|
+
</div>
|
|
202
147
|
|
|
148
|
+
<h1
|
|
149
|
+
style={{
|
|
150
|
+
maxWidth: "70%",
|
|
151
|
+
fontFamily: "Playfair Display",
|
|
152
|
+
color: "#7A1E2E",
|
|
153
|
+
fontSize: 60,
|
|
154
|
+
letterSpacing: 3,
|
|
155
|
+
...SmoothRevealFromTop({ frame, startFrame: DETAILS_START, delay: 95 }),
|
|
156
|
+
}}
|
|
157
|
+
>
|
|
158
|
+
{secondName}
|
|
159
|
+
</h1>
|
|
203
160
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
wordBreak: "break-word",
|
|
216
|
-
overflowWrap: "break-word",
|
|
217
|
-
...SmoothRevealFromTop({
|
|
218
|
-
frame,
|
|
219
|
-
startFrame: DETAILS_START,
|
|
220
|
-
delay: 95,
|
|
221
|
-
})
|
|
222
|
-
}}
|
|
223
|
-
>
|
|
224
|
-
{secondName}
|
|
225
|
-
</h1>
|
|
161
|
+
<div
|
|
162
|
+
style={{
|
|
163
|
+
fontFamily: "Dancing Script",
|
|
164
|
+
color: "#B87A6A",
|
|
165
|
+
fontSize: 35,
|
|
166
|
+
maxWidth:"70%",
|
|
167
|
+
...SmoothRevealFromTop({ frame, startFrame: DETAILS_START, delay: 120 }),
|
|
168
|
+
}}
|
|
169
|
+
>
|
|
170
|
+
{secondSideNote}
|
|
171
|
+
</div>
|
|
226
172
|
|
|
227
|
-
|
|
173
|
+
<div
|
|
174
|
+
style={{
|
|
175
|
+
textAlign: "center",
|
|
176
|
+
...SmoothRevealFromTop({ frame, startFrame: DETAILS_START, delay: 145 }),
|
|
177
|
+
}}
|
|
178
|
+
>
|
|
228
179
|
<div
|
|
229
180
|
style={{
|
|
230
|
-
maxWidth: "70%",
|
|
231
|
-
fontFamily: "Dancing Script",
|
|
232
|
-
color: "#B87A6A",
|
|
233
181
|
fontSize: 40,
|
|
234
|
-
fontWeight:
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
whiteSpace: "normal",
|
|
238
|
-
wordBreak: "break-word",
|
|
239
|
-
overflowWrap: "break-word",
|
|
240
|
-
...SmoothRevealFromTop({
|
|
241
|
-
frame,
|
|
242
|
-
startFrame: DETAILS_START,
|
|
243
|
-
delay: 120,
|
|
244
|
-
})
|
|
182
|
+
fontWeight:"400",
|
|
183
|
+
fontFamily: "Great Vibes",
|
|
184
|
+
color: "#2F6B4F",
|
|
245
185
|
}}
|
|
246
186
|
>
|
|
247
|
-
|
|
187
|
+
– Join us on this auspicious day –
|
|
248
188
|
</div>
|
|
249
189
|
|
|
250
|
-
{/* Date */}
|
|
251
190
|
<div
|
|
252
191
|
style={{
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
frame,
|
|
258
|
-
startFrame: DETAILS_START,
|
|
259
|
-
delay: 145,
|
|
260
|
-
})
|
|
192
|
+
fontSize: 50,
|
|
193
|
+
fontFamily: "Playfair Display",
|
|
194
|
+
color: "#5A4632",
|
|
195
|
+
letterSpacing: 4,
|
|
261
196
|
}}
|
|
262
197
|
>
|
|
263
|
-
{
|
|
264
|
-
<div
|
|
265
|
-
style={{
|
|
266
|
-
fontSize: 45,
|
|
267
|
-
fontFamily: "Great Vibes",
|
|
268
|
-
fontWeight: "500",
|
|
269
|
-
letterSpacing: "3px",
|
|
270
|
-
color: "#2F6B4F",
|
|
271
|
-
lineHeight: 1.2,
|
|
272
|
-
marginBottom: 8,
|
|
273
|
-
whiteSpace: "nowrap",
|
|
274
|
-
|
|
275
|
-
}}
|
|
276
|
-
>
|
|
277
|
-
– Join us on this auspicious day –
|
|
278
|
-
</div>
|
|
279
|
-
|
|
280
|
-
{/* -------- Date Line -------- */}
|
|
281
|
-
<div
|
|
282
|
-
style={{
|
|
283
|
-
fontSize: 55,
|
|
284
|
-
fontFamily: "Playfair Display",
|
|
285
|
-
fontWeight: "400",
|
|
286
|
-
color: "#5A4632",
|
|
287
|
-
lineHeight: 1.2,
|
|
288
|
-
letterSpacing: "4px",
|
|
289
|
-
whiteSpace: "nowrap", // 🔥 force single line
|
|
290
|
-
}}
|
|
291
|
-
>
|
|
292
|
-
{formatDate(occasionDate)}
|
|
293
|
-
</div>
|
|
198
|
+
{formatDate(occasionDate)}
|
|
294
199
|
</div>
|
|
295
|
-
|
|
296
|
-
|
|
297
200
|
</div>
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
</AbsoluteFill>
|
|
201
|
+
</div>
|
|
301
202
|
</AbsoluteFill>
|
|
302
203
|
);
|
|
303
204
|
};
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "remotion";
|
|
11
11
|
|
|
12
12
|
import { GroomBrideLoveScene20012026 } from "../Elements/GroomBrideLoveScene20012026.jsx";
|
|
13
|
-
import{ SmoothRevealFromTop} from "../Elements/SmoothRevealFromTop.jsx"
|
|
13
|
+
import { SmoothRevealFromTop } from "../Elements/SmoothRevealFromTop.jsx"
|
|
14
14
|
|
|
15
15
|
export const F20012026_03 = ({
|
|
16
16
|
eventDateTime,
|
|
@@ -22,18 +22,6 @@ export const F20012026_03 = ({
|
|
|
22
22
|
const frame = useCurrentFrame();
|
|
23
23
|
const { fps } = useVideoConfig();
|
|
24
24
|
|
|
25
|
-
/* ================= SCENE REVEAL (SMOKE FOLLOW-UP) ================= */
|
|
26
|
-
// 🎥 VERY SMOOTH CINEMATIC ZOOM
|
|
27
|
-
const sceneScale = interpolate(
|
|
28
|
-
frame,
|
|
29
|
-
[0, fadeInDuration * 2],
|
|
30
|
-
[1.20, 1],
|
|
31
|
-
{
|
|
32
|
-
extrapolateRight: "clamp",
|
|
33
|
-
easing: Easing.out(Easing.cubic),
|
|
34
|
-
}
|
|
35
|
-
);
|
|
36
|
-
|
|
37
25
|
/* ---------------- DATE UTILS ---------------- */
|
|
38
26
|
const getDateParts = (iso) => {
|
|
39
27
|
if (!iso) return { day: "", month: "", year: "", time: "" };
|
|
@@ -58,7 +46,7 @@ export const F20012026_03 = ({
|
|
|
58
46
|
const { day, month, year, time } = getDateParts(eventDateTime);
|
|
59
47
|
|
|
60
48
|
const DETAILS_START = fps * 4;
|
|
61
|
-
|
|
49
|
+
|
|
62
50
|
/* ================= IMAGE ANIMATION ================= */
|
|
63
51
|
const showImageAfter = fadeInDuration * 2;
|
|
64
52
|
|
|
@@ -92,26 +80,12 @@ export const F20012026_03 = ({
|
|
|
92
80
|
);
|
|
93
81
|
|
|
94
82
|
return (
|
|
95
|
-
<AbsoluteFill>
|
|
96
|
-
<AbsoluteFill style={{ backgroundColor: "#1a1a1a" }} />
|
|
97
83
|
<AbsoluteFill
|
|
98
84
|
style={{
|
|
99
|
-
transform: `scale(${sceneScale})`,
|
|
100
85
|
transformOrigin: "center center",
|
|
101
86
|
overflow: "hidden",
|
|
102
87
|
}}
|
|
103
88
|
>
|
|
104
|
-
{/* ================= BACKGROUND ================= */}
|
|
105
|
-
<Img
|
|
106
|
-
src={staticFile("video-images/20012026-bg.png")}
|
|
107
|
-
style={{
|
|
108
|
-
position: "absolute",
|
|
109
|
-
width: "100%",
|
|
110
|
-
height: "100%",
|
|
111
|
-
objectFit: "cover",
|
|
112
|
-
|
|
113
|
-
}}
|
|
114
|
-
/>
|
|
115
89
|
<Img
|
|
116
90
|
src={staticFile("video-images/20012026-wedding-gate.png")}
|
|
117
91
|
style={{
|
|
@@ -200,10 +174,10 @@ export const F20012026_03 = ({
|
|
|
200
174
|
wordBreak: "break-word",
|
|
201
175
|
overflowWrap: "break-word",
|
|
202
176
|
...SmoothRevealFromTop({
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
})
|
|
177
|
+
frame,
|
|
178
|
+
startFrame: DETAILS_START,
|
|
179
|
+
delay: 50,
|
|
180
|
+
})
|
|
207
181
|
|
|
208
182
|
}}
|
|
209
183
|
>
|
|
@@ -223,11 +197,11 @@ export const F20012026_03 = ({
|
|
|
223
197
|
whiteSpace: "normal",
|
|
224
198
|
wordBreak: "break-word",
|
|
225
199
|
overflowWrap: "break-word",
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
})
|
|
200
|
+
...SmoothRevealFromTop({
|
|
201
|
+
frame,
|
|
202
|
+
startFrame: DETAILS_START,
|
|
203
|
+
delay: 70,
|
|
204
|
+
})
|
|
231
205
|
|
|
232
206
|
}}
|
|
233
207
|
>
|
|
@@ -247,10 +221,10 @@ export const F20012026_03 = ({
|
|
|
247
221
|
wordBreak: "break-word",
|
|
248
222
|
overflowWrap: "break-word",
|
|
249
223
|
...SmoothRevealFromTop({
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
})
|
|
224
|
+
frame,
|
|
225
|
+
startFrame: DETAILS_START,
|
|
226
|
+
delay: 95,
|
|
227
|
+
})
|
|
254
228
|
|
|
255
229
|
}}
|
|
256
230
|
>
|
|
@@ -268,10 +242,10 @@ export const F20012026_03 = ({
|
|
|
268
242
|
wordBreak: "break-word",
|
|
269
243
|
overflowWrap: "break-word",
|
|
270
244
|
...SmoothRevealFromTop({
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
})
|
|
245
|
+
frame,
|
|
246
|
+
startFrame: DETAILS_START,
|
|
247
|
+
delay: 115,
|
|
248
|
+
})
|
|
275
249
|
|
|
276
250
|
}}
|
|
277
251
|
>
|
|
@@ -292,10 +266,10 @@ export const F20012026_03 = ({
|
|
|
292
266
|
wordBreak: "break-word",
|
|
293
267
|
overflowWrap: "break-word",
|
|
294
268
|
...SmoothRevealFromTop({
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
})
|
|
269
|
+
frame,
|
|
270
|
+
startFrame: DETAILS_START,
|
|
271
|
+
delay: 125,
|
|
272
|
+
})
|
|
299
273
|
|
|
300
274
|
}}
|
|
301
275
|
>
|
|
@@ -304,7 +278,5 @@ export const F20012026_03 = ({
|
|
|
304
278
|
</div>
|
|
305
279
|
|
|
306
280
|
</AbsoluteFill>
|
|
307
|
-
|
|
308
|
-
</AbsoluteFill>
|
|
309
281
|
);
|
|
310
282
|
};
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
Audio,
|
|
6
6
|
staticFile,
|
|
7
7
|
AbsoluteFill,
|
|
8
|
+
useCurrentFrame,
|
|
9
|
+
Img,
|
|
8
10
|
} from "remotion";
|
|
9
11
|
|
|
10
12
|
import { F20012026_01 } from "../Frames/F20012026_01.jsx";
|
|
@@ -24,6 +26,7 @@ export const T20012026_01 = ({
|
|
|
24
26
|
familyMember,
|
|
25
27
|
}) => {
|
|
26
28
|
const { durationInFrames } = useVideoConfig();
|
|
29
|
+
const frame = useCurrentFrame();
|
|
27
30
|
|
|
28
31
|
/* ---------------- SAFE DATA ---------------- */
|
|
29
32
|
|
|
@@ -96,60 +99,81 @@ export const T20012026_01 = ({
|
|
|
96
99
|
return (
|
|
97
100
|
<AbsoluteFill>
|
|
98
101
|
|
|
99
|
-
{/* 🔒 GLOBAL BACKGROUND (never unmounts) */}
|
|
100
|
-
<AbsoluteFill style={{ backgroundColor: "#1a1a1a" }} />
|
|
101
|
-
|
|
102
102
|
{/* 🎵 MUSIC */}
|
|
103
103
|
<Audio
|
|
104
104
|
src={staticFile("video-images/wedding.mp3")}
|
|
105
|
-
startFrom={
|
|
106
|
-
endAt={
|
|
105
|
+
startFrom={0}
|
|
106
|
+
endAt={durationInFrames}
|
|
107
107
|
volume={0.4}
|
|
108
108
|
/>
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
|
|
111
|
+
{/* ================= SCENE 1 ================= */}
|
|
111
112
|
<Sequence from={0} durationInFrames={framesPerPage + 2}>
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
<>
|
|
114
|
+
<Img
|
|
115
|
+
src={staticFile("video-images/20012026-bg.png")}
|
|
116
|
+
style={{ position: "absolute", width: "100%", height: "100%", objectFit: "cover" }}
|
|
117
|
+
/>
|
|
118
|
+
<F20012026_01
|
|
119
|
+
firstName={firstName}
|
|
120
|
+
secondName={secondName}
|
|
121
|
+
welcomeMessage={welcomeMessage}
|
|
122
|
+
/>
|
|
123
|
+
</>
|
|
118
124
|
</Sequence>
|
|
119
125
|
|
|
120
|
-
{/*
|
|
126
|
+
{/* ================= SCENE 2 ================= */}
|
|
121
127
|
<Sequence from={framesPerPage - 2} durationInFrames={framesPerPage + 2}>
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
<>
|
|
129
|
+
<Img
|
|
130
|
+
src={staticFile("video-images/20012026-bg.png")}
|
|
131
|
+
style={{ position: "absolute", width: "100%", height: "100%", objectFit: "cover" }}
|
|
132
|
+
/>
|
|
133
|
+
<F20012026_02
|
|
134
|
+
firstName={firstName}
|
|
135
|
+
secondName={secondName}
|
|
136
|
+
firstSideNote={firstSideNote}
|
|
137
|
+
secondSideNote={secondSideNote}
|
|
138
|
+
invitationMessage={invitationMessage}
|
|
139
|
+
occasionDate={occasionDate}
|
|
140
|
+
fadeInDuration={transitionDuration}
|
|
141
|
+
/>
|
|
142
|
+
</>
|
|
131
143
|
</Sequence>
|
|
132
144
|
|
|
133
145
|
{/* ☁️ TRANSITION 1 → 2 */}
|
|
134
|
-
<Sequence
|
|
146
|
+
<Sequence
|
|
147
|
+
from={framesPerPage - 2}
|
|
148
|
+
durationInFrames={transitionDuration + 2}
|
|
149
|
+
>
|
|
135
150
|
<InkSmokeTransition20012026 />
|
|
136
151
|
</Sequence>
|
|
137
152
|
|
|
138
|
-
{/*
|
|
153
|
+
{/* ================= SCENE 3 ================= */}
|
|
139
154
|
<Sequence from={framesPerPage * 2 - 2} durationInFrames={framesPerPage + 2}>
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
155
|
+
<>
|
|
156
|
+
<Img
|
|
157
|
+
src={staticFile("video-images/20012026-bg.png")}
|
|
158
|
+
style={{ position: "absolute", width: "100%", height: "100%", objectFit: "cover" }}
|
|
159
|
+
/>
|
|
160
|
+
<F20012026_03
|
|
161
|
+
eventDateTime={eventDateTime}
|
|
162
|
+
venueName={venueName}
|
|
163
|
+
venueAddress={venueAddress}
|
|
164
|
+
familyMember={familyMember}
|
|
165
|
+
/>
|
|
166
|
+
</>
|
|
146
167
|
</Sequence>
|
|
147
168
|
|
|
148
169
|
{/* ☁️ TRANSITION 2 → 3 */}
|
|
149
|
-
<Sequence
|
|
170
|
+
<Sequence
|
|
171
|
+
from={framesPerPage * 2 - 2}
|
|
172
|
+
durationInFrames={transitionDuration + 2}
|
|
173
|
+
>
|
|
150
174
|
<InkSmokeTransition20012026 />
|
|
151
175
|
</Sequence>
|
|
152
176
|
|
|
153
177
|
</AbsoluteFill>
|
|
154
178
|
);
|
|
155
|
-
};
|
|
179
|
+
};
|
package/src/compositions.jsx
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Composition } from "remotion";
|
|
3
3
|
import { T20012026_01 } from "./Invitations/Themes/T20012026_01.jsx";
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
export const VideoCompositions = () => {
|
|
6
6
|
return (
|
|
7
7
|
<>
|
|
8
8
|
<Composition
|
|
9
9
|
id="T20012026-01"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
component={T20012026_01}
|
|
11
|
+
fps={24}
|
|
12
|
+
durationInFrames={24 * 30}
|
|
13
13
|
width={1080}
|
|
14
14
|
height={1920}
|
|
15
15
|
/>
|
|
16
16
|
</>
|
|
17
17
|
);
|
|
18
18
|
};
|
|
19
|
-
|