@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.
- package/package.json +1 -1
- package/src/Invitations/Elements/BlowingLeaves28012026.jsx +2 -2
- package/src/Invitations/Elements/BottomSideFrames20012026.jsx +122 -0
- package/src/Invitations/Elements/Butterflies20012026.jsx +4 -4
- package/src/Invitations/Elements/CoupleWalk20012026.jsx +2 -3
- package/src/Invitations/Elements/CurtainTransition20012026.jsx +79 -0
- package/src/Invitations/Elements/DucksFrame05022026.jsx +1 -2
- package/src/Invitations/Elements/{FloatingFlowersBottom.jsx → FloatingFlowersBottom05022026.jsx} +2 -3
- package/src/Invitations/Elements/FlowerReveal_TR_BL_28012026.jsx +2 -3
- package/src/Invitations/Elements/FlowersSide20012026.jsx +3 -72
- package/src/Invitations/Elements/GaneshBorder28012026.jsx +2 -4
- package/src/Invitations/Elements/GroomBrideLoveScene20012026.jsx +6 -7
- package/src/Invitations/Elements/HangingJumar05022026.jsx +1 -2
- package/src/Invitations/Elements/HangingLamp05022026.jsx +1 -2
- package/src/Invitations/Elements/HeartFlight28012026.jsx +1 -78
- package/src/Invitations/Elements/{HoldSlide.jsx → HoldSlide03022026.jsx} +1 -1
- package/src/Invitations/Elements/LetterReveal28012026.jsx +102 -14
- package/src/Invitations/Elements/OpeningGate20012026.jsx +3 -3
- package/src/Invitations/Elements/PageFlipTransition28012026.jsx +84 -0
- package/src/Invitations/Elements/SmoothReveal20012026.jsx +62 -0
- package/src/Invitations/Elements/WordReveal28012026.jsx +45 -7
- package/src/Invitations/Frames/F03022026_01.jsx +1 -1
- package/src/Invitations/Frames/F03022026_02.jsx +9 -10
- package/src/Invitations/Frames/F03022026_03.jsx +1 -1
- package/src/Invitations/Frames/F03022026_04.jsx +1 -1
- package/src/Invitations/Frames/F03022026_05.jsx +11 -8
- package/src/Invitations/Frames/F05022026_01.jsx +1 -2
- package/src/Invitations/Frames/F05022026_02.jsx +7 -14
- package/src/Invitations/Frames/F05022026_03.jsx +4 -5
- package/src/Invitations/Frames/F05022026_04.jsx +10 -14
- package/src/Invitations/Frames/F20012026_01.jsx +29 -136
- package/src/Invitations/Frames/F20012026_02.jsx +148 -75
- package/src/Invitations/Frames/F20012026_03.jsx +74 -193
- package/src/Invitations/Frames/F20012026_04.jsx +54 -122
- package/src/Invitations/Frames/F28012026_01.jsx +7 -8
- package/src/Invitations/Frames/F28012026_02.jsx +51 -53
- package/src/Invitations/Frames/F28012026_03.jsx +60 -61
- package/src/Invitations/Frames/F28012026_04.jsx +65 -70
- package/src/Invitations/Frames/F28012026_05.jsx +40 -11
- package/src/Invitations/Themes/T03022026_01.jsx +12 -17
- package/src/Invitations/Themes/T05022026_01.jsx +23 -19
- package/src/Invitations/Themes/T20012026_01.jsx +79 -66
- package/src/Invitations/Themes/T28012026_01.jsx +32 -25
- package/src/compositions.jsx +8 -8
- package/public/Fonts/DancingScript-VariableFont_wght.ttf +0 -0
- package/public/Fonts/GreatVibes-Regular.ttf +0 -0
- package/public/Fonts/PlayfairDisplay-Italic-VariableFont_wght.ttf +0 -0
- package/public/video-images/03022026-bg-2.webp +0 -0
- package/public/video-images/03022026-bg-3.webp +0 -0
- package/public/video-images/03022026-bg-4.webp +0 -0
- package/public/video-images/03022026-bg-5.webp +0 -0
- package/public/video-images/03022026-bg.webp +0 -0
- package/public/video-images/03022026-krishnaradha-2.webp +0 -0
- package/public/video-images/03022026-krishnaradha-4.webp +0 -0
- package/public/video-images/03022026-krishnaradha-5.webp +0 -0
- package/public/video-images/03022026-krishnaradha.webp +0 -0
- package/public/video-images/05022026-Duck.webp +0 -0
- package/public/video-images/05022026-Flower.webp +0 -0
- package/public/video-images/05022026-Ganesh.webp +0 -0
- package/public/video-images/05022026-HangingJumar.webp +0 -0
- package/public/video-images/05022026-HangingLamps.webp +0 -0
- package/public/video-images/05022026-LeftPeacock.webp +0 -0
- package/public/video-images/05022026-Nameplate.webp +0 -0
- package/public/video-images/05022026-bg-2.webp +0 -0
- package/public/video-images/05022026-bg-3.webp +0 -0
- package/public/video-images/05022026-bg-4.webp +0 -0
- package/public/video-images/05022026-bg.webp +0 -0
- package/public/video-images/20012026-bg.png +0 -0
- package/public/video-images/20012026-bg.webp +0 -0
- package/public/video-images/20012026-bride.png +0 -0
- package/public/video-images/20012026-bride.webp +0 -0
- package/public/video-images/20012026-butterfly.png +0 -0
- package/public/video-images/20012026-butterfly.webp +0 -0
- package/public/video-images/20012026-couple-walk.png +0 -0
- package/public/video-images/20012026-couple-walk.webp +0 -0
- package/public/video-images/20012026-curtain-floral.png +0 -0
- package/public/video-images/20012026-curtain-floral.webp +0 -0
- package/public/video-images/20012026-floral-left.png +0 -0
- package/public/video-images/20012026-floral-left.webp +0 -0
- package/public/video-images/20012026-floral-right.png +0 -0
- package/public/video-images/20012026-floral-right.webp +0 -0
- package/public/video-images/20012026-groom.png +0 -0
- package/public/video-images/20012026-groom.webp +0 -0
- package/public/video-images/20012026-opening-gate.png +0 -0
- package/public/video-images/20012026-opening-gate.webp +0 -0
- package/public/video-images/20012026-peacock.png +0 -0
- package/public/video-images/20012026-peacock.webp +0 -0
- package/public/video-images/20012026-tree-left.png +0 -0
- package/public/video-images/20012026-tree-left.webp +0 -0
- package/public/video-images/20012026-tree-right.png +0 -0
- package/public/video-images/20012026-tree-right.webp +0 -0
- package/public/video-images/20012026-wedding-gate.png +0 -0
- package/public/video-images/20012026-wedding-gate.webp +0 -0
- package/public/video-images/28012026-BottomLeftFlower.webp +0 -0
- package/public/video-images/28012026-BottomRightFlower.webp +0 -0
- package/public/video-images/28012026-FlowerBorder.webp +0 -0
- package/public/video-images/28012026-Ganesh.webp +0 -0
- package/public/video-images/28012026-Heart.webp +0 -0
- package/public/video-images/28012026-PinkLeaf.webp +0 -0
- package/public/video-images/28012026-TopBorder.webp +0 -0
- package/public/video-images/28012026-TopLeftFlower.webp +0 -0
- package/public/video-images/28012026-TopRightFlower.webp +0 -0
- package/public/video-images/28012026-bg.webp +0 -0
- package/public/video-images/28012026-border.webp +0 -0
- package/public/video-images/28012026-frame.webp +0 -0
- package/public/video-images/wedding.mp3 +0 -0
- package/public/video-images/wedding2.mp3 +0 -0
- package/src/Invitations/Elements/GaneshGoldenHalo.jsx +0 -90
- package/src/Invitations/Elements/PageFlipTransition.jsx +0 -180
- package/src/Invitations/Elements/PeacockDance20012026.jsx +0 -68
- package/src/Invitations/Elements/SideTrees20012026.jsx +0 -92
- package/src/Invitations/Elements/SmoothRevealFromTop20012026.jsx +0 -32
|
@@ -6,10 +6,9 @@ import {
|
|
|
6
6
|
useVideoConfig,
|
|
7
7
|
interpolate,
|
|
8
8
|
Easing,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
import { WordReveal28012026 } from "../Elements/WordReveal28012026";
|
|
12
|
-
import {
|
|
11
|
+
import { HangingJumar05022026 } from "../Elements/HangingJumar05022026";
|
|
13
12
|
|
|
14
13
|
export const F05022026_04 = ({
|
|
15
14
|
familyMember,
|
|
@@ -71,13 +70,10 @@ export const F05022026_04 = ({
|
|
|
71
70
|
|
|
72
71
|
return (
|
|
73
72
|
<AbsoluteFill style={{ overflow: "hidden" }}>
|
|
74
|
-
<
|
|
75
|
-
<
|
|
76
|
-
<HangingLamp05022026 side="left" offset={0} />
|
|
77
|
-
<HangingLamp05022026 side="right" offset={0} />
|
|
78
|
-
|
|
73
|
+
<HangingJumar05022026 side="left" offset={-40} />
|
|
74
|
+
<HangingJumar05022026 side="right" offset={-40} />
|
|
79
75
|
<Img
|
|
80
|
-
src=
|
|
76
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/05022026-Nameplate.webp"
|
|
81
77
|
style={{
|
|
82
78
|
position: "absolute",
|
|
83
79
|
right: 60,
|
|
@@ -90,11 +86,11 @@ export const F05022026_04 = ({
|
|
|
90
86
|
/>
|
|
91
87
|
|
|
92
88
|
<Img
|
|
93
|
-
src=
|
|
89
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/05022026-LeftPeacock.webp"
|
|
94
90
|
style={{
|
|
95
91
|
position: "absolute",
|
|
96
|
-
left: -
|
|
97
|
-
bottom: -
|
|
92
|
+
left: -250,
|
|
93
|
+
bottom: -30,
|
|
98
94
|
width: 600,
|
|
99
95
|
maxWidth: "90%",
|
|
100
96
|
transform: `
|
|
@@ -109,7 +105,7 @@ export const F05022026_04 = ({
|
|
|
109
105
|
<div
|
|
110
106
|
style={{
|
|
111
107
|
position: "absolute",
|
|
112
|
-
top: "
|
|
108
|
+
top: "26%",
|
|
113
109
|
left: "50%",
|
|
114
110
|
transform: `translateX(-50%) translateY(${familyY}px)`,
|
|
115
111
|
width: "100%",
|
|
@@ -119,7 +115,7 @@ export const F05022026_04 = ({
|
|
|
119
115
|
>
|
|
120
116
|
<div
|
|
121
117
|
style={{
|
|
122
|
-
maxWidth: "
|
|
118
|
+
maxWidth: "70%",
|
|
123
119
|
margin: "0 auto",
|
|
124
120
|
}}
|
|
125
121
|
>
|
|
@@ -127,7 +123,7 @@ export const F05022026_04 = ({
|
|
|
127
123
|
text={familyMember}
|
|
128
124
|
start={20}
|
|
129
125
|
fontSize={70}
|
|
130
|
-
color="#
|
|
126
|
+
color="#B8860B"
|
|
131
127
|
fontFamily="Dancing Script"
|
|
132
128
|
letterSpacing="3px"
|
|
133
129
|
lineHeight="1.2"
|
|
@@ -13,14 +13,14 @@ import { CoupleWalk20012026 } from "../Elements/CoupleWalk20012026.jsx";
|
|
|
13
13
|
import { FlowersSide20012026 } from "../Elements/FlowersSide20012026.jsx";
|
|
14
14
|
|
|
15
15
|
export const F20012026_01 = ({
|
|
16
|
-
|
|
17
|
-
}) => {
|
|
16
|
+
welcomeMessage
|
|
17
|
+
}) => {
|
|
18
18
|
/* -------------------- HOOKS (ONLY HERE) -------------------- */
|
|
19
19
|
const frame = useCurrentFrame();
|
|
20
|
-
const { fps, width, height } = useVideoConfig();
|
|
20
|
+
const { fps, width, height, durationInFrames } = useVideoConfig();
|
|
21
21
|
|
|
22
22
|
/* -------------------- MESSAGE REVEAL -------------------- */
|
|
23
|
-
const messageStart = fps *
|
|
23
|
+
const messageStart = fps * 1;
|
|
24
24
|
const messageOpacity = interpolate(
|
|
25
25
|
frame,
|
|
26
26
|
[messageStart, messageStart + 15],
|
|
@@ -36,66 +36,33 @@ export const F20012026_01 = ({
|
|
|
36
36
|
easing: Easing.out(Easing.cubic),
|
|
37
37
|
}
|
|
38
38
|
);
|
|
39
|
-
/* -------------------- NAME ANIMATIONS -------------------- */
|
|
40
|
-
const brideStart = messageStart + fps * 1;
|
|
41
|
-
const wedsStart = brideStart + fps * 0.6;
|
|
42
|
-
const groomStart = wedsStart + fps * 0.6;
|
|
43
|
-
|
|
44
|
-
const reveal = (start) => ({
|
|
45
|
-
opacity: interpolate(frame, [start, start + 20], [0, 1], {
|
|
46
|
-
extrapolateRight: "clamp",
|
|
47
|
-
}),
|
|
48
|
-
translateY: interpolate(frame, [start, start + 25], [40, 0], {
|
|
49
|
-
extrapolateRight: "clamp",
|
|
50
|
-
easing: Easing.out(Easing.cubic),
|
|
51
|
-
}),
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
const brideAnim = reveal(brideStart);
|
|
55
|
-
const wedsAnim = reveal(wedsStart);
|
|
56
|
-
const groomAnim = reveal(groomStart);
|
|
57
|
-
|
|
58
|
-
const sceneDuration = fps * 8;
|
|
59
|
-
const exitDuration = fps * 1.3; // last 1 sec
|
|
60
|
-
const exitStart = sceneDuration - exitDuration;
|
|
61
|
-
|
|
62
|
-
const parts = 5;
|
|
63
|
-
const partDuration = exitDuration / parts;
|
|
64
39
|
|
|
40
|
+
/* -------------------- MESSAGE EXIT (LAST 1 SECOND) -------------------- */
|
|
65
41
|
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
const end = start + partDuration;
|
|
42
|
+
const exitDuration = fps * 2; // exactly 1 second
|
|
43
|
+
const exitStart = durationInFrames - exitDuration;
|
|
69
44
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
),
|
|
81
|
-
|
|
82
|
-
translateY: interpolate(
|
|
83
|
-
frame,
|
|
84
|
-
[start, end],
|
|
85
|
-
[0, -80],
|
|
86
|
-
{
|
|
87
|
-
extrapolateLeft: "clamp",
|
|
88
|
-
extrapolateRight: "clamp",
|
|
89
|
-
}
|
|
90
|
-
),
|
|
91
|
-
};
|
|
92
|
-
};
|
|
45
|
+
const messageExitOpacity = interpolate(
|
|
46
|
+
frame,
|
|
47
|
+
[exitStart, durationInFrames],
|
|
48
|
+
[1, 0],
|
|
49
|
+
{
|
|
50
|
+
extrapolateLeft: "clamp",
|
|
51
|
+
extrapolateRight: "clamp",
|
|
52
|
+
easing: Easing.in(Easing.cubic),
|
|
53
|
+
}
|
|
54
|
+
);
|
|
93
55
|
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
56
|
+
const messageExitTranslateY = interpolate(
|
|
57
|
+
frame,
|
|
58
|
+
[exitStart, durationInFrames],
|
|
59
|
+
[0, -60],
|
|
60
|
+
{
|
|
61
|
+
extrapolateLeft: "clamp",
|
|
62
|
+
extrapolateRight: "clamp",
|
|
63
|
+
easing: Easing.in(Easing.cubic),
|
|
64
|
+
}
|
|
65
|
+
);
|
|
99
66
|
|
|
100
67
|
return (
|
|
101
68
|
<AbsoluteFill style={{ overflow: "hidden" }}>
|
|
@@ -132,86 +99,12 @@ export const F20012026_01 = ({
|
|
|
132
99
|
color: "#6D4C6A",
|
|
133
100
|
fontWeight: "700",
|
|
134
101
|
lineHeight: 1.2,
|
|
135
|
-
opacity: messageOpacity,
|
|
136
|
-
transform: `translateY(${messageTranslateY}px)
|
|
137
|
-
opacity: messageOpacity * messageExit.opacity,
|
|
138
|
-
transform: `translateY(${messageTranslateY + messageExit.translateY}px)`,
|
|
102
|
+
opacity: messageOpacity * messageExitOpacity,
|
|
103
|
+
transform: `translateY(${messageTranslateY + messageExitTranslateY}px)`
|
|
139
104
|
}}
|
|
140
105
|
>
|
|
141
106
|
{welcomeMessage}
|
|
142
107
|
</div>
|
|
143
|
-
|
|
144
|
-
{/* ----------- NAMES ----------- */}
|
|
145
|
-
<div
|
|
146
|
-
style={{
|
|
147
|
-
width: "100%",
|
|
148
|
-
display: "flex",
|
|
149
|
-
flexDirection: "column",
|
|
150
|
-
alignItems: "center",
|
|
151
|
-
}}
|
|
152
|
-
>
|
|
153
|
-
<h1
|
|
154
|
-
style={{
|
|
155
|
-
width: "100%",
|
|
156
|
-
maxWidth: "80%",
|
|
157
|
-
marginTop: "10px",
|
|
158
|
-
fontFamily: "Playfair Display",
|
|
159
|
-
color: "#6B1E2E",
|
|
160
|
-
fontSize: 60,
|
|
161
|
-
fontWeight: "600",
|
|
162
|
-
lineHeight: 1.3,
|
|
163
|
-
letterSpacing: "2px",
|
|
164
|
-
textAlign: "center",
|
|
165
|
-
whiteSpace: "normal",
|
|
166
|
-
wordBreak: "break-word",
|
|
167
|
-
overflowWrap: "break-word",
|
|
168
|
-
// opacity: brideAnim.opacity,
|
|
169
|
-
// transform: `translateY(${brideAnim.translateY}px)`,
|
|
170
|
-
opacity: brideAnim.opacity * brideExit.opacity,
|
|
171
|
-
transform: `translateY(${brideAnim.translateY + brideExit.translateY}px)`,
|
|
172
|
-
}}
|
|
173
|
-
>
|
|
174
|
-
{firstName}
|
|
175
|
-
</h1>
|
|
176
|
-
|
|
177
|
-
<h2
|
|
178
|
-
style={{
|
|
179
|
-
fontSize: 70,
|
|
180
|
-
fontFamily: "Great Vibes",
|
|
181
|
-
color: "#D4AF37",
|
|
182
|
-
margin: "10px 0",
|
|
183
|
-
// opacity: wedsAnim.opacity,
|
|
184
|
-
// transform: `translateY(${wedsAnim.translateY}px)`,
|
|
185
|
-
opacity: wedsAnim.opacity * wedsExit.opacity,
|
|
186
|
-
transform: `translateY(${wedsAnim.translateY + wedsExit.translateY}px)`,
|
|
187
|
-
}}
|
|
188
|
-
>
|
|
189
|
-
weds
|
|
190
|
-
</h2>
|
|
191
|
-
|
|
192
|
-
<h1
|
|
193
|
-
style={{
|
|
194
|
-
width: "100%",
|
|
195
|
-
maxWidth: "80%",
|
|
196
|
-
fontFamily: "Playfair Display",
|
|
197
|
-
color: "#6B1E2E",
|
|
198
|
-
fontSize: 60,
|
|
199
|
-
fontWeight: "600",
|
|
200
|
-
lineHeight: 1.3,
|
|
201
|
-
letterSpacing: "2px",
|
|
202
|
-
textAlign: "center",
|
|
203
|
-
whiteSpace: "normal",
|
|
204
|
-
wordBreak: "break-word",
|
|
205
|
-
overflowWrap: "break-word",
|
|
206
|
-
// opacity: groomAnim.opacity,
|
|
207
|
-
// transform: `translateY(${groomAnim.translateY}px)`,
|
|
208
|
-
opacity: groomAnim.opacity * groomExit.opacity,
|
|
209
|
-
transform: `translateY(${groomAnim.translateY + groomExit.translateY}px)`,
|
|
210
|
-
}}
|
|
211
|
-
>
|
|
212
|
-
{secondName}
|
|
213
|
-
</h1>
|
|
214
|
-
</div>
|
|
215
108
|
</div>
|
|
216
109
|
</AbsoluteFill>
|
|
217
110
|
);
|
|
@@ -6,12 +6,10 @@ import {
|
|
|
6
6
|
interpolate,
|
|
7
7
|
Easing,
|
|
8
8
|
Img,
|
|
9
|
-
staticFile,
|
|
10
9
|
} from "remotion";
|
|
11
10
|
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { SmoothRevealFromTop20012026 } from "../Elements/SmoothRevealFromTop20012026.jsx";
|
|
11
|
+
import { SmoothReveal20012026 } from "../Elements/SmoothReveal20012026.jsx";
|
|
12
|
+
import { HangingLamp05022026 } from "../Elements/HangingLamp05022026.jsx";
|
|
15
13
|
|
|
16
14
|
export const F20012026_02 = ({
|
|
17
15
|
firstName,
|
|
@@ -20,91 +18,127 @@ export const F20012026_02 = ({
|
|
|
20
18
|
secondSideNote,
|
|
21
19
|
invitationMessage,
|
|
22
20
|
occasionDate,
|
|
23
|
-
fadeInDuration = 30,
|
|
21
|
+
// fadeInDuration = 30,
|
|
24
22
|
}) => {
|
|
25
23
|
const frame = useCurrentFrame();
|
|
26
|
-
const { fps } = useVideoConfig();
|
|
24
|
+
const { fps, durationInFrames } = useVideoConfig();
|
|
27
25
|
|
|
28
26
|
/* ================= DATE FORMAT ================= */
|
|
29
27
|
const formatDate = (date) => {
|
|
30
|
-
if (!date) return "";
|
|
31
|
-
const d = new Date(date);
|
|
32
|
-
if (isNaN(d.getTime())) return "";
|
|
28
|
+
if (!date) return { datemonth: "", year: "" };
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
let d;
|
|
31
|
+
|
|
32
|
+
// Handle DD-MM-YYYY
|
|
33
|
+
if (typeof date === "string" && date.includes("-")) {
|
|
34
|
+
const parts = date.split("-");
|
|
35
|
+
if (parts[0].length === 2) {
|
|
36
|
+
d = new Date(`${parts[2]}-${parts[1]}-${parts[0]}`);
|
|
37
|
+
} else {
|
|
38
|
+
d = new Date(date);
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
d = new Date(date);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (isNaN(d.getTime())) return { datemonth: "", year: "" };
|
|
45
|
+
const dayMonth = d.toLocaleDateString("en-IN", {
|
|
35
46
|
day: "numeric",
|
|
36
47
|
month: "long",
|
|
37
|
-
year: "numeric",
|
|
38
48
|
});
|
|
49
|
+
const year = d.getFullYear();
|
|
50
|
+
return {
|
|
51
|
+
datemonth: dayMonth,
|
|
52
|
+
year: year.toString(),
|
|
53
|
+
};
|
|
39
54
|
};
|
|
40
55
|
|
|
41
|
-
const
|
|
56
|
+
const dateParts = formatDate(occasionDate);
|
|
57
|
+
|
|
58
|
+
const DETAILS_START = fps * 1;
|
|
59
|
+
|
|
60
|
+
/* ================= PEACOCK WALK ANIMATION ================= */
|
|
42
61
|
|
|
43
|
-
|
|
62
|
+
const walkStart = 0;
|
|
63
|
+
/* ================= PEACOCK HEAD + FEATHER SWING ================= */
|
|
44
64
|
|
|
45
|
-
|
|
65
|
+
// Head swing (faster small movement)
|
|
66
|
+
const headSwing = Math.sin(frame * 0.12) * 1;
|
|
67
|
+
// -4° to +4° rotation
|
|
46
68
|
|
|
47
|
-
|
|
69
|
+
// Feather sway (slow royal movement)
|
|
70
|
+
const featherSwing = Math.sin(frame * 0.06) * 6;
|
|
71
|
+
// -6px to +6px movement
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
// Small bounce for walking feel
|
|
75
|
+
const peacockBounce = interpolate(
|
|
48
76
|
frame,
|
|
49
|
-
[
|
|
50
|
-
[0,
|
|
51
|
-
{ extrapolateRight: "clamp"
|
|
77
|
+
[walkStart, walkStart + fps * 0.3, walkStart + fps * 0.6, walkStart + fps * 0.9],
|
|
78
|
+
[0, -6, 0, -6],
|
|
79
|
+
{ extrapolateRight: "clamp" }
|
|
52
80
|
);
|
|
53
81
|
|
|
54
|
-
|
|
82
|
+
// Fade in same time as curtain
|
|
83
|
+
const peacockOpacity = interpolate(
|
|
55
84
|
frame,
|
|
56
|
-
[
|
|
57
|
-
[0
|
|
58
|
-
{ extrapolateRight: "clamp"
|
|
85
|
+
[0, fps], // 👈 fade from frame 0 to 1 second
|
|
86
|
+
[0, 1],
|
|
87
|
+
{ extrapolateRight: "clamp" }
|
|
59
88
|
);
|
|
60
89
|
|
|
61
90
|
return (
|
|
62
91
|
<AbsoluteFill
|
|
63
92
|
style={{
|
|
64
93
|
overflow: "hidden",
|
|
65
|
-
willChange: "transform",
|
|
66
94
|
}}
|
|
67
95
|
>
|
|
68
|
-
|
|
96
|
+
<HangingLamp05022026 side="left" offset={-200} />
|
|
97
|
+
<HangingLamp05022026 side="right" offset={-200} />
|
|
98
|
+
{/* Peacock */}
|
|
69
99
|
<Img
|
|
70
|
-
src=
|
|
100
|
+
src="https://evatril-images.s3.ap-south-1.amazonaws.com/video-themes/hindu-wedding-1/v1/20012026-peacock.webp"
|
|
71
101
|
style={{
|
|
72
102
|
position: "absolute",
|
|
73
|
-
top:"
|
|
74
|
-
left: "50%",
|
|
103
|
+
top: "25%",
|
|
75
104
|
width: "100%",
|
|
76
|
-
opacity:
|
|
77
|
-
transform: `
|
|
105
|
+
opacity: peacockOpacity,
|
|
106
|
+
transform: `
|
|
107
|
+
translateY(${peacockBounce}px)
|
|
108
|
+
translateX(${featherSwing}px)
|
|
109
|
+
rotate(${headSwing}deg)
|
|
110
|
+
`,
|
|
111
|
+
transformOrigin: "bottom center",
|
|
78
112
|
willChange: "transform, opacity",
|
|
79
113
|
}}
|
|
80
114
|
/>
|
|
81
115
|
|
|
82
|
-
{/* Decorations */}
|
|
83
|
-
<SideTrees20012026 startAfter={2} />
|
|
84
|
-
<PeacockDance20012026 startAfter={3} />
|
|
85
|
-
|
|
86
116
|
{/* Content */}
|
|
87
117
|
<div
|
|
88
118
|
style={{
|
|
89
119
|
position: "relative",
|
|
90
|
-
top: "
|
|
120
|
+
top: "20%",
|
|
91
121
|
width: "100%",
|
|
92
122
|
display: "flex",
|
|
93
123
|
flexDirection: "column",
|
|
94
124
|
alignItems: "center",
|
|
95
125
|
textAlign: "center",
|
|
96
|
-
gap:
|
|
126
|
+
gap: 10,
|
|
97
127
|
}}
|
|
98
128
|
>
|
|
99
129
|
{/* Invitation */}
|
|
100
130
|
<div
|
|
101
131
|
style={{
|
|
102
|
-
maxWidth: "
|
|
132
|
+
maxWidth: "70%",
|
|
103
133
|
fontFamily: "Dancing Script",
|
|
104
|
-
color: "#
|
|
105
|
-
fontSize:
|
|
134
|
+
color: "#8C6A2A",
|
|
135
|
+
fontSize: 55,
|
|
136
|
+
lineHeight: 1.2,
|
|
106
137
|
letterSpacing: 2,
|
|
107
|
-
...
|
|
138
|
+
...SmoothReveal20012026({
|
|
139
|
+
frame, startFrame: DETAILS_START, delay: 0, direction: "top", durationInFrames,
|
|
140
|
+
fps, exitDurationSec: 2,
|
|
141
|
+
}),
|
|
108
142
|
}}
|
|
109
143
|
>
|
|
110
144
|
{invitationMessage}
|
|
@@ -114,10 +148,13 @@ export const F20012026_02 = ({
|
|
|
114
148
|
style={{
|
|
115
149
|
maxWidth: "70%",
|
|
116
150
|
fontFamily: "Playfair Display",
|
|
117
|
-
color: "#
|
|
118
|
-
fontSize:
|
|
151
|
+
color: "#3A3A3A",
|
|
152
|
+
fontSize: 70,
|
|
119
153
|
letterSpacing: 3,
|
|
120
|
-
...
|
|
154
|
+
...SmoothReveal20012026({
|
|
155
|
+
frame, startFrame: DETAILS_START, delay: 20, direction: "left", durationInFrames,
|
|
156
|
+
fps, exitDurationSec: 2,
|
|
157
|
+
}),
|
|
121
158
|
}}
|
|
122
159
|
>
|
|
123
160
|
{firstName}
|
|
@@ -126,13 +163,16 @@ export const F20012026_02 = ({
|
|
|
126
163
|
<div
|
|
127
164
|
style={{
|
|
128
165
|
fontFamily: "Dancing Script",
|
|
129
|
-
color: "#
|
|
130
|
-
fontSize:
|
|
131
|
-
maxWidth:"
|
|
132
|
-
...
|
|
166
|
+
color: "#A67C2E",
|
|
167
|
+
fontSize: 40,
|
|
168
|
+
maxWidth: "60%",
|
|
169
|
+
...SmoothReveal20012026({
|
|
170
|
+
frame, startFrame: DETAILS_START, delay: 30, direction: "left", durationInFrames,
|
|
171
|
+
fps, exitDurationSec: 2,
|
|
172
|
+
}),
|
|
133
173
|
}}
|
|
134
174
|
>
|
|
135
|
-
{firstSideNote}
|
|
175
|
+
{firstSideNote}
|
|
136
176
|
</div>
|
|
137
177
|
|
|
138
178
|
<div
|
|
@@ -140,66 +180,99 @@ export const F20012026_02 = ({
|
|
|
140
180
|
fontSize: 40,
|
|
141
181
|
color: "#C9A24D",
|
|
142
182
|
letterSpacing: 6,
|
|
143
|
-
|
|
183
|
+
marginTop: "15px",
|
|
184
|
+
...SmoothReveal20012026({
|
|
185
|
+
frame, startFrame: DETAILS_START, delay: 35, direction: "top", durationInFrames,
|
|
186
|
+
fps, exitDurationSec: 2,
|
|
187
|
+
}),
|
|
144
188
|
}}
|
|
145
189
|
>
|
|
146
|
-
|
|
190
|
+
— ✦ —
|
|
147
191
|
</div>
|
|
148
192
|
|
|
149
193
|
<h1
|
|
150
194
|
style={{
|
|
151
195
|
maxWidth: "70%",
|
|
152
196
|
fontFamily: "Playfair Display",
|
|
153
|
-
color: "#
|
|
154
|
-
fontSize:
|
|
197
|
+
color: "#3A3A3A",
|
|
198
|
+
fontSize: 70,
|
|
155
199
|
letterSpacing: 3,
|
|
156
|
-
...
|
|
200
|
+
...SmoothReveal20012026({
|
|
201
|
+
frame, startFrame: DETAILS_START, delay: 50, direction: "right", durationInFrames,
|
|
202
|
+
fps, exitDurationSec: 2,
|
|
203
|
+
}),
|
|
157
204
|
}}
|
|
158
205
|
>
|
|
159
|
-
{secondName}
|
|
206
|
+
{secondName}
|
|
160
207
|
</h1>
|
|
161
208
|
|
|
162
209
|
<div
|
|
163
210
|
style={{
|
|
164
211
|
fontFamily: "Dancing Script",
|
|
165
|
-
color: "#
|
|
166
|
-
fontSize:
|
|
167
|
-
maxWidth:"
|
|
168
|
-
...
|
|
212
|
+
color: "#A67C2E",
|
|
213
|
+
fontSize: 40,
|
|
214
|
+
maxWidth: "60%",
|
|
215
|
+
...SmoothReveal20012026({
|
|
216
|
+
frame, startFrame: DETAILS_START, delay: 60, direction: "right", durationInFrames,
|
|
217
|
+
fps, exitDurationSec: 2,
|
|
218
|
+
}),
|
|
219
|
+
}}
|
|
220
|
+
>
|
|
221
|
+
{secondSideNote}
|
|
222
|
+
</div>
|
|
223
|
+
{/* Bottom Occasion Date - Screen Fixed */}
|
|
224
|
+
<div
|
|
225
|
+
style={{
|
|
226
|
+
fontSize: 50,
|
|
227
|
+
fontWeight: "400",
|
|
228
|
+
fontFamily: "Dancing Script",
|
|
229
|
+
color: "#8C6A2A",
|
|
230
|
+
...SmoothReveal20012026({
|
|
231
|
+
frame, startFrame: DETAILS_START, delay: 80, direction: "bottom", durationInFrames,
|
|
232
|
+
fps, exitDurationSec: 2,
|
|
233
|
+
}),
|
|
169
234
|
}}
|
|
170
235
|
>
|
|
171
|
-
|
|
236
|
+
– Join us on this auspicious day –
|
|
172
237
|
</div>
|
|
173
238
|
|
|
174
239
|
<div
|
|
175
240
|
style={{
|
|
176
|
-
|
|
177
|
-
|
|
241
|
+
fontSize: 60,
|
|
242
|
+
fontFamily: "Playfair Display",
|
|
243
|
+
color: "#5F8F7B",
|
|
244
|
+
letterSpacing: 2,
|
|
245
|
+
lineHeight: 1.2,
|
|
246
|
+
display: "flex",
|
|
247
|
+
flexDirection: "column",
|
|
248
|
+
alignItems: "center",
|
|
178
249
|
}}
|
|
179
250
|
>
|
|
180
|
-
<
|
|
251
|
+
<span
|
|
181
252
|
style={{
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
253
|
+
...SmoothReveal20012026({
|
|
254
|
+
frame, startFrame: DETAILS_START, delay: 95, direction: "bottom", durationInFrames,
|
|
255
|
+
fps, exitDurationSec: 2,
|
|
256
|
+
}),
|
|
186
257
|
}}
|
|
187
258
|
>
|
|
188
|
-
|
|
189
|
-
</
|
|
259
|
+
{dateParts.datemonth}
|
|
260
|
+
</span>
|
|
190
261
|
|
|
191
|
-
|
|
262
|
+
{/* Year */}
|
|
263
|
+
<span
|
|
192
264
|
style={{
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
265
|
+
...SmoothReveal20012026({
|
|
266
|
+
frame, startFrame: DETAILS_START, delay: 110, direction: "bottom", durationInFrames,
|
|
267
|
+
fps, exitDurationSec: 2,
|
|
268
|
+
}),
|
|
197
269
|
}}
|
|
198
270
|
>
|
|
199
|
-
{
|
|
200
|
-
</
|
|
271
|
+
{dateParts.year}
|
|
272
|
+
</span>
|
|
201
273
|
</div>
|
|
274
|
+
|
|
202
275
|
</div>
|
|
203
|
-
</AbsoluteFill>
|
|
276
|
+
</AbsoluteFill >
|
|
204
277
|
);
|
|
205
278
|
};
|