Text overlays are baked into the final image. Use them for social cards, app store screenshots, changelog images, launch visuals, and gallery thumbnails.

ScreenFramed text overlays page rendered with a caption preset

Structured title fields

Use title, subtitle, and badge for common compositions:

json
{ "url": "https://example.com", "background_preset": "midnight", "title": "Launch week", "subtitle": "Everything new in one dashboard", "badge": "NEW", "title_position": "above"}

title_position supports above, below, bottom-left, top-left, and overlay-bottom.

Free-form text box

Use free-form text when you need exact placement and typography control:

json
{ "url": "https://example.com", "text_enabled": true, "text_content": "Plan your week in one view", "text_x": 0.08, "text_y": 0.08, "text_size": 64, "text_weight": 800, "text_max_width": 0.8}

Styling text

FieldDescription
text_colorSolid color text fill.
text_gradientCSS gradient text fill.
text_shadowFull CSS text-shadow value.
text_fontFont family.
text_alignleft, center, or right.
text_line_heightLine height multiplier.

Autofit

Use autofit for dynamic titles, CMS content, localized app store screenshots, and generated copy:

json
{ "url": "https://example.com", "text_enabled": true, "text_content": "A much longer headline that still needs to fit", "text_size": 96, "text_autofit": true, "text_fit_min": 24, "text_box_h": 0.28, "text_max_width": 0.82, "text_vertical_align": "middle"}

AI-generated copy

Set ai_copy: true to let ScreenFramed generate a title, subtitle, or badge from the captured page:

json
{ "url": "https://example.com", "ai_copy": true, "ai_style": true}

For production templates, keep text_autofit enabled if the text comes from user content, CMS content, or AI copy.