Email Field is an extension of Text Field that accepts only email addresses as input. If the given address is invalid, the field is highlighted in red and an error message appears underneath the input.
<vaadin-email-field label="Email address" name="email" value="firstname.lastname@example.org" error-message="Enter a valid email address" clear-button-visible ></vaadin-email-field> <vaadin-email-field label="Email address" name="email" value="This is not an email" error-message="Enter a valid email address" clear-button-visible invalid ></vaadin-email-field>
The validity of the email addresses is checked according to the RFC 5322 standard, which includes the format for email addresses.
The following features, common to most input field components, are supported:
The label is used to identify the input field. It supports plain-text content, and its length is limited to the width of the field. Helpers and Tooltips can be used to provide additional information that doesn’t fit into the label.
Visible labels are strongly recommended for all input fields. In cases where the built-in label cannot be used, an external element can be associated as the field’s label through the
aria-labelledby attribute. Fields without any visible label should include an invisible label for assistive technologies with the
Helpers are used to provide additional information that the user may need to enter in the field, such as format requirements or explanations of the field’s purpose below the field.
A style variant is available for rendering the helper above the field.
In addition to plain text, helpers can contain components and HTML elements. However, complex and interactive content is likely to have accessibility issues.
The placeholder is text that’s displayed when the field is empty. Its primary purpose is to provide a short input hint (e.g., the expected format) in situations where a Helper cannot be used.
Placeholders should not be used as a replacement for a visible label. They can be mistaken for a manually entered value. See Label for alternatives to the built-in field label.
Tooltips are small text pop-ups displayed on hover, and on keyboard-focus. They can be used to provide additional information about a field. This can be useful in situations where an always visible Helper is not appropriate. Helpers are generally recommended in favor of tooltips, though, as they provide much better discoverability and mobile support. See the Tooltip documentation for more information.
Prefix & Suffix
Prefix and suffix elements — rendered at either end of the field — can be used to display units, icons, and similar visual cues to the field’s purpose or format.
External & Invisible Labels (ARIA)
Visible labels are strongly recommended for all input fields. In situations where the built-in label cannot be used, an external element can be associated as the field’s label through its element
id. Fields without any visible label should be provided an invisible label for assistive technologies like screen readers.
<!-- Associates external element as label: --> <label id="external-label">This is the label</label> <vaadin-email-field accessible-name-ref="external-label">... <!-- Invisible label for screen readers: --> <vaadin-email-field accessible-name="This is the label">...
<vaadin-email-field label="Label" helper-text="Helper text" placeholder="Placeholder" clear-button-visible > <vaadin-tooltip slot="tooltip" text="Tooltip text"></vaadin-tooltip> <vaadin-icon slot="prefix" icon="vaadin:envelope"></vaadin-icon> </vaadin-email-field>
Required fields are marked with an indicator next to the label, and become invalid if left empty after having been focused. An error message explaining that the field is required needs to be provided manually.
An instruction text at the top of the form explaining the required indicator is recommended. The indicator itself can be customized with the
--lumo-required-field-indicator style property.
The pattern attribute is an additional validation criterion that you can set if, for example, a specific domain is required. The pattern is specified using a regular expression.
The example below uses the pattern
.+@example\.com and only accepts addresses in the
<vaadin-email-field pattern="^.+@example\\.com$" required label="Email address" error-message="Enter a valid example.com email address" helper-text="Only example.com addresses allowed" ></vaadin-email-field>
Fields used to display values should be set to
read-only mode to prevent editing. Read-only fields are focusable and visible to screen readers. They can display tooltips. Their values can be selected and copied.
Fields that are currently unavailable should be
disabled. The reduced contrast of disabled fields makes them inappropriate for displaying information. They can’t be focused or display tooltips. They’re invisible to screen readers, and their values cannot be selected and copied.
Disabled fields can be useful in situations where they can become enabled based on some user action. Consider hiding fields entirely if there’s nothing the user can do to make them editable.
<vaadin-email-field readonly label="Read-only" value="email@example.com"> </vaadin-email-field> <vaadin-email-field disabled label="Disabled"></vaadin-email-field>
The following style variants can be applied:
Three different text alignments are supported:
left, which is the default;
Right-alignment is recommended for numerical values when presented in vertical groups. This tends to aid interpretation and comparison of values.
The small variant can be used to make individual fields more compact. The default size of fields can be customized with style properties.
Helper Above Field
The helper can be rendered above the field, and below the label.
Borders can be applied to the field surface by providing a value (e.g.,
1px) to the
--vaadin-input-field-border-width CSS property. This can be applied globally to all input fields using the
html selector, or to individual component instances. Borders are required to achieve WCAG 2.1 level AA conformant color contrast with the default Lumo styling of fields.
You can override the default border color with the
<vaadin-email-field theme="align-right small helper-above-field" label="Label" helper-text="Helper text" value="firstname.lastname@example.org" style="--vaadin-input-field-border-width: 1px;" ></vaadin-email-field>