1{ 2 "title": "FXASignupSnippet", 3 "description": "A snippet template for FxA sign up/sign in", 4 "version": "1.2.0", 5 "type": "object", 6 "definitions": { 7 "plainText": { 8 "description": "Plain text (no HTML allowed)", 9 "type": "string" 10 }, 11 "richText": { 12 "description": "Text with HTML subset allowed: i, b, u, strong, em, br", 13 "type": "string" 14 }, 15 "link_url": { 16 "description": "Target for links or buttons", 17 "type": "string", 18 "format": "uri" 19 } 20 }, 21 "properties": { 22 "scene1_title": { 23 "allof": [ 24 {"$ref": "#/definitions/plainText"}, 25 {"description": "snippet title displayed before snippet text"} 26 ] 27 }, 28 "scene1_text": { 29 "allOf": [ 30 {"$ref": "#/definitions/richText"}, 31 {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"} 32 ] 33 }, 34 "scene1_section_title_icon": { 35 "type": "string", 36 "description": "Section title icon for scene 1. 16x16px. SVG or PNG preferred. scene1_section_title_text must also be specified to display." 37 }, 38 "scene1_section_title_icon_dark_theme": { 39 "type": "string", 40 "description": "Section title icon for scene 1, dark theme variant. 16x16px. SVG or PNG preferred. scene1_section_title_text must also be specified to display." 41 }, 42 "scene1_section_title_text": { 43 "type": "string", 44 "description": "Section title text for scene 1. scene1_section_title_icon must also be specified to display." 45 }, 46 "scene1_section_title_url": { 47 "allOf": [ 48 {"$ref": "#/definitions/link_url"}, 49 {"description": "A url, scene1_section_title_text links to this"} 50 ] 51 }, 52 "scene2_title": { 53 "allOf": [ 54 {"$ref": "#/definitions/plainText"}, 55 {"description": "Title displayed before text in scene 2. Should be plain text."} 56 ] 57 }, 58 "scene2_text": { 59 "allOf": [ 60 {"$ref": "#/definitions/richText"}, 61 {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"} 62 ] 63 }, 64 "scene1_icon": { 65 "type": "string", 66 "description": "Snippet icon. 64x64px. SVG or PNG preferred." 67 }, 68 "scene1_icon_dark_theme": { 69 "type": "string", 70 "description": "Snippet icon. Dark theme variant. 64x64px. SVG or PNG preferred." 71 }, 72 "scene1_title_icon": { 73 "type": "string", 74 "description": "Small icon that shows up before the title / text. 16x16px. SVG or PNG preferred. Grayscale." 75 }, 76 "scene1_title_icon_dark_theme": { 77 "type": "string", 78 "description": "Small icon that shows up before the title / text. Dark theme variant. 16x16px. SVG or PNG preferred. Grayscale." 79 }, 80 "scene2_email_placeholder_text": { 81 "type": "string", 82 "description": "Value to show while input is empty.", 83 "default": "Your email here" 84 }, 85 "scene2_button_label": { 86 "type": "string", 87 "description": "Label for form submit button", 88 "default": "Sign me up" 89 }, 90 "scene2_dismiss_button_text": { 91 "type": "string", 92 "description": "Label for the dismiss button when the sign-up form is expanded.", 93 "default": "Dismiss" 94 }, 95 "hidden_inputs": { 96 "type": "object", 97 "description": "Each entry represents a hidden input, key is used as value for the name property.", 98 "properties": { 99 "action": { 100 "type": "string", 101 "enum": ["email"] 102 }, 103 "context": { 104 "type": "string", 105 "enum": ["fx_desktop_v3"] 106 }, 107 "entrypoint": { 108 "type": "string", 109 "enum": ["snippets"] 110 }, 111 "utm_content": { 112 "type": "number", 113 "description": "Firefox version number" 114 }, 115 "utm_source": { 116 "type": "string", 117 "enum": ["snippet"] 118 }, 119 "utm_campaign": { 120 "type": "string", 121 "description": "(fxa) Value to pass through to GA as utm_campaign." 122 }, 123 "utm_term": { 124 "type": "string", 125 "description": "(fxa) Value to pass through to GA as utm_term." 126 }, 127 "additionalProperties": false 128 } 129 }, 130 "scene1_button_label": { 131 "allOf": [ 132 {"$ref": "#/definitions/plainText"}, 133 {"description": "Text for a button next to main snippet text that links to button_url. Requires button_url."} 134 ], 135 "default": "Learn more" 136 }, 137 "scene1_button_color": { 138 "type": "string", 139 "description": "The text color of the button. Valid CSS color." 140 }, 141 "scene1_button_background_color": { 142 "type": "string", 143 "description": "The background color of the button. Valid CSS color." 144 }, 145 "retry_button_label": { 146 "allOf": [ 147 {"$ref": "#/definitions/plainText"}, 148 {"description": "Text for the button in the event of a submission error/failure."} 149 ], 150 "default": "Try again" 151 }, 152 "do_not_autoblock": { 153 "type": "boolean", 154 "description": "Used to prevent blocking the snippet after the CTA (link or button) has been clicked", 155 "default": false 156 }, 157 "utm_campaign": { 158 "type": "string", 159 "description": "(fxa) Value to pass through to GA as utm_campaign." 160 }, 161 "utm_term": { 162 "type": "string", 163 "description": "(fxa) Value to pass through to GA as utm_term." 164 }, 165 "links": { 166 "additionalProperties": { 167 "url": { 168 "allOf": [ 169 {"$ref": "#/definitions/link_url"}, 170 {"description": "The url where the link points to."} 171 ] 172 }, 173 "metric": { 174 "type": "string", 175 "description": "Custom event name sent with telemetry event." 176 } 177 } 178 } 179 }, 180 "additionalProperties": false, 181 "required": ["scene1_text", "scene2_text", "scene1_button_label"], 182 "dependencies": { 183 "scene1_button_color": ["scene1_button_label"], 184 "scene1_button_background_color": ["scene1_button_label"] 185 } 186} 187 188