@remotion/promo-pages 4.0.313 → 4.0.315
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/.turbo/turbo-make.log +2 -2
- package/dist/Homepage.js +477 -371
- package/dist/components/homepage/BackgroundAnimation.js +1 -1
- package/dist/components/homepage/CommunityStatsItems.js +1 -1
- package/dist/components/homepage/Demo/DemoRender.d.ts +16 -16
- package/dist/components/homepage/Demo/math.d.ts +1 -1
- package/dist/components/homepage/FreePricing.js +1 -1
- package/dist/components/homepage/GitHubButton.js +1 -1
- package/dist/components/homepage/MoreVideoPowerSection.d.ts +2 -0
- package/dist/components/homepage/MoreVideoPowerSection.js +16 -0
- package/dist/homepage/Pricing.js +2 -2
- package/dist/tailwind.css +47 -11
- package/package.json +10 -10
- package/public/img/media-parser.png +0 -0
- package/public/img/recorder.png +0 -0
- package/public/img/webcodecs.png +0 -0
- package/src/components/Homepage.tsx +6 -0
- package/src/components/homepage/BackgroundAnimation.tsx +1 -1
- package/src/components/homepage/CommunityStatsItems.tsx +1 -1
- package/src/components/homepage/FreePricing.tsx +2 -2
- package/src/components/homepage/GitHubButton.tsx +1 -1
- package/src/components/homepage/MoreVideoPowerSection.tsx +95 -0
- package/src/components/homepage/NewsletterButton.tsx +1 -1
|
@@ -44,7 +44,7 @@ export const BackgroundAnimation = () => {
|
|
|
44
44
|
_style.innerHTML = css;
|
|
45
45
|
document.head.appendChild(_style);
|
|
46
46
|
}, [css]);
|
|
47
|
-
return (_jsx("div", { className: " w-full h-full
|
|
47
|
+
return (_jsx("div", { className: " w-full h-full min-w-0 m-auto lg:relative lg:min-w-[700px] lg:max-w-[1200px] lg:ml-auto lg:left-auto pointer-events-none", children: _jsxs("svg", { className: "translate-y-[-30%] lg:translate-y-[-50%]", viewBox: "0 0 1 1", style: {
|
|
48
48
|
width: '100%',
|
|
49
49
|
position: 'absolute',
|
|
50
50
|
}, children: [_jsx("path", { d: d, fill: "none", stroke: "var(--ifm-color-primary)", strokeLinecap: "round", className: "stroke-[0.04] lg:stroke-[0.035]", style: {
|
|
@@ -30,7 +30,7 @@ export const PagesOfDocs = () => {
|
|
|
30
30
|
};
|
|
31
31
|
export const TemplatesAndExamples = () => (_jsxs(Pill, { className: "w-[30%] flex items-center flex-row", children: [_jsx(StatItemContent, { content: "35", width: "60px", fontSize: "2.7rem", fontWeight: "bold" }), _jsx(StatItemContent, { content: "templates & examples", width: "135px", fontSize: "1.35rem", fontWeight: "bold" })] }));
|
|
32
32
|
export const GitHubStars = () => {
|
|
33
|
-
return (_jsxs(Pill, { className: "w-[30%] flex-col", children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center' }, children: [_jsx(StatItemContent, { content: _jsx("svg", { width: "40", height: "40", viewBox: "0 0 26 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M12.9951 0C13.4424 0 13.8507 0.24375 14.0451 0.632812L17.3799 7.25625L24.8271 8.31562C25.2646 8.37656 25.6292 8.67188 25.7653 9.07969C25.9014 9.4875 25.7896 9.92812 25.4785 10.2281L20.0778 15.3937L21.3514 22.6875C21.4243 23.1094 21.2444 23.5359 20.8799 23.7891C20.5153 24.0422 20.0389 24.0703 19.65 23.8688L12.9903 20.4375L6.34027 23.8641C5.94652 24.0656 5.47014 24.0375 5.11041 23.7844C4.75069 23.5312 4.56597 23.1047 4.63889 22.6828L5.9125 15.3891L0.511803 10.2281C0.195831 9.92812 0.0888863 9.48281 0.224997 9.07969C0.361108 8.67656 0.725692 8.38125 1.16319 8.31562L8.61041 7.25625L11.9451 0.632812C12.1444 0.24375 12.5479 0 12.9951 0ZM12.9951 3.70312L10.4431 8.775C10.2729 9.10781 9.94722 9.34219 9.56319 9.39844L3.8125 10.2141L7.98819 14.2031C8.25555 14.4609 8.38194 14.8266 8.31875 15.1875L7.33194 20.7984L12.4458 18.1641C12.791 17.9859 13.2042 17.9859 13.5444 18.1641L18.6583 20.7984L17.6764 15.1922C17.6132 14.8313 17.7347 14.4656 18.0069 14.2078L22.1826 10.2188L16.4319 9.39844C16.0528 9.34219 15.7222 9.1125 15.5521 8.775L12.9951 3.70312Z", fill: "var(--text-color)" }) }), width: "45px" }), _jsx(StatItemContent, { content: "
|
|
33
|
+
return (_jsxs(Pill, { className: "w-[30%] flex-col", children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center' }, children: [_jsx(StatItemContent, { content: _jsx("svg", { width: "40", height: "40", viewBox: "0 0 26 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M12.9951 0C13.4424 0 13.8507 0.24375 14.0451 0.632812L17.3799 7.25625L24.8271 8.31562C25.2646 8.37656 25.6292 8.67188 25.7653 9.07969C25.9014 9.4875 25.7896 9.92812 25.4785 10.2281L20.0778 15.3937L21.3514 22.6875C21.4243 23.1094 21.2444 23.5359 20.8799 23.7891C20.5153 24.0422 20.0389 24.0703 19.65 23.8688L12.9903 20.4375L6.34027 23.8641C5.94652 24.0656 5.47014 24.0375 5.11041 23.7844C4.75069 23.5312 4.56597 23.1047 4.63889 22.6828L5.9125 15.3891L0.511803 10.2281C0.195831 9.92812 0.0888863 9.48281 0.224997 9.07969C0.361108 8.67656 0.725692 8.38125 1.16319 8.31562L8.61041 7.25625L11.9451 0.632812C12.1444 0.24375 12.5479 0 12.9951 0ZM12.9951 3.70312L10.4431 8.775C10.2729 9.10781 9.94722 9.34219 9.56319 9.39844L3.8125 10.2141L7.98819 14.2031C8.25555 14.4609 8.38194 14.8266 8.31875 15.1875L7.33194 20.7984L12.4458 18.1641C12.791 17.9859 13.2042 17.9859 13.5444 18.1641L18.6583 20.7984L17.6764 15.1922C17.6132 14.8313 17.7347 14.4656 18.0069 14.2078L22.1826 10.2188L16.4319 9.39844C16.0528 9.34219 15.7222 9.1125 15.5521 8.775L12.9951 3.70312Z", fill: "var(--text-color)" }) }), width: "45px" }), _jsx(StatItemContent, { content: "22k", width: "80px", fontSize: "2.5rem", fontWeight: "bold" })] }), _jsx(StatItemContent, { content: "GitHub stars", width: "125px", fontSize: "1.0rem", fontWeight: "bold" })] }));
|
|
34
34
|
};
|
|
35
35
|
export const DiscordMembers = () => {
|
|
36
36
|
return (_jsx(Pill, { className: 'w-[30%]', children: _jsxs("div", { style: {
|
|
@@ -22,18 +22,18 @@ declare const data: z.ZodObject<{
|
|
|
22
22
|
class: string;
|
|
23
23
|
}[];
|
|
24
24
|
countryLabel: string;
|
|
25
|
-
temperatureInCelsius: number;
|
|
26
|
-
date: string | number;
|
|
27
25
|
repos: string[];
|
|
26
|
+
date: string | number;
|
|
27
|
+
temperatureInCelsius: number;
|
|
28
28
|
}, {
|
|
29
29
|
countryPaths: {
|
|
30
30
|
d: string;
|
|
31
31
|
class: string;
|
|
32
32
|
}[];
|
|
33
33
|
countryLabel: string;
|
|
34
|
-
temperatureInCelsius: number;
|
|
35
|
-
date: string | number;
|
|
36
34
|
repos: string[];
|
|
35
|
+
date: string | number;
|
|
36
|
+
temperatureInCelsius: number;
|
|
37
37
|
}>;
|
|
38
38
|
location: z.ZodObject<{
|
|
39
39
|
country: z.ZodString;
|
|
@@ -41,13 +41,13 @@ declare const data: z.ZodObject<{
|
|
|
41
41
|
latitude: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
42
42
|
longitude: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
43
43
|
}, "strip", z.ZodTypeAny, {
|
|
44
|
-
city: string;
|
|
45
44
|
country: string;
|
|
45
|
+
city: string;
|
|
46
46
|
latitude: string | number;
|
|
47
47
|
longitude: string | number;
|
|
48
48
|
}, {
|
|
49
|
-
city: string;
|
|
50
49
|
country: string;
|
|
50
|
+
city: string;
|
|
51
51
|
latitude: string | number;
|
|
52
52
|
longitude: string | number;
|
|
53
53
|
}>;
|
|
@@ -55,44 +55,44 @@ declare const data: z.ZodObject<{
|
|
|
55
55
|
theme: z.ZodEnum<["light", "dark"]>;
|
|
56
56
|
cardOrder: z.ZodArray<z.ZodNumber, "many">;
|
|
57
57
|
}, "strip", z.ZodTypeAny, {
|
|
58
|
-
theme: "
|
|
59
|
-
emojiIndex: number;
|
|
58
|
+
theme: "dark" | "light";
|
|
60
59
|
trending: {
|
|
61
60
|
countryPaths: {
|
|
62
61
|
d: string;
|
|
63
62
|
class: string;
|
|
64
63
|
}[];
|
|
65
64
|
countryLabel: string;
|
|
66
|
-
temperatureInCelsius: number;
|
|
67
|
-
date: string | number;
|
|
68
65
|
repos: string[];
|
|
66
|
+
date: string | number;
|
|
67
|
+
temperatureInCelsius: number;
|
|
69
68
|
};
|
|
70
69
|
location: {
|
|
71
|
-
city: string;
|
|
72
70
|
country: string;
|
|
71
|
+
city: string;
|
|
73
72
|
latitude: string | number;
|
|
74
73
|
longitude: string | number;
|
|
75
74
|
};
|
|
75
|
+
emojiIndex: number;
|
|
76
76
|
cardOrder: number[];
|
|
77
77
|
}, {
|
|
78
|
-
theme: "
|
|
79
|
-
emojiIndex: number;
|
|
78
|
+
theme: "dark" | "light";
|
|
80
79
|
trending: {
|
|
81
80
|
countryPaths: {
|
|
82
81
|
d: string;
|
|
83
82
|
class: string;
|
|
84
83
|
}[];
|
|
85
84
|
countryLabel: string;
|
|
86
|
-
temperatureInCelsius: number;
|
|
87
|
-
date: string | number;
|
|
88
85
|
repos: string[];
|
|
86
|
+
date: string | number;
|
|
87
|
+
temperatureInCelsius: number;
|
|
89
88
|
};
|
|
90
89
|
location: {
|
|
91
|
-
city: string;
|
|
92
90
|
country: string;
|
|
91
|
+
city: string;
|
|
93
92
|
latitude: string | number;
|
|
94
93
|
longitude: string | number;
|
|
95
94
|
};
|
|
95
|
+
emojiIndex: number;
|
|
96
96
|
cardOrder: number[];
|
|
97
97
|
}>;
|
|
98
98
|
export declare const RenderButton: React.FC<{
|
|
@@ -7,4 +7,4 @@ export declare const cardHeight: number;
|
|
|
7
7
|
export declare const cardWidth: number;
|
|
8
8
|
export declare const getPositionForIndex: (index: number) => Position;
|
|
9
9
|
export declare const getInitialPositions: () => Position[];
|
|
10
|
-
export declare const getIndexFromPosition: (clientX: number, clientY: number) => 0 |
|
|
10
|
+
export declare const getIndexFromPosition: (clientX: number, clientY: number) => 0 | 1 | 2 | 3 | undefined;
|
|
@@ -74,7 +74,7 @@ export const CompanyPricing = () => {
|
|
|
74
74
|
maximumFractionDigits: 0,
|
|
75
75
|
}).format(SEAT_PRICE * devSeatCount)] })] }), _jsx("div", { style: { height: 14 } }), _jsxs("div", { className: 'flex flex-row items-center', children: [_jsxs("div", { style: textUnitWrapper, children: [_jsx("div", { className: 'fontbrand font-bold text-lg', children: "Cloud Rendering Units" }), _jsxs("div", { className: 'text-muted fontbrand text-sm', children: ["Allows for ", rendersPerMonth, ' ', _jsx("a", { href: "https://www.remotion.dev/docs/compare-ssr", className: "underline underline-offset-4 text-inherit", children: "self-hosted renders per month" }), ' ', "each"] })] }), _jsx("div", { style: { flex: 3 } }), _jsx(Counter, { count: cloudUnitCount, setCount: setCloudUnitCount, minCount: 0 }), _jsxs(SmallPriceTag, { children: ["$", new Intl.NumberFormat('en-US', {
|
|
76
76
|
maximumFractionDigits: 0,
|
|
77
|
-
}).format(RENDER_UNIT_PRICE * cloudUnitCount)] })] }), _jsx("div", { style: { height: 14 } }), _jsxs("div", { className: 'flex flex-row items-center', children: [_jsxs("div", { style: textUnitWrapper, children: [_jsx("div", { className: 'fontbrand font-bold text-lg', children: "WebCodecs
|
|
77
|
+
}).format(RENDER_UNIT_PRICE * cloudUnitCount)] })] }), _jsx("div", { style: { height: 14 } }), _jsxs("div", { className: 'flex flex-row items-center', children: [_jsxs("div", { style: textUnitWrapper, children: [_jsx("div", { className: 'fontbrand font-bold text-lg', children: "WebCodecs Creation Units" }), _jsxs("div", { className: 'text-muted fontbrand text-sm', children: ["Allows for", ' ', _jsxs("a", { className: "underline underline-offset-4 text-inherit", href: "https://remotion.dev/webcodecs", children: [conversionsPerMonth, " client-side video creations", ' '] })] })] }), _jsx("div", { style: { flex: 3 } }), _jsx(Counter, { count: webcodecsUnits, setCount: setWebcodecsUnits, minCount: 0 }), _jsxs(SmallPriceTag, { children: ["$", new Intl.NumberFormat('en-US', {
|
|
78
78
|
maximumFractionDigits: 0,
|
|
79
79
|
}).format(RENDER_UNIT_PRICE * webcodecsUnits)] })] }), _jsx("div", { style: { height: 20 } }), _jsx("div", { className: 'flex flex-row justify-end', children: _jsxs("div", { style: { ...textUnitWrapper, alignItems: 'flex-end' }, children: [_jsxs(PriceTag, { children: [totalPriceString, "/mo"] }), _jsx(BottomInfo, { "data-visible": totalPrice <= 100, className: "opacity-0 data-[visible=true]:opacity-100 transition-opacity", children: "The minimum is $100 per month" })] }) })] }));
|
|
80
80
|
};
|
|
@@ -3,5 +3,5 @@ const GithubIcon = () => {
|
|
|
3
3
|
return (_jsx("svg", { viewBox: "0 0 496 512", style: { height: 24, marginRight: 8 }, children: _jsx("path", { fill: "currentColor", d: "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z" }) }));
|
|
4
4
|
};
|
|
5
5
|
export const GithubButton = () => {
|
|
6
|
-
return (_jsxs("div", { className: "flex flex-row items-center text-base", children: [_jsx(GithubIcon, {}), " ", _jsx("span", { children: "GitHub" }), ' ', _jsx("div", { className: "text-xs inline-block ml-2 leading-none mt-[3px] self-center", children: '
|
|
6
|
+
return (_jsxs("div", { className: "flex flex-row items-center text-base", children: [_jsx(GithubIcon, {}), " ", _jsx("span", { children: "GitHub" }), ' ', _jsx("div", { className: "text-xs inline-block ml-2 leading-none mt-[3px] self-center", children: '22k' })] }));
|
|
7
7
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const StepTitle = ({ children }) => {
|
|
3
|
+
return (_jsx("div", { className: "text-left text-xl font-semibold fontbrand", children: children }));
|
|
4
|
+
};
|
|
5
|
+
const Subtitle = ({ children }) => {
|
|
6
|
+
return (_jsx("div", { className: "text-left text-base fontbrand text-[var(--subtitle)]", children: children }));
|
|
7
|
+
};
|
|
8
|
+
const Pane = ({ children, className }) => {
|
|
9
|
+
return (_jsx("div", { className: `border-effect bg-pane flex-1 flex flex-col ${className || ''}`, children: children }));
|
|
10
|
+
};
|
|
11
|
+
const FeatureCard = ({ title, subtitle, image, link }) => {
|
|
12
|
+
return (_jsxs("a", { href: link, className: "group lg:border-r-2 border-b lg:border-b-0 border-[var(--border)] cursor-pointer hover:bg-[var(--hover)] transition-colors no-underline text-inherit", children: [_jsx("div", { className: "relative", children: _jsx("img", { src: image, alt: title, className: "w-full h-auto" }) }), _jsxs("div", { className: "p-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(StepTitle, { children: title }), _jsx("svg", { width: "16", viewBox: "0 0 448 512", fill: "currentColor", className: "opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx("path", { d: "M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z" }) })] }), _jsx(Subtitle, { children: subtitle }), _jsx("br", {}), _jsx("div", { className: "flex-1" })] })] }));
|
|
13
|
+
};
|
|
14
|
+
export const MoreVideoPowerSection = () => {
|
|
15
|
+
return (_jsx("div", { className: "w-full", children: _jsx(Pane, { className: "overflow-hidden", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-3 h-full", children: [_jsx(FeatureCard, { title: "Media Parser", subtitle: "A new multimedia library for the web", image: "/img/media-parser.png", link: "/media-parser" }), _jsx(FeatureCard, { title: "WebCodecs", subtitle: "Read, process, transform and create videos on the frontend", image: "/img/webcodecs.png", link: "/webcodecs" }), _jsx(FeatureCard, { title: "Recorder", subtitle: "Produce engaging screencasts end-to-end in JavaScript", image: "/img/recorder.png", link: "/recorder" })] }) }) }));
|
|
16
|
+
};
|
package/dist/homepage/Pricing.js
CHANGED
|
@@ -1819,7 +1819,7 @@ var CompanyPricing = () => {
|
|
|
1819
1819
|
children: [
|
|
1820
1820
|
/* @__PURE__ */ jsx4("div", {
|
|
1821
1821
|
className: "fontbrand font-bold text-lg",
|
|
1822
|
-
children: "WebCodecs
|
|
1822
|
+
children: "WebCodecs Creation Units"
|
|
1823
1823
|
}),
|
|
1824
1824
|
/* @__PURE__ */ jsxs4("div", {
|
|
1825
1825
|
className: "text-muted fontbrand text-sm",
|
|
@@ -1831,7 +1831,7 @@ var CompanyPricing = () => {
|
|
|
1831
1831
|
href: "https://remotion.dev/webcodecs",
|
|
1832
1832
|
children: [
|
|
1833
1833
|
conversionsPerMonth,
|
|
1834
|
-
" client-side video
|
|
1834
|
+
" client-side video creations",
|
|
1835
1835
|
" "
|
|
1836
1836
|
]
|
|
1837
1837
|
})
|
package/dist/tailwind.css
CHANGED
|
@@ -117,9 +117,6 @@
|
|
|
117
117
|
.left-1\/2 {
|
|
118
118
|
left: calc(1/2 * 100%);
|
|
119
119
|
}
|
|
120
|
-
.left-\[50\%\] {
|
|
121
|
-
left: 50%;
|
|
122
|
-
}
|
|
123
120
|
.z-0 {
|
|
124
121
|
z-index: 0;
|
|
125
122
|
}
|
|
@@ -213,9 +210,6 @@
|
|
|
213
210
|
.ml-4 {
|
|
214
211
|
margin-left: calc(var(--spacing) * 4);
|
|
215
212
|
}
|
|
216
|
-
.ml-\[-50\%\] {
|
|
217
|
-
margin-left: -50%;
|
|
218
|
-
}
|
|
219
213
|
.box-border {
|
|
220
214
|
box-sizing: border-box;
|
|
221
215
|
}
|
|
@@ -270,6 +264,9 @@
|
|
|
270
264
|
.h-\[600px\] {
|
|
271
265
|
height: 600px;
|
|
272
266
|
}
|
|
267
|
+
.h-auto {
|
|
268
|
+
height: auto;
|
|
269
|
+
}
|
|
273
270
|
.h-full {
|
|
274
271
|
height: 100%;
|
|
275
272
|
}
|
|
@@ -368,6 +365,9 @@
|
|
|
368
365
|
.grid-flow-col {
|
|
369
366
|
grid-auto-flow: column;
|
|
370
367
|
}
|
|
368
|
+
.grid-cols-1 {
|
|
369
|
+
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
370
|
+
}
|
|
371
371
|
.grid-rows-1 {
|
|
372
372
|
grid-template-rows: repeat(1, minmax(0, 1fr));
|
|
373
373
|
}
|
|
@@ -480,6 +480,10 @@
|
|
|
480
480
|
border-style: var(--tw-border-style);
|
|
481
481
|
border-width: 5px;
|
|
482
482
|
}
|
|
483
|
+
.border-b {
|
|
484
|
+
border-bottom-style: var(--tw-border-style);
|
|
485
|
+
border-bottom-width: 1px;
|
|
486
|
+
}
|
|
483
487
|
.border-b-2 {
|
|
484
488
|
border-bottom-style: var(--tw-border-style);
|
|
485
489
|
border-bottom-width: 2px;
|
|
@@ -500,6 +504,9 @@
|
|
|
500
504
|
--tw-border-style: solid;
|
|
501
505
|
border-style: solid;
|
|
502
506
|
}
|
|
507
|
+
.border-\[var\(--border\)\] {
|
|
508
|
+
border-color: var(--border);
|
|
509
|
+
}
|
|
503
510
|
.border-black {
|
|
504
511
|
border-color: var(--color-black);
|
|
505
512
|
}
|
|
@@ -569,6 +576,9 @@
|
|
|
569
576
|
.p-3 {
|
|
570
577
|
padding: calc(var(--spacing) * 3);
|
|
571
578
|
}
|
|
579
|
+
.p-4 {
|
|
580
|
+
padding: calc(var(--spacing) * 4);
|
|
581
|
+
}
|
|
572
582
|
.p-5 {
|
|
573
583
|
padding: calc(var(--spacing) * 5);
|
|
574
584
|
}
|
|
@@ -781,6 +791,20 @@
|
|
|
781
791
|
--tw-outline-style: none;
|
|
782
792
|
outline-style: none;
|
|
783
793
|
}
|
|
794
|
+
.group-hover\:opacity-100 {
|
|
795
|
+
&:is(:where(.group):hover *) {
|
|
796
|
+
@media (hover: hover) {
|
|
797
|
+
opacity: 100%;
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
.hover\:bg-\[var\(--hover\)\] {
|
|
802
|
+
&:hover {
|
|
803
|
+
@media (hover: hover) {
|
|
804
|
+
background-color: var(--hover);
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
}
|
|
784
808
|
.hover\:text-brand {
|
|
785
809
|
&:hover {
|
|
786
810
|
@media (hover: hover) {
|
|
@@ -830,11 +854,6 @@
|
|
|
830
854
|
left: auto;
|
|
831
855
|
}
|
|
832
856
|
}
|
|
833
|
-
.lg\:m-auto {
|
|
834
|
-
@media (width >= 64rem) {
|
|
835
|
-
margin: auto;
|
|
836
|
-
}
|
|
837
|
-
}
|
|
838
857
|
.lg\:mx-3 {
|
|
839
858
|
@media (width >= 64rem) {
|
|
840
859
|
margin-inline: calc(var(--spacing) * 3);
|
|
@@ -903,6 +922,11 @@
|
|
|
903
922
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
904
923
|
}
|
|
905
924
|
}
|
|
925
|
+
.lg\:grid-cols-3 {
|
|
926
|
+
@media (width >= 64rem) {
|
|
927
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
928
|
+
}
|
|
929
|
+
}
|
|
906
930
|
.lg\:flex-row {
|
|
907
931
|
@media (width >= 64rem) {
|
|
908
932
|
flex-direction: row;
|
|
@@ -923,6 +947,18 @@
|
|
|
923
947
|
justify-content: flex-end;
|
|
924
948
|
}
|
|
925
949
|
}
|
|
950
|
+
.lg\:border-r-2 {
|
|
951
|
+
@media (width >= 64rem) {
|
|
952
|
+
border-right-style: var(--tw-border-style);
|
|
953
|
+
border-right-width: 2px;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
.lg\:border-b-0 {
|
|
957
|
+
@media (width >= 64rem) {
|
|
958
|
+
border-bottom-style: var(--tw-border-style);
|
|
959
|
+
border-bottom-width: 0px;
|
|
960
|
+
}
|
|
961
|
+
}
|
|
926
962
|
.lg\:stroke-\[0\.035\] {
|
|
927
963
|
@media (width >= 64rem) {
|
|
928
964
|
stroke-width: 0.035;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/promo-pages",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.315",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
"polished": "4.3.1",
|
|
11
11
|
"zod": "3.22.3",
|
|
12
12
|
"bun-plugin-tailwind": "0.0.15",
|
|
13
|
-
"@remotion/
|
|
14
|
-
"@remotion/
|
|
15
|
-
"@remotion/player": "4.0.
|
|
16
|
-
"@remotion/
|
|
17
|
-
"@remotion/
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
13
|
+
"@remotion/lottie": "4.0.315",
|
|
14
|
+
"@remotion/lambda": "4.0.315",
|
|
15
|
+
"@remotion/player": "4.0.315",
|
|
16
|
+
"@remotion/animated-emoji": "4.0.315",
|
|
17
|
+
"@remotion/shapes": "4.0.315",
|
|
18
|
+
"@remotion/paths": "4.0.315",
|
|
19
|
+
"remotion": "4.0.315",
|
|
20
|
+
"create-video": "4.0.315"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@eslint/eslintrc": "3.1.0",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"tailwind-merge": "2.5.2",
|
|
35
35
|
"bun-plugin-tailwind": "0.0.13",
|
|
36
36
|
"clsx": "2.1.1",
|
|
37
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
37
|
+
"@remotion/eslint-config-internal": "4.0.315"
|
|
38
38
|
},
|
|
39
39
|
"repository": {
|
|
40
40
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/promo-pages"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -9,6 +9,7 @@ import EvaluateRemotionSection from './homepage/EvaluateRemotion';
|
|
|
9
9
|
import {IfYouKnowReact} from './homepage/IfYouKnowReact';
|
|
10
10
|
import type {ColorMode} from './homepage/layout/use-color-mode';
|
|
11
11
|
import {ColorModeProvider} from './homepage/layout/use-color-mode';
|
|
12
|
+
import {MoreVideoPowerSection} from './homepage/MoreVideoPowerSection';
|
|
12
13
|
import {NewsletterButton} from './homepage/NewsletterButton';
|
|
13
14
|
import {Pricing} from './homepage/Pricing';
|
|
14
15
|
import {RealMP4Videos} from './homepage/RealMp4Videos';
|
|
@@ -69,6 +70,11 @@ export const NewLanding: React.FC<{
|
|
|
69
70
|
<br />
|
|
70
71
|
<br />
|
|
71
72
|
<br />
|
|
73
|
+
<SectionTitle>Even more video power to developers</SectionTitle>
|
|
74
|
+
<MoreVideoPowerSection />
|
|
75
|
+
<br />
|
|
76
|
+
<br />
|
|
77
|
+
<br />
|
|
72
78
|
<NewsletterButton />
|
|
73
79
|
<br />
|
|
74
80
|
<br />
|
|
@@ -52,7 +52,7 @@ export const BackgroundAnimation: React.FC = () => {
|
|
|
52
52
|
}, [css]);
|
|
53
53
|
|
|
54
54
|
return (
|
|
55
|
-
<div className=" w-full h-full
|
|
55
|
+
<div className=" w-full h-full min-w-0 m-auto lg:relative lg:min-w-[700px] lg:max-w-[1200px] lg:ml-auto lg:left-auto pointer-events-none">
|
|
56
56
|
<svg
|
|
57
57
|
className="translate-y-[-30%] lg:translate-y-[-50%]"
|
|
58
58
|
viewBox="0 0 1 1"
|
|
@@ -239,7 +239,7 @@ export const CompanyPricing: React.FC = () => {
|
|
|
239
239
|
<div className={'flex flex-row items-center'}>
|
|
240
240
|
<div style={textUnitWrapper}>
|
|
241
241
|
<div className={'fontbrand font-bold text-lg'}>
|
|
242
|
-
WebCodecs
|
|
242
|
+
WebCodecs Creation Units
|
|
243
243
|
</div>
|
|
244
244
|
<div className={'text-muted fontbrand text-sm'}>
|
|
245
245
|
Allows for{' '}
|
|
@@ -247,7 +247,7 @@ export const CompanyPricing: React.FC = () => {
|
|
|
247
247
|
className="underline underline-offset-4 text-inherit"
|
|
248
248
|
href="https://remotion.dev/webcodecs"
|
|
249
249
|
>
|
|
250
|
-
{conversionsPerMonth} client-side video
|
|
250
|
+
{conversionsPerMonth} client-side video creations{' '}
|
|
251
251
|
</a>
|
|
252
252
|
</div>
|
|
253
253
|
</div>
|
|
@@ -16,7 +16,7 @@ export const GithubButton: React.FC = () => {
|
|
|
16
16
|
<div className="flex flex-row items-center text-base">
|
|
17
17
|
<GithubIcon /> <span>GitHub</span>{' '}
|
|
18
18
|
<div className="text-xs inline-block ml-2 leading-none mt-[3px] self-center">
|
|
19
|
-
{'
|
|
19
|
+
{'22k'}
|
|
20
20
|
</div>
|
|
21
21
|
</div>
|
|
22
22
|
);
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
const StepTitle: React.FC<{
|
|
4
|
+
readonly children: React.ReactNode;
|
|
5
|
+
}> = ({children}) => {
|
|
6
|
+
return (
|
|
7
|
+
<div className="text-left text-xl font-semibold fontbrand">{children}</div>
|
|
8
|
+
);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const Subtitle: React.FC<{
|
|
12
|
+
readonly children: React.ReactNode;
|
|
13
|
+
}> = ({children}) => {
|
|
14
|
+
return (
|
|
15
|
+
<div className="text-left text-base fontbrand text-[var(--subtitle)]">
|
|
16
|
+
{children}
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const Pane: React.FC<{
|
|
22
|
+
readonly children: React.ReactNode;
|
|
23
|
+
readonly className?: string;
|
|
24
|
+
}> = ({children, className}) => {
|
|
25
|
+
return (
|
|
26
|
+
<div
|
|
27
|
+
className={`border-effect bg-pane flex-1 flex flex-col ${className || ''}`}
|
|
28
|
+
>
|
|
29
|
+
{children}
|
|
30
|
+
</div>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const FeatureCard: React.FC<{
|
|
35
|
+
readonly title: string;
|
|
36
|
+
readonly subtitle: string;
|
|
37
|
+
readonly image: string;
|
|
38
|
+
readonly link: string;
|
|
39
|
+
}> = ({title, subtitle, image, link}) => {
|
|
40
|
+
return (
|
|
41
|
+
<a
|
|
42
|
+
href={link}
|
|
43
|
+
className="group lg:border-r-2 border-b lg:border-b-0 border-[var(--border)] cursor-pointer hover:bg-[var(--hover)] transition-colors no-underline text-inherit"
|
|
44
|
+
>
|
|
45
|
+
<div className="relative">
|
|
46
|
+
<img src={image} alt={title} className="w-full h-auto" />
|
|
47
|
+
</div>
|
|
48
|
+
<div className="p-4">
|
|
49
|
+
<div className="flex items-center gap-2">
|
|
50
|
+
<StepTitle>{title}</StepTitle>
|
|
51
|
+
<svg
|
|
52
|
+
width="16"
|
|
53
|
+
viewBox="0 0 448 512"
|
|
54
|
+
fill="currentColor"
|
|
55
|
+
className="opacity-0 group-hover:opacity-100 transition-opacity"
|
|
56
|
+
>
|
|
57
|
+
<path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z" />
|
|
58
|
+
</svg>
|
|
59
|
+
</div>
|
|
60
|
+
<Subtitle>{subtitle}</Subtitle>
|
|
61
|
+
<br />
|
|
62
|
+
<div className="flex-1" />
|
|
63
|
+
</div>
|
|
64
|
+
</a>
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export const MoreVideoPowerSection: React.FC = () => {
|
|
69
|
+
return (
|
|
70
|
+
<div className="w-full">
|
|
71
|
+
<Pane className="overflow-hidden">
|
|
72
|
+
<div className="grid grid-cols-1 lg:grid-cols-3 h-full">
|
|
73
|
+
<FeatureCard
|
|
74
|
+
title="Media Parser"
|
|
75
|
+
subtitle="A new multimedia library for the web"
|
|
76
|
+
image="/img/media-parser.png"
|
|
77
|
+
link="/media-parser"
|
|
78
|
+
/>
|
|
79
|
+
<FeatureCard
|
|
80
|
+
title="WebCodecs"
|
|
81
|
+
subtitle="Read, process, transform and create videos on the frontend"
|
|
82
|
+
image="/img/webcodecs.png"
|
|
83
|
+
link="/webcodecs"
|
|
84
|
+
/>
|
|
85
|
+
<FeatureCard
|
|
86
|
+
title="Recorder"
|
|
87
|
+
subtitle="Produce engaging screencasts end-to-end in JavaScript"
|
|
88
|
+
image="/img/recorder.png"
|
|
89
|
+
link="/recorder"
|
|
90
|
+
/>
|
|
91
|
+
</div>
|
|
92
|
+
</Pane>
|
|
93
|
+
</div>
|
|
94
|
+
);
|
|
95
|
+
};
|
|
@@ -44,7 +44,7 @@ export const NewsletterButton: React.FC<{}> = () => {
|
|
|
44
44
|
<div>
|
|
45
45
|
<div className="flex flex-col">
|
|
46
46
|
<div className={'w-full'}>
|
|
47
|
-
<div className={'
|
|
47
|
+
<div className={'flex flex-col flex-1'}>
|
|
48
48
|
<div className={'text-2xl font-bold fontbrand'}>Newsletter</div>
|
|
49
49
|
<form
|
|
50
50
|
onSubmit={handleSubmit}
|