feat(remotion): premium 3D app-showcase template (AppShowcase3D)
- New @remotion/three template: titanium flagship phone (thin rim, glossy black glass, rounded-corner screen via ShapeGeometry, dynamic island, side buttons), light keynote studio (contact shadow + env reflections + DOF + soft bloom), film grain + entrance light-sweep. All 3 aspects re-flowed. - Editable screenUrl (user app screenshot textured onto the screen via TextureLoader + delayRender), appName/tagline/cta, 4 colours (dark text on light bg). - Add pick(wide,square,tall) helper to lib/aspect.ts (Tier-0 from the R&D). - Seed: AppShowcase3D + per-template text colour; built with the flat-artist skill. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -51,12 +51,20 @@ T = [
|
||||
[("greeting","تبریک","تولدت مبارک"),("name","نام","سارا"),("message","پیام","بهترینها را برایت آرزومندیم 🎉")],("#fb7185","#a855f7","#1a1226")),
|
||||
("Promo3D","fr-promo-3d","فروش ویژه سهبعدی","تبلیغ سهبعدی فروش و تخفیف با جعبههای هدیه و نورپردازی سینمایی",6,
|
||||
[("badge","نشان تخفیف","۵۰٪ تخفیف"),("headline","عنوان","فروش ویژهٔ پایان فصل"),("subtext","توضیح","فقط تا پایان همین هفته"),("cta","دکمه","همین حالا خرید کنید")],("#f59e0b","#fb7185","#140e1f")),
|
||||
("AppShowcase3D","fr-app-showcase","معرفی اپلیکیشن سهبعدی","نمایش سهبعدی و حرفهای اپلیکیشن روی گوشی پرچمدار با نورپردازی استودیویی",6,
|
||||
[("appName","نام اپلیکیشن","اپلیکیشن شما"),("tagline","شعار","تجربهای روان، سریع و زیبا"),("cta","دکمه","همین حالا دانلود کنید")],("#3b82f6","#8b5cf6","#f4f5f7")),
|
||||
]
|
||||
|
||||
# Optional Media (image) content elements per template — these surface in the
|
||||
# studio as upload/replace fields. key = the Remotion prop the image binds to.
|
||||
MEDIA = {
|
||||
"GlitterReveal": [("logoUrl", "لوگو (تصویر دلخواه)")],
|
||||
"AppShowcase3D": [("screenUrl", "تصویر اپلیکیشن (اسکرینشات)")],
|
||||
}
|
||||
|
||||
# Per-template text colour (default white for dark backgrounds; dark for light studios).
|
||||
TEXTCOLORS = {
|
||||
"AppShowcase3D": "#0f172a",
|
||||
}
|
||||
|
||||
def swatch_svg(colors):
|
||||
@@ -75,7 +83,8 @@ for idx, (tid, slug, name, desc, dur, texts, (accent, sec, bg)) in enumerate(T):
|
||||
cid = uid("c-" + tid)
|
||||
thumb16 = f"{MINIO}/template-media/{tid}-16x9.png"
|
||||
preview = f"{MINIO}/template-media/{tid}.mp4"
|
||||
colors = [("accentColor", accent), ("secondaryColor", sec), ("backgroundColor", bg), ("textColor", "#ffffff")]
|
||||
txt = TEXTCOLORS.get(tid, "#ffffff")
|
||||
colors = [("accentColor", accent), ("secondaryColor", sec), ("backgroundColor", bg), ("textColor", txt)]
|
||||
out.append(
|
||||
"INSERT INTO content.project_containers (id,tenant_id,slug,name,description,image,demo,full_demo,mini_demo,"
|
||||
"is_published,is_premium,is_mockup,primary_mode,sort) VALUES ("
|
||||
@@ -92,7 +101,7 @@ for idx, (tid, slug, name, desc, dur, texts, (accent, sec, bg)) in enumerate(T):
|
||||
f"{dur},30,'FLEXIBLE','FullHD','Remotion',{q(tid+'-'+asp)},TRUE,0);")
|
||||
out.append(
|
||||
"INSERT INTO content.scenes (id,project_id,key,title,scene_color_svg,default_duration_sec,sort) VALUES ("
|
||||
f"{q(sid)},{q(pid)},'c1','صحنه ۱',{q(swatch_svg([accent,sec,bg,'#ffffff']))},{dur},0);")
|
||||
f"{q(sid)},{q(pid)},'c1','صحنه ۱',{q(swatch_svg([accent,sec,bg,txt]))},{dur},0);")
|
||||
for pos, (k, title, val) in enumerate(texts):
|
||||
out.append(
|
||||
"INSERT INTO content.scene_content_elements (id,scene_id,key,title,type,default_value,position_in_container,direction_layer_value) VALUES ("
|
||||
|
||||
Reference in New Issue
Block a user