email<
TCollectionSlug,TFieldKey,TFieldMeta>(options?):EmailField<TCollectionSlug,TFieldMeta>
Defined in: packages/core/src/fields/email/config.ts:47
Creates an email field with all defaults applied.
Email fields store single-line email address strings, format-checked in the admin form and on every server write. Common uses: contact emails, author emails, newsletter sign-ups.
Accepts EmailFieldInput (all optional) and returns EmailField with all defaults applied.
Defaults applied:
label—""(inferred from the field key bydefineCollection)required—falseadmin.hidden—falseadmin.readOnly—falseadmin.position—"main"admin.width—"100%"admin.cellAlignment—"left"admin.mask— not set (opt-in; no project-wide default applies unless configured)
Type Parameters
Section titled “Type Parameters”TCollectionSlug
Section titled “TCollectionSlug”TCollectionSlug extends string = string
TFieldKey
Section titled “TFieldKey”TFieldKey extends string = never
TFieldMeta
Section titled “TFieldMeta”TFieldMeta extends BaseFieldMeta = BaseFieldMeta
Parameters
Section titled “Parameters”options?
Section titled “options?”EmailFieldInput<TCollectionSlug, TFieldKey, TFieldMeta>
Email field configuration. All properties are optional.
Returns
Section titled “Returns”EmailField<TCollectionSlug, TFieldMeta>
Resolved email field definition with all defaults applied.
Example
Section titled “Example”import { email, defineCollection } from '@vexcms/core'
authors: defineCollection({ fields: { // Minimal — label inferred from key ("Contact Email") contactEmail: email(),
// Required with a length cap and a database index workEmail: email({ required: true, max: 254, index: "by_work_email" }), }})- EmailFieldInput for the full input type
- EmailField for the resolved output type