Section
Air Meet Features
1 个模板实例,9 个 section 配置,7 类 block。
真实模板变体
Schema
{
"name": "Air Meet Features",
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Section Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text.",
"default": "Meet <span class=\"amf-accent\">Air</span>"
},
{
"type": "textarea",
"id": "subtitle",
"label": "Section Subtitle",
"default": "Laifen's Lightest Hair Dryer Series Yet."
},
{
"type": "checkbox",
"id": "section_padding",
"label": "Add section padding",
"default": true
},
{
"type": "header",
"content": "Top Spacing"
},
{
"type": "range",
"id": "space_top_pc",
"label": "Top Spacing (Desktop)",
"min": 0,
"max": 200,
"step": 4,
"unit": "px",
"default": 80
},
{
"type": "range",
"id": "space_top_mb",
"label": "Top Spacing (Mobile)",
"min": 0,
"max": 120,
"step": 4,
"unit": "px",
"default": 40
},
{
"type": "range",
"id": "grid_gap_top_pc",
"label": "Title-to-Grid Spacing (Desktop)",
"info": "Space between the subtitle and the cards grid. Increase if foreground layers (e.g. product PNG) extend above the cards.",
"min": 0,
"max": 240,
"step": 4,
"unit": "px",
"default": 120
},
{
"type": "range",
"id": "grid_gap_top_mb",
"label": "Title-to-Grid Spacing (Mobile)",
"min": 0,
"max": 160,
"step": 4,
"unit": "px",
"default": 60
},
{
"type": "text",
"id": "section_id",
"label": "Section ID"
}
],
"blocks": [
{
"type": "feature",
"name": "Feature",
"limit": 7,
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Card Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text. Use <small> for the unit (e.g. oz)."
},
{
"type": "header",
"content": "Background Layer"
},
{
"type": "paragraph",
"content": "Card background image, rendered with cover. Falls back to legacy 'Image (Desktop/Mobile)' fields below if empty."
},
{
"type": "image_picker",
"id": "bg_image_pc",
"label": "Background — Desktop"
},
{
"type": "image_picker",
"id": "bg_image_mb",
"label": "Background — Mobile"
},
{
"type": "select",
"id": "bg_fit_pc",
"label": "Background Fit — Desktop",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_pc",
"label": "Background Focal X — Desktop",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_pc",
"label": "Background Focal Y — Desktop",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "select",
"id": "bg_fit_mb",
"label": "Background Fit — Mobile",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_mb",
"label": "Background Focal X — Mobile",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_mb",
"label": "Background Focal Y — Mobile",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "header",
"content": "Foreground Layer 1 (e.g. Product)"
},
{
"type": "paragraph",
"content": "Transparent PNG recommended. Position is the layer's center; width is a percentage of card width."
},
{
"type": "image_picker",
"id": "layer1_image_pc",
"label": "Layer 1 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer1_image_mb",
"label": "Layer 1 Image — Mobile"
},
{
"type": "range",
"id": "layer1_top_pc",
"label": "Layer 1 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_pc",
"label": "Layer 1 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_pc",
"label": "Layer 1 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_top_mb",
"label": "Layer 1 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_mb",
"label": "Layer 1 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_mb",
"label": "Layer 1 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 70
},
{
"type": "header",
"content": "Foreground Layer 2 (e.g. Model / Hand)"
},
{
"type": "image_picker",
"id": "layer2_image_pc",
"label": "Layer 2 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer2_image_mb",
"label": "Layer 2 Image — Mobile"
},
{
"type": "range",
"id": "layer2_top_pc",
"label": "Layer 2 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_pc",
"label": "Layer 2 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_pc",
"label": "Layer 2 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 40
},
{
"type": "range",
"id": "layer2_top_mb",
"label": "Layer 2 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_mb",
"label": "Layer 2 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_mb",
"label": "Layer 2 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 60
},
{
"type": "header",
"content": "Legacy Single-Image (fallback for Background)"
},
{
"type": "paragraph",
"content": "Used as the background when the new Background fields above are empty. Existing data continues to work without changes."
},
{
"type": "image_picker",
"id": "image_pc",
"label": "Image (Desktop) — legacy"
},
{
"type": "image_picker",
"id": "image_mb",
"label": "Image (Mobile) — legacy"
},
{
"type": "header",
"content": "Text Position Override (optional)"
},
{
"type": "select",
"id": "text_position_pc",
"label": "Text Position (Desktop)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Desktop Position = Custom, the sliders below control exact placement. Top/Left position the text's center anchor. Width 0 = auto."
},
{
"type": "range",
"id": "text_top_pc",
"label": "Custom Text Top — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_pc",
"label": "Custom Text Left — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_pc",
"label": "Custom Text Max Width — Desktop",
"info": "0 = auto (no constraint). Useful to wrap long titles.",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_pc",
"label": "Custom Text Align — Desktop",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
},
{
"type": "select",
"id": "text_position_mb",
"label": "Text Position (Mobile)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Mobile Position = Custom, the sliders below control exact placement on mobile."
},
{
"type": "range",
"id": "text_top_mb",
"label": "Custom Text Top — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_mb",
"label": "Custom Text Left — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_mb",
"label": "Custom Text Max Width — Mobile",
"info": "0 = auto (no constraint).",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_mb",
"label": "Custom Text Align — Mobile",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
}
]
},
{
"type": "feature_2",
"name": "Feature 2",
"limit": 7,
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Card Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text. Use <small> for the unit (e.g. oz)."
},
{
"type": "header",
"content": "Background Layer"
},
{
"type": "paragraph",
"content": "Card background image, rendered with cover. Falls back to legacy 'Image (Desktop/Mobile)' fields below if empty."
},
{
"type": "image_picker",
"id": "bg_image_pc",
"label": "Background — Desktop"
},
{
"type": "image_picker",
"id": "bg_image_mb",
"label": "Background — Mobile"
},
{
"type": "select",
"id": "bg_fit_pc",
"label": "Background Fit — Desktop",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_pc",
"label": "Background Focal X — Desktop",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_pc",
"label": "Background Focal Y — Desktop",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "select",
"id": "bg_fit_mb",
"label": "Background Fit — Mobile",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_mb",
"label": "Background Focal X — Mobile",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_mb",
"label": "Background Focal Y — Mobile",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "header",
"content": "Foreground Layer 1 (e.g. Product)"
},
{
"type": "paragraph",
"content": "Transparent PNG recommended. Position is the layer's center; width is a percentage of card width."
},
{
"type": "image_picker",
"id": "layer1_image_pc",
"label": "Layer 1 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer1_image_mb",
"label": "Layer 1 Image — Mobile"
},
{
"type": "range",
"id": "layer1_top_pc",
"label": "Layer 1 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_pc",
"label": "Layer 1 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_pc",
"label": "Layer 1 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_top_mb",
"label": "Layer 1 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_mb",
"label": "Layer 1 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_mb",
"label": "Layer 1 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 70
},
{
"type": "header",
"content": "Foreground Layer 2 (e.g. Model / Hand)"
},
{
"type": "image_picker",
"id": "layer2_image_pc",
"label": "Layer 2 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer2_image_mb",
"label": "Layer 2 Image — Mobile"
},
{
"type": "range",
"id": "layer2_top_pc",
"label": "Layer 2 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_pc",
"label": "Layer 2 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_pc",
"label": "Layer 2 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 40
},
{
"type": "range",
"id": "layer2_top_mb",
"label": "Layer 2 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_mb",
"label": "Layer 2 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_mb",
"label": "Layer 2 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 60
},
{
"type": "header",
"content": "Legacy Single-Image (fallback for Background)"
},
{
"type": "paragraph",
"content": "Used as the background when the new Background fields above are empty. Existing data continues to work without changes."
},
{
"type": "image_picker",
"id": "image_pc",
"label": "Image (Desktop) — legacy"
},
{
"type": "image_picker",
"id": "image_mb",
"label": "Image (Mobile) — legacy"
},
{
"type": "header",
"content": "Text Position Override (optional)"
},
{
"type": "select",
"id": "text_position_pc",
"label": "Text Position (Desktop)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Desktop Position = Custom, the sliders below control exact placement. Top/Left position the text's center anchor. Width 0 = auto."
},
{
"type": "range",
"id": "text_top_pc",
"label": "Custom Text Top — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_pc",
"label": "Custom Text Left — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_pc",
"label": "Custom Text Max Width — Desktop",
"info": "0 = auto (no constraint). Useful to wrap long titles.",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_pc",
"label": "Custom Text Align — Desktop",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
},
{
"type": "select",
"id": "text_position_mb",
"label": "Text Position (Mobile)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Mobile Position = Custom, the sliders below control exact placement on mobile."
},
{
"type": "range",
"id": "text_top_mb",
"label": "Custom Text Top — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_mb",
"label": "Custom Text Left — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_mb",
"label": "Custom Text Max Width — Mobile",
"info": "0 = auto (no constraint).",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_mb",
"label": "Custom Text Align — Mobile",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
}
]
},
{
"type": "feature_3",
"name": "Feature 3",
"limit": 7,
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Card Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text. Use <small> for the unit (e.g. oz)."
},
{
"type": "header",
"content": "Background Layer"
},
{
"type": "paragraph",
"content": "Card background image, rendered with cover. Falls back to legacy 'Image (Desktop/Mobile)' fields below if empty."
},
{
"type": "image_picker",
"id": "bg_image_pc",
"label": "Background — Desktop"
},
{
"type": "image_picker",
"id": "bg_image_mb",
"label": "Background — Mobile"
},
{
"type": "select",
"id": "bg_fit_pc",
"label": "Background Fit — Desktop",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_pc",
"label": "Background Focal X — Desktop",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_pc",
"label": "Background Focal Y — Desktop",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "select",
"id": "bg_fit_mb",
"label": "Background Fit — Mobile",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_mb",
"label": "Background Focal X — Mobile",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_mb",
"label": "Background Focal Y — Mobile",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "header",
"content": "Foreground Layer 1 (e.g. Product)"
},
{
"type": "paragraph",
"content": "Transparent PNG recommended. Position is the layer's center; width is a percentage of card width."
},
{
"type": "image_picker",
"id": "layer1_image_pc",
"label": "Layer 1 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer1_image_mb",
"label": "Layer 1 Image — Mobile"
},
{
"type": "range",
"id": "layer1_top_pc",
"label": "Layer 1 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_pc",
"label": "Layer 1 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_pc",
"label": "Layer 1 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_top_mb",
"label": "Layer 1 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_mb",
"label": "Layer 1 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_mb",
"label": "Layer 1 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 70
},
{
"type": "header",
"content": "Foreground Layer 2 (e.g. Model / Hand)"
},
{
"type": "image_picker",
"id": "layer2_image_pc",
"label": "Layer 2 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer2_image_mb",
"label": "Layer 2 Image — Mobile"
},
{
"type": "range",
"id": "layer2_top_pc",
"label": "Layer 2 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_pc",
"label": "Layer 2 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_pc",
"label": "Layer 2 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 40
},
{
"type": "range",
"id": "layer2_top_mb",
"label": "Layer 2 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_mb",
"label": "Layer 2 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_mb",
"label": "Layer 2 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 60
},
{
"type": "header",
"content": "Legacy Single-Image (fallback for Background)"
},
{
"type": "paragraph",
"content": "Used as the background when the new Background fields above are empty. Existing data continues to work without changes."
},
{
"type": "image_picker",
"id": "image_pc",
"label": "Image (Desktop) — legacy"
},
{
"type": "image_picker",
"id": "image_mb",
"label": "Image (Mobile) — legacy"
},
{
"type": "header",
"content": "Text Position Override (optional)"
},
{
"type": "select",
"id": "text_position_pc",
"label": "Text Position (Desktop)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Desktop Position = Custom, the sliders below control exact placement. Top/Left position the text's center anchor. Width 0 = auto."
},
{
"type": "range",
"id": "text_top_pc",
"label": "Custom Text Top — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_pc",
"label": "Custom Text Left — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_pc",
"label": "Custom Text Max Width — Desktop",
"info": "0 = auto (no constraint). Useful to wrap long titles.",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_pc",
"label": "Custom Text Align — Desktop",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
},
{
"type": "select",
"id": "text_position_mb",
"label": "Text Position (Mobile)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Mobile Position = Custom, the sliders below control exact placement on mobile."
},
{
"type": "range",
"id": "text_top_mb",
"label": "Custom Text Top — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_mb",
"label": "Custom Text Left — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_mb",
"label": "Custom Text Max Width — Mobile",
"info": "0 = auto (no constraint).",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_mb",
"label": "Custom Text Align — Mobile",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
}
]
},
{
"type": "feature_4",
"name": "Feature 4",
"limit": 7,
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Card Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text. Use <small> for the unit (e.g. oz)."
},
{
"type": "header",
"content": "Background Layer"
},
{
"type": "paragraph",
"content": "Card background image, rendered with cover. Falls back to legacy 'Image (Desktop/Mobile)' fields below if empty."
},
{
"type": "image_picker",
"id": "bg_image_pc",
"label": "Background — Desktop"
},
{
"type": "image_picker",
"id": "bg_image_mb",
"label": "Background — Mobile"
},
{
"type": "select",
"id": "bg_fit_pc",
"label": "Background Fit — Desktop",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_pc",
"label": "Background Focal X — Desktop",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_pc",
"label": "Background Focal Y — Desktop",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "select",
"id": "bg_fit_mb",
"label": "Background Fit — Mobile",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_mb",
"label": "Background Focal X — Mobile",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_mb",
"label": "Background Focal Y — Mobile",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "header",
"content": "Foreground Layer 1 (e.g. Product)"
},
{
"type": "paragraph",
"content": "Transparent PNG recommended. Position is the layer's center; width is a percentage of card width."
},
{
"type": "image_picker",
"id": "layer1_image_pc",
"label": "Layer 1 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer1_image_mb",
"label": "Layer 1 Image — Mobile"
},
{
"type": "range",
"id": "layer1_top_pc",
"label": "Layer 1 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_pc",
"label": "Layer 1 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_pc",
"label": "Layer 1 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_top_mb",
"label": "Layer 1 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_mb",
"label": "Layer 1 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_mb",
"label": "Layer 1 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 70
},
{
"type": "header",
"content": "Foreground Layer 2 (e.g. Model / Hand)"
},
{
"type": "image_picker",
"id": "layer2_image_pc",
"label": "Layer 2 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer2_image_mb",
"label": "Layer 2 Image — Mobile"
},
{
"type": "range",
"id": "layer2_top_pc",
"label": "Layer 2 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_pc",
"label": "Layer 2 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_pc",
"label": "Layer 2 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 40
},
{
"type": "range",
"id": "layer2_top_mb",
"label": "Layer 2 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_mb",
"label": "Layer 2 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_mb",
"label": "Layer 2 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 60
},
{
"type": "header",
"content": "Legacy Single-Image (fallback for Background)"
},
{
"type": "paragraph",
"content": "Used as the background when the new Background fields above are empty. Existing data continues to work without changes."
},
{
"type": "image_picker",
"id": "image_pc",
"label": "Image (Desktop) — legacy"
},
{
"type": "image_picker",
"id": "image_mb",
"label": "Image (Mobile) — legacy"
},
{
"type": "header",
"content": "Text Position Override (optional)"
},
{
"type": "select",
"id": "text_position_pc",
"label": "Text Position (Desktop)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Desktop Position = Custom, the sliders below control exact placement. Top/Left position the text's center anchor. Width 0 = auto."
},
{
"type": "range",
"id": "text_top_pc",
"label": "Custom Text Top — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_pc",
"label": "Custom Text Left — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_pc",
"label": "Custom Text Max Width — Desktop",
"info": "0 = auto (no constraint). Useful to wrap long titles.",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_pc",
"label": "Custom Text Align — Desktop",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
},
{
"type": "select",
"id": "text_position_mb",
"label": "Text Position (Mobile)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Mobile Position = Custom, the sliders below control exact placement on mobile."
},
{
"type": "range",
"id": "text_top_mb",
"label": "Custom Text Top — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_mb",
"label": "Custom Text Left — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_mb",
"label": "Custom Text Max Width — Mobile",
"info": "0 = auto (no constraint).",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_mb",
"label": "Custom Text Align — Mobile",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
}
]
},
{
"type": "feature_5",
"name": "Feature 5",
"limit": 7,
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Card Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text. Use <small> for the unit (e.g. oz)."
},
{
"type": "header",
"content": "Background Layer"
},
{
"type": "paragraph",
"content": "Card background image, rendered with cover. Falls back to legacy 'Image (Desktop/Mobile)' fields below if empty."
},
{
"type": "image_picker",
"id": "bg_image_pc",
"label": "Background — Desktop"
},
{
"type": "image_picker",
"id": "bg_image_mb",
"label": "Background — Mobile"
},
{
"type": "select",
"id": "bg_fit_pc",
"label": "Background Fit — Desktop",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_pc",
"label": "Background Focal X — Desktop",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_pc",
"label": "Background Focal Y — Desktop",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "select",
"id": "bg_fit_mb",
"label": "Background Fit — Mobile",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_mb",
"label": "Background Focal X — Mobile",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_mb",
"label": "Background Focal Y — Mobile",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "header",
"content": "Foreground Layer 1 (e.g. Product)"
},
{
"type": "paragraph",
"content": "Transparent PNG recommended. Position is the layer's center; width is a percentage of card width."
},
{
"type": "image_picker",
"id": "layer1_image_pc",
"label": "Layer 1 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer1_image_mb",
"label": "Layer 1 Image — Mobile"
},
{
"type": "range",
"id": "layer1_top_pc",
"label": "Layer 1 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_pc",
"label": "Layer 1 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_pc",
"label": "Layer 1 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_top_mb",
"label": "Layer 1 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_mb",
"label": "Layer 1 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_mb",
"label": "Layer 1 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 70
},
{
"type": "header",
"content": "Foreground Layer 2 (e.g. Model / Hand)"
},
{
"type": "image_picker",
"id": "layer2_image_pc",
"label": "Layer 2 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer2_image_mb",
"label": "Layer 2 Image — Mobile"
},
{
"type": "range",
"id": "layer2_top_pc",
"label": "Layer 2 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_pc",
"label": "Layer 2 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_pc",
"label": "Layer 2 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 40
},
{
"type": "range",
"id": "layer2_top_mb",
"label": "Layer 2 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_mb",
"label": "Layer 2 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_mb",
"label": "Layer 2 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 60
},
{
"type": "header",
"content": "Legacy Single-Image (fallback for Background)"
},
{
"type": "paragraph",
"content": "Used as the background when the new Background fields above are empty. Existing data continues to work without changes."
},
{
"type": "image_picker",
"id": "image_pc",
"label": "Image (Desktop) — legacy"
},
{
"type": "image_picker",
"id": "image_mb",
"label": "Image (Mobile) — legacy"
},
{
"type": "header",
"content": "Text Position Override (optional)"
},
{
"type": "select",
"id": "text_position_pc",
"label": "Text Position (Desktop)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Desktop Position = Custom, the sliders below control exact placement. Top/Left position the text's center anchor. Width 0 = auto."
},
{
"type": "range",
"id": "text_top_pc",
"label": "Custom Text Top — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_pc",
"label": "Custom Text Left — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_pc",
"label": "Custom Text Max Width — Desktop",
"info": "0 = auto (no constraint). Useful to wrap long titles.",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_pc",
"label": "Custom Text Align — Desktop",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
},
{
"type": "select",
"id": "text_position_mb",
"label": "Text Position (Mobile)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Mobile Position = Custom, the sliders below control exact placement on mobile."
},
{
"type": "range",
"id": "text_top_mb",
"label": "Custom Text Top — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_mb",
"label": "Custom Text Left — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_mb",
"label": "Custom Text Max Width — Mobile",
"info": "0 = auto (no constraint).",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_mb",
"label": "Custom Text Align — Mobile",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
}
]
},
{
"type": "feature_6",
"name": "Feature 6",
"limit": 7,
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Card Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text. Use <small> for the unit (e.g. oz)."
},
{
"type": "header",
"content": "Background Layer"
},
{
"type": "paragraph",
"content": "Card background image, rendered with cover. Falls back to legacy 'Image (Desktop/Mobile)' fields below if empty."
},
{
"type": "image_picker",
"id": "bg_image_pc",
"label": "Background — Desktop"
},
{
"type": "image_picker",
"id": "bg_image_mb",
"label": "Background — Mobile"
},
{
"type": "select",
"id": "bg_fit_pc",
"label": "Background Fit — Desktop",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_pc",
"label": "Background Focal X — Desktop",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_pc",
"label": "Background Focal Y — Desktop",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "select",
"id": "bg_fit_mb",
"label": "Background Fit — Mobile",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_mb",
"label": "Background Focal X — Mobile",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_mb",
"label": "Background Focal Y — Mobile",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "header",
"content": "Foreground Layer 1 (e.g. Product)"
},
{
"type": "paragraph",
"content": "Transparent PNG recommended. Position is the layer's center; width is a percentage of card width."
},
{
"type": "image_picker",
"id": "layer1_image_pc",
"label": "Layer 1 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer1_image_mb",
"label": "Layer 1 Image — Mobile"
},
{
"type": "range",
"id": "layer1_top_pc",
"label": "Layer 1 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_pc",
"label": "Layer 1 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_pc",
"label": "Layer 1 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_top_mb",
"label": "Layer 1 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_mb",
"label": "Layer 1 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_mb",
"label": "Layer 1 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 70
},
{
"type": "header",
"content": "Foreground Layer 2 (e.g. Model / Hand)"
},
{
"type": "image_picker",
"id": "layer2_image_pc",
"label": "Layer 2 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer2_image_mb",
"label": "Layer 2 Image — Mobile"
},
{
"type": "range",
"id": "layer2_top_pc",
"label": "Layer 2 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_pc",
"label": "Layer 2 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_pc",
"label": "Layer 2 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 40
},
{
"type": "range",
"id": "layer2_top_mb",
"label": "Layer 2 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_mb",
"label": "Layer 2 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_mb",
"label": "Layer 2 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 60
},
{
"type": "header",
"content": "Legacy Single-Image (fallback for Background)"
},
{
"type": "paragraph",
"content": "Used as the background when the new Background fields above are empty. Existing data continues to work without changes."
},
{
"type": "image_picker",
"id": "image_pc",
"label": "Image (Desktop) — legacy"
},
{
"type": "image_picker",
"id": "image_mb",
"label": "Image (Mobile) — legacy"
},
{
"type": "header",
"content": "Text Position Override (optional)"
},
{
"type": "select",
"id": "text_position_pc",
"label": "Text Position (Desktop)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Desktop Position = Custom, the sliders below control exact placement. Top/Left position the text's center anchor. Width 0 = auto."
},
{
"type": "range",
"id": "text_top_pc",
"label": "Custom Text Top — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_pc",
"label": "Custom Text Left — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_pc",
"label": "Custom Text Max Width — Desktop",
"info": "0 = auto (no constraint). Useful to wrap long titles.",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_pc",
"label": "Custom Text Align — Desktop",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
},
{
"type": "select",
"id": "text_position_mb",
"label": "Text Position (Mobile)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Mobile Position = Custom, the sliders below control exact placement on mobile."
},
{
"type": "range",
"id": "text_top_mb",
"label": "Custom Text Top — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_mb",
"label": "Custom Text Left — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_mb",
"label": "Custom Text Max Width — Mobile",
"info": "0 = auto (no constraint).",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_mb",
"label": "Custom Text Align — Mobile",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
}
]
},
{
"type": "feature_7",
"name": "Feature 7",
"limit": 7,
"settings": [
{
"type": "textarea",
"id": "title",
"label": "Card Title (HTML allowed)",
"info": "Use <span class=\"amf-accent\">...</span> for purple gradient text. Use <small> for the unit (e.g. oz)."
},
{
"type": "header",
"content": "Background Layer"
},
{
"type": "paragraph",
"content": "Card background image, rendered with cover. Falls back to legacy 'Image (Desktop/Mobile)' fields below if empty."
},
{
"type": "image_picker",
"id": "bg_image_pc",
"label": "Background — Desktop"
},
{
"type": "image_picker",
"id": "bg_image_mb",
"label": "Background — Mobile"
},
{
"type": "select",
"id": "bg_fit_pc",
"label": "Background Fit — Desktop",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_pc",
"label": "Background Focal X — Desktop",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_pc",
"label": "Background Focal Y — Desktop",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "select",
"id": "bg_fit_mb",
"label": "Background Fit — Mobile",
"default": "cover",
"options": [
{
"value": "cover",
"label": "Cover (fill, may crop)"
},
{
"value": "contain",
"label": "Contain (full image, may leave gaps)"
}
]
},
{
"type": "range",
"id": "bg_pos_x_mb",
"label": "Background Focal X — Mobile",
"info": "Only used with Cover. 0% = left, 50% = center, 100% = right.",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "bg_pos_y_mb",
"label": "Background Focal Y — Mobile",
"min": 0,
"max": 100,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "header",
"content": "Foreground Layer 1 (e.g. Product)"
},
{
"type": "paragraph",
"content": "Transparent PNG recommended. Position is the layer's center; width is a percentage of card width."
},
{
"type": "image_picker",
"id": "layer1_image_pc",
"label": "Layer 1 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer1_image_mb",
"label": "Layer 1 Image — Mobile"
},
{
"type": "range",
"id": "layer1_top_pc",
"label": "Layer 1 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_pc",
"label": "Layer 1 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_pc",
"label": "Layer 1 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_top_mb",
"label": "Layer 1 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_left_mb",
"label": "Layer 1 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer1_width_mb",
"label": "Layer 1 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 70
},
{
"type": "header",
"content": "Foreground Layer 2 (e.g. Model / Hand)"
},
{
"type": "image_picker",
"id": "layer2_image_pc",
"label": "Layer 2 Image — Desktop"
},
{
"type": "image_picker",
"id": "layer2_image_mb",
"label": "Layer 2 Image — Mobile"
},
{
"type": "range",
"id": "layer2_top_pc",
"label": "Layer 2 Top — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_pc",
"label": "Layer 2 Left — Desktop",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_pc",
"label": "Layer 2 Width — Desktop",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 40
},
{
"type": "range",
"id": "layer2_top_mb",
"label": "Layer 2 Top — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_left_mb",
"label": "Layer 2 Left — Mobile",
"min": -50,
"max": 150,
"step": 2,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "layer2_width_mb",
"label": "Layer 2 Width — Mobile",
"min": 10,
"max": 200,
"step": 2,
"unit": "%",
"default": 60
},
{
"type": "header",
"content": "Legacy Single-Image (fallback for Background)"
},
{
"type": "paragraph",
"content": "Used as the background when the new Background fields above are empty. Existing data continues to work without changes."
},
{
"type": "image_picker",
"id": "image_pc",
"label": "Image (Desktop) — legacy"
},
{
"type": "image_picker",
"id": "image_mb",
"label": "Image (Mobile) — legacy"
},
{
"type": "header",
"content": "Text Position Override (optional)"
},
{
"type": "select",
"id": "text_position_pc",
"label": "Text Position (Desktop)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Desktop Position = Custom, the sliders below control exact placement. Top/Left position the text's center anchor. Width 0 = auto."
},
{
"type": "range",
"id": "text_top_pc",
"label": "Custom Text Top — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_pc",
"label": "Custom Text Left — Desktop",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_pc",
"label": "Custom Text Max Width — Desktop",
"info": "0 = auto (no constraint). Useful to wrap long titles.",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_pc",
"label": "Custom Text Align — Desktop",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
},
{
"type": "select",
"id": "text_position_mb",
"label": "Text Position (Mobile)",
"default": "default",
"options": [
{
"value": "default",
"label": "Default (per card index)"
},
{
"value": "tl",
"label": "Top Left"
},
{
"value": "tc",
"label": "Top Center"
},
{
"value": "tr",
"label": "Top Right"
},
{
"value": "ml",
"label": "Middle Left"
},
{
"value": "mc",
"label": "Middle Center"
},
{
"value": "mr",
"label": "Middle Right"
},
{
"value": "bl",
"label": "Bottom Left"
},
{
"value": "bc",
"label": "Bottom Center"
},
{
"value": "br",
"label": "Bottom Right"
},
{
"value": "custom",
"label": "Custom (use sliders below)"
}
]
},
{
"type": "paragraph",
"content": "When Mobile Position = Custom, the sliders below control exact placement on mobile."
},
{
"type": "range",
"id": "text_top_mb",
"label": "Custom Text Top — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_left_mb",
"label": "Custom Text Left — Mobile",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 50
},
{
"type": "range",
"id": "text_width_mb",
"label": "Custom Text Max Width — Mobile",
"info": "0 = auto (no constraint).",
"min": 0,
"max": 100,
"step": 1,
"unit": "%",
"default": 0
},
{
"type": "select",
"id": "text_align_mb",
"label": "Custom Text Align — Mobile",
"default": "center",
"options": [
{
"value": "left",
"label": "Left"
},
{
"value": "center",
"label": "Center"
},
{
"value": "right",
"label": "Right"
}
]
}
]
}
],
"presets": [
{
"name": "Air Meet Features",
"blocks": [
{
"type": "feature"
},
{
"type": "feature"
},
{
"type": "feature"
},
{
"type": "feature"
},
{
"type": "feature"
},
{
"type": "feature"
},
{
"type": "feature"
}
]
}
]
}