How to create a load more demo video template 「Load More」デモ動画テンプレートの作り方
Remotion video template auto-playing: button press → loading → card batch → highlight. 1920×1080 / 30fps / 7s. ボタン押下→ローディング→カード追加→ハイライトを自動再生する Remotion 動画テンプレ。1920×1080 / 30fps / 7秒。
ライブデモ Live Demo
概要・用途・特徴Overview, Usage & Features
何ができるかWhat it does
Remotion video template auto-playing: button press → loading → card batch → highlight. 1920×1080 / 30fps / 7s.
ボタン押下→ローディング→カード追加→ハイライトを自動再生する Remotion 動画テンプレ。1920×1080 / 30fps / 7秒。
どこで使うかWhere to use
social media content, product demo, marketing video
ソーシャルメディアコンテンツ、プロダクトデモ動画、マーケティング素材、UI紹介
特徴Key features
Remotion-based MP4 video template demonstrating a Load More UI interaction. 1920×1080 at 30fps. Fully composable and programmatically generated via React components. Export-ready with npx remotion render.
Load More UIインタラクションをデモするRemotionベースのMP4動画テンプレート。1920×1080・30fps。Reactコンポーネントで完全にコンポーザブル・プログラム生成。npx remotion renderでエクスポート準備完了。
調整可能パラメータ Adjustable Parameters
| Parameter | Default | Description |
|---|
実装コード Implementation Code
import React from 'react';
interface CardItem {
id: number;
badge: string;
title: string;
desc: string;
}
interface Theme {
panel: string;
border: string;
accent: string;
text: string;
muted: string;
radius: number;
}
interface CardProps {
item: CardItem;
theme: Theme;
opacity: number;
translateY: number;
highlight?: number; // 0–1, fades from 1 to 0
}
export const Card: React.FC<CardProps> = ({
item, theme, opacity, translateY, highlight = 0,
}) => {
const glowAlpha = highlight * 0.35;
const borderColor = highlight > 0
? `rgba(59,130,246,${0.25 + highlight * 0.55})`
: theme.border;
const boxShadow = highlight > 0
? `0 0 0 4px rgba(59,130,246,${glowAlpha}), 0 4px 20px rgba(59,130,246,${glowAlpha * 0.6})`
: '0 2px 8px rgba(0,0,0,0.06)';
return (
<div style={{
background: theme.panel,
border: `2px solid ${borderColor}`,
borderRadius: theme.radius,
padding: '28px 24px',
display: 'flex',
flexDirection: 'column',
gap: 10,
opacity,
transform: `translateY(${translateY}px)`,
boxShadow,
}}>
<span style={{
fontSize: 12,
fontWeight: 700,
color: theme.accent,
textTransform: 'uppercase',
letterSpacing: '0.08em',
}}>
{item.badge}
</span>
<p style={{ fontSize: 20, fontWeight: 600, color: theme.text, margin: 0, lineHeight: 1.4 }}>
{item.title}
</p>
<p style={{ fontSize: 15, color: theme.muted, margin: 0, lineHeight: 1.6 }}>
{item.desc}
</p>
</div>
);
};
/* Global reset for Remotion canvas */
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
/*
* Font strategy
* ─────────────────────────────────────────────────────────────────────────
* Default: system-ui (-apple-system / Segoe UI / etc.)
* → ネットワーク依存なし。Lambda / CI でも安全にレンダーできます。
*
* Inter を使いたい場合 (ローカル Remotion Studio のみ):
* 下の @import のコメントを外してください。
* ただし Lambda / サーバーレスレンダーでは @remotion/google-fonts を使うか、
* Inter.woff2 を public/ に置いて staticFile() で読み込んでください。
*
* @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');
*/
仕組みとカスタマイズHow It Works & Customization
仕組みHow it works
A Remotion <Composition> defines the video dimensions and duration. React components animate using the useCurrentFrame() hook, which provides the current frame number. spring() and interpolate() from Remotion map frame numbers to CSS values for smooth animation. The render command generates an MP4 or image sequence from the React tree.
Remotionの<Composition>が動画の寸法と長さを定義。ReactコンポーネントはuseCurrentFrame()フックを使用してアニメーション(現在のフレーム番号を提供)。Remotionのspring()とinterpolate()がフレーム番号をCSS値にマッピングしてスムーズなアニメーションを実現。renderコマンドがReactツリーからMP4または画像シーケンスを生成。
カスタマイズ方法Customization
Swap the UI screenshot/component with your own React component. Adjust durationInFrames (fps × seconds) for different video lengths. Change the color scheme via CSS variables at the composition level.
UIスクリーンショット/コンポーネントを自分のReactコンポーネントに交換。異なる動画長さのためにdurationInFrames(fps × 秒)を調整。コンポジションレベルでCSS変数を介してカラースキームを変更。
注意点Caveats
Remotion renders in a headless browser — avoid using browser-only APIs not available in Node.js rendering context. Keep component trees shallow for fast render times. Use @remotion/media-utils for audio/video assets requiring synchronization.
RemotionはヘッドレスブラウザでレンダリングするためNode.jsレンダリングコンテキストで利用できないブラウザ専用APIの使用を避けてください。高速なレンダリング時間のためにコンポーネントツリーを浅く保ってください。同期が必要なオーディオ/ビデオアセットには@remotion/media-utilsを使用してください。
よくある質問 Frequently Asked Questions
How to customize the load more demo video template? Load More Demo Video Templateをカスタマイズするには?
Modify the CSS custom properties and class styles defined in the code section. Key adjustable values include colors, sizes, durations, and spacing. See the Adjustable Parameters section for specific variables.
コードセクションで定義されているCSSカスタムプロパティとクラススタイルを変更してください。色、サイズ、時間、間隔が主な調整可能値です。具体的な変数は調整可能パラメータセクションを参照してください。
How to use the load more demo video template in React? ReactでLoad More Demo Video Templateを使うには?
Import the provided React component and its CSS file. The component accepts props for customization. Check the React code section for the full implementation and available props.
提供されているReactコンポーネントとCSSファイルをインポートしてください。コンポーネントのpropsでカスタマイズできます。完全な実装と利用可能なpropsはReactコードセクションを参照してください。
What are the performance implications of load more demo video template? Load More Demo Video Templateのパフォーマンスへの影響は?
This implementation uses CSS transforms and opacity for animations, which are GPU-accelerated. It's lightweight and doesn't cause layout thrashing. Consider using prefers-reduced-motion for accessibility.
この実装はCSSのtransformとopacityを使用しており、GPUアクセラレーションされます。軽量でレイアウトスラッシングを引き起こしません。アクセシビリティのためにprefers-reduced-motionの使用を検討してください。
AIへの指示テンプレート AI Prompt Template
以下をAIに貼り付けると実装を依頼できます。 Paste the following into your AI assistant to request implementation.