Text, email, URL, phone, and password
These fields store plain text. Pick the one that matches the kind of text, so VX can check its format and your front end knows how to display it.
Text and Textarea
Text is a single line: a tagline, a SKU, a subtitle. Textarea is a few lines of plain text without formatting: a short note, an address block. For formatting (bold, links, lists), use Rich text.
Both can limit the length with Min length and Max length. Text also has a display-only prefix and suffix.
Email
An email address. VX cleans the address when it's saved, and an address that isn't valid is saved as empty, so check the field after saving if it looks blank.
URL
A web address. URL prefix decides what is added when an editor types an address without one: https:// by default, or http://, ftp://, mailto:, a Custom prefix (for example tel:), or None to store exactly what was typed. An address that already starts with a scheme is left alone.
Phone
A phone number in international format, with a searchable country picker that shows each country's flag and calling code. Spaces, dashes and brackets are removed when it's saved, so +351 912 345 678 is stored as +351912345678. That standard format works directly in tel: links.
Password
A secret value, such as a door code or an API token for an integration. VX keeps password values away from the front end: they never appear in dynamic tags or in the Bricks tag picker. A Group or Repeater that contains a password field is protected the same way.
The value is still stored in the database as ordinary meta, readable by PHP code and by administrators. It isn't encrypted.
Technical details for LLMs
- Type keys and settings:
text(placeholder,default_value,prefix,suffix,minlength,maxlength);textarea(placeholder,default_value,minlength,maxlength);email(placeholder,default_value);url(placeholder,default_value,url_prefix:https://(default) |http://|ftp://|mailto:|custom|none,url_prefix_custom);phone(placeholder,default_value);password(placeholder). - Stored: strings in meta under the field key. Email through
sanitize_email(invalid →''). URL throughesc_url_rawafter applying the prefix. Phone: non-digits except+stripped, must match^\+[1-9][0-9]{6,14}$(E.164); a mismatch is a warning, not a rejection. - Length limits are warnings, not rejections.
- Password: never serialized to ability reads, dynamic data or Bricks; containers with a password descendant are unwritable through the abilities as a whole.
- All but textarea are
compactfor form columns; phone must staywidth: fullon narrow.